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

 
 
> Прошу помощи в освоении Blackfin BF 535, Прошу помощи в освоении Blackfin BF 535
Sovetskiy
сообщение Apr 22 2008, 07:57
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 22-04-08
Пользователь №: 36 984



Здравствуйте, уважаемые разработчики! Я --- новенький!

С нуля осваиваю темы программирования микроконтроллеров и цифровой обработки сигналов на примере Blackfin BF535. В качестве средства программирования имеется VisualDSP++ 4.5. Кита пока нет, поэтому работа процессора у меня эмулируется.

Решил посмотреть как работает обработка прерываний. Для этого делаю обработчик IVG15 и пытаюсь вызвать 15 прерывание командой Raise 15 вот так:

#include <stdio.h>
#include <defBF535.h>
#include <cdefBF535.h>
#include <sys/exception.h>

const char __argv_string[] = "-abc -xyz";

EX_INTERRUPT_HANDLER(int15ISR)
{
int i;
i = 0;
}



void main( int argc, char *argv[] )
{
register_handler(ik_ivg15, int15ISR);
asm("raise 15;");
while(1);
}

.


При пошаговой отладке вижу, что команда Raise 15 не производит "уход" в обработчик. Вероятная причина: прерывание IVG15 не размаскировано и IPEND[4] равен нулю, то есть прерывания глобально запрещены. Пытался по всякому размаскировать 15 прерывание и выставать IPEND[4], но ничего толкового не получилось.

Подскажите пожалуйста:

1) Как добиться обработки прерывания по команде Raise 15?
2) Какой "сишной" функцией можно заменить 'asm("Raise 15;")' ?

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



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

 


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


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