|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
[求助]關(guān)于44binit的問題 |
| 作者:struggle 欄目:ARM技術(shù) |
1、44binit.s里面做完初始化工作,然后將RW拷貝到內(nèi)存中,跳轉(zhuǎn)到C代碼中的Main繼續(xù)執(zhí)行,但是C代碼中的RW段是否需要象在匯編里面拷貝到內(nèi)存中,如果是,是編譯器自動(dòng)完成的? 2、在bootloader里面用tftp下載一個(gè)程序到內(nèi)存并運(yùn)行,這個(gè)程序的RO BASE為0x0c008000,init用的是44binit.o,bootloader已經(jīng)對系統(tǒng)做完初始化了,這個(gè)程序再用44binit.s對系統(tǒng)進(jìn)行初始化是否重復(fù)了,會(huì)不會(huì)把bootloader初始化的向量中斷表修改或者覆蓋掉?bootloader已經(jīng)做完系統(tǒng)初始化了,那我的44binit里面只需要完成將rw拷貝到ram中的功能,其他象初始化堆棧,建立終端向量表都可以去掉? 謝謝 |
| 2樓: | >>參與討論 |
| 作者: yyccaa 于 2006/5/30 20:01:00 發(fā)布:
re 1.你的RW應(yīng)該是指包括了asm和c中(主要是c,asm的boot因該是不用rw的)的所有rw數(shù)據(jù)。 2.就是重復(fù)工作,44b0沒有remap,所以中斷是由FLASH里bootloader的代碼幫助轉(zhuǎn)到ram里0x0c008000開始的向量中斷表,所以不會(huì)覆蓋,如果你的ram里向量中斷表起始地址設(shè)在0x0c008000以下,那么中斷就錯(cuò)誤了。 如果會(huì)寫boot代碼,而且有不依賴原有的boot就可以燒寫FLASH的工具,可以直接設(shè)ro base為0,覆蓋掉原有的boot,用自己的代碼啟動(dòng)arm。 * - 本貼最后修改時(shí)間:2006-5-30 20:02:11 修改者:yyccaa |
|
| 3樓: | >>參與討論 |
| 作者: struggle 于 2006/6/2 12:04:00 發(fā)布:
re 謝謝樓上的回答 |
|
|
|
| 免費(fèi)注冊為維庫電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |