搜索
bottom↓
回复: 80

分享简单的C8051F020通过串口下载程序的方法

  [复制链接]

出0入0汤圆

发表于 2012-3-25 20:54:41 | 显示全部楼层 |阅读模式
本帖最后由 hdd961140543 于 2012-3-25 20:54 编辑

最近在开始学习C8051F单片机,没办法因为导师用的是这款单片机。项目中需要用到远程更新固件的功能,所以在网上找到了C8051F单片机串口下载的bootloader,修改之后就成功的用在了C8051F020这款单片机上。而且这种方式也可以扩展到其它具有IAP(在应用中可编程)功能的单片机上。

这个是我写的bootloader代码,编译软件Keil4.00,为了尽量精简,我将所有代码都放在了一个main.c的文件里。
Keil中工程需要将代码存放位置设置一下,start地址就是boot程序区的起始地址,size大小就是你的boot代码编译后的大小,当然需要预留一些空间。

实际使用了772个字节,而预留了3K


为此我还编写了一个简单的VB上位机的下载程序,基本功能已经可以实现。由于本人主学硬件,VB仅仅是菜鸟级的,所以VB软件还有很多BUG,请大虾就不要拍砖了。

上位机还有几个功能我还没有做到:
1、自动装载hex文件
2、显示下载进度
3、下载计数功能
请有兴趣的大虾帮忙完善一下,分享给大家





本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2012-3-25 21:26:31 | 显示全部楼层
LSZD 发表于 2012-3-25 21:09
我给你顶起

谢了!10Byte!

出0入0汤圆

 楼主| 发表于 2012-3-26 09:49:07 来自手机 | 显示全部楼层
ju748 发表于 2012-3-26 01:15
相当好的资料,感谢楼主的奉献,原厂给的真的太垃圾了…

谢了,我这个其实也很简单,每次下载都会把用户flash全部擦掉

出0入0汤圆

 楼主| 发表于 2012-5-30 09:55:13 | 显示全部楼层
XA144F 发表于 2012-5-30 09:50
串口下载器 有没有编译好的程序?我的在电脑上打开出现错误。

在 串口下载器\串口下载器\obj\Debug 里面有个应用程序就是了

出0入0汤圆

 楼主| 发表于 2012-5-30 13:05:23 | 显示全部楼层
XA144F 发表于 2012-5-30 11:14
试验了,显示警告信息:应用程序初始化失败……

这个就不清楚了
我把它生成了一个安装包,你试着安装一下,看看,实在不行就这有安装VB2008了

.

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

 楼主| 发表于 2012-10-19 14:40:09 | 显示全部楼层
anning 发表于 2012-10-19 14:03
楼主,我的电脑win7系统,但是点击安装后,再打开程序,始终没有任何显示啊。 ...

我的也是win7

出0入0汤圆

 楼主| 发表于 2012-11-2 14:43:24 | 显示全部楼层
yklstudent 发表于 2012-11-2 12:53
楼主 你这个上位机是使用什么版本的VB写的 我的VB6.0没法识别啊

用的VS2008,VB.net,FrameWork3.5框架。

出0入0汤圆

 楼主| 发表于 2012-11-7 13:03:40 | 显示全部楼层
xyz2008 发表于 2012-11-7 11:37
楼主,先用仿真器 把你的BootLoader下载到我板子里面,那我要不要改我的程序编译项的设置啊
我用仿真器烧完 ...

用仿真器下载时需要设置下载的位置,start地址就是boot程序区的起始地址,这里我设置了0xf200就是片内flash总大小-预留空间:64K-4K=60K=0xf000
用我的下载软件下就不需要设置了

出0入0汤圆

 楼主| 发表于 2012-11-7 14:40:16 | 显示全部楼层
xyz2008 发表于 2012-11-7 14:12
还是没有弄好,那位弄好了,说一声

这个没有难度的,了解一下bootloader的原理,自己就可以写一个简单的了

出0入0汤圆

 楼主| 发表于 2013-3-20 18:16:49 | 显示全部楼层
lukehua 发表于 2013-3-20 13:34
如果我用串口下载程序的时候覆盖了bootloader的位置就下载不了了吧,那就得常备着仿真器了? ...

是的,不过bootloader设置是不能擦除其所占用的flash区的。

仿真器肯定需要了,这个bootloader很简单的,只能作为学习用

你上面的错误我也不知道为什么,上位机.net仅是初学者

出0入0汤圆

 楼主| 发表于 2013-3-20 18:17:44 | 显示全部楼层
lukehua 发表于 2013-3-20 13:34
如果我用串口下载程序的时候覆盖了bootloader的位置就下载不了了吧,那就得常备着仿真器了? ...

是的,不过bootloader设置是不能擦除其所占用的flash区的。

仿真器肯定需要了,这个bootloader很简单的,只能作为学习用

你上面的错误我也不知道为什么,上位机.net仅是初学者

出0入0汤圆

 楼主| 发表于 2014-3-27 17:08:13 | 显示全部楼层
孤独飞行 发表于 2014-3-27 14:35
校验出错,请重新下载...

我很久都没接触这个了,源代码都有的,请自己花点时间分析一下。
当时写的代码现在看来有很多不足之处,请仅作为学习参考之用,实际使用请慎重
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-7 09:44

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表