0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用CS+ CCRL编译RL78系列MCU引起flash空间浪费的错误问题解析

瑞萨MCU小百科 来源:瑞萨嵌入式小百科 2023-12-08 13:57 次阅读

问题概述

客户使用IDE CS+ CCRL编译瑞萨RL78系列MCU R5F1027A(flash空间16K),出现报错信息,“data”地址超出范围。而实际使用的flash约8K,还不到16K。R5F1027A项目使用的code flash约8K,一旦添加新代码就出现编译错误信息,提示地址溢出的错误?

394ea308-958d-11ee-8b88-92fbcf53809c.png397bddd2-958d-11ee-8b88-92fbcf53809c.png

分析

1

针对提示的错误信息,尝试屏蔽不同的软件函数,发现减少软件代码,编译恢复正常。

2

多次尝试后发现flash空间在超过8K左右后,会出现编译错误。

3

查看项目生成的MOT文件。发现code flash地址直接从0x2000开始,前面的0x00C4选项字节之后到0x2000 的flash空间都是没有使用到。

39e7ce84-958d-11ee-8b88-92fbcf53809c.png

4

查看map文件,和mot文件相符合,.CONST 代码段是从0x2000开始分配的,也就是代码段前面的flash空间有将近8K没用上。

39f193ba-958d-11ee-8b88-92fbcf53809c.png

5

分析确认到原因后,多次尝试修改section settings。参考RL78其他型号code flash 8K的R5F10268的CS+ CCRL工程设置,发现.const分配的地址是从0x00CE开始。而R5F1027A的工程默认从0x2000开始,所以想把.const直接从0x2000改成0x00CE,一直提示不符合设置范围的错误。最后把.const分配的地址放到后面改成0x3C00,其他代码段.text则按顺序从0x00D0开始,这样设置后,编译成功了。

3a01edc8-958d-11ee-8b88-92fbcf53809c.png3a23e70c-958d-11ee-8b88-92fbcf53809c.png

6

以上设置过后代码重新编译ok,也从0x00D0开始,但是当设置开启On-chip在线仿真功能后,发现报监控字节的错误。

3a47381a-958d-11ee-8b88-92fbcf53809c.png

7

查看数据手册发现,debug监控字节会占用10个字节,从0x00CE开始到0x00D8.

3a4b828a-958d-11ee-8b88-92fbcf53809c.png

8

把代码段.text地址从0x00D0修改成0x00E0开始后,重新编译正常了。查看MAP文件和mot文件,地址也是符合的,从0x00E0开始分配。

3a5e80b0-958d-11ee-8b88-92fbcf53809c.png3a690cce-958d-11ee-8b88-92fbcf53809c.png

总结

通过查看分析MAP文件和mot文件,定位到.CONST 代码段是从0x2000开始分配的,导致代码段前面的flash空间有将近8K没用上,最终通过修改设置代码段地址,问题得到解决。







审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • mcu
    mcu
    +关注

    关注

    146

    文章

    16017

    浏览量

    343631
  • FlaSh
    +关注

    关注

    10

    文章

    1550

    浏览量

    146646

原文标题:使用CS+ CCRL编译RL78系列MCU出现CONST地址引起flash空间浪费的错误问题

文章出处:【微信号:瑞萨MCU小百科,微信公众号:瑞萨MCU小百科】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    CS+ V7.00.00集成开发环境用户手册:RL78调试工具[CS+ for CC]

    CS+ V7.00.00集成开发环境用户手册:RL78调试工具[CS+ for CC]
    发表于 03-17 19:42 0次下载
    <b class='flag-5'>CS+</b> V7.00.00集成开发环境用户手册:<b class='flag-5'>RL78</b>调试工具[<b class='flag-5'>CS+</b> for CC]

    CS+ V6.01.00 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]

    CS+ V6.01.00 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]
    发表于 03-21 20:03 0次下载
    <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]

    CS+ V6.00.00 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]

    CS+ V6.00.00 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]
    发表于 03-22 18:47 0次下载
    <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]

    CS+ V5.00.00 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]

    CS+ V5.00.00 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]
    发表于 03-23 19:13 0次下载
    <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]

    CS+ V4.01.00 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]

    CS+ V4.01.00 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]
    发表于 03-23 19:41 0次下载
    <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]

    CS+ V4.00.00 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]

    CS+ V4.00.00 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]
    发表于 03-24 18:52 0次下载
    <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]

    CS+ V3.02.00 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]

    CS+ V3.02.00 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]
    发表于 05-15 18:34 0次下载
    <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]

    CS+ V7.00.00集成开发环境用户手册:RL78调试工具[CS+ for CC]

    CS+ V7.00.00集成开发环境用户手册:RL78调试工具[CS+ for CC]
    发表于 07-07 18:33 0次下载
    <b class='flag-5'>CS+</b> V7.00.00集成开发环境用户手册:<b class='flag-5'>RL78</b>调试工具[<b class='flag-5'>CS+</b> for CC]

    CS+ V6.01.00 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]

    CS+ V6.01.00 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]
    发表于 07-07 20:04 0次下载
    <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]

    CS+ V6.00.00 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]

    CS+ V6.00.00 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]
    发表于 07-07 20:37 0次下载
    <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]

    CS+ V5.00.00 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]

    CS+ V5.00.00 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]
    发表于 07-10 19:03 0次下载
    <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]

    CS+ V4.01.00 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]

    CS+ V4.01.00 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]
    发表于 07-10 19:32 0次下载
    <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]

    CS+ V4.00.00 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]

    CS+ V4.00.00 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]
    发表于 07-10 20:41 0次下载
    <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]

    CS+ V3.02.00 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]

    CS+ V3.02.00 集成开发环境 用户手册: RL78 Debug Tool[CS+ for CC]
    发表于 07-11 19:45 0次下载
    <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]

    使用CS+ CACX编译RL78系列MCU出现flash空置0XFF错误问题

    问题概述 客户使用IDE CS+ CACX编译瑞萨RL78系列MCU R5F1027A,出现报错信息,code
    的头像 发表于 08-16 12:10 583次阅读
    使用<b class='flag-5'>CS+</b> CACX<b class='flag-5'>编译</b><b class='flag-5'>RL78</b><b class='flag-5'>系列</b><b class='flag-5'>MCU</b>出现<b class='flag-5'>flash</b>空置0XFF<b class='flag-5'>错误</b>问题