【问题标题】:How to reference a pointer to pdata or idata without using generic pointer?如何在不使用通用指针的情况下引用指向数据或数据的指针?
【发布时间】:2016-10-14 17:14:01
【问题描述】:

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

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

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

考虑到我可能做错了,我是否忽略了解决这个问题的更传统的解决方案?

【问题讨论】:

标签: c pointers struct keil c51


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2010-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-04
    相关资源
    最近更新 更多