前記事では、mbedビルドが違うことでUSBDeviceをインポートしたのちBuildエラーになることを書いたが、mbed.bldにビルドURLを書いてやれば、ビルドコンパイルができるようになる。
mbedビルド
https://os.mbed.com/users/mbed_official/code/mbed/builds
各ビルドをクリックすると、そのURLに飛ぶのだが、buildsの前にスラッシュが余計に入り、error表示が出る
https://os.mbed.com/users/mbed_official/code/mbed//builds/65be27845400/
ダブっているスラッシュを削除してアクセスすれば表示され、そのURLをmbed.bldに貼り付ければ、そのURLでビルドされるようだ。
mbed.hが見つからないProblem
どうも、projectのなかに、compile_commands.jsonというファイルがないからではないかと思える。なんでって、それ以外に違いが見つからないから。。。以前作ったときは、これができているようだった(実際入っているプロジェクトもある。そんなの気にしてなかったから、いつのときできていていつからできないのかわからない)が、いまは、mbedオンラインのインポート機能を使っても、mbed2で新規作成してもできてこない。この中身は、
[
{
"directory": "/home/studio/workspace/Nucleo_F411_os2_test",
"command": "/home/studio/mbed-studio-tools/ac5/bin/armclang -fno-rtti -std=c++98 -D__MBED__=1 -DUSBHOST_OTHER -DUSB_STM_HAL -D__MBED_CMSIS_RTOS_CM -DDEVICE_PORTINOUT=1 -DDEVICE_USTICKER=1 -DDEVICE_FLASH=1 -DTARGET_STM32F4 -DMBED_BUILD_TIMESTAMP=1645504104.795295 -DDEVICE_RTC=1 -DTRANSACTION_QUEUE_SIZE_SPI=2 -DDEVICE_PWMOUT=1 -DTARGET_FF_MORPHO -DDEVICE_SPI=1 -DDEVICE_I2CSLAVE=1 -DTARGET_NUCLEO_F411RE -DTOOLCHAIN_ARM_STD -DDEVICE_PORTIN=1 -DDEVICE_SPI_ASYNCH=1 -DTARGET_CORTEX -DDEVICE_PORTOUT=1 -DTARGET_LIKE_CORTEX_M4 -DTARGET_FF_ARDUINO -DDEVICE_SERIAL_FC=1 -DDEVICE_LPTICKER=1 -DTARGET_STM -DTOOLCHAIN_ARM -DTARGET_DEBUG -DARM_MATH_CM4 -DDEVICE_STDIO_MESSAGES=1 -DDEVICE_ANALOGIN=1 -DTARGET_RTOS_M4_M7 -DDEVICE_INTERRUPTIN=1 -DDEVICE_SPISLAVE=1 -D__CORTEX_M4 -DTARGET_STM32F411RE -DDEVICE_SERIAL_ASYNCH=1 -DTARGET_LIKE_MBED -DTARGET_M4 -DTARGET_CORTEX_M -D__CMSIS_RTOS -DDEVICE_SERIAL=1 -D__FPU_PRESENT=1 -DTARGET_STM32F411xE -DDEVICE_I2C=1 -DDEVICE_I2C_ASYNCH=1 -DTARGET_FAMILY_STM32 -DDEVICE_SLEEP=1 -nostdinc -nostdinc++ -nostdlib -resource-dir /home/studio/mbed-studio-tools/ac5/include -Werror=return-type -fno-signed-zeros -fno-trapping-math -fdenormal-fp-math=preserve-sign -fno-rounding-math -ffinite-math-only -fno-split-dwarf-inlining -fforce-dwarf-frame -ffunction-sections -fdata-sections -fdeclspec -D__ARMCOMPILER_LIBCXX=1 -U__STDCPP_THREADS__ -isystem /home/studio/mbed-studio-tools/ac5/include/arm_linux -isystem /home/studio/mbed-studio-tools/ac5/include/arm_linux_compat -nobuiltininc -c -fgnu -Otime -O0 -g -DMBED_DEBUG -DMBED_TRAP_ERRORS_ENABLED=1 -mcpu=Cortex-M4.fp -std=c99 -D__ASSERT_MSG -fno-rtti -std=c++98 -DMBED_ROM_START=0x8000000 -DMBED_ROM_SIZE=0x80000 -I/home/studio/mbed-studio-tools/ac5/include -I/home/studio/mbed-studio-tools/ac5/include/arm_linux -I. -I../../.. -I../.. -I.. -I. -Imbed -Imbed/TARGET_NUCLEO_F411RE -Imbed/TARGET_NUCLEO_F411RE/TARGET_STM -Imbed/TARGET_NUCLEO_F411RE/TARGET_STM/TARGET_STM32F4 -Imbed/TARGET_NUCLEO_F411RE/TARGET_STM/TARGET_STM32F4/TARGET_NUCLEO_F411RE -Imbed/TARGET_NUCLEO_F411RE/TARGET_STM/TARGET_STM32F4/TARGET_NUCLEO_F411RE/device -Imbed/TARGET_NUCLEO_F411RE/TARGET_STM/TARGET_STM32F4/device -Imbed/drivers -Imbed/hal -Imbed/platform -include BUILD/NUCLEO_F411RE/ARM/mbed_config.h -c main.cpp",
"file": "main.cpp"
},
・・・・同じような記述が延々続く
試しに、空っぽのcompile_commands.jsonを作ってみるが、なんにも変化なし。
compile_commands.json
Keil Cloudがあがったからか、最近、compile_commands.json が生成されるようになったので、この問題は無くなった。このCloud、まだ移行時期なのかいろいろあるようですね。
コメントを追加