неопределенная ссылка xTaskCreate(), vTaskDelay() на FreeRTOS stm32 с ARM_CM4F

#c

#c

Вопрос:

22:24:01 **** Инкрементная сборка версии конфигурации для проекта FreeRTOS_tutoeial **** Информация: Для сборки используется внутренний конструктор arm-atollic-eabi-gcc -o FreeRTOS_tutoeial.Библиотеки elf STM32F4xx_StdPeriph_Driver src misc.o Библиотеки STM32F4xx_StdPeriph_Driver src stm32f4xx_adc.o Библиотеки STM32F4xx_StdPeriph_Driversrc stm32f4xx_can.o БиблиотекиSTM32F4xx_StdPeriph_Driver src stm32f4xx_crc.o Библиотеки STM32F4xx_StdPeriph_Driversrc stm32f4xx_crypt.o БиблиотекиSTM32F4xx_StdPeriph_Driversrc stm32f4xx_cryp_aes.o Библиотеки STM32F4xx_StdPeriph_Driversrc stm32f4xx_cryp_des.o Библиотеки STM32F4xx_StdPeriph_Driversrc stm32f4xx_cryp_tdes.o БиблиотекиSTM32F4xx_StdPeriph_Driver src stm32f4xx_dac.o БиблиотекиSTM32F4xx_StdPeriph_Driversrc stm32f4xx_dbgmcu.o Библиотеки STM32F4xx_StdPeriph_Driver src stm32f4xx_dcmi.o Библиотеки STM32F4xx_StdPeriph_Driver src stm32f4xx_dma.o БиблиотекиSTM32F4xx_StdPeriph_Driversrc stm32f4xx_exti.o Библиотеки STM32F4xx_StdPeriph_Driver src stm32f4xx_flash.o Библиотеки STM32F4xx_StdPeriph_Driversrc stm32f4xx_fsmc.o Библиотеки STM32F4xx_StdPeriph_Driversrc stm32f4xx_gpio.o БиблиотекиSTM32F4xx_StdPeriph_Driversrc stm32f4xx_hash.o Библиотеки STM32F4xx_StdPeriph_Driversrc stm32f4xx_hash_md5.o Библиотеки STM32F4xx_StdPeriph_Driversrc stm32f4xx_hash_sha1.o БиблиотекиSTM32F4xx_StdPeriph_Driversrc stm32f4xx_i2c.oSTM32F4xx_StdPeriph_Driversrcstm32f4xx_iwdg.o Библиотеки STM32F4xx_StdPeriph_Driver src stm32f4xx_pwr.o Библиотеки STM32F4xx_StdPeriph_Driver src stm32f4xx_rcc.o БиблиотекиSTM32F4xx_StdPeriph_Driversrc stm32f4xx_rng.o Библиотеки STM32F4xx_StdPeriph_Driver src stm32f4xx_rtc.o Библиотеки STM32F4xx_StdPeriph_Driversrc stm32f4xx_sdio.o Библиотеки STM32F4xx_StdPeriph_Driversrc stm32f4xx_spi.o Библиотеки STM32F4xx_StdPeriph_Driversrc stm32f4xx_syscfg.o Библиотеки STM32F4xx_StdPeriph_Driver src stm32f4xx_tim.o Библиотеки STM32F4xx_StdPeriph_Driversrc stm32f4xx_usart.o Библиотеки STM32F4xx_StdPeriph_Driver src stm32f4xx_wwdg.o src main.o src startup_stm32f40xx.o srcstm32f4xx_it.o src системные вызовы.o src system_stm32f4xx.o srctiny_printf.o -mthumb -mcpu=cortex-m4 -T../stm32f4_flash.ld -specs=nosys.specs -static -Wl,-cref,-u, Reset_Handler -Wl,-Map=FreeRTOS_tutoeial.map -Wl,—gc-разделы -Wl,—defsym=malloc_getpagesize_P= 0x80 -Wl,—start-group -lc -lm -Wl,—end-group -specs=nano.specs srcmain.o: В функции mytask1': main.c:(.text.mytask1 0x12): undefined reference to vTaskDelay’ srcmain.o: В библиотеках function main': main.c:(.text.startup.main 0x10): undefined reference to xTaskCreate’ main.c:(.text.startup.main 0x14): неопределенная ссылка на `vTaskStartScheduler’ collect2.exe : ошибка: ld вернул 1 статус выхода

22:24:02 Сборка завершена (заняло 556 мс)

Комментарии:

1. я добавил файл заголовка

2. «FreeRTOS.h», «FreeRTOSConfig.h», «task.h», хотя я проверил значение конфигурации, оно правильное

3. вы связали соответствующую библиотеку?

4. @Chase библиотеки нет.

Ответ №1:

Добавление .h файлов не приводит к добавлению соответствующих .c файлов.

Вам нужно добавить в проект все файлы FreeRTOS .c .

Ответ №2:

В моем случае некоторые файлы FreeRTOS отсутствовали. Итак, я загрузил необходимые файлы из репозитория Github FreeRTOS, и это сработало.