×
嵌入式 > 技术百科 > 详情

【MPC5744P】Flash 结构、启动原理以及内存映射

发布时间:2024-05-18 发布时间:
|

与大部分的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文件.



『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
实时控制.安全.如何加速实现未来工厂落地?