Project

General

Profile

Actions

Wiki » History » Revision 4

« Previous | Revision 4/26 (diff) | Next »
mole lord, 08/23/2020 11:34 AM


Wiki

STM32の機能や開発環境についてのまとめです。

評価ボードの選定

展示会のSTMicroブースでタダで配っていたボードでもよいのですが、機能てんこ盛りで2千円台で買えるNUCLEO-F429ZIを選びました。
Ethernet機能とUSBターゲット機能を使うのが目標です。

エラッタの確認

本当はボードを選ぶ前にすべきなのですが、マイコンに深刻なエラッタがあるかどうか確認します。
エラッタシートを読むのにかかる時間は、おかしな挙動に散々悩んだあとエラッタシートで問題を知るまでの時間よりずっと短く済むはずです。

STMicroのF429ZIのページ の リソース のところに エラッタシート があるので、それを見ます。
Standby Modeに関する制限、PA12はGPIO OutputでLowに固定しておくほうがよい、EtherはStore-and-Forward modeで使うべき、などが分かります。

開発環境

DevEnv -- 記述量が多いので別ページへ

STM32CubeIDEは全部入りで楽なのですが、以下の問題があります。

  • ファームウェアライブラリとして最新版しか使えない(CubeMX上で古いファームウェアライブラリを選択できない)
  • ファームウェアライブラリのパスがWindowsのログイン名によって異なり、IDEプロジェクトを他人の環境で再現するのが困難

STMicroのファームウェアライブラリはバージョンが上がると新しいバグが入ることが多く、ライブラリのバージョンが固定できないのは「完成したソフトを半年後にリビルドすると動作しない」原因になります。
そこで、CubeIDEは避け、バージョンの固定ができる下記のような開発環境を考えました。

注:開発PCのOSがWindows10であること前提としています。

手順

基本的に、 GNU MCU Eclipse のサイト の右側にある DownloadsやInstallのリンク先の記事に従っています。
ただし、xPack Managerでコンパイラまで入れるとコンパイラのバージョン管理がしづらくなる欠点があるので、コンパイラに関してはねむいさんの公開している手順を参考にしています。

まずtoolchainとeclipse

  1. ねむいさんのぶろぐ-Windows10対応軽量シンプルなARMマイコンのGCCビルド環境を構築する(2020年度版) の手順に沿ってC:/Devzフォルダを作ります
  2. 他のPCにインストールするとき手間を省くために、C:/Devzをzip圧縮して保存しておきます
  3. あとでeclipseやCubeMXをインストールするための、中身がカラのC:/Dev0フォルダを作ります
  4. GNU MCU Eclipseのリリース物 から、 20200127-1311-gnumcueclipse-4.7.2-2019-12-R-win32.win32.x86_64.zip をダウンロードします
  5. 上記zipを C:/Dev0 に展開します
  6. eclipseを動かすために、https://jdk.java.net/14/ からOPENJDK14をダウンロードして展開し、jdk-14.0.2をjreにリネームして、C:/Dev0/eclipse/ に移動します(C:/Dev0/eclipse/jre/bin/javaw.exeとなるように)
  7. C:/Dev0/eclipse/eclipse.exe をダブルクリックして、起動するか確かめます
    • 起動できたら、この時点では何もする必要はないので、終了させます
    • javaがインストールされていない場合、eclipse.exeを起動しようとするとjavaランタイムが見つからないという趣旨のダイアログが出ます

この時点で以下のようなフォルダ構成になります。

C:/
+-Dev0
| +-eclipse/
+-Devz/
  +-ARM/
  |  +-launchpad/
  +-Coreutils/

eclipse上でJTAG(SerialWire)デバッガを使えるようにする

  1. ゆっきぶろぐ-【丁寧解説】GNU MCU Eclipseのインストール の、XPackのインストールまで終わらせます
    • Node.jsのインストーラでは、 □Automatically install the necessary ~のチェックはつけなくても大丈夫です
  2. コマンドプロンプトで xpm install --global @gnu-mcu-eclipse/openocd します
  3. コマンドプロンプトで xpm install --global @gnu-mcu-eclipse/qemu します

https://yukblog.net/gnu-mcu-eclipse-project/ を参考にして、Eclipse上でCMSIS Packs Managerを初期化する。

CubeMXを使えるようにする

STM32CubeMXを動かすためにOPENJDK8を入れる https://community.st.com/s/question/0D50X0000B8hXhZ/with-windows-10-i-installed-openjdk-version-180222-but-stm32cubemx-does-not-see-that-openjdk-is-there-says-it-can-not-find-java-runtime-environment-the-readme-with-stm32cubemx-said-openjdk-would-work

https://adoptopenjdk.net/

C:\Devz
+-ARM
 |  +-launchpad
 |  +-eclipse
 +-Coreutils
 +-openjdk8

STM32CubeMX
Help - Updater Settings の Firmware Repository を C:/Devz/ARM/CubeRepo に修正。

CubeMXで作ったMakefileプロジェクトをeclipseで取り込んでみる。

ARM Cross GCC を選ぶ

そのままだと プロジェクトをBuildしようとしたときに「Cannot run program "": Launching failed」と出て失敗する。

https://yukblog.net/gnu-mcu-eclipse-project/ にあるように、Settings - Devicesをマイコンに合わせて選ぶとBuildに成功するようになる。

トラブルシューティング

プロジェクトをBuildしようとしたときに「Cannot run program "": Launching failed」と出て失敗する

https://yukblog.net/gnu-mcu-eclipse-project/ にあるように、Settings - Devicesをマイコンに合わせて選ぶとBuildに成功するようになります。


累計表示回数:173

Updated by mole lord 3 months ago · 4 revisions