国产肉体XXXX裸体137大胆,国产成人久久精品流白浆,国产乱子伦视频在线观看,无码中文字幕免费一区二区三区 国产成人手机在线-午夜国产精品无套-swag国产精品-国产毛片久久国产

新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > s3c2440之ADS移植keil

s3c2440之ADS移植keil

作者: 時間:2016-11-21 來源:網(wǎng)絡 收藏
最近把ADS1.2工程轉(zhuǎn)到MDK4.03出現(xiàn)一些error,羅列了可能出現(xiàn)的error,并給予相關的辦法,讓大家在以后的轉(zhuǎn)換中盡快搞定

1:error:Nosectionmatchesselector–nosectiontobeFIRST/LAST.
把原來的Init代碼段名修改成RESET:
;AREAInit,CODE,READONLY
AREARESET,CODE,READONLY

2:errorUndefinedsymbolMain(referredfrom2440init.o).
error:scatter-loadfiledeclaresnoheaporstackregionsand__user_initial_stackheapisnotdefined
一般完成上一步修改就不會出現(xiàn)這個error;

如果代碼中使用了main則加入部分代碼
EXPORT__user_initial_stackheap
__user_initial_stackheap

LDRR0,=Heap_Mem
LDRR1,=(Stack_Mem+USR_Stack_Size)
LDRR2,=(Heap_Mem+Heap_Size)
LDRR3,=Stack_Mem
BXLR


3:UndefinedsymbolImage$$RW$$Limit(referredfrom*.o)
UndefinedsymbolIm.............

把Image$$RO$$Base,Image$$RO$$Limit,Image$$RW$$Base,Image$$ZI$$Base,Image$$ZI$$Limit
改成:
Image$$ER_ROM1$$RO$$Base,Image$$ER_ROM1$$RO$$Limit,Image$$RW_RAM1$$RW$$Base,Image$$RW_RAM1$$ZI$$Base,Image$$RW_RAM1$$ZI$$Limit

4:errorcontainsinvalidcallfrom~PRES8functiontoREQ8function*
匯編文件的開頭,添加“PRESERVE8”指令。


5:error:L6235E:Morethanonesectionmatchesselector-cannotallbeFIRST/LAST.
建立realview工程時,不要導入realview的S3C2440.s,否則當把Init代碼段名改成RESET時,會存在兩個RESET段。

本文引用地址:http://m.ptau.cn/article/201611/319301.htm

6.error: A1355U: A Label was found which was in no AREA

在KEIL工程中,我使用另一個工程中正確的分散加載文件到一個新工程中,竟然就出現(xiàn)這樣的提示。

到網(wǎng)上搜索,有很多內(nèi)容是關于這個問題的,但是卻沒有幾個很好解決問題的。

其實出現(xiàn)這個問題有兩種情況,一種是出現(xiàn)在.s的匯編文件中,另一種是出現(xiàn)在.scf (或者.scat)等的分散加載文件中。

原來很多人在匯編文件(多數(shù)為.s的啟動代碼)中出現(xiàn)這個問題的,基本上是因為使用匯編的格式不對,

關于這個錯誤,ARM官網(wǎng)有相關的說明:

A1355U: A Label was found which was in no AREA
Example:
This can occur where no white-space precedes an assembler directive.
Assembler directives must be indented with white-space, for example:
use:
IF :DEF: FOO
; code
ENDIF
not:
IF :DEF: FOO
; code
ENDIF
Symbols in the left hand column 1 are assumed to be labels, hence the error message.

意思是在編寫匯編文件時,標號要頂格寫,而其他的代碼都要用空格或者TAB鍵來使代碼進行縮進,這樣,就不會出現(xiàn)編譯的問題了。

如果問題是出現(xiàn)在分散加載文件中,那么很可能你是把分散加載文件一起加入到了KEIL的工程中,類似這樣:

這時候,就可能會出現(xiàn)

error: A1355U: A Label was found which was in no AREA這樣的報錯,不管你用多么正確的SCATTER文件格式,它始終都會報錯。為什么呢?

原來我們通常加到KEIL工程中的.c ,.s, .h等文件是供ARMCC,ARMASM等編譯器處理的,而分散加載文件 .scf ,.scat等文件是供ARMLINKER等連接器處理的,當我們把分散加載文件加入到工程中后,KEIL會調(diào)用ARMASM編譯器將分散加載文件做為匯編文件去處理,因為分散加載文件本來就不是合法的匯編文件,所以在編譯的時候就出現(xiàn)了編譯錯誤的提示。

解決方法:在工程中刪除分散加載文件,在option->linker->scatter file路徑中指定即可



關鍵詞: s3c2440ADS移植kei

評論


技術專區(qū)

關閉