本随笔适用于瑞萨RL78/G12单片机开发
在使用瑞萨CS+开发的时候,碰到了一个问题,同事同样的函数段能用,移植过来后发现不能用。
经过排查,发现是__far和__near的问题。同事的工程编译时使用的是small-size优化,我使用的默认的normal-size优化,两种模式针对RAM和ROM地址使用的是不同的编译策略。
在不调整优化模式的情况下,需要将函数原型、声明、调用还有对应的存储数组都确立为const __far uint16_t XXX。
调整优化模式后,在调用时可以忽略这个问题。