1、MPC5644支持从RAM和internal_FLASH中执行代码。
2、当选择在RAM中执行代码时,源代码进行编译和链接后,得到MAP文件和mot文件,比如Input1变量,该变量的值为0x01。
MAP文件
mot文件
从MAP文件和mot文件中可知,.data 段和.text段的起始地址都是位于internal_ram区,根据Input1对应的Virtual address即可确定其在mot文件中的位置。MAP文件中Memory map中各个段对应的Starting address即为各个段所对应的地址。
3、当选择在internal_FLASH中执行代码是,源代码经过编译和链接后,得到MAP文件和mot文件
MAP文件
mot文件
从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区。