与大部分的MCU相同,MPC5744P的Flash、RAM以及外设都映射到内存地址中了。以下为映射地址范围:
Flash有几种分类方式。
方式一:EEPROM、Small、Medium、Large Flash。
方式二:Low、Medium、High、First256K、Second256K。
其中上述方式二涉及到Lock与Select,关系到Flash的擦除和编程。
MPC5744P Flash编程:
MPC5744P数据存储为字节模式,即32位数据存储会占用4个地址。
对Flash编程时,需要多个步骤:
1、解锁对应的Block
2、选择对应的Block
3、擦除对应的Block
4、编程对应的Block
5、加锁对应的Block
Block对应列表如下:
具体编程实例下一篇再讲述。
MPC5744P启动原理:
首先介绍以下MCU启动原理,为Bootloader打基础。
MPC5744P启动方式比较奇特,支持2类方式启动:
1、Single Chip(SC)-从第一个可启动flash块启动
2、Serial Boot(SBL)-从SCI或CAN下载启动代码,然后运行,也就是BAM启动
BAM启动:
通过BAM启动(单芯片启动模式由硬件管理,BAM不参与),BAM在以下情况运行:
1、Force Alternate Boot(FAB)引脚选择为串行启动
2、硬件在所有flash中的启动块中没有找到一个合法的Boot ID
以上有一个以上条件成立,则芯片在0xFFFF_C000处抓取代码进而BAM启动。
FAB引脚 配合 ABS(Aletrnate Boot Selector)引脚使用
SC启动:
单芯片启动时,会先从低到高搜索每一个Boot location,每一个Boot Location第一个地址为RCHW(Reset Configuration Half-Word),若RCHW的BOOT_ID区域包含0x5A,则此块可作为启动分区,第一个Boot Location起始处为启动地址偏移4个地址(每4个地址为一个32bits数据)。
例如代码从0x00FA0000处,Boot location0处启动,则对应RCHW为,0x00FA0000:0x005A0000,实际会从0x00FA0004处执行第一个代码,例如下面执行了跳转指令,跳转到了0x01000000。
具体设置flash地址方法为修改xxx_flash.ld文件.
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』