Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: #pragma vector вместо cstartup
Форум разработчиков электроники ELECTRONIX.ru > Сайт и форум > В помощь начинающему > Программирование
theBMV
Работаю с LPC21xx в принципе довольно давно.
Работа с прерываниями ограничивается этим:
Код
#pragma vector=0x18
__irq __arm void irq_Handler(void)
{
  void (*interrupt_function)();
  unsigned int vector;

  vector = VICVectAddr;
  interrupt_function = (void(*)())vector;
  (*interrupt_function)();
  VICVectAddr = 0;
}

...и настройкой VIC
Настала необходимость пересесть на LPC1768.
Взглянул на файлы примеров. Там есть некий cstartup.s,
назначение которого, ИМХО,
организовать таблицу векторов прерываний
(т.е. тупо по очереди с 0x0 пишутся константы-адреса функций).

Вопрос: могу ли я отказаться от этого файла
(или вообще я все не так понял и полный нубус)
и использовать #pragma vector для каждого прерывания?
Спасибо.

P.S. да, речь идет про IAR5.40
XVR
Цитата
Там есть некий cstartup.s,
назначение которого, ИМХО,
организовать таблицу векторов прерываний
Не только. Судя по названию - это файл стартапа для С кода. Его назначение (грубо говоря) настроить процессор так, что бы на нем могла исполняться С программа (начиная с main).
Настройка векторов это только одна из многих задач, которые он исполняет. Еще он настраивает стек, heap, протирает нулями область неинициализированныъ переменных и пр.
При необходимости его можно изменить, но выкидывать полностью не рекомендуется smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.