项目需求:
- 统一BootLoader下载协议为客户协议。
- 统一BootLoader下载文件类型为bin文件。
- Boot时需要备份,如果中途下载失败需要恢复成之前版本。
硬件环境:
- MCU: mc9s08dz60.
- ZLG USB-CAN II.
- 项目控制器。
软件环境:
- WIN7.
- CodeWarrior10.7.
通常来说,大家写NXP的BootLoader用s19文件进行下载的较多。使用CW10.7编译,默认生成abs文件及s19文件。实际上可以通过修改设置直接生成bin文件,但是十分不建议这样做。实测CW10.7直接生成bin文件有bug(全局变量初始化代码丢失)。如下是s19文件转化为bin文件的步骤:
- 打开buner如下图,路径为CW10.7安装路径/MCU/prog。
- 点击burner dialog,选择input file(生成的abs文件),选择file(转换后文件储存路径及名称)如下图
- Content的选择如下图
- 点击该按钮
这里需要着重说明一下,bin文件不包含程序的地址和长度。步骤3填写的0x8500是程序的起始flash地址,0x6900是程序的长度。生成的bin文件用FlexHEX打开如下图:
可以看到,bin文件从地址为0x0000开始到0x68FF结束,长度一共0x6900,与事先设定相符。最后实现的结果为,刷写后MCU Flash中地址0x8500 - 0xEDFF与上图打开0x0000- 0x68FF数据完全相同。刷写后可以通过PE对比查看Flash中的数据。
BootLoader的工作过程如下:
源码链接:http://pan.baidu.com/s/1hsgWbcC
删除了源码链接
写博客的目的为了促进大家学习交流。如果有同学想直接获得bootloader+app+上位机源码,看需求定价格(3000以上)。
联系方式,邮箱:448088798@qq.com