Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Подскажите
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
rat
В Low level initialisations для SAM7X есть кусок проги:

////////////////////////////////////////////////////////////////////////////////////////////////////
// Init AIC: assign corresponding handler for each interrupt source
/////////////////////////////////////////////////////////////////////////////////////////////////////
AT91C_BASE_AIC->AIC_SVR[0] = (int) AT91F_Default_FIQ_handler ;
for (i = 1; i < 31; i++) {
AT91C_BASE_AIC->AIC_SVR[i] = (int) AT91F_Default_IRQ_handler ;
}
AT91C_BASE_AIC->AIC_SPU = (unsigned int) AT91F_Spurious_handler;

подскажите пожалуйста, где описаны AT91F_Default_FIQ_handler, AT91F_Default_IRQ_handler и AT91F_Spurious_handler, а то как-то сходу ниасилил. help.gif
zltigo
Цитата(rat @ Jun 4 2007, 11:11) *
где описаны AT91F_Default_FIQ_handler, AT91F_Default_IRQ_handler и AT91F_Spurious_handler, а то как-то сходу ниасилил. help.gif

Ну вопрос. Откуда кто-то может знать где они описаны в неизвестном или неназванном проекте.
Ну воспользуйтесь хотя-бы поиском по имеющимся в Вашем распоряжении (в том числе Ассемблерным) текстам.
rat
Цитата(zltigo @ Jun 4 2007, 15:19) *
Ну вопрос. Откуда кто-то может знать где они описаны в неизвестном или неназванном проекте.
Ну воспользуйтесь хотя-бы поиском по имеющимся в Вашем распоряжении (в том числе Ассемблерным) текстам.


Прошу прощения, я тупо думал, что это общеизвестный пример из атмеловских экзамплов, видимо не угадал smile.gif Только начинаю осваивать АРМы, так что прошу по голове не бить. Пожалуйста, кому не слишком лень, разъясните. Пример examples\Atmel\SAM7XC256\AT91SAM7XBasicTools\compil\SrcIAR\cstartup_sam7.c
Вопрос: где описаны функции AT91F_Default_FIQ_handler, AT91F_Default_IRQ_handler, AT91F_Spurious_handler и, если можно, небольшое разъяснение по ним.
sergeeff
Надо себе уяснить, что это за функции. Они вызываются при ваполненинн исключительных ситуаций (из их названия можно также понять). Что система должна делать при таких ситуациях - дело начальника (программиста). Самое простое - оповестить, что такое неприятное событие произошло. Именно это и сделано в примерах Atmel. В каком либо С модуле пишется функция_ например:

void AT91F_FetchAbort()
{
printf("-F- Prefetch Abort detected\n\r");
while (1);
}
zltigo
Цитата(rat @ Jun 5 2007, 04:58) *
...я тупо думал, что это общеизвестный пример из атмеловских экзамплов, видимо не угадал smile.gif

К чему examples????
Цитата
Пример examples\Atmel\SAM7XC256\AT91SAM7XBasicTools\compil\SrcIAR\cstartup_sam7.c

То, что это примеры к IAR желающий помочь должен догадаться самостоятельно, потратив дополнительное время на поиски. Поискал, посмотрел. Повторяю совет:
Цитата
Ну воспользуйтесь хотя-бы поиском по имеющимся в Вашем распоряжении (в том числе Ассемблерным) текстам.

Воспользовался своим-же советом. Результат в лежащем рядом файле:
examples\Atmel\SAM7XC256\AT91SAM7XBasicTools\compil\SrcIAR\cstartup.s79



Цитата(sergeeff @ Jun 5 2007, 09:25) *
void AT91F_FetchAbort()

Ну, как минимум это должен быть обработчик прерывания гарантировано работающий в ARM Mode а не просто функция.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.