Попробовал создать тестовый проект для 1967ВН034 со всеми настройками по умолчанию. Добавил обработчик прерывания, как показано в примерах:
#pragma interrupt static void int_handler() { } int main() { return 0; }
В результате при компиляции появляется следующая ошибка:
... Fatal[0]: INTERNAL ERROR. PLEASE CONTACT TECHNICAL SUPPORT. Abnormal program termination angioscan-make: *** [subdir.mk:17: test2.doj] Error 3 15:21:37 Build Finished (took 1s.590ms) ...
Если убрать строчку #pragma interrupt, то все компилируется успешно.
В чем может быть проблема?
Ответ:
После директивы #pragma interrupt описывается функцию, тело которой пустое. В связи с этим компилятор при сборке проекта просто удаляет её. Необходимо добавить что-нибудь в тело функции, например, инициализацию переменной:
#pragma interrupt static void int_handler() { int a =10; }