在此程序笔记会介绍,如何使用用户文件传输协议代替例程中的x-modem协议。以及该Bootloader的软件架构、升级过程和例程的具体使用。 1.1 在线升级过程 例程通过x-modem协议将应用程序的bin文件通过串口传输至MCU。 我们将MCU的32KB的Flash具体划分为: 7KB存储Bootloader代码(0x0000~0x1C00); 12KB存储应用程序1区代码(0x1C00~0x4C00); 12KB存储应用程序2区代码(0x4C00~0x7C00); 1KB存储各种运行参数(0x7C00~0x8000); 用户可以通过修改main函数中的,与地址有关的宏定义来重新划分Flash。 MCU第一运行Bootloader时,会直接跳转至应用程序1区,在生产时直接将Bootloader和应用程序1区代码一起烧至Flash中。 在例程中,应用程序1区代码以数组的形式存储在地址0x1c00处。具体代码详见Bootloader例程中的usercodeapp1.c文件。
整体软件的升级示意图如图 1.1所示:
更新相关参数,并把参数数据重新烧写至Flash末尾的1KB Flash区域。参数数据区示意图如图 1.2所示。
MCU在线升级的流程如下图 所示。
完整的word格式文档51黑下载地址(共8页):
一个刷不死的Bootloader程序设计.docx
(352.66 KB, 下载次数: 83)
|