我是菜雞 請教大家一個問題 代碼下載到flash之后,bootloader進行搬移,但ram的大小小于代碼的大小呢?程式想一直運行到RAM里, 我沒寫過bootloader,想知道這點怎么處理呀 小于RAM的代碼直接全搬過去就好,跳轉到開始處。
uj5u.com熱心網友回復:
bootloader里面有類似于mmu的機制吧uj5u.com熱心網友回復:
不懂額,mmu是記憶體映射..是直接去取了吧,沒有經過ram吧
uj5u.com熱心網友回復:
你看下bootloader這部分是咋實作的,或者uboot, 在kernel起來之前,沒有mmu,是呀用記憶體的uj5u.com熱心網友回復:
一般DSP的BootLoader是其固化好的一段程式,不用你自己寫,但是有的DSP需要進行某些硬體設定,比如TI 6000系列的boot模式,這個必須看相應的手冊。BootLoader會根據硬體配置,在硬體復位釋放后自動搬移程式到指定地址,比如6701會搬移64K位元組進入內部RAM,但是如果你的程式很大,可能要用到外部RAM運行的,那就得自己寫一個二次搬移的程式。正如上面所說的,由于是固化的程式,所以不會變通,不管你的程式是幾百位元組還是多少K,它都會搬移固定大小,比如64K,完了就去默認的地址,比如0地址開始運行,你必須想辦法配合它的這種機制。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/91412.html
標籤:驅動開發/核心開發
上一篇:HTML(三)
下一篇:求AD9850信號源的程式
