|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | 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)于IAP的問(wèn)題 |
| 作者:roger_lu 欄目:ARM技術(shù) |
1,一般IAP是作什么用的呢,更新代碼還是數(shù)據(jù)呢? 2,現(xiàn)在我如果把某個(gè)程序比如function.o中的代碼和數(shù)據(jù)(RO+RW+ZI)通過(guò)scatter的方式放到片內(nèi)FLASH的指定位置(調(diào)用__main.o應(yīng)該會(huì)自動(dòng)拷貝RW+ZI到RAM中),現(xiàn)在假如我要更新這個(gè)function.c程序,新的代碼和數(shù)據(jù)的大小 都和原來(lái)的不同,那應(yīng)該怎么樣操作才能用新的代碼和數(shù)據(jù)覆蓋原來(lái)的代碼和數(shù)據(jù),而且保證更新后正常執(zhí)行新的代碼,并且在下次上電啟動(dòng)時(shí)能正確的執(zhí)行新的代碼。 用的是LPC2294, ADS1.2 |
| 2樓: | >>參與討論 |
| 作者: 王紫豪 于 2006/7/31 21:07:00 發(fā)布:
我用iap就當(dāng)EEPROM用 |
|
| 3樓: | >>參與討論 |
| 作者: zlgarm 于 2006/8/1 9:22:00 發(fā)布:
關(guān)于IAP的問(wèn)題 IAP就是提供自己燒錄片內(nèi)FLASH的功能。當(dāng)需要更改部分代碼時(shí),建議更換整個(gè)應(yīng)用代碼(boot代碼沒(méi)有必要更換,如果有的話)。RW+ZI 要指定到ram中,編譯器會(huì)自動(dòng)幫您放在FLASH中,并用——main()拷貝到指定的ram中。當(dāng)您的function.O改變時(shí),整個(gè)工程中的代碼連接地址被改變了,無(wú)法局部代換。 |
|
| 4樓: | >>參與討論 |
| 作者: 1201312 于 2006/8/1 9:27:00 發(fā)布:
單片機(jī)(群)歡迎。21442361 |
|
| 5樓: | >>參與討論 |
| 作者: roger_lu 于 2006/8/1 10:38:00 發(fā)布:
請(qǐng)問(wèn):如何“更換整個(gè)應(yīng)用代碼”呢? 謝謝你的答復(fù),但我還有一些不明白的地方,希望得到您的解答: 1,您說(shuō)的“建議更換整個(gè)應(yīng)用代碼”,是指更換整個(gè)main.c程序嗎? 若用IAP的方法來(lái)更新,而更新后的應(yīng)用代碼和原來(lái)的相比,在代碼和數(shù)據(jù)上都有所不同,如何實(shí)現(xiàn)IAP呢?有沒(méi)有現(xiàn)成的代碼可以參考? 一般程序啟動(dòng)時(shí)會(huì)調(diào)用__main.o,它會(huì)根據(jù)連接器生成的一些符號(hào)(Load$$region_name$$Base,Image$$region_name$$Base等),將FLASH中的RW+ZI復(fù)制到RAM,然后才能正常運(yùn)行。若我只是簡(jiǎn)單的把新的代碼數(shù)據(jù)覆蓋掉原來(lái)的,那么在RAM中的對(duì)應(yīng)RW+ZI還是沒(méi)有得到及時(shí)更新,新的程序還是無(wú)法正常運(yùn)行,這時(shí)應(yīng)該怎樣處理才能使得新的代碼正常運(yùn)行呢? 而且,下次啟動(dòng)程序調(diào)用__main.o時(shí),還會(huì)根據(jù)原來(lái)的一些符號(hào)(但由于scatter文件沒(méi)有更新,所以這些符號(hào)的值還是沒(méi)有改變),那些符號(hào)表示的地址還是原來(lái)RO,RW,ZI的地址,那么進(jìn)行復(fù)制的時(shí)候不是要出問(wèn)題嗎? 2, 若有多個(gè)加載域,__main.o也都會(huì)把他們各自的RW+ZI復(fù)制到RAM中的指定位置嗎? 比如有兩個(gè)加載域,其中分別有RW+ZI,那么在調(diào)用__main.o時(shí),會(huì)分別把這兩個(gè)加載域中的RW+ZI復(fù)制到RAM中指定的位置嗎? 謝謝回答。 * - 本貼最后修改時(shí)間:2006-8-1 11:01:31 修改者:roger_lu |
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |