私は RTOS と ARM Cortex MCU の両方に不慣れです。STM32L053 nucleo ボードで FreeRTOS + GCC + mbed.org のライブラリを使用する必要があります。GCC+mbed+qt-creator でツールチェーンを作成できましたが、この組み合わせに FreeRTOS を追加する必要があります。同じターゲットで FreeRTOS を使用するプロジェクトを既に取得しているため、そのプロジェクトの FreeRTOS ファイルを自分のファイルで使用できると想定しています。しかし、そのプロジェクトは、異なるコンパイラとライブラリを使用してビルドされています。私の疑問は次のとおりです。
- 新しいコンパイラ (私の場合は GCC) で既存の FreeRTOS ポートを構成するために考慮すべきことは何ですか。
- mbed ライブラリは FreeRTOS の設定に影響を与えましたか?
- プロジェクトの Makefile に必要な変更は何ですか。(私の既存のプロジェクトの Makefile を以下に示します)
# このファイルは mbed.org によって自動的に生成されました。多くのための 情報、 # http://mbed.org/handbook/Exporting-to-GCC-ARM-Embedded を参照 /mbed/TARGET_NUCLEO_L053R8/TOOLCHAIN_GCC_ARM/stm32l0xx_hal_smartcard.o ./mbed/TARGET_NUCLEO_L053R8/TOOLCHAIN_GCC_ARM/stm32l0xx_hal_i2c.o ./mbed/TARGET_NUCLEO_L053R8/TOOLCHAIN_GCC_ARM/stm32l0 .exhal_INC_I2c.o パス. -I./mbed -I./mbed/TARGET_NUCLEO_L053R8 -I./mbed/TARGET_NUCLEO_L053R8/TOOLCHAIN_GCC_ARM -I./mbed/TARGET_NUCLEO_L053R8/TARGET_STM -I./mbed/TARGET_NUCLEO_L053R8/TARGET_STM/TARGET_STM32L0 -I./mbed/TARGET_NUCLEO_L053R8/TARGET_STM/TARGET_STM32L0/TARGET_NUCLEO_L053R8 LIBRARY_PATHS = -L./mbed/TARGET_NUCLEO_L053R8/TOOLCHAIN_GCC_ARM ライブラリ = -lmbed LINKER_SCRIPT = ./mbed/TARGET_NUCLEO_L053R8/TOOLCHAIN_GCC_ARM/STM32L053X8.ld #################################################### ############################# AS = $(GCC_BIN)arm-none-eabi-as CC = $(GCC_BIN)arm- none-eabi-gcc CPP = $(GCC_BIN)arm-none-eabi-g++ LD = $(GCC_BIN)arm-none-eabi-gcc OBJCOPY = $(GCC_BIN)arm-none-eabi-objcopy OBJDUMP = $(GCC_BIN)arm-none-eabi-objdump SIZE = $(GCC_BIN)arm-none-eabi-サイズ CPU = -mcpu=cortex-m0plus -mthumb CC_FLAGS = $(CPU) -c -g -fno-common -fmessage-length=0 -Wall -fno-exceptions -ffunction-sections -fdata-sections -fomit-frame-pointer -MMD -MP CC_SYMBOLS = -DTARGET_NUCLEO_L053R8 -DTARGET_M0P -DTARGET_CORTEX_M -DTARGET_STM -DTARGET_STM32L0 -DTARGET_STM32L053CCR8 -DTOOLCHAINDT_GCH_PLUS_M0DOOL -DARM_MATH_CM0PLUS -DMBED_BUILD_TIMESTAMP=1435204562.85 -D__MBED__=1 -DTARGET_FF_ARDUINO -DTARGET_FF_MORPHO LD_FLAGS = $(CPU) -Wl,--gc-sections --specs=nano.specs -Wl,--wrap,main -Wl,-Map=$(PROJECT).map,--cref #LD_FLAGS += -u _printf_float -u _scanf_float LD_SYS_LIBS = -lstdc++ -lsupc++ -lm -lc -lgcc -lnosys ifeq ($(DEBUG), 1) CC_FLAGS += -DDEBUG -O0 else CC_FLAGS += -DNDEBUG -Os endif .PHONY: すべてきれいな lst サイズ すべて: $(PROJECT).bin $(PROJECT).hex サイズ クリーン: rm -f $(PROJECT).bin $(PROJECT).elf $(PROJECT).hex $(PROJECT).map $(PROJECT).lst $(OBJECTS) $(DEPS) .so: $(AS) $(CPU) -o $@ $ $@ lst: $(PROJECT).lst サイズ: $(PROJECT).elf $(SIZE) $(PROJECT).elf DEPS = $(OBJECTS:.o=.d) $(SYS_OBJECTS:.o=.d) -$(DEPS) を含める