Keil 鏈接錯誤 Error: L6406E: No space in execution regions with .ANY selector matching


在開發過程當中遇到Keil build錯誤,檢查發現時是鏈接時出錯了。

錯誤內容為:

Error: L6406E: No space in execution regions with .ANY selector matching

Error: L6407E: Sections of aggregate size 0x44 bytes could not fit into .ANY selector

懷疑有可能某些段的size溢出了。

 

因為使用的ARM芯片內置flash為64KB,RAM = 8KB,因此不太可能是flash溢出了,很可能是RAM溢出了。

所以嘗試了兩種解決方法:

第一種是將keil option里面的編譯優化選項,從level 0 調高到level 2,看看經過優化還會不會有溢出的問題。

實驗的結果是沒有溢出了,所以懷疑某些段溢出這個定論是對的,下一步就是要區分是RAM還是Flash溢出了。

 

第二種,是將一個比較大的函數掛載數組定義成const,也就是放在flash里面,再次build,發現錯誤也消失了。

看來果然是RAM溢出了。

 

普及下Keil編譯結果的參數含義:

請參考以下資料,說明RO/RW/ZI-DATA的含義:

http://www.keil.com/forum/10624/

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM