Ubuntu 16.04でeclipseが異常にCPUを占有する
Nucleo-F303 mbedプロジェクトのローカルビルド
Nucleo-F303はmbed開発環境が利用できてブレボに刺さるSTM32マイコンボードという優れモノです。
ひとついただけないのは、mbed環境というのがオンラインIDEであることです…。
そこでローカルビルド環境を模索してみました。
いくつか試しましたが、結局EmBitz(https://www.embitz.org/)に落ち着きました。
mbedからEmBlocks(EmBitzの前身)向けにエクスポートし、EmBitzでインポートします。
そのままビルドすると、こんな警告がでてelfファイルが生成されません。
linker input file unused because linking not done
リンカオプションをいじる必要があります。
Build optionsのLinker settingsタブのLinker Flags - Othersのボックスの1行目にある-cを削除します。
また、Nucleo-F303の場合は、Serialクラスを使うとなぜかWWDG_IRQHandlerにハマるので、RawSerialクラスを使用します。
mbedのオンラインコンパイラは時々応答しなくなることがあったので、これでようやく安心して開発できるようになりました!
SW4STM32でF3のSPLがロードできない問題
System Workbench for STM32(以下SW4STM32)でSTM32F3のプロジェクトを作成する際、Standard Peripheral Library(以下SPL)が利用できないという問題があります。
具体的にはこんなエラーです。
Internal Error: http://www.st.com/resource/en/firmware/stm32f30x_dsp_stdperiph_lib_v123%2ezip
いわゆるリンク切れです。
このウィザードを使わなくとも、SPLをダウンロードして然るべき場所に置けばSW4STM32が読み込んでくれるはずです。
SPLを手動でダウンロードします。
"en.stm32f30x_dsp_stdperiph_lib.zip"というファイルがダウンロードできると思います。
このzipファイルを"stm32f30x_dsp_stdperiph_lib_v123.zip"にリネームし次の場所に配置します。
C:\Users\(ユーザ名)\AppData\Roaming\Ac6\SW4STM32\firmwares
さらにその場で展開し、"STM32F30x_DSP_StdPeriph_Lib_V1.2.3"フォルダが作成されるのを確認します。
あとはSW4STM32が認識してくれるようになります。