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での使い方を解説します。