реклама на сайте
подробности

 
 
2 страниц V   1 2 >  
Reply to this topicStart new topic
> Отладка в AтmelStudio кода на С
UT2005
сообщение May 3 2016, 20:16
Сообщение #1





Группа: Участник
Сообщений: 9
Регистрация: 22-04-16
Пользователь №: 91 423



Потребовалось написать небольшую программку для AVR, поэтому скачал и установил Студию от Атмел версии 6.2. Пишу на С. Попробовал дебажить (пока что в Simulator-е) и с удивлением увидел, что состояние портов при отладке никак не отображается. Это особенности Студии или я что-то пропустил? Непонятно, как дебажить программу...
Go to the top of the page
 
+Quote Post
demiurg1978
сообщение May 4 2016, 10:54
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 333
Регистрация: 19-12-13
Из: Новосибирск
Пользователь №: 79 709



Я все отлаживаю в студии 4.19. Это самая стабильная версия.
Go to the top of the page
 
+Quote Post
UT2005
сообщение May 4 2016, 12:16
Сообщение #3





Группа: Участник
Сообщений: 9
Регистрация: 22-04-16
Пользователь №: 91 423



Цитата(demiurg1978 @ May 4 2016, 13:54) *
Я все отлаживаю в студии 4.19. Это самая стабильная версия.

Всё-таки не понял - она должна показывать состояния портов ввода-вывода?
P.S. Смотрю и состояния переменных иногда не отображает, пишет Unknown identifier... Мрак.
Go to the top of the page
 
+Quote Post
Ga_ry
сообщение May 4 2016, 12:21
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 494
Регистрация: 23-06-09
Из: Полтава, UA
Пользователь №: 50 579



В проекте указан тип контроллера?
Go to the top of the page
 
+Quote Post
UT2005
сообщение May 4 2016, 14:29
Сообщение #5





Группа: Участник
Сообщений: 9
Регистрация: 22-04-16
Пользователь №: 91 423



Цитата(Ga_ry @ May 4 2016, 15:21) *
В проекте указан тип контроллера?

Да, в самом начале визарда там выбирается моделька контроллера. И в настройках указано, что в качестве программатора/деабгера выступает Simulator.
Эскизы прикрепленных изображений
Прикрепленное изображение
 
Go to the top of the page
 
+Quote Post
AlanDrakes
сообщение May 5 2016, 16:31
Сообщение #6


Частый гость
**

Группа: Участник
Сообщений: 101
Регистрация: 2-05-15
Из: Россия, Омск
Пользователь №: 86 474



Цитата(UT2005 @ May 4 2016, 18:16) *
Всё-таки не понял - она должна показывать состояния портов ввода-вывода?
P.S. Смотрю и состояния переменных иногда не отображает, пишет Unknown identifier... Мрак.


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

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

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

Сообщение отредактировал AlanDrakes - May 5 2016, 16:33
Go to the top of the page
 
+Quote Post
UT2005
сообщение May 5 2016, 17:35
Сообщение #7





Группа: Участник
Сообщений: 9
Регистрация: 22-04-16
Пользователь №: 91 423



Цитата(AlanDrakes @ May 5 2016, 19:31) *
У меня в железе отлаживает (JTAG / ATmega1284P) и видны все порты, регистры и переферия. Студия 5.1


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

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


Go to the top of the page
 
+Quote Post
Smoky
сообщение Sep 10 2016, 07:02
Сообщение #8


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 7-05-10
Из: Оренбург
Пользователь №: 57 135



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


--------------------
Лень, оттвори дверь, сгоришь - а хоть и сгорю, но не оттворю.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 10 2016, 07:55
Сообщение #9


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Smoky @ Sep 10 2016, 10:02) *
Оказалось что при объявлении двух байтной переменной в EEPROM инициализируется только младший байт, старший байт потом приходилось корректировать в ручную.
Где-то ошибка в вашей программе.

QUOTE (Smoky @ Sep 10 2016, 10:02) *
Можно это исправить, или это особенность системы?
Да, можно - написать правильно. Показывайте исходник.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Smoky
сообщение Sep 10 2016, 08:15
Сообщение #10


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 7-05-10
Из: Оренбург
Пользователь №: 57 135



Цитата(Сергей Борщ @ Sep 10 2016, 13:55) *
Где-то ошибка в вашей программе.
Да, можно - написать правильно. Показывайте исходник.


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


--------------------
Лень, оттвори дверь, сгоришь - а хоть и сгорю, но не оттворю.
Go to the top of the page
 
+Quote Post
Smoky
сообщение Sep 10 2016, 12:49
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 7-05-10
Из: Оренбург
Пользователь №: 57 135



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


--------------------
Лень, оттвори дверь, сгоришь - а хоть и сгорю, но не оттворю.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Sep 10 2016, 20:50
Сообщение #12


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Smoky @ Sep 10 2016, 15:49) *
Забыл указать что в реальной памяти EEPROM переменная инициализируется правильно, а в отладчике нет.
Это противоречит вашему вопросу:
QUOTE (Smoky @ Sep 10 2016, 10:02) *
при объявлении двух байтной переменной в EEPROM инициализируется только младший байт
Тогда возможна ошибка в отладчике. Тут я пас.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Smoky
сообщение Sep 15 2016, 12:10
Сообщение #13


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 7-05-10
Из: Оренбург
Пользователь №: 57 135



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


--------------------
Лень, оттвори дверь, сгоришь - а хоть и сгорю, но не оттворю.
Go to the top of the page
 
+Quote Post
Smoky
сообщение Sep 15 2016, 13:51
Сообщение #14


Местный
***

Группа: Свой
Сообщений: 401
Регистрация: 7-05-10
Из: Оренбург
Пользователь №: 57 135



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


--------------------
Лень, оттвори дверь, сгоришь - а хоть и сгорю, но не оттворю.
Go to the top of the page
 
+Quote Post
pavel-pervomaysk
сообщение Sep 16 2016, 05:00
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 253
Регистрация: 28-12-07
Из: Украина г. Первомайск
Пользователь №: 33 716



Нужен ICE 3.
Go to the top of the page
 
+Quote Post

2 страниц V   1 2 >
Reply to this topicStart new topic
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th June 2025 - 19:53
Рейтинг@Mail.ru


Страница сгенерированна за 0.01475 секунд с 7
ELECTRONIX ©2004-2016