1、MPC5644支持從RAM和internal_FLASH中執(zhí)行代碼滞项。
2狭归、當(dāng)選擇在RAM中執(zhí)行代碼時(shí)夭坪,源代碼進(jìn)行編譯和鏈接后,得到MAP文件和mot文件过椎,比如Input1變量室梅,該變量的值為0x01。
MAP文件
mot文件
從MAP文件和mot文件中可知疚宇,.data 段和.text段的起始地址都是位于internal_ram區(qū)亡鼠,根據(jù)Input1對(duì)應(yīng)的Virtual address即可確定其在mot文件中的位置。MAP文件中Memory map中各個(gè)段對(duì)應(yīng)的Starting address即為各個(gè)段所對(duì)應(yīng)的地址敷待。
3间涵、當(dāng)選擇在internal_FLASH中執(zhí)行代碼是,源代碼經(jīng)過編譯和鏈接后榜揖,得到MAP文件和mot文件
MAP文件
mot文件
從MAP文件可知勾哩,其Memory map相比RAM多了ROM Address部分,其只是的地址都是對(duì)應(yīng)internal_flash區(qū)域举哟,即為數(shù)據(jù)存放處的區(qū)域思劳,然后與其對(duì)應(yīng)的Starting address處于internal_ram段,即為數(shù)據(jù)運(yùn)行時(shí)的區(qū)域妨猩,.text_vle對(duì)應(yīng)的Starting address和ROM Address均為flash區(qū)域潜叛。
由此可得一下結(jié)論:
運(yùn)行于RAM模式時(shí)
Code和Data均存放在RAM區(qū)域,運(yùn)行時(shí)壶硅,直接從RAM中取Code和Data進(jìn)行運(yùn)行威兜。
運(yùn)行于internal_FLASH模式時(shí)
Code和Data均存放在Flash區(qū)域,運(yùn)行時(shí)庐椒,CPU將Data從Flash區(qū)域復(fù)制至RAM區(qū)域椒舵,然后從RAM中讀取Data,從Flash區(qū)域中讀取Code扼睬。
MAP文件中Memory map下的Starting address為運(yùn)行時(shí)的地址逮栅,對(duì)應(yīng)于段中的Virtual address悴势,ROM address為hex存放處的地址。CPU運(yùn)行時(shí)據(jù)此將Data從Flash復(fù)制至RAM區(qū)措伐。