最近开始使用瑞萨的R7F0C908芯片,ROM48K,对于目前的项目肯定是足够了,虽知道代码完成后,编译出现这个故障:RA78K0R error E3206: Segment '@@CODEL' can't allocate to memory - ignored!内存溢出!太不可思议了,不应该超过48k呀,我删除一小部分程序,重新编译,编译通过,但是显示使用的RAM只有71F7H,不到30K,到底是啥把空间占用了呢?
这个单片机有内部dataflash,难道是这个,我询问了下技术支持,这个dataflash是用到了库,但是不会占用太多空间3k左右吧。
继续查,但是毫无头绪,过了些日子,我突然想起我用到了在线仿真,难道是这个设置出了问题,一查,果然,仿真用的起始地址不合适了。
908是48K闪存,地址从0H到BFFFH,我之前仿真设置的起始地址是7E00H,占用512个字节,7E00H大概就是31k的地方,当程序量超过31k时,发现地址空间已经被占用了,就会爆内存溢出。所以我把仿真起始地址改为BE00H就解决了困扰我多日的问题
PS:罪魁祸首是自己,把904的设置用在了908上