"); //-->
一直用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
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
七家被中国移动处罚“短信”商表示认错
ISO103的失调电压调整电路
小波变换在Internet网多媒体业务中的应用
2026年DDR4 PC配置选项——鉴于DDR5价格偏高,搭载DDR4的PC值得考虑,尤其是当你有可以从之前组装带过来的内存时
应用于健康手机的高性能生物电信号采集模块
智能迎宾机器人的设计与实现
高强度放电(HID)灯电子镇流器设计
现场总线通信安全的设计与实现
“每天涨价约50元”?!内存条价格“狂飙”
台积电年营收突破1000亿美元
AMD即将推出的Ryzen AI Max+392紧随9800X3D的早期测试测试——新款 Strix Halo APU 在多核性能上几乎能与 Ryzen 7 匹敌
新型的轻小型化雷达接收机的研制
马斯克这招太绝了:砍掉FSD买断制,表面是降门槛,背后其实藏着三个心眼
消息中间件在数据交换中的应用研究及其面临的挑战
存储芯片成本暴涨230%!iPhone 18高配机型或迎来大幅涨价
3G的风险和机遇
面对盗版 反“盗”亦应有“道”
校园网络系统的设计与实施
基于P89LPC932A1的酒后驾车检测控制系统
Yole:2026值得关注的关键半导体趋势
三菱电机拟出售汽车零部件业务
中国UPS市场温和回升
ISO103增益调节电路
步行机器人的设计与实现
ISO103的减小纹波电路
ISO103的增益设置电路
紫光国微收购瑞能半导体,发力功率半导体领域
智能光网络新动向
OpenAI发力机器人与AI设备,被爆寻找美国供应商
减小功耗的ISO103电路