|
|||||||||||
| 技術(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 |
達(dá)人進(jìn),RealView 2.2很奇怪的編譯問(wèn)題,也許是bug |
| 作者:airy 欄目:ARM技術(shù) |
我的板子SDRAM地址0x0c000000,仿真的時(shí)候,把RO Base 地址設(shè)置太。ū热0x0c000000或0x0c00100)就會(huì)出現(xiàn)編譯錯(cuò)誤,程序不能運(yùn)行,看下面的一段程序: void ChangePllValue(int mdiv,int pdiv,int sdiv) { rPLLCON = (mdiv << 12) | (pdiv << 4) | sdiv; } RO base設(shè)置成0x0c000000,編譯后的匯編代碼是 >>> PLATFORM\#10 { >>> PLATFORM\#11 rPLLCON = (mdiv << 12) | (pdiv << 4) | sdiv; ChangePllValue: 0C000000 EAFFFFFE B ChangePllValue <0xc000000> 0C000004 E59FF014 LDR pc,0xc000020 <PLATFORM\#19> 0C000008 E59FF014 LDR pc,0xc000024 <PLATFORM\#19> 0C00000C E59FF014 LDR pc,0xc000028 <PLATFORM\#20> 0C000010 E59FF014 LDR pc,Delay <0xc00002c> 編譯幾次的結(jié)果好像還不太一樣,不過(guò)都不能正常運(yùn)行 RO base設(shè)置成0x0c000100,編譯后的匯編代碼是 >>> PLATFORM\#10 { >>> PLATFORM\#11 rPLLCON = (mdiv << 12) | (pdiv << 4) | sdiv; ChangePllValue: 0C000100 E1A03600 MOV r3,r0,LSL #12 0C000104 E1833201 ORR r3,r3,r1,LSL #4 0C000108 E1833002 ORR r3,r3,r2 0C00010C E3A0C776 MOV r12,#0x1d80000 0C000110 E58C3000 STR r3,[r12,#0] 但是在其他地方也不能正常運(yùn)行,有函數(shù)會(huì)返回錯(cuò)誤導(dǎo)致程序跑飛 但是如果把RO base設(shè)置成0x0c001000,就不會(huì)出現(xiàn)這種情況,程序可以正常運(yùn)行 |
| 2樓: | >>參與討論 |
| 作者: airy 于 2006/5/24 9:27:00 發(fā)布:
疑惑 沒(méi)人遇到這樣的問(wèn)題嗎? 會(huì)不會(huì)是啟動(dòng)代碼的問(wèn)題,我試過(guò)好幾個(gè)別人調(diào)試好的程序都是這樣,跟段譽(yù)的六脈神劍似的,時(shí)靈時(shí)不靈,看匯編代碼發(fā)現(xiàn),程序跑飛是編譯器出錯(cuò),應(yīng)該和電路板沒(méi)關(guān)系 |
|
| 3樓: | >>參與討論 |
| 作者: airy 于 2006/6/1 13:50:00 發(fā)布:
結(jié)貼 答案找到了,是設(shè)置問(wèn)題 |
|
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |