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

 
 
 
Reply to this topicStart new topic
> Прерывание EINT0, Keil, LPC2388, помогите разобраться с начальным кодом
yakub_EZ
сообщение Nov 18 2010, 10:54
Сообщение #1


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

Группа: Свой
Сообщений: 1 329
Регистрация: 6-12-08
Из: Москва
Пользователь №: 42 252



Процессор - LPC2388, но среда Keil мюВижн4
Отрабатываю прерывания. В книге Марина написано, что надо менять строчку в стартап коде у метки необходимого прерывания, приложенных к книге примерах вектор оставлен в неизменном виде. У меня этот пример не компилируется
После компиляции своего кода и запуска в режиме отладки программа успешно проходит инициализацию и как положенно, вылетает в пустой цикл. Далее, в режиме debug, открываю вкладку переферии на Vectored Interrupt Controller, на 14 строчке в EINT0 ставлю галочку в квадратик SoftInt, после чего программа переходт на строку
Код
FIQ_Handler     B       FIQ_Handler
, где останавливается в пустом цикле.
текст программы:
Код
#include <LPC23xx.H>                       /* LPC23xx definitions */


int main (void)
{


  IODIR1 = 0x00FF0000;                     /* P1.16..23 defined as Outputs */
  PINSEL4 = 0x00100000;                      /*   enable EINT0     */

  VICIntSelect =  0x00004000;              /*   enable EINT0     */
  VICIntEnable =  0x00004000;              /*   enable EINT0     */

  IOCLR1 =      0x00FF0000;

  while (1)
   {                             /* Loop forever */
          
  
  }
}

  void FIQ_Handler (void)
{
    IOSET1 =   0x00FF0000;
    EXTINT =   0x00000002;
}


Пробовал добавлять в стартрап в строку метки FIQ_Handler окончание ?A, напротив void FIQ_Handler (void) добавлял __fiq.Не помогает.
Где ошибка, подскажите ?
Go to the top of the page
 
+Quote Post
yakub_EZ
сообщение Nov 18 2010, 19:00
Сообщение #2


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

Группа: Свой
Сообщений: 1 329
Регистрация: 6-12-08
Из: Москва
Пользователь №: 42 252



Нормального решения не нашел. Решил в лоб, вбив в строку вектора адрес
Код
FIQ_Handler     B       0x00000378

Где 0x00000378 адрес строки где находится IOSET1 = 0x00FF0000; который расположен внутри void FIQ_Handler (void). Поиск нормального решения ещё актуален. Почему то конструкция __irq __fiq из старых версий не воспринимается мювижн 4-ой версии
Go to the top of the page
 
+Quote Post
ASZ
сообщение Nov 19 2010, 00:07
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 302
Регистрация: 24-07-06
Из: Донецк, Украина
Пользователь №: 19 042



Цитата(yakub_EZ @ Nov 18 2010, 23:00) *
Нормального решения не нашел. Решил в лоб, вбив в строку вектора адрес
Код
FIQ_Handler     B       0x00000378

Где 0x00000378 адрес строки где находится IOSET1 = 0x00FF0000; который расположен внутри void FIQ_Handler (void). Поиск нормального решения ещё актуален. Почему то конструкция __irq __fiq из старых версий не воспринимается мювижн 4-ой версии

У Мартина коды под CARM. Под RealView MDK они не проходят.
А по теме - в Startup.s нужно сделать следующие изменения:
Код
;
       IMPORT  Your_FIQ_Handler  ;Эквивалент extrn
Reset_Addr      DCD     Reset_Handler
Undef_Addr      DCD     Undef_Handler
SWI_Addr        DCD     SWI_Handler
PAbt_Addr       DCD     PAbt_Handler
DAbt_Addr       DCD     DAbt_Handler
                DCD     0                     ; Reserved Address
IRQ_Addr        DCD     IRQ_Handler
FIQ_Addr        DCD     Your_FIQ_Handler           ;Ваш обработчик
Go to the top of the page
 
+Quote Post
yakub_EZ
сообщение Nov 19 2010, 06:13
Сообщение #4


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

Группа: Свой
Сообщений: 1 329
Регистрация: 6-12-08
Из: Москва
Пользователь №: 42 252



Спасибо, заработало. smile.gif Откуда можно узнать подробности и тонкости именно для RealView MDK?
Go to the top of the page
 
+Quote Post
ASZ
сообщение Nov 19 2010, 11:48
Сообщение #5


Местный
***

Группа: Свой
Сообщений: 302
Регистрация: 24-07-06
Из: Донецк, Украина
Пользователь №: 19 042



Цитата(yakub_EZ @ Nov 19 2010, 10:13) *
Спасибо, заработало. smile.gif Откуда можно узнать подробности и тонкости именно для RealView MDK?

К сожалению, в целом, как у Мартина, нигде. Все по крупицам из appnotes сайта Keil и ARM.
Учтите, что даже в appnotes Keil очень много примеров под CARM, который сейчас не используется.

Удачи! smile.gif
Go to the top of the page
 
+Quote Post

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

 


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


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