问题概述
客户使用IDE CS+ CCRL编译瑞萨RL78系列MCU R5F1027A(flash空间16K),出现报错信息,“data”地址超出范围。而实际使用的flash约8K,还不到16K。R5F1027A项目使用的code flash约8K,一旦添加新代码就出现编译错误信息,提示地址溢出的错误?
分析
1
针对提示的错误信息,尝试屏蔽不同的软件函数,发现减少软件代码,编译恢复正常。
2
多次尝试后发现flash空间在超过8K左右后,会出现编译错误。
3
查看项目生成的MOT文件。发现code flash地址直接从0x2000开始,前面的0x00C4选项字节之后到0x2000 的flash空间都是没有使用到。
4
查看map文件,和mot文件相符合,.CONST 代码段是从0x2000开始分配的,也就是代码段前面的flash空间有将近8K没用上。
5
分析确认到原因后,多次尝试修改section settings。参考RL78其他型号code flash 8K的R5F10268的CS+ CCRL工程设置,发现.const分配的地址是从0x00CE开始。而R5F1027A的工程默认从0x2000开始,所以想把.const直接从0x2000改成0x00CE,一直提示不符合设置范围的错误。最后把.const分配的地址放到后面改成0x3C00,其他代码段.text则按顺序从0x00D0开始,这样设置后,编译成功了。
6
以上设置过后代码重新编译ok,也从0x00D0开始,但是当设置开启On-chip在线仿真功能后,发现报监控字节的错误。
7
查看数据手册发现,debug监控字节会占用10个字节,从0x00CE开始到0x00D8.
8
把代码段.text地址从0x00D0修改成0x00E0开始后,重新编译正常了。查看MAP文件和mot文件,地址也是符合的,从0x00E0开始分配。
总结
通过查看分析MAP文件和mot文件,定位到.CONST 代码段是从0x2000开始分配的,导致代码段前面的flash空间有将近8K没用上,最终通过修改设置代码段地址,问题得到解决。
审核编辑:刘清
-
mcu
+关注
关注
147文章
18185浏览量
373815 -
FlaSh
+关注
关注
10文章
1693浏览量
152924
发布评论请先 登录
CS+ Code Generator Tool 集成开发环境 用户手册: RL78 API Reference[CS+ for CA,CX][CS+ for CC]
![<b class='flag-5'>CS+</b> Code Generator Tool 集成开发环境 用户手册: <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 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]
![<b class='flag-5'>CS+</b> V6.01.00 集成开发环境 用户手册: <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 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]
![<b class='flag-5'>CS+</b> V6.00.00 集成开发环境 用户手册: <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 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]
![<b class='flag-5'>CS+</b> V5.00.00 集成开发环境 用户手册: <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 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]
![<b class='flag-5'>CS+</b> V4.01.00 集成开发环境 用户手册: <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 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]
![<b class='flag-5'>CS+</b> V4.00.00 集成开发环境 用户手册: <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 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]
![<b class='flag-5'>CS+</b> V3.02.00 集成开发环境 用户手册: <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 集成开发环境 用户手册: RL78 API Reference[CS+ for CA,CX][CS+ for CC]
![<b class='flag-5'>CS+</b> Code Generator Tool 集成开发环境 用户手册: <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 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]
![<b class='flag-5'>CS+</b> V6.01.00 集成开发环境 用户手册: <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 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]
![<b class='flag-5'>CS+</b> V6.00.00 集成开发环境 用户手册: <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 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]
![<b class='flag-5'>CS+</b> V5.00.00 集成开发环境 用户手册: <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 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]
![<b class='flag-5'>CS+</b> V4.01.00 集成开发环境 用户手册: <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 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]
![<b class='flag-5'>CS+</b> V4.00.00 集成开发环境 用户手册: <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 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]
![<b class='flag-5'>CS+</b> V3.02.00 集成开发环境 用户手册: <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)
评论