MPC5644 Code & Data

1、MPC5644支持从RAM和internal_FLASH中执行代码。
2、当选择在RAM中执行代码时,源代码进行编译和链接后,得到MAP文件和mot文件,比如Input1变量,该变量的值为0x01。

MAP文件

MPC5644 Code & Data_第1张图片
image.png
MPC5644 Code & Data_第2张图片
image.png

mot文件

MPC5644 Code & Data_第3张图片
image.png

从MAP文件和mot文件中可知,.data 段和.text段的起始地址都是位于internal_ram区,根据Input1对应的Virtual address即可确定其在mot文件中的位置。MAP文件中Memory map中各个段对应的Starting address即为各个段所对应的地址。
3、当选择在internal_FLASH中执行代码是,源代码经过编译和链接后,得到MAP文件和mot文件

MAP文件

MPC5644 Code & Data_第4张图片
image.png

MPC5644 Code & Data_第5张图片
image.png

mot文件

MPC5644 Code & Data_第6张图片
image.png

从MAP文件可知,其Memory map相比RAM多了ROM Address部分,其只是的地址都是对应internal_flash区域,即为数据存放处的区域,然后与其对应的Starting address处于internal_ram段,即为数据运行时的区域,.text_vle对应的Starting address和ROM Address均为flash区域。

由此可得一下结论:

运行于RAM模式时

Code和Data均存放在RAM区域,运行时,直接从RAM中取Code和Data进行运行。

运行于internal_FLASH模式时

Code和Data均存放在Flash区域,运行时,CPU将Data从Flash区域复制至RAM区域,然后从RAM中读取Data,从Flash区域中读取Code。
MAP文件中Memory map下的Starting address为运行时的地址,对应于段中的Virtual address,ROM address为hex存放处的地址。CPU运行时据此将Data从Flash复制至RAM区。

你可能感兴趣的:(MPC5644 Code & Data)