工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 製造プロセス

PortentaH7デュアルコアデバッグ

コンポーネントと消耗品

>
Arduino Portenta H7
× 1
Arduino PortentaH7ブレイクアウトボード
× 1
SeggerJ-Linkデバッグプローブ
× 1
Segger CortexMアダプター
× 1

アプリとオンラインサービス

>
Arduino IDE
Microsoft Visual Studio 2017
Visual Micro

このプロジェクトについて

Arduino Portenta H7は、さまざまな機能と、相互に通信できる2つの別々のコアでコードを実行する機能を備えています。

プロジェクトで問題が発生することがあるため、ここでは、Segger JLinkを使用して、両方のコアで実行されているコードを同時にデバッグする方法を示します。

ハードウェアのセットアップ

Portenta H7をブレークアウトボードに取り付けたら、MIPS20ピンコンバーターを接続してデバッグピンをブレークアウトする必要があります。

次に、下の画像に示すように、コンバーターをSeggerJ-Linkに配線できます。

適切なピッチのコネクタ(0.05 ")がある場合は、2番目の画像に示すように独自のコネクタを配線することもできます。

<図> <図>

ソフトウェアのセットアップ

マシンにArduinoIDEがすでにインストールされていることを前提としています(ここからダウンロードしない場合)。

次に、Visual Studio(2017/2019/2022)とVisual Micro Extensionをインストールします。詳細な手順については、こちらをご覧ください。

また、 Arduino Mbed OSPortentaボード用のボードパッケージをインストールする必要があります Visual Micro Explorerから(またはArduinoIDEのBoardsManagerから)

Zadig.exeツールを使用して、Segger J-Linkのインターフェイス0のUSBドライバーを交換する必要があります(ウォークスルーについては、下部のビデオを参照してください)。

コーディングしましょう!

次に、Portenta Boardのコアごとに1つずつ、個別のプロジェクトを設定する必要があります。添付されているコードは、各コアが異なる色のLEDを点滅させる単純な点滅の例です。デバッグの場合は、VisualStudioの個別のインスタンスに各コアを設定します。

M7コアプロジェクトでbootM4()関数を呼び出して、両方のコアが実行されていることを確認することを忘れないでください。

デバッグ設定:M7コア

M7 Core Sketchを開き、[Debug]> [Hardware]、および[Segger J-Link Debugger]( NOT )を選択します。 「NoOpenOCDバージョン)

<図>

この時点で、M7SketchをビルドしてM7コアにアップロードします。

ソフトウェアのセットアップ:M4コア

スケッチを開き、[デバッグ]> [ハードウェア]、および[Segger J-Linkデバッガー(NoOpenOCD)]を選択します

この時点で、M4SketchをビルドしてM4コアにアップロードします。

デバッガーを起動します

まず、[デバッグ]> [プロセスにアタッチ]を使用して、M7コアスケッチを使用してデバッグを開始します。

次に、[デバッグ]> [プロセスにアタッチ]を使用して、M4コアスケッチを使用してデバッグを開始します。

これで、どちらかのスケッチにブレークポイントを追加して、デバッガーがそのスケッチで停止するのを見ることができるはずです.....各コアが個別に停止/ステップ/続行できるようになります!!

<図>

ウォークスルービデオ

以下のYouTubeで、このプロセスのウォークスルーを参照してください。...

ドキュメント+配線図

ポルテンタブレイクアウトボード

Segger JLink

コード

  • H7M4点滅コード
  • H7M5点滅コード
H7M4点滅コード Arduino
PortentaM4コアで点滅を示すコード
 // PortentaM4コアで点滅を示すコード//リセットを押すかボードに電源を入れるとセットアップ機能が1回実行されますvoidsetup(){//デジタルピン13を出力。 pinMode(LED_BLUE、OUTPUT);} //ループ関数は何度も何度も実行されますforevervoidloop(){digitalWrite(LED_BLUE、HIGH); // LEDをオンにします(HIGHは電圧レベルです)delay(1000); // 2番目のdigitalWrite(LED_BLUE、LOW);を待ちます//電圧をLOWにすることでLEDをオフにしますdelay(1000); // 1秒待ちます} 
H7M5点滅コード Arduino
Portenta M7Coreで点滅を示すコード
 // Portenta M7Coreで点滅を示すコード// resetを押すか、boardvoid setup(){bootM4();を押すと、セットアップ機能が1回実行されます。 //デジタルピン13を出力として初期化します。 pinMode(LED_RED、OUTPUT);} //ループ関数は何度も何度も実行されますforevervoidloop(){digitalWrite(LED_RED、HIGH); // LEDをオンにします(HIGHは電圧レベルです)delay(1000); // 2番目のdigitalWrite(LED_RED、LOW);を待ちます//電圧をLOWにすることでLEDをオフにしますdelay(1000); // 1秒待ちます} 

回路図

ブレイクアウトボードのSWDピンをSeggerJ-Linkに接続する方法

製造プロセス

  1. Arduinoボードは産業用IoTをターゲットにしています
  2. Arduino Spybot
  3. FlickMote
  4. 自家製テレビB-Gone
  5. マスタークロック
  6. Find Me
  7. Arduino Power
  8. Tech-TicTacToe
  9. Arduino Quadruped
  10. Arduinoジョイスティック
  11. CNCマシン