STM32G0x性能をフル発揮するアプリケーションのプロトタイプ開発に最適です。※STM32G0xや専用テンプレートの本ブログ関連投稿は、下欄タグ🏷:STM32G0x、または、専用テンプレートをクリックしてください。APIテンプレートも添付します。同一アプリケーションでのLLとHALのリソース使用量、ユーザ記述量、API可読性などを具体的に評価・分析できます。全て評価ボード:Nucleo-G071RB上で動作確認済みです。STM32G0x専用テンプレート適用例SimpleTemplateは、最も簡単なテンプレート適用例で、基本的なSTM32G071RB周辺回路とテンプレート動作が理解できます。12ビットADC制御をSimpleTemplateに追加し、全てのSTM32G0xプロトタイプ開発の起点となるテンプレートです。APIテンプレートを提供します。API利用アプリケーションプロジェクトです。※HAL版はAPI比較評価用です。APIでのみSTM32G0x性能をフルに引き出すことができます。APIを利用したソフトウェア開発を希望される方は、STM32Fxテンプレートの購入をご検討ください。APIアプリケーション開発着手時の障害解消STM32G0x専用テンプレート付属説明資料のもくじを示します。STM32G0x専用テンプレート付属説明資料もくじ説明資料P1~P3は、STM32G0x専用テンプレートサイトから無料ダウンロード可能です。APIが理解でき、STM32G0xデバイス専用アプリケーションのプロトタイプ開発着手時の様々な障害を取り除き、スピード開発するのに専用テンプレートは最適です。STM32G0x専用テンプレートは、コチラの手順でご購入可能です。v5.2.1改版時の注意点2019年5月24日、STM32CubeMXがv5.2.1へ改版されました。インストール時の注意点を示します。Nowクリックのみです。してインストールを実行する必要がありますので注意してください。v5.2.1.Update。インストールは管理者として実行する必要がある。WithHappy2019年5月8日STマイクロエレクトロニクス(以下ST)公式ブログで無償STM32CubeIDEの続報が掲載されました。STM32マンスリー・アップデート2019年5月号のトップページにも掲載中です。STM32CubeMXがビルドインされたST初のIDE:STM32CubeIDE内蔵ツール版数と、ライバルIDEに相当するSW4STM32とTrueSTUDIOの今後を予想します。STM32CubeIDE内蔵ツール版数STM32CubeIDEにビルドインされたツール版数が下記です。FWは、本ブログ対象STM32F0/F1/G0のみ掲載します。ビルドインSTM32CubeMXの使い勝手は、単独STM32CubeMXツールと同じです。1.2.0STM32CubeIDE起動時に各ツール更新がチェックされるので、起動に多少もたつきを感じます。Runに近い機能です。5.2.0以上が必要な点は注意が必要です。1.2.0の検出すらできません。1.2.0が使えます。全てがビルドインされたSTM32CubeIDEなら、このような版数による最新版インストールトラブルが回避できるでしょう。STM32CubeIDEから抜粋したSTM32CubeIDE新機能が上図です。viewは、デバッグがより楽しく容易になる機能だと思います。気になるのは、STM32CubeIDEと同様のコードサイズ制限なし無償IDE、AC6社)SW4STM32と旧Atollic社)TrueSTUDIOの2つのIDEが、今後更新され続けるかです。ブログでは、どちらのIDEユーザに対しても新しいSTM32CubeIDEへの移行を促しているようです。有償のIARとKeilのIDEに対しては、これまで通りです。1.2.0未対応です(関連投稿:TrueSTUDIOとSTM32CubeMXインストール方法の手順4参照)。SW4STM32は、最新デバイスをフォロー中ですが、近い将来、TrueSTUDIOと同じ運命、つまり、ツール改版への遅れや最新MCUへ対応しない可能性があります。2017年末にSTに買収されたAtollicのIDE開発力が、新しいST純正STM32CubeIDE開発へ使われたとすると、現行のTrueSTUDIOが最新STM32G0xデバイスに未対応なのも納得がいきます。いわゆるデスコン(Discontinue)の前兆です。既成SW4STM32プロジェクトやTrueSTUDIOプロジェクトに対しては、STM32CubeIDEマイグレーションツール(UM2579など)がSTM32CubeIDE初期画面に用意されています。既成プロジェクトは、そのままSTM32CubeIDEで開くことはできず、また、一旦マイグレーションすると、元のSW4STM32プロジェクトへは戻せません。このため、UM2579では、既成プロジェクトをバックアップ後、マイグレーションすることを明記しています。Debug機能でデバッグも面白くなりそうです。1.0.0は日本語対応がイマイチです。この点が改良されればSW4STM32からのマイグレーションを検討する予定です。API利用法第1回から本稿まで全体をまとめます。API利用法第1回、第2回は、リンク先参照。Settingsの赤囲みの部分のみです。デフォルトは全てHALです。これを、HALからLLへ周辺回路毎に変更します。API利用時の設定箇所。デフォルトはHALなので全てLLへの変更必要。第2回で説明したように、LLとHALの混在利用は避けた方が無難です。各周辺回路で両者の選択ができますが、HALかLLの二者択一をお勧めします。デフォルトHALです。APIアプリケーション開発時は、注意してください。Reportがありますが、v5.1.0ではLL/HAL設定値は未出力です。API利用時に比べ多いです。API割込み処理のユーザ追記箇所は、関連投稿:STM32CubeMX生成ファイルのユーザ処理追記箇所を参照してください。第1回で示したAN5110で説明します。Examples_LLサンプルプロジェクト、EXIT_ToggleLedOnIT_Init.iocのNVIC設定が下図です。このプロジェクトは、評価ボードのUserButtonを押すと割込みが発生しLED4がトグル点滅します。NVICのユーザ追記箇所が赤囲みです。CODEをクリックすると、stm32g0xx_it.cのL149~L166にEXIT4_15_IRQHandler(void)が自動生成されます。stm32g0xx_it.cのL160のUserButton_Callback()は、ユーザが追記したCallback関数です。main.hのL71で、このUserButton_Callback(void)は、ユーザが宣言します。main.cのL209~L212で、UserButton_Callback(void)は、ユーザがCallback関数の中身を記述します。自動生成されたファイル名(橙色)、ユーザ追記位置(緑色)、ユーザ追記コード(赤色)STM32CubeMXは、IRQハンドラ関数の割込み発生原因:トリガ検出部分を生成するのみです。*/」で囲まれた3ファイル指定場所に追記します。CODEをクリックしても上書きされ残ります。本章は、NVIC利用時のユーザ追記箇所を示しました。これらは、ADCなどの一般的な周辺回路利用時のユーザ追記箇所とは大きく異なります。※一般的な周辺回路のユーザ追記箇所は、ADCを例に説明します。STM32CubeMXが生成したソースコードの「どこに、何を、ユーザが追記すべきか」は、生成ソースコード理解が必要です。これには、公式サンプルプロジェクトソースコードの理解が役立ちます。※これも、ADC例を使って、ソースコード理解方法を説明します。APIを安全に利用できると思います。上記まとめで少し気になるのは、安全側評価で「異なる周辺回路でもLLとHAL混在は避けた方が無難」とした点です。本当に異なる周辺回路で混在利用はできないでしょうか?周辺回路が異なれば、LLがアクセスするハードウェアも当然異なり、競合は無いハズです。API利用でも競合問題はなさそうです。API利用者が、アプリケーションレベルでレジスタ競合などが無いことを確認できれば、「自己責任で異なる周辺回路なら混在可能」だと思います。これを行うには、LLやHALの深い部分まで解読、競合調査が必要です。AN5110のExamples_MIXサンプルプロジェクトで示された、HALの一部をLLへ置換え、処理高速化を狙う例に止めた方が良さそうです。API利用法をまとめました。APIを使うと、MCUハードウェア性能を活かし、少ない容量で高性能アプリケーション開発ができます。APIに比べ低下します。APIは、トレードオフの関係です。LLかHAL、どちらのAPIでソフトウェア開発するかは、このトレードオフ評価で決めます。API開発に値するデバイスだと思います。APIを使い専用テンプレートとして開発します。APIでの使い方を解説します。WithHappySTマイクロエレクトロニクス(以下STM)公式ブログのカテゴリ:TutorialsからSTM32開発環境を構築する方に最適な投稿を見つけたので、紹介と気になる点を示します。program2018年10月8日が投稿日のこの記事は、STM32の開発環境(IDE)構築から評価ボード、UART接続、IoT評価ボードとスマホ接続などを5つのStepで示しています。内容は、前後半の2つに大別できます。前半は、Step1(45分)で開発環境を構築し、Step2(30分)でSTM32CubeMXとHAL説明、Step3(34分)で評価ボード(NUCLEO-L476RG)とUART利用のPC通信を紹介するなど、内容は、弊社昨年のブログ投稿の最新版と言えます。(B-L475E-IOT01A)(DigiKeyにて¥6,370販売中)の使い方、Step5(30分)でAndroidスマホと同評価ボードをBLEで直結し、IoTシステムを構築しています。IoT評価ボードは、Cortex-M4(915MHzまたは868MHz)を使い、Arduinoコネクタ、モーション、ジェスチャ、環境センサなどが実装済みなので、スマホで取得センサデータを視覚化できます。サービス)経由でも接続できるので、本格的なIoTノード開発・評価にも使えそうです。AWSとの接続方法は、コチラの動画(11分12秒)に解説されています。※動画閲覧にはログインが必要です。気になる点1:TrueSTUDIOSTMは、2017年12月に統合開発環境TrueSTUDIO開発元のAtollic社を買収しました。その結果、無償IDEのラインナップは従来と同じですが、開発会社の説明が変化しました。関連投稿:2018マイコンベンダ最新ニュースのSTM章参照STM32ソフトウェア開発スイート(要ログイン)のページで説明します。typeでフィルタすると、無償版IDEラインナップが表示されます。ST”の記述があります。これが気になる点です。