jokolemene 0 12 мая, 2010 Опубликовано 12 мая, 2010 · Жалоба Отлаживаю сейчас программу, написанную на AVR ассемблере. В ней есть несколько переменных, объявленных подобным образом: xmodemLength: .byte 2 crc32: .byte 4 Переменная xmodemLength - это short int, а переменная crc32 - это long. Но при отладке в окне Watch эти переменные отображаются, как char - показывается только их младший байт. Подскажите, пожалуйста, что нужно сделать, чтобы эти переменные отображались полностью - как short и long? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sigmaN 0 12 мая, 2010 Опубликовано 12 мая, 2010 · Жалоба Ну я в студии мало работал. Может быть попробовать добавить в Watch вот так: (long)crc32 И мне вообще не понравилось как там watch работает. После техасовского Code Composer Studio я как-то чувствовал себя неудобно в AVR студии :) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jokolemene 0 13 мая, 2010 Опубликовано 13 мая, 2010 · Жалоба Так я уже пробовал. Не работает. Пишет "Not in scope". Да, я тоже от этого Watch-а не в восторге. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
V_G 7 13 мая, 2010 Опубликовано 13 мая, 2010 (изменено) · Жалоба Никак. Я этот вопрос задавал в техподдержку атмела, мне посоветовали писать и отлаживать на Си (типа там watch нормальный). Выход - только memory window и наблюдать побайтно Изменено 13 мая, 2010 пользователем V_G Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 133 13 мая, 2010 Опубликовано 13 мая, 2010 · Жалоба мне посоветовали писать и отлаживать на Си (типа там watch нормальный).Если используется ассемблер из WinAVR, а не студийный, то можно совместить эти два подхода. Переменные нужных типов объявляются в .c, а используются в ассемблерном файле. Студия будет довольна. Есть еще один дикий способ - создать отдельный с-проект, объявить в нем все переменные, загрузить его в дебаг студии а потом поверх загрузить .hex отлаживаемой программы. Первый все-таки удобнее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sigmaN 0 13 мая, 2010 Опубликовано 13 мая, 2010 · Жалоба мне посоветовали писать и отлаживать на Си (типа там watch нормальный).Безбожно врут! Он работает, но он не нормальный. При включенной оптимизации многие переменные у меня тоже Not in scope(даже когда запускаю код в симуляторе студии) подозреваю, что без оптимизации всё будет Ok, но это уже не нормальный Watch ИМХО :) P.S. а без оптимизации у меня код не влазит во флешку т.к. задержки из util/delay.h кто-то сделал с применением плавучки )) Кароче я переменные просто в ком порт засовывал и не стал со всем этим разбираться )) Может быть и вам так поступить тоже Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jokolemene 0 13 мая, 2010 Опубликовано 13 мая, 2010 · Жалоба Никак. Я этот вопрос задавал в техподдержку атмела, мне посоветовали писать и отлаживать на Си (типа там watch нормальный). Вот порнушники. На дворе 21-й век, а они всё не могут такой элементарной вещи сделать. Выход - только memory window и наблюдать побайтно Сейчас так и делаю. Если используется ассемблер из WinAVR, а не студийный... Использую AVR Assembler Version 2 - понравился тем, что в нём комментарии можно по сишному типу оформлять (/* */). Кароче я переменные просто в ком порт засовывал и не стал со всем этим разбираться )) Может быть и вам так поступить тоже Я отлаживаю бутлоадер - ограничен местом, поэтому такой вариант отладки напрягает. Кроме того специально под этот проект был приобретён JTAGICE MkII (нифига не задёшево). Имея такой дебаггер, выводить отладочную информацию в COM-порт - это несерьёзно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 133 13 мая, 2010 Опубликовано 13 мая, 2010 · Жалоба Использую AVR Assembler Version 2 - понравился тем, что в нём комментарии можно по сишному типу оформлять (/* */).Используйте от WinAVR - там можно не только комментарии, но и весь сишный препроцессор использовать. И Многофайловые проекты делать. И ваши ассемблерные исходники потом можно будет использовать в ваших же С-проектах. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jokolemene 0 13 мая, 2010 Опубликовано 13 мая, 2010 · Жалоба WinAVR у меня установлен. Ещё до написания основной программы на C я хотел им пользоваться, но потом на IAR C перешёл. Но что-то в опциях ассемблера студии я не вижу возможности выбрать для компиляции ассемблер WinAVR. Как его к студии прикрутить? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 133 13 мая, 2010 Опубликовано 13 мая, 2010 · Жалоба Но что-то в опциях ассемблера студии я не вижу возможности выбрать для компиляции ассемблер WinAVR. Как его к студии прикрутить?Создавайте C-проект WinAVR, выкидывайте из него предлагаемый вам main.c, добавляйте свои ассемблерные файлы с расширением .S, в свойствах проекта в опции линкера добавьте -Wl,-nostartfiles Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
demiurg_spb 0 15 мая, 2010 Опубликовано 15 мая, 2010 · Жалоба P.S. а без оптимизации у меня код не влазит во флешку т.к. задержки из util/delay.h кто-то сделал с применением плавучки )) Может это поможет. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться