我在一家主要从事汽车网络设计的软件公司部门工作。我们主要用 C 语言编写网络协议栈。最近,我被分配了一个项目,需要使用飞思卡尔的 HC12 控制器。最初编写的协议栈支持使用 unbanked RAM 以及 banked 和 unbanked flash。在分配给我的项目中,客户要求使用银行 RAM 而不是非银行 RAM(我不知道原因)。当我致力于这个项目的开发时,我意识到我可以使用远指针来访问(读/写)存储的 RAM。
我的问题是:当我使用远指针访问存储的 RAM 时,我的库代码大小增加了 10kbytes。这是正常的吗?在我正在使用的编译器(codewarrior)的参考手册中,提到远指针的大小为 3 个字节,而普通指针的大小为 2 个字节。这 1 个额外的字节真的会导致代码大小有如此大的差异吗?有没有其他方法不包括使用远指针,我仍然可以访问存储的 RAM?
任何对我的查询有帮助的答案将不胜感激。