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

 
 
> AVR Studio 4.18 xmega32A4 проблема при симуляции UART, Не выставляется флаг RXCIF
TriD
сообщение Feb 25 2010, 17:23
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 252
Регистрация: 29-12-04
Пользователь №: 1 728



Приветствую всех!

При симуляции проекта на базе ATmega32A4 в AVR Studio 4.18 build 692 (на данный момент последняя доступная версия) не могу выставить флаг RXCIF в соответствующем регистре управления, кликая по нему мышкой, для имитации приема байта по СОМ-порту. Это мой первый проект, в котором используется симулятор версии 2. В симуляторе первой версии такой проблемы не было.
Проект написан на Си в самой студии, компилятор WinAvr.

ПС: Заранее хочу извиниться, если ответ на подобный вопрос уже где-то был. Поиском не нашел.
Go to the top of the page
 
+Quote Post
2 страниц V   1 2 >  
Start new topic
Ответов (1 - 14)
TriD
сообщение Feb 27 2010, 08:59
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 252
Регистрация: 29-12-04
Пользователь №: 1 728



Неужели все пользуются эмуляторами и никто с такой проблемой не сталкивался? Или проблема только у меня?
Go to the top of the page
 
+Quote Post
GDI
сообщение Feb 27 2010, 10:05
Сообщение #3


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



А вы выполнение программы останавливаете, когда пытаетесь значение бита поменять?


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
TriD
сообщение Feb 27 2010, 10:43
Сообщение #4


Местный
***

Группа: Свой
Сообщений: 252
Регистрация: 29-12-04
Пользователь №: 1 728



Останавливаю, конечно. smile.gif
Для получения этого эффекта не нужно писать ничего сложного, просто можно создать проект на ассемблере на базе xmega с одним бесконечным циклом. Запустить в пошаговом исполнении и попробовать выставить флаг RXCIF (кстати, проблема не только с этим флагом, а, как я понял, и с любым другим, который по жизни считается "только для чтения"). Для хмеги128 флаг это выставить можно, но он автоматически сбрасывается на следующем шаге, для хмеги32 этот флаг выставить просто нельзя (ну, или он сразу же сбрасывается).
Вроде как вышла уже новая версия студии (или очередной сервиспак), вот только на сайте ее еще нет.
Go to the top of the page
 
+Quote Post
WHALE
сообщение Feb 27 2010, 11:13
Сообщение #5


Знающий
****

Группа: Свой
Сообщений: 902
Регистрация: 2-01-06
Из: Краснодар
Пользователь №: 12 768



Есть здесь , но в Release notes ничего о багофиксах симуляции хмег нет...


--------------------
"Hello, word!" - 17 errors 56 warnings
Go to the top of the page
 
+Quote Post
TriD
сообщение Feb 27 2010, 11:37
Сообщение #6


Местный
***

Группа: Свой
Сообщений: 252
Регистрация: 29-12-04
Пользователь №: 1 728



Ерраты все излазил, тоже ничего не нашел. Возможно, что периферию надо теперь симулировать как-то по другому? Еще пробовал через создание симуляционного файла (в хелпе есть пример для АЦП), тоже ничего не получилось.
Может быть может кто-нибудь сымитировать это у себя?
Go to the top of the page
 
+Quote Post
SysRq
сообщение Feb 27 2010, 17:33
Сообщение #7


Чайник, 1 литр
****

Группа: Свой
Сообщений: 655
Регистрация: 17-05-06
Из: Moscow
Пользователь №: 17 168



Цитата(TriD @ Feb 27 2010, 14:37) *
Может быть может кто-нибудь сымитировать это у себя?
Флаг поставить не выходит: если программа выполняется, флаги даже не отображаются; если программа на паузе, то флаг не ставится (ставлю, и тут же он сбрасывается без эффекта).
Наверное, и правда стоит попробовать stimuli-файл, сгенерив правильный сигнал для RXD, и подав его на ногу RXD unsure.gif Тоже попробую, пригодится..
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Feb 28 2010, 07:20
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



У меня возникает проблема с симуляцией WDT на at90can128.
Правда разбираться не стал. Я симулятором практически не пользуюсь. Так иногда когда совсем пустяк какой.
Go to the top of the page
 
+Quote Post
TriD
сообщение Mar 1 2010, 13:57
Сообщение #9


Местный
***

Группа: Свой
Сообщений: 252
Регистрация: 29-12-04
Пользователь №: 1 728



Судя по всему это косяк самой студии.... что-то программисты там перемудрили (на форуме http://www.avrfreaks.net ничего внятного тоже не сказали). Проблему, конечно, можно обойти в процессе отладки используя, например, какое-нибудь прерывание от таймера. Буду ждать 5-у версию, может, там поправят.
Go to the top of the page
 
+Quote Post
V_G
сообщение Mar 2 2010, 00:01
Сообщение #10


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Симуляция флага RXCIF идет корректно, ведь он же Read-Only!
Другое дело, в симуляторе должны быть средства моделирования прихода данных на последовательный интерфейс. Ведь и UDR не выставишь, на запись он работает на передатчик!
Go to the top of the page
 
+Quote Post
Zlumd
сообщение Mar 2 2010, 02:12
Сообщение #11


Местный
***

Группа: Свой
Сообщений: 327
Регистрация: 12-04-05
Из: Новосибирск
Пользователь №: 4 057



Все так и должно быть. При записи во флаг нуля он не меняется. При записи единицы он сбрасывается. Так что выставить его никак нельзя. Его может установить только модуль UART.
Go to the top of the page
 
+Quote Post
TriD
сообщение Mar 2 2010, 14:41
Сообщение #12


Местный
***

Группа: Свой
Сообщений: 252
Регистрация: 29-12-04
Пользователь №: 1 728



Для V_G и Zlumd
Ребят, вы хотя бы студию хоть раз запускали?
Для проектов, в которых используется симулятор версии 1, все флаги прекрасно симулируются. Проблема только в симуляторе версии 2.
Go to the top of the page
 
+Quote Post
GDI
сообщение Mar 2 2010, 14:58
Сообщение #13


Профессионал
*****

Группа: Свой
Сообщений: 1 235
Регистрация: 14-05-05
Из: Санкт-Петербург
Пользователь №: 5 008



Цитата(V_G @ Mar 2 2010, 03:01) *
Ведь и UDR не выставишь, на запись он работает на передатчик!
А зачем его симулировать? Можно просто записать якобы принятые данные в переменную, в которую вы этот регистр читаете в вашей программе. Или сделать такую переменную, если в коде вы прямо сравниваете значение UDR с константой.


--------------------
http://www.embedders.org Блоги разработчиков электроники.
Go to the top of the page
 
+Quote Post
V_G
сообщение Mar 3 2010, 00:42
Сообщение #14


Профессионал
*****

Группа: Свой
Сообщений: 1 818
Регистрация: 15-10-09
Из: Владивосток
Пользователь №: 52 955



Цитата(TriD @ Mar 3 2010, 00:41) *
Для V_G и Zlumd
Ребят, вы хотя бы студию хоть раз запускали?
Для проектов, в которых используется симулятор версии 1, все флаги прекрасно симулируются. Проблема только в симуляторе версии 2.

Я студию запускаю почти каждый день последние лет 10, а вот симулятор - раз в 2 месяца, бо Эмулятора более чем достаточно.
Речь об идеологии симулятора. Лично я считаю более корректной идеологию версии 2. Если флаг Read-Only, нефиг в него лазить. Некорректное дергание флагов, написание специального кода именно для эмулятора (касается UDR) - несерьезно.
Просто, повторюсь, надо бы в Студии кнопочку завести, по нажатию на которую уйдет заданный байт (или файл) в компорт эмулируемого проца. Это было бы корректнее всего.

Сообщение отредактировал V_G - Mar 3 2010, 00:47
Go to the top of the page
 
+Quote Post
TriD
сообщение Mar 3 2010, 12:56
Сообщение #15


Местный
***

Группа: Свой
Сообщений: 252
Регистрация: 29-12-04
Пользователь №: 1 728



Цитата(V_G @ Mar 3 2010, 03:42) *
Я студию запускаю почти каждый день последние лет 10, а вот симулятор - раз в 2 месяца, бо Эмулятора более чем достаточно.
Речь об идеологии симулятора. Лично я считаю более корректной идеологию версии 2. Если флаг Read-Only, нефиг в него лазить. Некорректное дергание флагов, написание специального кода именно для эмулятора (касается UDR) - несерьезно.
Просто, повторюсь, надо бы в Студии кнопочку завести, по нажатию на которую уйдет заданный байт (или файл) в компорт эмулируемого проца. Это было бы корректнее всего.


Ваша точка зрения обусловлена тем, что симулятором вы не пользуетесь.
ИМХО, в симуляторе должна быть возможность симулировать любое состояние любой доступной периферии (собственно, такая возможность и остается до сих пор в версии 1). Отдельные кнопочки для симуляции какой-то конкретной периферии это лишне - все можно симулировать установкой/сбросом соответствующих флагов и записью значений в переменные.
Столь не приятное ограничение в версии 2 либо баг, либо Атмел решел, что они маловато продают эмуляторов.... В этом году выйдет пятая студия, посмотрим, что будет там.
Я несколько удивлен, что так мало народу пользуется симулятором при отладке программы... или используют старый симулятор. Хотя, новый симулятор, в общем то, реально нужен только при разработке проектов на базе новых чипов, таких как xmega.
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 25th July 2025 - 09:12
Рейтинг@Mail.ru


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