在 8051 目标上使用 Keil C51。我有一组函数,它们带有指向结构的指针。该结构将仅存在于 pdata 或 idata 中。由于大小限制和内存映射魔法,我无法将所有结构压缩到同一个内存空间中。
当我使用通用指针声明我的函数集时,代码大小会大幅增长。作为测试,我用指向 pdata 中结构的指针声明了这些函数。当我这样做时,我的代码大小恢复正常,但我当然会收到 mspace 警告,并且每当我将 idata 中的结构引用到函数中时,我都会指向错误的内存空间。
假设我的方法的前提是合理的,如何允许这些函数在不增加代码大小的情况下获取指向 pdata 或 idata 的指针?
鉴于我可能会做错这一切,我是否忽略了一个更传统的解决这个问题的方法?