Project

General

Profile

Actions

Wiki » History » Revision 24

« Previous | Revision 24/26 (diff) | Next »
mole lord, 09/24/2020 02:14 PM


Wiki

STM32の機能や開発環境についてのまとめです。
何らかの機能、たとえば「液晶に絵を表示する」や「ゲームパッドから入力する」を実現することよりも、そういった機能を実現するための、疑う必要のない 堅牢な土台をつくる ことを主眼にしています。

評価ボードの選定

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

エラッタの確認

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

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

開発環境

DevEnv -- GNU MCU Eclipseを使ったビルド環境構築 記述量が多いので別ページへ

TortoiseGitの設定について

このwikiでは gitbucketにてサンプルソースを配布 しています。
Amazon FreeRTOSなどを参照しているため、cloneするときは □再帰的 にチェックを入れてください。

Eclipseのプロジェクト ide_ws1/nuc-f429-blink-afrtos が最新の実験環境で、ほかはあまり保守していません。

改行コードの問題で、TortoiseGitの設定画面で AutoCrLf:false SafeCrLf:false にしておかないと、CubeMXでGenerate Codeしなおしたときに余計なソース差分が検出されることがあって不便です。

クローンする前に、 TortoiseGit-設定 で このユーザの設定を編集(O) して以下のように書き換えておくことを推奨します。

[core]
  autocrlf = false
  safecrlf = false

なお、私(molelord)自身で作ったソースはMITライセンスです。
ただし、gitリポジトリにはSTMicroのツールが自動生成したソースやその他のオープンソースソフトウェアのソースも含めています。
それらは各ソースファイルに書かれた許諾文に従ってご使用ください。

STM32CubeMXについて

CubeMX自体かFWライブラリのバグで、「CubeMXでGenerate Codeしただけで何もいじっていないソースが、ビルドに失敗したり、ビルド成功しても実行中にHardFaultする」 ことがあります。
Generate Codeしたら、まずは何も手を加えずにビルドと実機動作確認をすべきです。
CubeMXは便利ですが、信用してはいけません。

また、よくやってしまうのがUSER CODE BEGIN~ENDでないところにユーザプログラムを書いてGenerate Codeに潰されることですが、これはこまめにソース管理システム(gitなど)に作業状態を記録することである程度ダメージを減らせます。

コーディング規則

私(molelord)自身で作ったソースは、以下の規則に従っています。

モノ 名前 備考
typedef名 ~_td _tは処理系が使うので、それと区別がつきやすいように
グローバル変数 g_~
ファイル変数 l_~ Localのエル

読み物

SerialWireDebug デバッグをするための設定
SettingPll PLL(クロック)の設定
HowToLearning どのように学ぶか(主に、資料の探し方)
UsingFreeRtos FreeRTOSを使う
UsingAmazonFreeRtos AmazonのFreeRTOSを使う
UsingLlDriver Low Layer driverを使う
DetectStackOverflow スタックオーバフローを検出する
ResearchMemory リンカスクリプト、スタック、ヒープを研究する
ModifyMakefile Makefileのvpathの問題を直す、リリースビルド可能に、警告のエラー化
UsingUart Uartを使う
TroubleShooting トラブルシューティング


累計表示回数:98

Updated by mole lord 26 days ago · 24 revisions