"); //-->
一直用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
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
光强控制闪烁开关电路
2秒启动系统 · 资源受限下HMI最优解,米尔RK3506开发板× LVGL Demo演示
穿孔卡片用光控开关电路
设计功率器件中的散热考虑
OpenAI与微软修订AI合作条款
中美半导体磋商前景不明 欧盟日本煽风点火
采用双向晶闸管的光控开关电路
撤销交易!禁止外资收购Manus
检查双向晶闸管的好坏(方法之二)
光强为10一10LX的晨昏光控开关电路
检查晶闸管的触发能力(方法之三)
LG扶持中国本地研发能力 研发中心在津揭牌
当半导体材料 “闹脾气”:实验室完美≠工厂靠谱
Intersil ZL9101 数字电源模块 - 热设计
存储涨价冲击手机行业:Q1全球SoC出货量下降8%
检查晶闸管的触发能力(方法之四)
电装将撤回收购罗姆报价 日功率器件三强合并正式启动
家电巨头转型IT屡战屡败
ZL9101M数字功率模块节省电路板空间、降低物料成本
AI存储\"印钞机\":三星、SK海力士利润率超70%
英特尔产能先供服务器Xeon处理器 联发科、AMD掘金CPU缺货商机
Intersil Zilker Labs电源导航软件
博弈CPO赛道,博通、Marvell正面交锋
ZL9101M数字电源模块简介
检查双向晶闸管的好坏(方法之一)
检查晶闸管的触发能力(方法之一)
交流电网上的光电开关电路
电子网站纵横录
彩电激情燃烧机顶盒市场混沌 数字电视摸索前行
摩尔线程 x 中国移动|国产GPU率先完成九天35B大模型适配