客戶使用IDE CS+ CACX編譯瑞薩RL78系列MCU R5F1027A,出現(xiàn)報錯信息,code flash無法分配。而實際使用的flash 約10K還遠不到16K。為什么R5F1027A(flash空間16K)使用的code flash不到16K就出現(xiàn)添加新代碼后編譯,提示無法分配的錯誤?

分析
1、經(jīng)過排查沒有對IDE編譯環(huán)境CS+ CACX做特殊的設置,在項目代碼比較少的情況下,編譯也正常。
2、針對提示的錯誤信息,嘗試屏蔽不同的軟件函數(shù),發(fā)現(xiàn)需要減少較多的軟件代碼,編譯才恢復正常。
3、多次嘗試后發(fā)現(xiàn)flash空間在超過8K左右后,會出現(xiàn)編譯錯誤。
4、查看項目的HEX文件。發(fā)現(xiàn)flash地址從0x0C57,到0x1FFF的空間都是填充的FF,也就是這段flash空間沒有使用到。

5、查看map文件,發(fā)現(xiàn)和HEX文件相吻合,@@CODEL代碼flash段是從0x20C6開始分配的,也就是代碼段分配在16K空間的后面8K。這樣前面的flash空間有13A9字節(jié),將近5K沒用上。


6、分析確認到原因后,要想辦法解決,多次嘗試無果,再分析map文件。發(fā)現(xiàn)分配的代碼段@@CODEL,從0x20C6開始是跟@@CNST 這個常量的段是相鄰的。
7、想辦法嘗試改變@@CNST的地址分配,看看@@CNST的地址改變,是否會影響@@ CODEL代碼段的地址分配。
8、把@@CNST這個常量的段,通過添加DR文件,設置到后面地址0x3C00后,發(fā)現(xiàn)編譯正常了。

結論
查看生成的HEX文件,發(fā)現(xiàn)前面的flash空間0x0C57也用上了,問題得到解決。
通過和同事交流,以及多番查閱IDE的HELP文檔,分析了解各個代碼段@@XXXX的含義,解決了客戶端遇到的問題。


原文標題:使用CS+ CACX編譯RL78系列MCU出現(xiàn)flash空置0XFF錯誤問題
文章出處:【微信公眾號:瑞薩MCU小百科】歡迎添加關注!文章轉載請注明出處。
-
mcu
+關注
關注
147文章
18938瀏覽量
398632 -
瑞薩
+關注
關注
37文章
22482瀏覽量
90903
發(fā)布評論請先 登錄
深入解析RL78/G1G單片機:特性、規(guī)格與應用考量
RL78/I1D微控制器:低功耗設計的理想之選
RL78/G12微控制器深度解析:特性、電氣規(guī)格與應用考量
瑞薩RL78/F22 MCU基于IAR開發(fā)環(huán)境創(chuàng)建觸摸應用樣例工程
瑞薩RL78/F22 MCU基于e2studio開發(fā)環(huán)境創(chuàng)建觸摸應用樣例工程
瑞薩RL78/F25 MCU基于IAR開發(fā)環(huán)境創(chuàng)建觸摸應用樣例工程
瑞薩RL78/F25 MCU基于e2studio開發(fā)環(huán)境創(chuàng)建觸摸應用樣例工程
瑞薩RL78/F25 MCU基于CS+開發(fā)環(huán)境創(chuàng)建觸摸應用樣例工程
RL78/G23電容式觸摸評估系統(tǒng):設計與應用全解析
RL78/G22快速原型開發(fā)板:功能特性與使用指南
RL78/G22電容觸摸評估系統(tǒng):設計要點與使用指南
RL78/G15 MCU:低功耗設計的理想之選
深入解析RL78/G22微控制器:特性、電氣參數(shù)與應用要點
RL78/G24 快速原型開發(fā)板使用指南
如何在VS Code中使用瑞薩RL78系列MCU
使用CS+ CACX編譯RL78系列MCU出現(xiàn)flash空置0XFF錯誤問題
評論