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

 
 
> сопоставление вектора и функции обработки
VictorR
сообщение Jan 4 2017, 14:18
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 34
Регистрация: 28-03-05
Пользователь №: 3 738



Здравствуйте, в чем ошибка?

(среда - IAR EWARM 7.10, чип - STM32F103C6)


Код
__irq  void USART1IRQ(void);  //объявляю свою функцию обработки прерывания
//*********
__irq void USART1IRQ(void)
{
......
}
//*********
void main(void)
{
//вписываю адрес функции обработки в соответствующий вектор
  *(unsigned long*)0xd4=(unsigned long)USART1IRQ;    //0xd4 - адрес вектора USART1

  while(1);
}

компилируется без вопросов, но не работает

Сообщение отредактировал IgorKossak - Jan 4 2017, 19:56
Причина редактирования: [codebox] для длинного кода, [code] - для короткого!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
Непомнящий Евген...
сообщение Jan 4 2017, 14:39
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 771
Регистрация: 16-07-07
Из: Волгодонск
Пользователь №: 29 153



Странный код. Вы точно хотите писать адреса обработчиков в рантайме? Если да, то смотрите, как писать флэш в даташите. И кстати возможно будет много проще выделить область в ОЗУ для таблицы векторов и перенастроить туда VTOR...

Если все же нет (как в 99,99% случаев), то вам надо при линковке создать таблицу векторов прерываний и разместить ее по адресу начала флэша. Как это сделать - читайте доку к IAR EWARM, я с ним не сталкивался...
Go to the top of the page
 
+Quote Post
amiller
сообщение Jan 4 2017, 16:18
Сообщение #3


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

Группа: Участник
Сообщений: 176
Регистрация: 20-02-14
Из: Томск
Пользователь №: 80 612



Включите в проект файл "startup_stm32f10x_cl.s" (или другой, если я ошибся с принадлежностью Вашего контроллера этому семейству).
Там все вектора уже объявлены. И посмотрите примеры, идут в комплекте с IAR. Скачайте CMSIS, посмотрите примеры оттуда.
Это если нужно стандартное решение.
Ну а куда может завести Ваш метод, боюсь даже предполагать.
Go to the top of the page
 
+Quote Post

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

 


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


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