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

 
 
 
Reply to this topicStart new topic
> Прерывания в STM32F103 с ОС scmRTOS, ...что-то не работают
Alf256
сообщение Jul 21 2010, 17:18
Сообщение #1





Группа: Участник
Сообщений: 10
Регистрация: 13-10-09
Пользователь №: 52 905



Дело было с IAR 5.41. Беру готовый проект 3-Channal и прикручиваю к нему простейшие дрова для обмена по порту USART1 в асинхронном режиме (буквально считать порт и кинуть в переменную). До использования ОС дрова работали прекрасно и всего навсего вводили один байт по прерыванию RX. Все остальные прерывания запрещены. Пытаюсь запустить то же прерывание с ОС и ничего не работает. ось виснет, а обработчик даже не вызывается. Проверил на чистом проекте в симуляторе - обработчик на месте. Какие могут быть косяки? Я юзаю ось 2-3 дня но уже теряюсь в догадках куда улетает прерывание.
P.S. был бы JTAG наверное не спрашивал бы, хотя...
Go to the top of the page
 
+Quote Post
shreck
сообщение Jul 22 2010, 02:01
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 327
Регистрация: 24-06-06
Из: Томск
Пользователь №: 18 328



Код давайте.
Go to the top of the page
 
+Quote Post
igorenja
сообщение Jul 22 2010, 02:30
Сообщение #3


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

Группа: Свой
Сообщений: 130
Регистрация: 8-08-08
Из: Новосибирск
Пользователь №: 39 488



Цитата(Alf256 @ Jul 22 2010, 00:18) *
.....Какие могут быть косяки?....


Вот это читали? Там всё подробно описано о том как оформляется обработчики прерываний
Go to the top of the page
 
+Quote Post
Alf256
сообщение Jul 22 2010, 04:01
Сообщение #4





Группа: Участник
Сообщений: 10
Регистрация: 13-10-09
Пользователь №: 52 905



Это я читал, но наверно не внимательно. Обнаружил что область векторов в загрузочном коде где-то с адреса вектора чуть выше системного таймера (начиная с 40h по EBh) забивается FF. А при компиляции линкер сообщает что не знает что такое __vector_table. Я использовал стандартный набор библиотек в комплекте с иаром только для инициализации. наверно попробую заново создать на базе рабочего примера, постепенно по шагам отслеживая работоспособность - написал ещё не много, а разбираться долго.

Нашёл косяк но не знаю как его теперь исправить.
Я создал вручную копию проекта демки из 1-EventFlag, т.е.скопировал все исходники и вручную поставил такие же опции.
В результате в оригинальном проекте вектора берутся из файла stm32f10x_vector, а в созданном из cstartup_M.
строки мап файла оригинала:

__vector_table 0x08000000 0xec Data Gb stm32f10x_vector.o [1]

и созданного

__vector_table 0x08000000 Data Gb cstartup_M.o [4]

состав проктов одинаковый все файлы нового проекта просто копии - я ничего абсолютно не менял - я так понимаю что где то не указал галку в настройках но не пойму где, вроде опции все полностью аналогичны.
Go to the top of the page
 
+Quote Post

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

 


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


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