Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Прошу помощи в освоении Blackfin BF 535
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему
Sovetskiy
Здравствуйте, уважаемые разработчики! Я --- новенький!

С нуля осваиваю темы программирования микроконтроллеров и цифровой обработки сигналов на примере 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;")' ?

Прошу прощения за наивность вопроса. Я только-только начинаю разбираться в этой для себя совершенно новой, но красивой, теме и мне до зарезу надо ухватиться за какой-нибудь работающий пример, чтоба от него дальше плясать как от печки.
aaarrr
Дело в том, что после стандартного стартапа процессор уже находится в режиме выполнения IVG15.
Можно спокойно использовать IVG14.
Код
EX_INTERRUPT_HANDLER(int14ISR)
{
    ...
}

int main(void)
{
    sti(cli() | (0x01UL << 14));
    register_handler(ik_ivg14, int14ISR);
    raise_intr(14);
}


У VisualDSP есть весьма подробный хелп, очень рекомендую.
Sovetskiy
Большое спасибо! Ваша подсказка мне здорово помогла.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.