Как ссылаться на указатель на pdata или idata без использования универсального указателя?

Использование Keil C51 на цели 8051. У меня есть набор функций, которые принимают указатель на структуру. Структура будет жить только в pdata или idata. Из-за ограничений по размеру и магии отображения памяти я не могу сжать все структуры в одном пространстве памяти.

Когда я объявляю свой набор функций с помощью общего указателя, размер кода существенно увеличивается. В качестве теста я объявил эти функции с указателем на структуру в pdata. Когда я делаю это, размер моего кода возвращается к нормальному, но, конечно, я получаю предупреждения mspace и буду указывать на неправильное пространство памяти всякий раз, когда ссылаюсь на структуру из idata в функцию.

Если предположить, что мой подход обоснован, как эти функции могут использовать указатели на pdata или idata без изменения размера кода?

Учитывая, что, возможно, я все об этом ошибаюсь, пропускаю ли я более традиционное решение этой проблемы?

1 ответ

Похоже, вам нужны общие указатели.

Возможно, вам следует атаковать проблему размера кода с другой стороны. Какие настройки оптимизации компилятора / компоновщика вы используете?

Другие вопросы по тегам