icf.zip
С этим-то проблем совсем ни каких нет, это первая мысль, которая возникает. Конечно, наивно винить IAR в своих бедах. Но проблема-то не исчезает...
IgorKossak - спасибо, буду разбираться.
Я вынужден не использовать static переменные, вместо этого инициализирую глобальные переменные в mainе. Все работает, но это не красиво как-то.
Вот пример:
В main.c есть такая строка
static int static_variable1[10];
Потом в main делаю проверку - массив не инициализирован, содержит случайные значения.
Вот что написано в *.map:
Section Kind Address Size Object
------- ---- ------- ---- ------
.bss zero 0x40002468 0x28 main.o [1]
Из чего делаю вывод, что переменная лежит в bss по адресу 0x40002468 (это RAM).
Делаю предположение, что "zero" - директива линкеру инициализировать область нулями.
Это только мое предположение, если я не прав, пожалуйста, дайте мне знать.
ICF прилагаю, там тоже вроде все чисто.
Буду очень признателен, если кто-нибудь даст совет где еще покопать.