Как ссылаться на указатель на pdata или idata без использования универсального указателя?
Использование Keil C51 на цели 8051. У меня есть набор функций, которые принимают указатель на структуру. Структура будет жить только в pdata или idata. Из-за ограничений по размеру и магии отображения памяти я не могу сжать все структуры в одном пространстве памяти.
Когда я объявляю свой набор функций с помощью общего указателя, размер кода существенно увеличивается. В качестве теста я объявил эти функции с указателем на структуру в pdata. Когда я делаю это, размер моего кода возвращается к нормальному, но, конечно, я получаю предупреждения mspace и буду указывать на неправильное пространство памяти всякий раз, когда ссылаюсь на структуру из idata в функцию.
Если предположить, что мой подход обоснован, как эти функции могут использовать указатели на pdata или idata без изменения размера кода?
Учитывая, что, возможно, я все об этом ошибаюсь, пропускаю ли я более традиционное решение этой проблемы?
1 ответ
Похоже, вам нужны общие указатели.
Возможно, вам следует атаковать проблему размера кода с другой стороны. Какие настройки оптимизации компилятора / компоновщика вы используете?