問題概述
客戶使用IDE CS+ CCRL編譯瑞薩RL78系列MCU R5F1027A(flash空間16K),出現(xiàn)報(bào)錯(cuò)信息,“data”地址超出范圍。而實(shí)際使用的flash約8K,還不到16K。R5F1027A項(xiàng)目使用的code flash約8K,一旦添加新代碼就出現(xiàn)編譯錯(cuò)誤信息,提示地址溢出的錯(cuò)誤?
分析
1
針對提示的錯(cuò)誤信息,嘗試屏蔽不同的軟件函數(shù),發(fā)現(xiàn)減少軟件代碼,編譯恢復(fù)正常。
2
多次嘗試后發(fā)現(xiàn)flash空間在超過8K左右后,會(huì)出現(xiàn)編譯錯(cuò)誤。
3
查看項(xiàng)目生成的MOT文件。發(fā)現(xiàn)code flash地址直接從0x2000開始,前面的0x00C4選項(xiàng)字節(jié)之后到0x2000 的flash空間都是沒有使用到。
4
查看map文件,和mot文件相符合,.CONST 代碼段是從0x2000開始分配的,也就是代碼段前面的flash空間有將近8K沒用上。
5
分析確認(rèn)到原因后,多次嘗試修改section settings。參考RL78其他型號(hào)code flash 8K的R5F10268的CS+ CCRL工程設(shè)置,發(fā)現(xiàn).const分配的地址是從0x00CE開始。而R5F1027A的工程默認(rèn)從0x2000開始,所以想把.const直接從0x2000改成0x00CE,一直提示不符合設(shè)置范圍的錯(cuò)誤。最后把.const分配的地址放到后面改成0x3C00,其他代碼段.text則按順序從0x00D0開始,這樣設(shè)置后,編譯成功了。
6
以上設(shè)置過后代碼重新編譯ok,也從0x00D0開始,但是當(dāng)設(shè)置開啟On-chip在線仿真功能后,發(fā)現(xiàn)報(bào)監(jiān)控字節(jié)的錯(cuò)誤。
7
查看數(shù)據(jù)手冊發(fā)現(xiàn),debug監(jiān)控字節(jié)會(huì)占用10個(gè)字節(jié),從0x00CE開始到0x00D8.
8
把代碼段.text地址從0x00D0修改成0x00E0開始后,重新編譯正常了。查看MAP文件和mot文件,地址也是符合的,從0x00E0開始分配。
總結(jié)
通過查看分析MAP文件和mot文件,定位到.CONST 代碼段是從0x2000開始分配的,導(dǎo)致代碼段前面的flash空間有將近8K沒用上,最終通過修改設(shè)置代碼段地址,問題得到解決。
審核編輯:劉清
-
mcu
+關(guān)注
關(guān)注
146文章
17981瀏覽量
366813 -
FlaSh
+關(guān)注
關(guān)注
10文章
1679瀏覽量
151805
原文標(biāo)題:使用CS+ CCRL編譯RL78系列MCU出現(xiàn)CONST地址引起flash空間浪費(fèi)的錯(cuò)誤問題
文章出處:【微信號(hào):瑞薩MCU小百科,微信公眾號(hào):瑞薩MCU小百科】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
CS+ Code Generator Tool 集成開發(fā)環(huán)境 用戶手冊: RL78 API Reference[CS+ for CA,CX][CS+ for CC]
![<b class='flag-5'>CS+</b> Code Generator Tool 集成開發(fā)環(huán)境 用戶手冊: <b class='flag-5'>RL78</b> API Reference[<b class='flag-5'>CS+</b> for CA,CX][<b class='flag-5'>CS+</b> for CC]](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
CS+ V6.01.00 集成開發(fā)環(huán)境 用戶手冊: RL78 Debug Tool[CS+ for CC]
![<b class='flag-5'>CS+</b> V6.01.00 集成開發(fā)環(huán)境 用戶手冊: <b class='flag-5'>RL78</b> Debug Tool[<b class='flag-5'>CS+</b> for CC]](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
CS+ V6.00.00 集成開發(fā)環(huán)境 用戶手冊: RL78 Debug Tool[CS+ for CC]
![<b class='flag-5'>CS+</b> V6.00.00 集成開發(fā)環(huán)境 用戶手冊: <b class='flag-5'>RL78</b> Debug Tool[<b class='flag-5'>CS+</b> for CC]](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
CS+ V5.00.00 集成開發(fā)環(huán)境 用戶手冊: RL78 Debug Tool[CS+ for CC]
![<b class='flag-5'>CS+</b> V5.00.00 集成開發(fā)環(huán)境 用戶手冊: <b class='flag-5'>RL78</b> Debug Tool[<b class='flag-5'>CS+</b> for CC]](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
CS+ V4.01.00 集成開發(fā)環(huán)境 用戶手冊: RL78 Debug Tool[CS+ for CC]
![<b class='flag-5'>CS+</b> V4.01.00 集成開發(fā)環(huán)境 用戶手冊: <b class='flag-5'>RL78</b> Debug Tool[<b class='flag-5'>CS+</b> for CC]](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
CS+ V4.00.00 集成開發(fā)環(huán)境 用戶手冊: RL78 Debug Tool[CS+ for CC]
![<b class='flag-5'>CS+</b> V4.00.00 集成開發(fā)環(huán)境 用戶手冊: <b class='flag-5'>RL78</b> Debug Tool[<b class='flag-5'>CS+</b> for CC]](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
CS+ V3.02.00 集成開發(fā)環(huán)境 用戶手冊: RL78 Debug Tool[CS+ for CC]
![<b class='flag-5'>CS+</b> V3.02.00 集成開發(fā)環(huán)境 用戶手冊: <b class='flag-5'>RL78</b> Debug Tool[<b class='flag-5'>CS+</b> for CC]](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
CS+ Code Generator Tool 集成開發(fā)環(huán)境 用戶手冊: RL78 API Reference[CS+ for CA,CX][CS+ for CC]
![<b class='flag-5'>CS+</b> Code Generator Tool 集成開發(fā)環(huán)境 用戶手冊: <b class='flag-5'>RL78</b> API Reference[<b class='flag-5'>CS+</b> for CA,CX][<b class='flag-5'>CS+</b> for CC]](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
CS+ V6.01.00 集成開發(fā)環(huán)境 用戶手冊: RL78 Debug Tool[CS+ for CC]
![<b class='flag-5'>CS+</b> V6.01.00 集成開發(fā)環(huán)境 用戶手冊: <b class='flag-5'>RL78</b> Debug Tool[<b class='flag-5'>CS+</b> for CC]](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
CS+ V6.00.00 集成開發(fā)環(huán)境 用戶手冊: RL78 Debug Tool[CS+ for CC]
![<b class='flag-5'>CS+</b> V6.00.00 集成開發(fā)環(huán)境 用戶手冊: <b class='flag-5'>RL78</b> Debug Tool[<b class='flag-5'>CS+</b> for CC]](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
CS+ V5.00.00 集成開發(fā)環(huán)境 用戶手冊: RL78 Debug Tool[CS+ for CC]
![<b class='flag-5'>CS+</b> V5.00.00 集成開發(fā)環(huán)境 用戶手冊: <b class='flag-5'>RL78</b> Debug Tool[<b class='flag-5'>CS+</b> for CC]](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
CS+ V4.01.00 集成開發(fā)環(huán)境 用戶手冊: RL78 Debug Tool[CS+ for CC]
![<b class='flag-5'>CS+</b> V4.01.00 集成開發(fā)環(huán)境 用戶手冊: <b class='flag-5'>RL78</b> Debug Tool[<b class='flag-5'>CS+</b> for CC]](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
CS+ V4.00.00 集成開發(fā)環(huán)境 用戶手冊: RL78 Debug Tool[CS+ for CC]
![<b class='flag-5'>CS+</b> V4.00.00 集成開發(fā)環(huán)境 用戶手冊: <b class='flag-5'>RL78</b> Debug Tool[<b class='flag-5'>CS+</b> for CC]](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
CS+ V3.02.00 集成開發(fā)環(huán)境 用戶手冊: RL78 Debug Tool[CS+ for CC]
![<b class='flag-5'>CS+</b> V3.02.00 集成開發(fā)環(huán)境 用戶手冊: <b class='flag-5'>RL78</b> Debug Tool[<b class='flag-5'>CS+</b> for CC]](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
使用CS+ CACX編譯RL78系列MCU出現(xiàn)flash空置0XFF錯(cuò)誤問題

評論