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

Пользую KEIL 5.х. Странные вещи творятся.

Есть у меня моя библиотека, в которой есть обработчик void SysTick_Handler(void). Все работает замечательно.

Замутил я тему с SVC_Handler. По-быстрому добился, чего хотел, из удобства пробуя в том же файле, где и SysTick_Handle. Затем решил перенести все, что касается SVC_Handler, в отдельный *.c файл, который, конечно, включил в проект библиотеки. После чего с удивлением обнаружил, что компоновщик не "видит" моё определение SVC_Handler и оставляет слабое. Вернул текст (copy-paste) снова в файл, с которого начинал (где SysTick_Handler определен), все снова заработало.

Я в шоке.

Идеи?
Genadi Zawidowski
включать свою функцию в проектный файл, не в библиотеку.
KnightIgor
Цитата(Genadi Zawidowski @ Apr 27 2014, 11:14) *
включать свою функцию в проектный файл, не в библиотеку.

А в чем разница? SysTick_Handler работает. SVC_Handler тоже, пока в том же файле, где и SysTick_Handler, находится. Все в библиотеке.
Genadi Zawidowski
Цитата(KnightIgor @ Apr 27 2014, 15:14) *
А в чем разница? SysTick_Handler работает. SVC_Handler тоже, пока в том же файле, где и SysTick_Handler, находится. Все в библиотеке.

Если нет возможности узнать, или повлиять на приоритеты, которые линкер использует при поиске функций среди библиотек - предлагаю сделать так, чтобы функция была не в библиотеке, а в обязательно линкуемом файле - файле проекта.
KnightIgor
Цитата(Genadi Zawidowski @ Apr 27 2014, 13:44) *
Если нет возможности узнать, или повлиять на приоритеты, которые линкер использует при поиске функций среди библиотек - предлагаю сделать так, чтобы функция была не в библиотеке, а в обязательно линкуемом файле - файле проекта.

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