Я работаю над встроенным проектом и должен поместить полный раздел нашего кода в определенную область памяти. Мы используем avr-gcc.
Обычный способ — это сказать GCC поместить функцию в раздел с:
__attribute__((__section__(".text_sdram"))) void foo(void);
Однако это стоило бы нам много усилий плюс шанс «забыть» одну функцию.
Мы используем C ++, и все функции, которые должны быть в .text_sdram, помещаются в определенное пространство имен.
Можно ли поместить полное пространство имен в определенный раздел?
Заранее спасибо за ваши ответы.
Pieter
В соответствии с атрибуты функции атрибут видимости может быть присоединен к пространству имен, но он не похож ни на что другое. Вы можете попробовать присоединить атрибут section к вашему пространству имен, используя тот же синтаксис, который описан для наглядности. Я не ожидаю, что это сработает, и если это не так, я вполне уверен, что нет хорошего ответа. Если все ваше пространство имен определено в одном модуле или может быть реорганизовано таким образом, вы можете решить эту проблему с помощью сценария компоновщика.
Других решений пока нет …