こんにちは、htm32開発エコシステムによる開発実習、高性能マイコン編、デュアルコア独立デルシカーについてお話ししたいと思います。この実習を通して、htm32の開発実習の流れをぜひ体験し、ご活用ください。それでは始めましょう。実習1、デュアルコア独立デルシカー本実習では、M7とM4のコアを独立して動作させて、それぞれでデルシカします。本実習の目的は、htm32QPMXとツールの基本的な使い方を学ぶこと、M7とM4コアのコード生成とプログラミングを学ぶことです。使用する機材は、ヌークレオボードとフォードに実装されているズニッシュメスあたりになります。LEDのLED2とLED3を使用します。では、htm32QPMXを起動してみましょう。まず、初めにQPMXのアップデートセッティングの変更を行います。QPMXのエルプメディを表示し、アップデートセッティングを開きます。ホップアップウィンドウの株になります、データオートリフレッシュの設定をオートリフレッシュから1つ上のノーオートリフレッシュに変更します。もし、インターネットに直接接続されていない企業内ネットワーク等につなげる場合、プロキシーサーバーなどの設定が必要となる場合があります。その場合、先ほど開いたアップデートセッティングウィンドウのコネクションパラメータタブナーにあります。設定メニューを使って、設定することで接続することが可能です。設定後、チェックコネクションのボタンをゴリックしていただき、緑色のグリーンのマークが表示されていればOKです。それでは、実際の指示に入ります。QPMXはプロジェクトを作るのだって3つのプローチがあります。1つ目は、STM32デバイスを性能やペリフェラル、パッケージの種類等のヒルタ機能を使って選択し始める方法です。2つ目は、STM-Microelectronicsが販売しているSTM32評価ボードの中から選択して始める方法です。3つ目は、共合他社のデバイスと比較して、偽能や機能を持つSTM32デバイスを検索し、選択して始める方法です。今回の実習では、1つ目のデバイスを選択して始める方法を使って進めます。QPMXの初期画面から、ニュー・プロジェクトにある3つのボタンのうち、H版上のアクセス2 MCUセレクターをクリックし、ポップアップされたWINと左側のフレーム内にあります。シリーズはSTM32H7、LINEはSTM32H745755、パッケージはLQFP145をそれぞれ選択します。そうすると、右側のフレームにヒルタによって絞られてデバイスの散らみることができます。その中のSTM32H755Ziをダブルクリックします。では、実際に操作してデバイスを選択しましょう。プロジェクト画面が開きます。これより各種ピンの設定を行っていきましょう。PE1のピンを探してクリックします。すると、ポップアップインドがあわれ、PE1に割り当てることができる機能の一覧があわれます。今回、PE1はGPI用出力として使えますので、GPI用アウトプットを選択します。同様に、PB14もGPI用出力に設定します。設定されたピンは緑色に変わります。次に、ピンをQuartex M7M4どちらで使用するかを割り当てます。一覧からピンデザーブ度を選択すると、ピンの割り当てを変更できます。PE1はQuartex M7、PB14はQuartex M4に変更します。設定されたピンは色が変わります。電源の設定をします。RCCのサプライソースをPower Direct SNPSサプライに変更します。続いて、クロックの設定をしていきます。画面上になります。クロックコンフィギュレーションのタブをクリックして開きます。開いた画面では、コアクロックやPLL、ペリフェラルに必要なクロックと、全てのクロック設定がGUI上で行います。赤で囲まれた箇所を400発注にして、エンターチを押します。しばらく時間がかかります。M7コアが400発注メガヘルツに、M4コアが240メガヘルツになります。では、実際に設定変更してみましょう。ここまでで、HTM32 Cube MXショーでの設定は完了です。プロジェクトマネージャータブを選択します。プロジェクトメニューでプロジェクトの設定を行います。まず、初めにプロジェクトの名前を設定します。プロジェクトネームにプロジェクトの名前を設定し、プロジェクトロケーションには、プロジェクトを保存するルートディレクトリーを設定します。ここで、重要な注意点です。プロジェクト名やプロジェクトを保存するボルダのパスに、全角、半角スペース、感じかなままの2ワイト文字を含めてはいけません。使うツールによっては、パスが通らなくなり、プロジェクトをビルトする際に偉いなることが報告されています。デフォルトでは、ビルドに必要ない全てのファイルをプロジェクトフォルダにコピーする設定になっており、プロジェクトを作るたびに、大大な量のファイルが覆生され、PCのストレージを圧迫することになります。そこで、最上段の設定を2番目のコピーオンリンセサリーダイブラリーファイルズに変更し、不必要なファイルのコピーを設定します。これで、初期化コードを生成する準備がすべて整いました。設定してこなかった細かな内容にこもしてましたが、ベッド、CubeMXのユーザーマニュアルとご紹介しますので、後ろ参考にいろいろ試してみてください。画面見行為になります。Generateコードをクリックします。しばらくして、コード生成が完了すると生成されたプロジェクトファイルを設定したツールチェーンで開くか、フォルダを開くか、一旦修理をするかの選択肢を尋ねてきます。EWRMを使って開くので、オープンプロジェクトをクリックして開きます。では、実際にコード生成をしてプロジェクトファイルをEWRMで開いてみましょう。ついきが終わりましたら、ビルドが通ることを確認します。M7とM4の両方でビルドが必要ですので、ワークスペースをそれぞれ切り替えてビルドをします。まず、M7のビルドを行います。ワークスペースからほこびにCM7と記載のある方が選択されていることを確認してください。プロジェクトメニューから全て押さえビルドを実行します。ビルド完了後、エラーやワーリンに行かないことを確認します。次に、ワークスペースをM4に切り替えます。ワークスペースからほこびにCM4と記載のある方を選択します。ワークスペースを切り替えましたらM4のビルドが通ることを確認します。プロジェクトメニューから全て押さえビルドを実行します。ビデオでこれまでの手順を確認したいと思います。エルプメニューからアップデートセッティングをクリックします。アップデートセッティング内のデータオートリフレッシュの項目をNo Auto Refreshに変更します。次に、コネクションパラメータータブを開きます。プロキシー設定を完了しましたらチェックコネクションボタンを押して緑色のチェックマークが表示されることを確認してください。OKボタンを押してください。メイン画面のアクセスとMCUセレクターボタンを押してください。Windowsの左側からシリーズのHTM32H7チェックボックスを有効にしてください。LineのHTM32H745755チェックボックスを有効にしてください。パッケージのLQFP144チェックボックスを有効にしてください。Windowsの右下側からHTM32H755Ziをダブルクリックしてください。メイン画面右側のデバイスのピン選択画面からピンの選択をしていきます。PE1ピンを左クリックしてGPIをアウトブットを選択します。PE1をクリックしてPIN ReservationからCoreTex M7を選択します。PB14ピンを2人クリックしてGPIをアウトブットを選択します。PB14ピンを右クリックしてPIN ReservationからCoreTex M4を選択します。左側のシステムコアのRCCをクリックします。コンフィギュレーションパネルのパラメータセッティングタブからサプライソースをPower Direct SNPSサプライに変更します。次にGlock Configuration画面に移ります。画面真ん中の2CPU1Clockを480に設定します。Clock Wizard Popupが開きましたらOKボタンを押します。Clock設定にしばらく時間がかかります。Clock設定が完了しました。次にProject Manager画面に移ります。Project NameにProject名を設定します。Projectを保存する場所をProject Locationで設定します。ツールチェーンは、今回はEWRを参加しますのでEWRも選択してください。左側のCode Generatorボタンをクリックしてください。上側のHTM32Cube MCUパッケージ図and Embedded Software Paxの項目をCopy On Leader Necessary Library Filesに変更してください。画面右上のGenerate Codeボタンを押してください。Project Managerセッティングポップアップが開いた場合はESボタンを押して必要なライブラリファイルをダウンロードしてください。Warning Save Projectorsポップアップが開いた場合はESボタンを押してください。広告コードとProject FileがCube MXによって自動生成されます。Code Generatorポップアップが開いた場合はOpen Projectを押すとEWRもProject Fileを開いた状態で調整することができます。EWRも開き通したらWorkspaceをCM7に切り替えます。Workspace Windowのコンボボックスから5VにCM7が付いている方を選択してください。Projectメニューからすべて押さえビルドをクリックしてください。Build Window内にEWRワーニングが発生しないことを確認してください。WorkspaceをCM4に切り替えます。Projectメニューからすべて押さえビルドをクリックしてください。Build Window内にEWRワーニングが発生しないことを確認してください。以上でCube MXに乗る構造生成は完了です。デュアルコア独立でL値化を実装するプログラムはそれぞれのコアがバラバラにL値化するソフトです。M7とM4の処理はそれぞれ独立するサタミングでCPUの特徴を繰り返しL値化させます。ここからユーザー処理を通過していきます。STMさんにCube MXで生成したコードにはユーザーコードビギンとユーザーコードエンドの機材がありこのコメントの範囲にユーザーコードを追加していきます。ここで追期されたユーザーコードはサイドCube MXにてコード生成した場合でも保護されます。今回追期する箇所は3箇所となります。まずWorkspaceをM7に切り替えます。Workspaceから5日にCM7と記載のある方を選択します。Workspaceを切り替えましたらM7のメイン.Cを開きます。ユーザーコードビギン3の箇所へGPIOをトグルするコードを追加します。次にWorkspaceをM4に切り替えます。Workspaceから5日にCM4と記載のある方を選択します。Workspaceを切り替えましたらM4のメイン.Cを開きます。ユーザーコードビギン3の箇所へGPIOをトグルするコードを追加します。WorkspaceをM7に切り替えます。Workspaceから5日にCM7と記載のある方を選択します。プロジェクトミニューからメイクをクリックしコンパイルします。WorkspaceをM4に切り替えます。Workspaceから5日にCM4と記載のある方を選択します。プロジェクトミニューからダウンロードしてデバッグまたはツールバージョンのアイコンよりダウンロードしてデバッグをクリックします。ダウンロードが完了するとプロジェクトミニューからメイクをクリックしコンパイルします。M4のコードをプロジェクトダウンロードアクティプのアプリケーションのダウンロードでフラッシュに書き込みます。WorkspaceをM7に切り替えます。Workspaceから5日にCM7と記載のある方を選択します。プロジェクトミニューからダウンロとしてデバッグダウンロードが完了するとデバッグ画面に切り替わります。デバッグメニューから実行で実行します。LD2とLD3が点滅します。それでは実際のボード上でのLDの点滅の様子をご覧ください。LD2とLD3が点滅します。今回のコードではSTM3にQBMXにて生成したハルドライバーを使用しています。使用しているGPIOのハルドライバー関数は次の2つです。HAL GPIOイニット関数GPIOの初期化HAL GPIOトグルピン関数GPIOの生えしたピンを判定です。STM3にQBMXで生成したハルドライバーはドライバーズ、STM3にH7、HALドライバーフォルダーに確認されています。後方に関しては街頭ソースコードのヘッダーまたはユーザーマニュアルUM2217ディスクリプションSTM32H7ハルドライバー2機材があります。デバッグメニューからデバッグの停止をクリックしデバッグモードを修了します。アイルメニューからワークスペースの保存をクリックし保存します。アイルメニューからWMを修了します。STM32QBMXもクローズボタンをして修了します。これで記収書を修了します。ありがとうございました。