Hi Alexey! You wrote to All on Mon, 25 Aug 2003 13:58:16 +0600:
AK> Столкнулся с одной неприятной особенностью компилятора IAR для AVR при AK> генерации ассемблерного файла (*.s90): бесконечные циклы (while (1), AK> for(;;), do while(1), goto) выглядят в файле неудобочитаемо - сначала AK> идет текст всего цикла, а затем ассемблерный код, его представляющий. AK> Для контроля кодогенерации хотелось бы видеть нормальный листинг: AK> строчка Си-программы - блок ассемблерных инструкций. Вопрос: Как этого AK> можно достичь ?
Это возникает не из-за циклов, а из-за глубокой оптимизации. В новых компиляторах есть новые ключи для генерации листинга (тут приведены все ключи, а из них некоторые - новые):
-l[c|C|D|E|a|A][N][H] file|directory Output list file c C source listing C with assembly code D with pure assembly code E with non-sequential assembly code a Assembler file A with C source b Basic assembler file B with C source N Don't include diagnostics H Include header file source lines
Интересный ключ "E with non-sequential assembly code". Он позволяет рассовывать ассемблерные мнемоники в соответствии с сишним кодом (правда, из-за этого сам сгенерированный код выдается непоследовательным). Эта опция доступна в компиляторах из пакетов EW430 v2.xx и будет доступна в EWAVR 3.10, который должен выйти в сентябре-октябре.
Bye.
### Стратегия - это пожелание того, как должен действовать вероятный противник.