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