首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

汽车电子ECU bootloader工作原理及开发要点有哪些?本文告诉你(3)

汽车电子ECU bootloader工作原理及开发要点有哪些?本文告诉你(3)

c、开发bootloader需要掌握的知识和调试方法技巧
首先,开发bootloader需要对ECU所用的MCU的RAM和NVM资源十分清楚,然后对其进行分区,保证应用程序和bootloader的NVM分配没有重叠。所以必须了解所用软件开发工具IDE的链接文件的使用方法和编写规则;
然后,需要判断中断向量表偏移是否成功,NVM驱动拷贝的地址和大小等信息,所以必须掌握所用软件开发工具IDE的编译链接结果中map文件的具体信息;
此外,掌握如何将NVM函数重定向(将函数程序代码的存储地址和运行时地址分开)到RAM中执行的方法也十分有用;
Tips:
在开发应用程序时,需要先对其进行单独调试以保证其功能正常,这时虽然其外设中断向量表已经进行了偏移,但其复位向量必须的放置在默认中断向量表中复位向量所在的地址,否则下载后无法运行,进行正常调试,因为如果把应用程序的复位向量放在偏移后的应用程序中断向量表中,则默认的复位向量内容为0xFFFF(Flash擦除后的状态),CPU内核就会到0xFFFF的地址取指运行,显然不是真实的工程启动函数,所以无法运行,其结果跟一个新MCU未写入任何程序时上电运行的情况一样,会不断的出现非法地址复位;而在应用程序开发完成后,再将其偏移到应用程序中断向量中,以避免与bootloader工程的Flash地址冲突;
最后,掌握利用调试器的Hotsync或者attach方法加载elf文件中的调试信息对bootloader和应用程序进行无缝调试也是非常实用的,可以大大提高bootloader的调试效率;
d、量产时bootloader和应用程序的下载方法
推荐将bootloader和应用程序编译链接生成的编程文件进行合并,一次性使用量产工具(如Cyclone编程器)下载以提高生产效率。
返回列表