这段时间针对飞思卡尔的MC9S12XEP100MEG这款芯片开发了CAN Bootloader的上位机和下位机软件,上位机用的是VC平台,C++语言, 下位机用的CW5.1,下载工具用的是USBCAN2II。开发过程中克服了一些困难,也积累了一些知识,所以总结备忘一下,以便于以后查阅。其中下位机最难的部分还是对这款芯片内存的理解。由于我的设计思路是:每次上电启动是根据EEPROM的控制字判断是否进入Bootloader部分还是Application部分,而不像网上大多数例子说的那样是根据PIN脚一个开关量信号,或者每次上电都进入Bootloader程序,然后是在Bootloader程序中根据CAN通讯延时判断跳转进入Application,所以必须对内存十分清晰了解,大致包括:EEPROM(这款芯片没有EEPROM,是通过buffer RAM 模拟EEE实现的),D-Flash,P-Flash,RAM, buffer RAM, EEE.内存映射Local Memory Map和 Global Memory Map之间的换算;内存分页,非分页分配;三大分页寄存器EPAGE,RPAGE,PPAGE;还有对PRM文件的熟悉,会内存划分,三个复位向量,中断向量的定义;S19格式文件的理解;上位机部分主要是现成的dll文件,多线程的调用,基于对话框编程的界面设计。
下位机Bootloader部分是根据官网提供的AN4258SW,AN4258.pdf这两个文件修改的(原文件是串口形式的Bootloader),上位机是根据USBCAN2II提供的样例修改的。基础的东西就不记录了(可以在AN4258SW文件里面找到),只记录一些关键的东西。
详细文件在百度网盘里面,可以下载 看看。
链接:https://pan.baidu.com/s/1jH7tjG6 密码:tpyl
|