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

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

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


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

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


原文標(biāo)題:使用CS+ CACX編譯RL78系列MCU出現(xiàn)flash空置0XFF錯(cuò)誤問(wèn)題
文章出處:【微信公眾號(hào):瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
-
mcu
+關(guān)注
關(guān)注
146文章
17834瀏覽量
360351 -
瑞薩
+關(guān)注
關(guān)注
36文章
22369瀏覽量
87729
原文標(biāo)題:使用CS+ CACX編譯RL78系列MCU出現(xiàn)flash空置0XFF錯(cuò)誤問(wèn)題
文章出處:【微信號(hào):瑞薩MCU小百科,微信公眾號(hào):瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
如何在VS Code中使用瑞薩RL78系列MCU

通過(guò)Boot swap實(shí)現(xiàn)瑞薩RL78/F24 MCU固件升級(jí)

PGA-400Q1-EVM下載程序返回讀0或讀0XFF怎么解決?
從Renesas RL78到基于Arm的MSPM0的遷移指南

RL78/G23技術(shù)支持案例分享(上)

RL78/G23用于感應(yīng)式接近傳感應(yīng)用的主要特性

RL78/G13 自編方案(通過(guò)UART收到的數(shù)據(jù)) CC-RL Rev.1.01

RL78/G13 自編方案(通過(guò)CSI收到的數(shù)據(jù)) CC-RL Rev.1.01

RL78/G13 自編方案(通過(guò)IIC收到的數(shù)據(jù)) CC-RL Rev.1.01

RL78系列MCU DMA在UART中的使用

RL78/G22微控制器串口調(diào)試步驟

esp32燒錄flash時(shí)md5驗(yàn)證錯(cuò)誤,導(dǎo)致不能燒錄要怎么處理?
RL78/F24 CANFD參考例程

評(píng)論