皆さん こんにちは STM32マイコン体験実習 セキュリティ編 パート2ですパート2では STM32エルゴマイコンで トラストゾーンを使うための開発環境を準備します演習を始める前に 作業環境を整えます演習で使うツールの STM32 CUBEプログラマと STM32 CUBE MXをインストールしますこれらのツールはJava言語で実装されているため Java実行環境もインストールします演習ではファームウェアのプログラムコードを編集 ビルド 実行する作業があるためSTM32 CUBEエルゴファームウェアパッケージをダウンロードしておきます統合開発環境は IARシステム社の エンベデッドワークベンチフォーアームを使いますこのスライドはJava実行環境の インストールに必要な情報をまとめていますスライドが示すURLから 64ビットバンJava実行環境のバージョン8 アップデート202をダウンロードしますこのバージョン8 アップデート202までは 従来のJava licenseが適用されますSTM32にはオプションバイトと呼ばれる 不気発性設定領域がありSTM32エルゴマイコンのトラストゾーンを有効にするにはオプションバイトの設定を変える必要がありますSTM32 CUBEプログラマーで オプションバイトの設定を変更しますSTM32 CUBE MXを使う演習がありますので インストールしておきますSTM32 CUBE MXは STM32の初期化コード生成ツールですSTM32 CUBEエルゴファームやパッケージを スライドが示すURLからダウンロードしますダウンロードできたら Cドライブに コードという名前のディレクトリーを作りそのディレクトリーにダウンロードした CUBEエルゴファームやパッケージを回答しますSTM32 CUBEエルゴファームやパッケージを 既にSTM32 CUBE MXでダウンロード増みの場合はCube MXのリポジトリーディレクトリーから CUBEエルゴファームやパッケージをCドライブのコードディレクトリーにコピーしてくださいIR-EW-ARMバージョン8.50.1か それ以降のバージョンをインストールしてください評価版ライセンスを使う場合は 期間限定ライセンスを使いくださいコードサイズ限定ライセンスでは トラストゾーン対応ファームエアがビルドできませんBC上の作業環境が準備できたら 次にエルゴマイコン基盤を使うための準備を進めます今回の演習では エルゴマイコンのニュークレオ基盤を使います基盤を使うための準備を始める前に 演習事前準備でパソコン上の作業環境を整えておいてくださいJタグはニュークレオ基盤のオンボードJタグを使いますオンボードJタグへの接続と基盤への電源供給に USB Type-A2 Micro-Bケーブルが一本必要になります基盤とPCをUSBケーブルで接続した後 Windowsデバイスマネージャーで基盤が認識されているか確認します認識されない場合は 何度かPCと基盤を接続し直して様子を見ます改善しない場合は ST-Link USBドライバーを再度インストールしてPCを再起動してからPCと基盤を接続することをお勧めします基盤の接続確認のためCube Programmerを使いますCube Programmerを起動して ターゲットマイコンと接続しますPCと基盤をUSBケーブルでつないだ状態でCube Programmerの右上にある緑色のコネクトボタンをクリックしますターゲットマイコンと接続するとCube Programmerの画面右上の状態がコネクテッドに変化しますCube Programmerの画面左にアイコンが並んでいますアイコンだけでは何の操作なのかよくわからない場合は3本線アイコンをクリックします3本線アイコンをクリックすると左サイドメニューが展開されますCube Programmerを使ってST-Link USBドライバーのインストールがうまくできているか確認します次のページの手順に従ってフルチップイレースを実行しますドライバーのインストールが成功していれば すぐにマイコンの内部フラッシュメモリが消去されますいつまで待っても消去が終わらなかったりエラーが発生して失敗する場合はドライバーのインストールができていない可能性が高いですUSBケーブルを基板に付け直して5秒程度待つ操作を何度か繰り返して改善するか様子を見ます改善しない場合はST-Link USBドライバーをサイドインストールしてパソコンを再起動します再起動後にパソコンと基板を接続し直します左サイドメニューのダウンロードアイコンをクリックしてイレーシング&プログラミング画面を表示しますインターナルフラッシュイレーシングタブを選んでフルチップイレースボタンをクリックしますこのスライドはフルチップイレースが成功した状態を示していますフルチップイレースが成功するとメッセージが表示されるのでOKをクリックしてメッセージウィンドウを閉じますその後Cubeプログラマーの画面右上にあるディスコネクトボタンをクリックして基板との接続を切断しますこのスライドはST-Link USBドライバーのインストールがうまくいっていない状態でフルチップイレースを実行した一例を示していますエラーメッセージが表示され消去操作が失敗していますニュークレオ基板にはマスストレージ機能がありますが今回の演習では邪魔になりますCubeプログラマーのST-Linkファームエア更新機能を使ってマスストレージ機能を無効にしますニュークレオ基板のマスストレージ機能を無効にした理由を説明しますTZENビットが位置でRDPレベル1の時セキュアステート中のJTACアクセスがブロックされセキュアファームエア実行中にJTACアクセスを検知するとSTM30にエルゴマイコンが命令の実行停止します一度この状態になるとパワーオンリセットがかからない限り復帰しませんトラストゾーンが有効でRDPレベル1の時オンボードST-Linkのマスストレージ機能が有効のままUSBケーブルを基板に接続するとこの状態になりJTAC接続ができませんUSBケーブルを基板に接続するとエルゴマイコンだけでなくST-Linkも同時に電源オンになりますSTM30にエルゴマイコンがセキュアファームエアの実行開始し並行してST-Linkはマスストレージ機能実現のためSTM30にエルゴマイコンにJTACアクセスしますマイコンがセキュアファームエアを実行中にそのJTACアクセスを検知しますSTM32エルゴマイコンはセキュアファームエアの実行途中で命令の実行を停止してセキュアステートのままになりますRDPレベル1でセキュアステートの時はJTAC接続ができないため編集録音を実行できません基板とPCをUSBケーブルで接続するとWindows Explorer上にNodeL-55にZEというドライブが表示されますニュークレオ基板のオンボードST-LinkはUSBマスストレージ機能によってマイコンの内部フラッシュメモリをUSBドライブとして扱えるようにしますNodeL-55にZEドライブにSTM32エルゴのファームエアバイナリーファイルをコピーするとエルゴマイコンの内部フラッシュメモリにファームエアを書き込む効果があります今回の演習でマスストレージ機能が邪魔になるケースがあるため無効にしますSTM32キューブプログラマーを起動しますキューブプログラマーの画面右側中段にあるファームエアアップグレードボタンをクリックしますファームエアアップグレードボタンをクリックするとポップアップ画面が表示されますこのポップアップでST-Linkファームエアを書き換える操作を進めますPCと基板をUSBケーブルで接続してリフレッシュデバイスリストボタンをクリックしますリフレッシュデバイスリストがST-Link V2-1になっているか確認しますST-Link V2-1になっていたらオープンインアップデートモードボタンをクリックしますST-Linkにアップデートモードで接続すると現在のST-Linkファームエアの種類やバージョンが表示されますチェンジタイプにチェックを入れてSTM32デバックプラスVCPを選びますアップグレードボタンをクリックしてST-Linkファームエアの書き換えを開始します書き換えが完了すると現在のST-Linkファームエアの種類がSTM32デバックプラスVCPに変化しますここまでできたらST-Linkアップグレード操作画面の右上バス印をクリックしてWindowsを閉じますオンボードST-Linkファームエアを書き換えた後基盤からUSBケーブルを一度外します一度外したUSBケーブルを基盤に付け直してパソコンと接続しますWindowsエクスプローラーでNode L552ZEというドライブが表示されなくなっている価格にします以上でエルゴマイコンのニュークレオ基盤を使うための準備は完了ですパート2でSTM32エルゴの評価ボードを扱う上で必要なツールをインストールし評価ボードを使う準備が完了しました次のステップでトラストドーン対応ファームエアを動かすのに必要な知識とスキルを修得しますパート3に続きますご視聴いただきましてありがとうございました