3

在 8051 目标上使用 Keil C51。我有一组函数,它们带有指向结构的指针。该结构将仅存在于 pdata 或 idata 中。由于大小限制和内存映射魔法,我无法将所有结构压缩到同一个内存空间中。

当我使用通用指针声明我的函数集时,代码大小会大幅增长。作为测试,我用指向 pdata 中结构的指针声明了这些函数。当我这样做时,我的代码大小恢复正常,但我当然会收到 mspace 警告,并且每当我将 idata 中的结构引用到函数中时,我都会指向错误的内存空间。

假设我的方法的前提是合理的,如何允许这些函数在不增加代码大小的情况下获取指向 pdata 或 idata 的指针?

鉴于我可能会做错这一切,我是否忽略了一个更传统的解决这个问题的方法?

4

1 回答 1

0

听起来您确实需要通用指针。

也许您应该从另一个方向解决代码大小问题。您正在使用哪些编译器/链接器优化设置?

于 2016-06-14T08:01:34.213 回答