在使用IAR的時候編寫CC2430程序會遇到如下錯誤: 1 Error[e16]: Segment XDATA_Z (size: 0x19a1 align: 0) is too long forsegment definition. At least 0xe4c more bytes
needed. The problem occurred while processing the segment placementcommand
"-Z(XDATA)XDATA_N,XDATA_Z,XDATA_I=_XDATA_START-_XDATA_END", whereat the moment of
placement the available memory ranges were"XDATA:f1ff-fd53"
Reservedranges relevant to this placement:
XDATA:f000-f1fe XSTACK
XDATA:f1ff-fd53 XDATA_N
BIT:0-7 BREG
BIT:80-97 SFR_AN
BIT:a8-af SFR_AN
BIT:b8-c7 SFR_AN
BIT:d8-df SFR_AN
BIT:e8-ef SFR_AN 其實這個問題并不是你的程序本身有問題,主要是因為你編寫的程序太大了,超出了芯片本身的定義。今天在群里學習了一招,就是將數組定義到code里,我們看一下例子。我們定義一個5100個元素的數組,有以下兩種方法: mermaid提出的方法是: typedef unsigned char const__code INT8U; extern INT8U shuzi[5100]; 文晶提出的方法是 INT8U code shuzi[5100]; 這兩種方法其實效果是一致的,定義完數組之后,調用的部分就是需要用指針來調用數組里面的數值了。 2 燒寫程序時無法跳入斷點 | 為什么我每次燒程序都出現:The stack plug-in failed to set a breakpoint on"main". The Stack window will not be able to display stackcontents. (You can change this setting in the Tool>Optionsdialog box.)的警告。但是程序能燒進去,只是不能調試。 確認設置沒有問題(和好用的工程相比)
|
| 這是設置不對,請找下面順序修改: iar->options->linker->output->format;
選擇 Debug information for c-SPY選項 |
|
3 錯誤提示: Fatal Error[Cp001]: Copy protecTIon check, No valid license foundfor this product [20] 可以將IAR全部安裝上,但是在編譯文件時卻會報這個錯,原因是安裝的時候沒有把注冊機的0x.....字串的小寫字母改為大寫字母。 4 “Error[e16]: Segment CSTACK (size: 0x50 align: 0x1) is too long forsegment definition. At least 0x50 more bytes needed. The problemoccurred while processing the segment placement command"-Z(DATA)CSTACK+_STACK_SIZE#", ” 此錯誤是所定義的全局變量和數組緩沖區等所占的RAM超出硬件支持所致:size: 0x50為超出的大小。只要減少不不要的全局變量和盡量縮小數組緩沖區就可以了! 5 Warning[Pe001]: last line of file ends without a newlineF:\emoTion\IAR\PK 升級\CC1110-8\main.c 179
在使用IAR時常常會彈出類似這樣一個警告,其實只要在最后一行多加一個回車就不會再有這個警告了. 6 在編寫一個串口程序時:編譯沒有錯,但MAKE時就出現下面的錯誤 undefined external“UART1_ISR”referred in startup 串口1中斷向量沒有定義,實際上是串口1中斷向量定義其他名稱,而不是UART1_ISR. 出現這樣的調試IAR錯誤時:Fatal error: Unknown exception in driver(#E1),是因為IAR軟件沒有跟Texas Instruments文件放在同一個系統盤下 7
Fatal Error[e72]: Segment BANK_RELAYS must be defined in a segmentdefinition option (-Z, -b or -P) 使用無線龍的串口互發,發現上述錯誤,原因是版本太高,具體原因不清,下載一下7.20H就可以了
|