Project

General

Profile

Actions

Wiki » History » Revision 2

« Previous | Revision 2/26 (diff) | Next »
mole lord, 08/23/2020 08:22 AM


Wiki

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

評価ボードの選定

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

エラッタの確認

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

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

開発環境

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

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

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

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

手順

  1. ねむいさんのぶろぐ-Windows10対応軽量シンプルなARMマイコンのGCCビルド環境を構築する(2020年度版) の手順でC:/Devzフォルダを作ります
  2. 他のPCにインストールするとき手間を省くために、C:/Devzをzip圧縮して保存しておきます
  3. あとでeclipseやCubeMXをインストールするための、中身がカラのC:/Dev0フォルダを作ります
  4. (CubeIDE内蔵でなく単体の)STM32CubeMXを動かすために、

基本的に、 GNU MCU Eclipse のサイト https://gnu-mcu-eclipse.github.io/ の右側にある DownloadsやInstallのリンク先の記事に従って環境を構築してみる。
ただし、xPack Managerでコンパイラまで入れるとコンパイラのバージョン管理がしづらくなるので、コンパイラなどはねむいさんのやり方を参考にして、ニコイチする。

まず、ねむいさんとこ http://nemuisan.blog.bai.ne.jp/?eid=188089 と同じディレクトリ構成にする。

そのあと、 https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads から、2020-07-15時点で最新の 9-2020-q2-update をインストールしてみる。

eclipseは https://github.com/gnu-mcu-eclipse/org.eclipse.epp.packages/releases を使う。
20200127-1311-gnumcueclipse-4.7.2-2019-12-R-win32.win32.x86_64.zip を C:/Devz/ARM へ展開。

{{{
C:\Devz
+-ARM
| +-launchpad
| +-eclipse
+-Coreutils
}}}

javaがインストールされていない場合、eclipse.exeを起動しようとするとjavaランタイムが見つからないという趣旨のダイアログが出るだけなので、
https://jdk.java.net/14/ からOPENJDK14をダウンロードして、
C:/Devz/ARM/eclipse/jre/bin/javaw.exe の位置にjavaw.exeがくるように展開する。

ここまでで、eclipse自体は起動するようになる。

https://yukblog.net/gnu-mcu-eclipse-install/ を参考にNode.jsとかも入れる。

Node.jsのインストーラでは、 □Automatically install the necessary ~のチェックはつけなくても大丈夫。

{{{
npm install --global xpm
xpm install -–global @gnu-mcu-eclipse/openocd
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
}}}

https://mergedoc.osdn.jp/ プレアデスはあとまわし

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に成功するようになる。


累計表示回数:304

Updated by mole lord 8 months ago · 2 revisions