Mbed OS导出的项目未在System Workbench上构建

时间:2018-10-31 09:52:45

标签: ide stm32 mbed

我开始在MBED OS上进行开发。我想离线工作。

我将示例“ blinky”应用程序导出到System Workbench IDE。导出的项目不生成。 编译错误非常基本(缺少包含路径):

arm-none-eabi-gcc -mcpu=cortex-m4 -mthumb -mfloat-abi=softfp -mfpu=fpv4-sp-d16 -std=c99 '-DDEVICE_CRC=1' '-DDEVICE_SPI=1' '-DDEVICE_I2C=1' '-D__MBED__=1' '-DDEVICE_I2CSLAVE=1' '-D__FPU_PRESENT=1' '-DDEVICE_PORTOUT=1' -DUSBHOST_OTHER '-DDEVICE_PORTINOUT=1' -DTARGET_RTOS_M4_M7 '-DDEVICE_RTC=1' '-DDEVICE_SERIAL_ASYNCH=1' -D__CMSIS_RTOS '-DDEVICE_ANALOGOUT=1' -DTOOLCHAIN_GCC '-DDEVICE_I2C_ASYNCH=1' -DTARGET_STM32L476xG -DTARGET_CORTEX_M -DTARGET_LIKE_CORTEX_M4 -DTARGET_STM32L476RG -DTARGET_M4 -DTARGET_STM32L4 '-DDEVICE_SPI_ASYNCH=1' '-DDEVICE_LPTICKER=1' '-DDEVICE_PWMOUT=1' '-DDEVICE_INTERRUPTIN=1' -DTARGET_CORTEX -DTARGET_NUCLEO_L476RG '-DTRANSACTION_QUEUE_SIZE_SPI=2' -D__CORTEX_M4 '-DDEVICE_USTICKER=1' '-DDEVICE_STDIO_MESSAGES=1' -DTARGET_FF_MORPHO -DTARGET_FAMILY_STM32 -DTARGET_FF_ARDUINO '-DDEVICE_PORTIN=1' -DTARGET_RELEASE -DTWO_RAM_REGIONS -DTARGET_STM '-DDEVICE_SERIAL_FC=1' '-DMBED_BUILD_TIMESTAMP=1540971180.81' '-DDEVICE_TRNG=1' -DTARGET_LIKE_MBED -D__MBED_CMSIS_RTOS_CM '-DDEVICE_SLEEP=1' -DTOOLCHAIN_GCC_ARM '-DDEVICE_CAN=1' '-DDEVICE_SPISLAVE=1' '-DDEVICE_ANALOGIN=1' '-DDEVICE_SERIAL=1' '-DDEVICE_FLASH=1' -DARM_MATH_CM4 -DMBED_DEBUG '-DMBED_TRAP_ERRORS_ENABLED=1' -DMBED_DEBUG '-DMBED_TRAP_ERRORS_ENABLED=1' -DNDEBUG -DNDEBUG  -includeC:/mbed-os-example-blinky2_sw4stm32_nucleo_l476rg/mbed-os-example-blinky2/mbed_config.h -O2 -funsigned-char -fno-delete-null-pointer-checks -fomit-frame-pointer -fmessage-length=0 -fno-builtin -g3 -Wall -Wextra -Wno-unused-parameter -Wno-missing-field-initializers -ffunction-sections -fdata-sections -c -MMD -MP -MF"mbed-os/features/storage/FEATURE_STORAGE/cfstore/source/configuration_store.d" -MT"mbed-os/features/storage/FEATURE_STORAGE/cfstore/source/configuration_store.o" -o "mbed-os/features/storage/FEATURE_STORAGE/cfstore/source/configuration_store.o" "../mbed-os/features/storage/FEATURE_STORAGE/cfstore/source/configuration_store.c" @"mbed-os/features/storage/FEATURE_STORAGE/cfstore/source/includes.args"
../mbed-os/features/storage/FEATURE_STORAGE/flash-journal/flash-journal-strategy-sequential/strategy.c:18:10: fatal error: flash-journal-strategy-sequential/flash_journal_crc.h: No such file or directory

我有2个问题:

  • 看起来我丢失了某些东西,或者导出功能的成熟度很低。您对此有何反馈?

  • 我试图自己在“项目设置”中添加包含路径,但是它不起作用。而且我注意到,gcc命令行似乎忽略了项目设置,而是使用了include.args文件。唯一的问题是后一个文件不存在。我猜它应该由System Workbench在生成Makefile时生成吗?

PS:IAR的导出项目构建良好。

1 个答案:

答案 0 :(得分:4)

  

您对此有何反馈?

我的反馈是,出口功能的成熟度取决于出口商。正如您提到的,IAR导出器生成了正确的项目文件。

  

我想它应该由System Workbench在生成Makefile时生成吗?

那也是我的印象。根据错误消息,arm-none-eabi-gcc并没有找到includes.args文件,它正在查找的路径比调用它的位置高出一级。这意味着arm-none-eabi-gcc在本身不包含源的目录中被调用。取而代之的是,可能将Makefile设置为从build目录中运行编译器。也许在您的构建目录中找到mbed-os/features/storage/FEATURE_STORAGE/cfstore/source/includes.args

包含路径中似乎缺少../mbed-os/features/storage/FEATURE_STORAGE/flash-journal/mbed-os/features/storage/FEATURE_STORAGE/flash-journal/。它可以解决将该路径添加到包含路径的直接问题。


现在需要一些更一般的建议:

  

我想离线工作。

您尝试过Mbed-CLI吗?

您何时从在线编译器运行导出? 我们会一直修复在线编译器中的错误,同时您可能会遇到一些我们已修复的问题。

从Mbed CLI导出通常更简单,而且贡献者如何测试其导出程序,因此它可能会更好。