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

小编 2026-06-04 阅读:869 评论:0
与大部分的MCU相同,MPC5744P的Flash、RAM以及外设都映射到内存地址中了。以下为映射地址范围:   MPC5744P Flash结构如下:          ...

与大部分的MCU相同,MPC5744P的Flash、RAM以及外设都映射到内存地址中了。以下为映射地址范围:

 

MPC5744P Flash结构如下:              
0x00000000-0x003FFFFF --   reserved          
0x00400000-0x00403FFF --   16KB,UTest NVM block      
0x00404000-0x007FFFFF --   Reserved          
0x00800000-0x00817FFF --   96KB,Data flash memory block    
  0x00800000-0x00803FFF  16KB,EEPROM-low block0,RWW_P:0,BlockSize:16 KB    
  0x00804000-0x00807FFF  16KB,EEPROM-low block1,RWW_P:0,BlockSize:16 KB    
  0x00808000-0x0080FFFF  32KB,EEPROM-mid block0,RWW_P:2,BlockSize:32 KB    
  0x00810000-0x00817FFF  32KB,EEPROM-mid block1,RWW_P:3,BlockSize:32 KB    
                   
0x00818000-0x00FFFFFF --   6MB,Used 416KB,Small and medium flash memory blocks
    Small:                  
  0x00F98000-0x00F9BFFF 16KB,low flash memory block 2(boot location 0),RWW_P:1,BlockSize:16KB
  0x00F9C000-0x00F9FFFF 16KB,low flash memory block 3(boot location 1),RWW_P:1,BlockSize:16KB
                   
    Medium:                
  0x00FA0000-0x00FAFFFF 64KB,high flash memory block 0(boot location 2),RWW_P:4 BlockSize:64KB
  0x00FB0000-0x00FBFFFF 64KB,high flash memory block 1(boot location 3),RWW_P:4 BlockSize:64KB
  0x00FC0000-0x00FCFFFF 64KB,high flash memory block 2 ,RWW_P:4,BlockSize:64KB  
  0x00FD0000-0x00FDFFFF 64KB,high flash memory block 3 ,RWW_P:5,BlockSize:64KB  
  0x00FE0000-0x00FEFFFF 64KB,high flash memory block 4 ,RWW_P:5,BlockSize:64KB  
  0x00FF0000-0x00FFFFFF 64KB,high flash memory block 5 ,RWW_P:5,BlockSize:64KB  
                   
0x01000000-0x01FFFFFF --   16MB,Used 2048KB,Large flash memory blocks  
    Large:                  
  0x01000000-0x0103FFFF 256KB,flash memory block 0(boot location 4),RWW_P:6,BlockSize:256 KB
  0x01040000-0x0107FFFF 256KB,flash memory block 1(boot location 5),RWW_P:6 BlockSize:256 KB
  0x01080000-0x010BFFFF 256KB,flash memory block 2(boot location 6),RWW_P:6 BlockSize:256 KB
  0x010C0000-0x010FFFFF 256KB,flash memory block 3(boot location 7),RWW_P:6 BlockSize:256 KB
  0x01100000-0x0113FFFF 256KB,flash memory block 4,RWW_P:7 BlockSize:256 KB    
  0x01140000-0x0117FFFF 256KB,flash memory block 5,RWW_P:7 BlockSize:256 KB    
  0x01180000-0x011BFFFF 256KB,flash memory block 6,RWW_P:7 BlockSize:256 KB    
  0x011C0000-0x011FFFFF 256KB,flash memory block 7,RWW_P:7 BlockSize:256 KB    
                   
0x02000000-0x089FFFFF --   106MB,Reserved        
0x08A00000-0x08FFFFFF --   6MB,Used 416KB,Mirror Small and medium flash memory blocks
0x09000000-0x09FFFFFF --   16MB,Used 2048KB,Mirror Large flash memory blocks
0x0A000000-0x3FFFFFFF --   Reserved          
                   
MPC5744P RAM结构如下:                
0x40000000-0x4005FFFF --   384KB,System RAM        
0x40060000-0x4007FFFF --   Reserved System RAM      
0x40080000-0x4FFFFFFF --   Reserved          
                   
MPC5744P Local Memory结构如下            
0x50000000-0x5000FFFF --   Reserved          
0x50010000-0x507FFFFF --   Reserved          
0x50800000-0x5080FFFF --   64KB,Used 64KB,D-MEM CPU0      
0x50810000-0xF7FFFFFF --   Reserved          
                   
其它外设:                
0xF8000000-0xFFFFBFFF --   other          
0xFFFFC000-0xFFFFFFFF --   16KB,Boot Assist Module(BAM)    

 

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对应列表如下:

LOW--not program, partition 0 and 1        
0x00800000-0x00803FFF --   16KB,EEPROM-low block0, RWW_P:0  
0x00804000-0x00807FFF --   16KB,EEPROM-low block1, RWW_P:0  
0x00F98000-0x00F9BFFF --   16KB,low flash memory block2, RWW_P:1
0x00F9C000-0x00F9FFFF --   16KB,low flash memory block3, RWW_P:1
                 
MID , partition 2 and 3            
0x00808000-0x0080FFFF --   32KB,EEPROM-mid block0, RWW_P:2  
0x00810000-0x00817FFF --   32KB,EEPROM-mid block1, RWW_P:3  
                 
HIGH, , partition 4 and 5            
0x00FA0000-0x00FAFFFF --   64KB,high flash memory block0, RWW_P:4
0x00FB0000-0x00FBFFFF --   64KB,high flash memory block1, RWW_P:4
0x00FC0000-0x00FCFFFF --   64KB,high flash memory block2, RWW_P:4
0x00FD0000-0x00FDFFFF --   64KB,high flash memory block3, RWW_P:5
0x00FE0000-0x00FEFFFF --   64KB,high flash memory block4, RWW_P:5
0x00FF0000-0x00FFFFFF --   64KB,high flash memory block5, RWW_P:5
                 
256K--all used              
0x01000000-0x0103FFFF --   256KB,256k flash memory block0, RWW_P:6
0x01040000-0x0107FFFF --   256KB,256k flash memory block1, RWW_P:6
0x01080000-0x010BFFFF --   256KB,256k flash memory block2, RWW_P:6
0x010C0000-0x010FFFFF --   256KB,256k flash memory block3, RWW_P:6
0x01100000-0x0113FFFF --   256KB,256k flash memory block4, RWW_P:7
0x01140000-0x0117FFFF --   256KB,256k flash memory block5, RWW_P:7
0x01180000-0x011BFFFF --   256KB,256k flash memory block6, RWW_P:7
0x011C0000-0x011FFFFF --   256KB,256k flash memory block7, RWW_P:7

具体编程实例下一篇再讲述。

 

 

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)引脚使用
           

FAB

ABS 2,0

Boot ID  Boot Mode
1 0 0 -- Serial Boot SCI
1 0 1 -- Serial Boot CAN
0 -- Valid SC
0 -- Not Found Static Mode

 

 

 

 

 

 

SC启动:

单芯片启动时,会先从低到高搜索每一个Boot location,每一个Boot Location第一个地址为RCHW(Reset Configuration Half-Word),若RCHW的BOOT_ID区域包含0x5A,则此块可作为启动分区,第一个Boot Location起始处为启动地址偏移4个地址(每4个地址为一个32bits数据)。

例如代码从0x00F98000处,Boot location0处启动,则对应RCHW为,0x00FA0000:0x005A0000,实际会从0x00FA0004处执行第一个代码,例如下面执行了跳转指令,跳转到了0x01000000。

\"\"

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

热门文章
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
标签列表