В общем, да, но способ, которым вы делаете это через компоновщик, скорее всего, зависит от набора инструментов.Я никогда не использовал CodeWarrior для разработки встраиваемых систем, но, в качестве примера, используя набор инструментов RVCT от ARM, вы можете создать файл 'symdefs' при связывании загрузчика и иметь ссылку на код приложения для этого файла.
Есливам не нужно беспокоиться о блокировке набора инструментов, тогда можно было бы использовать binutils из GNU для экспорта таблицы символов из исполняемого файла вашего загрузчика (например, nm foo.exe > symtab.txt
), запустить сценарий над таблицей символов, чтобы преобразовать его в.h файл в форме:
#define symbol_name_ADDR 0x00001efc
и вызов внешних функций через механизм вроде:
((void (*)(int arg)) symbol_name_ADDR)(12);
, который довольно уродлив, но должен выполнить работу.