Как создать видимые переменные во время выполнения с помощью GCC - PullRequest
1 голос
/ 08 июня 2011

С помощью компилятора Green Hill можно создавать переменные в компоновщике, которые видны во время выполнения. В компоновщике:
__ghs_ramstart = MEMADDR(dram_memory);
В коде:
if (__ghs_ramstart == 0) {do something}
Можно ли сделать то же самое при использовании gcc?

Ответы [ 2 ]

3 голосов
/ 08 июня 2011

Да, вы можете сделать это с помощью сценария GNU ld linker.http://sourceware.org/binutils/docs-2.21/ld/Scripts.html#Scripts Вы можете определить символы в скриптах, которые доступны из gcc.Я также использовал сценарии для создания таблиц данных (например, массив адресов).

В сценарии компоновщика вы можете сказать что-то вроде

__ghs_ramstart = dram_memory;

и получить к нему доступ из CНапример,

extern char __ghs_ramstart[];

...

Возможно, вам потребуется добавить или удалить начальное подчеркивание, в зависимости от вашей цели.Некоторые цели добавляют их к символам, некоторые нет.

0 голосов
/ 08 июня 2011

Вы можете определить макрос, используя опцию -D.

...