ARM啟動代碼的設計分析
系統(tǒng)重新映射當你為了提高運行速度而把ROM的Image拷貝到RAM后,中斷向量表就不是在零地址處,因此要重新映射存儲單元,把RAM的地址重新設定為零地址。映射就是把啟動代碼從ROM(EEPROM或者Flash)拷貝到SDRAM運行,同時再拷貝完畢以后進行內(nèi)存的重新映射,把SDRAM映射到原來的ROM地址(0x0000)中,這樣就可以用SDRAM中的代碼寫Flash,使得程序代碼得以更新。但是需要注意的是,如果程序進行了映射,這樣就對在線調(diào)試帶來了困難,使得在線調(diào)試不可以在RAM中進行(如果寫入EEPROM的代碼是映射了的,則在調(diào)試器啟動的時候必然也會對程序進行映射,使得程序在調(diào)試器中不可以定位到原來的地方,使得調(diào)試失敗)。一個折中的方法是,不進行映射,就是說在調(diào)試的代碼中不可以使用下載,這樣就可以像普通的代碼一樣進行調(diào)試了。
結(jié) 語
本文引用地址:http://m.butianyuan.cn/article/148781.htm做完這些初始化后,讓CPU切換到用戶模式下,并把堆棧指針SP指定到用戶堆棧區(qū),就可以進入到C代碼區(qū)運行。在C代碼中繼續(xù)對時鐘、RS232端口進行初始化,然后打開系統(tǒng)中斷允許位,進入到應用代碼中執(zhí)行。此程序加載到處理器S3C4510B中經(jīng)過調(diào)試,CPU可以正常啟動,能夠?qū)χ袛嗾埱笞龀黾皶r的響應,上層應用的主代碼可以加載到Flash中,移植實時操作系統(tǒng)RTXC后對多任務的調(diào)度控制正常。
評論