Цитата
Всегда помагала запись типа
volatile Uint32 i;

(через map-файл можешь посмотреть где она в памяти лежит)
Попробовал, не помогает. Адрес в памяти можно посмотреть и без volatile.
Цитата
Если я все правильно понимаю, то в настройках проекта есть два независимых параметра.
1) оптимизация
2) наличие отладочной информации (Debug info).
Первое, это то, что влияет на выходной ассемблерный (читай машинный) код.
Второе, это наличие кое-какой информации в out-файле, которую использует отладчик.
Резюме. Если у вас переменная глобальная (естественно она у вас глобальная, иначе говорить не о чем), ставьте Include Debug Info (или как там правильно звучит, не помню), но при этом оптимизацию ставьте, какую вам нужно. По-моему так, но могу и ошибаться, ибо Release гонять на JTAG'е предпочитаю не
Оптимизация не влияет, но на всякий случай ставлю Opt Level = None.
А вот при Debug info=Full Debug получаем ассемблерный код (VideoMode – глобальная переменная):
Код
.sect ".text"
.global _VideoMode
_VideoMode: .usect ".bss:c",1,1
.sym _VideoMode,_VideoMode, 12, 2, 8
При Debug info=No Debug получаем:
Код
.sect ".text"
.global _VideoMode
_VideoMode: .usect ".bss:c",1,1
Т.е. нужно, чтобы для указанной переменной в ассемблерный код добавилась строчка
Код
.sym _VideoMode,_VideoMode, 12, 2, 8.
Не понял как вставить Include Debug Info, если можно поподробнее.