原创 C8051F340 USB HID 的Bootloader

2010-1-31 02:16 7155 7 23 分类: MCU/ 嵌入式

https://static.assets-stash.eet-china.com/album/old-resources/2010/1/31/ae1ee79a-5858-4733-ab02-b9952a46a6fe.rar一直用C8051F340,但一直没有找到一个好用的Bootloader,有一个也是用串口方式的。用这个片子,主要是就用他的USB,所以就想自己写一个。花了一个星期的时间,总算有一个可以差不多的样子。在一个设备中使用未发现问题。拿出来给大家一起分享。


本Bootloader主要是对C8051F340使用的,理论上C8051F320也可以使用,但需要修改内部的倍频参数部门,而且320的Flash空间太小,用了Bootloader就更少了。


本Bootloader点Flash空间的前两页,0000H-0FFFH部分。单片机复位后先执行Bootloader程序,Bootloader判断是否可以执行用户程序,如果可以再跳到用户程序执行。用户程序也可以通过如下指令再跳回到Bootloader程序。


调用Bootloader入口函数


pFunction Jump_To_Bootloader;


Jump_To_Bootloader = 0x0006;


Jump_To_Bootloader();


 


Bootloader 主要完成中断向量跳转,功能相当于把除复位中断以外所有的中断地址映射到1000H开始的Flash空间。


USB的通讯功能。只能用查询方式,不能用中断方式。因为用了中断方式以后用户程序就无法使用了。


命令的处理。看电脑上的更新程序想做什么,做了写,擦,校验,读Bootloader版本功能,读功能不能有的,有了用户代码就不安全了。


Flash读写功能。


 


其实Bootloader就是这些功能的组合了。


 


 


下一步计划把加密算法加进去,打算用DES加密。这样就可以在保证单片机的目标程序安全的情况下提供程序升级服务了。


思路    新版单片机程序 -------->通过DES加密---------->  升级软件--------->  USB--------> 单片机Bootloader -------> 解密--------> 写入FLASH。


对解密后的程序中加入校验,这样Bootloader就可以知道新和程序是否正常,只有当程序正确后才去执行用户程序。


这样只要可以防止用户写入一个伪装的程序读出Bootloader和密码。


关于用户程序的修改方式大家看附件中的说明文件吧。


 这里只提供可执行程序给大家测试,需要原代码的请联系我或到pudn下载。


上位机代码:http://www.pudn.com/downloads209/sourcecode/windows/comm/detail982190.html


单片机代码:http://www.pudn.com/downloads209/sourcecode/embed/detail982187.html

PARTNER CONTENT

文章评论16条评论)

登录后参与讨论

用户377235 2016-3-4 17:32

楼主能否给份代码?不尽感激,474802696@qq.com

用户377235 2014-5-6 09:09

正在研究,能否发一份代码,谢谢了~ qlh2002@foxmail.com

用户377235 2013-1-2 18:05

公司的C8051F340 USB 调试出现问题了,不知道楼主可否给我发一份你的程序 谢谢了 zpzhanglove@126.com

用户823035 2012-2-7 22:31

lycmc1@sina.com 麻烦楼主发一份 谢谢

用户357554 2011-8-10 11:58

541229991.163@163.com麻烦楼主发一份

用户1615488 2011-4-3 14:47

学习中。。。 有两个问题想问一下LZ, 为什么SYSCLK设置低了就枚举不成功? CPU硬件复位后,枚举过程SET CONFIG之后偶尔会出现“USTS 00 07 00 80 no bandwidth”,设备枚举不成功

用户319368 2011-1-17 13:13

楼主。怎么不可以下载啊。能发给我份吗? gaiwanli123@126.com 谢谢

sept80_932944331 2010-8-19 10:09

能给我发一份吗 最近正用到这方面功能呢 万谢万谢 呵呵 sept80@163.com sept80@gmail.com

用户839321 2010-8-9 14:09

感谢楼主的分享,现在正在学习使用C8051F340这款芯片,对USB bootloader 这块知识比较感兴趣,能否发一份上位机和下位机的源代码给我,非常感谢,我的邮箱:hejian7564@gmail.com

用户808103 2010-7-6 17:27

谢谢楼主的分享,我正在学习如何用USB更新F340.看到你的程序,受益匪浅。 不知道楼主能不能发一份(上位机程序,下位机程序)给我。谢谢!E-mail:okayem@163.com
相关推荐阅读
用户1063797 2011-04-26 17:11
补一下无线BDM照片
无线与板子直的是主机用的。无线与板子垂直的是从机用的。从机打算做成可以无线使用,也可以直接使用。今天测试了一下HS12的单片机,还有一点问题。晚上看来还要找一下问题。觉得可能是通讯等待的时间不够长的原...
用户1063797 2011-02-07 17:57
文件备份批处理程序
写程序需要经常备份,这点我想大家都很清楚,但怎么备份才能即方便又好用呢?为此我写了两个小的批处理程序。和我公司的同事用了一段时间,觉得很不错。在这里拿出来和大家分享。希望用着不错的朋友能多多回复,多多...
用户1063797 2011-02-07 11:58
GPS漂移分析
attachment download前段时间做GPS和CAN的记录仪,做了一个测试,就是GPS在同一位置中的位置数据在一天中的变化情况。发现数据漂移还是挺大的。虽然数据没有做更细的分析,在此分享出来...
用户1063797 2011-01-23 13:58
修改了一下以前的USBCAN,并总结一下开发的过程
由于项目的需要,现在对CAN的使用越来越多了。但对CAN的调试没有一个好的工具是不行的。原来做过一个CAN与232的小板子,总觉得用起来不太方便。后来看到ZLG的USBCAN后,觉得很不错,就打算做一...
用户1063797 2008-05-26 23:23
C8051F320 USB 速度测试
C8051F320最新速度241KBps 更新一下测试程序...
EE直播间
更多
我要评论
16
7
关闭 站长推荐上一条 /3 下一条