Перейти к содержанию
    

Отладка в AтmelStudio кода на С

Потребовалось написать небольшую программку для AVR, поэтому скачал и установил Студию от Атмел версии 6.2. Пишу на С. Попробовал дебажить (пока что в Simulator-е) и с удивлением увидел, что состояние портов при отладке никак не отображается. Это особенности Студии или я что-то пропустил? Непонятно, как дебажить программу...

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я все отлаживаю в студии 4.19. Это самая стабильная версия.

Всё-таки не понял - она должна показывать состояния портов ввода-вывода?

P.S. Смотрю и состояния переменных иногда не отображает, пишет Unknown identifier... Мрак.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В проекте указан тип контроллера?

Да, в самом начале визарда там выбирается моделька контроллера. И в настройках указано, что в качестве программатора/деабгера выступает Simulator.

post-91423-1462372173_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Всё-таки не понял - она должна показывать состояния портов ввода-вывода?

P.S. Смотрю и состояния переменных иногда не отображает, пишет Unknown identifier... Мрак.

 

> Unknown identifier

Локальная переменная вне зоны видимости. Вероятно, что переменная из функции, которая сейчас не выполняется. Это нормально. Если хочется отлаживать какие-то специфические переменные - можно их выставить как volatile (отключает оптимизацию на них и их всегда видно).

 

PS: Очень похоже, что не в момент выполнения переменная закопана глубоко в стэк и потому не может быть считана. Попробуйте уменьшить уровень оптимизации, или опять же, volatile (минус к скорости выполнения).

У меня случалось и такое, что переменную невозможно осмотреть даже поставив бряк-поинт прямо на неё. Это оптимизация её убирает/не даёт увидеть, ибо заоптимизирована, или где-то лежит неудобно для отладки.

 

У меня в железе отлаживает (JTAG / ATmega1284P) и видны все порты, регистры и переферия. Студия 5.1

Изменено пользователем AlanDrakes

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У меня в железе отлаживает (JTAG / ATmega1284P) и видны все порты, регистры и переферия. Студия 5.1

 

Спасибо, AlanDrakes. По переменным понятно, по портам нет. Может быть от версии студии зависит функционал?. Я смотрю, в основном пользуются старыми версиям.

 

P.S. Плюнул на студию, установил IVR. Мне объёма программы в 4к - за глаза.

 

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Добрый день. При отладке программы в Atmel Studio 7 долго не мог обнаружить ошибку. Оказалось что при объявлении двух байтной переменной в EEPROM инициализируется только младший байт, старший байт потом приходилось корректировать в ручную. Можно это исправить, или это особенность системы? Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Оказалось что при объявлении двух байтной переменной в EEPROM инициализируется только младший байт, старший байт потом приходилось корректировать в ручную.
Где-то ошибка в вашей программе.

 

Можно это исправить, или это особенность системы?
Да, можно - написать правильно. Показывайте исходник.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Где-то ошибка в вашей программе.

Да, можно - написать правильно. Показывайте исходник.

 

Извиняйте, исходник здесь размещать не умею а строка с объявлением переменной: EEMEM unsigned int cor_time=0x0000;

Что то не так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Забыл указать что в реальной памяти EEPROM переменная инициализируется правильно, а в отладчике нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Забыл указать что в реальной памяти EEPROM переменная инициализируется правильно, а в отладчике нет.
Это противоречит вашему вопросу:

при объявлении двух байтной переменной в EEPROM инициализируется только младший байт
Тогда возможна ошибка в отладчике. Тут я пас.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

По случаю приобрёл AVR JTAG ICE v2.0 но Windows его не опознаёт. Как правильно его подключить и возможна ли работа этого программатора-отладчика в Atmel Studio 7? Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Коллеги прошу помощи, Windows опознал устройство а вот Atmel Studio 7 опознаёт jtag ice как stk500, такое может быть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...