STM32F103C8T6, FreeRTOS - ошибка vTaskSwitchContext
Запись от locm размещена 16.03.2018 в 22:50
Показов 4994
Комментарии 0
Метки embitz, freertos, stm32, vtaskswitchcontext
При сборке проекта содержащего FreeRTOS компилятором GCC с активной опцией "Link-time optimization" появляется ошибка undefined reference to `vTaskSwitchContext' в функции xPortPendSVHandler файла port.c. Код функции. Кликните здесь для просмотра всего текста
Кроме этой асм. вставки, функция vTaskSwitchContext вызывается еще из одной, находящейся в функции xPortPendSVHandler также из port.c и из кода - функции xPortStartScheduler файла port.c. Там предпринята попытка исправить упомянутую ошибку, поскольку перед вызовом есть комментарий.
Исправить ошибку довольно просто. Нужно найти реализацию функции vTaskSwitchContext (она в файле tasks.c) и сообщить оптимизатору что функция используется добавив __attribute__((used)) перед началом функции.После этого проект нормально собирается. Тестовый проект с одной задачей.
| ||||||||||||||||||||
Метки embitz, freertos, stm32, vtaskswitchcontext
Размещено в Микроконтроллеры
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Всего комментариев 0
Комментарии


