Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Proses manufaktur

Debugging Inti Ganda Portenta H7

Komponen dan persediaan

Arduino Portenta H7
× 1
Papan Breakout Arduino Portenta H7
× 1
Segger J-Link Debug Probe
× 1
Adaptor Segger Cortex M
× 1

Aplikasi dan layanan online

Arduino IDE
Microsoft Visual Studio 2017
Mikro Visual

Tentang proyek ini

Arduino Portenta H7 menawarkan berbagai macam fitur, dan kemampuan untuk menjalankan kode Anda pada dua inti terpisah, yang juga dapat berkomunikasi satu sama lain!

Kami semua mengalami masalah dengan proyek kami dari waktu ke waktu, jadi di sini kami menunjukkan bagaimana Anda dapat menggunakan Segger JLink untuk men-debug kode yang berjalan pada kedua inti, pada saat yang sama!

Penyiapan Perangkat Keras

Setelah Portenta H7 Anda terpasang pada papan breakout, Anda perlu menghubungkan konverter 20-pin MIPS Anda untuk melepaskan pin debugging.

Kemudian Anda dapat menghubungkan konverter Anda ke Segger J-Link seperti yang ditunjukkan pada gambar di bawah ini.

Jika Anda memiliki konektor pitch yang tepat (0,05"), Anda juga dapat memasang konektor Anda sendiri seperti yang ditunjukkan pada gambar kedua:

Pengaturan Perangkat Lunak

Kami berasumsi bahwa Anda telah menginstal Arduino IDE di komputer Anda (jika belum unduh di sini).

Kemudian instal Visual Studio (2017/2019/2022), dan Visual Micro Extension, dengan petunjuk lengkap tersedia di sini.

Anda juga perlu menginstal Board Package untuk Arduino Mbed OS Portenta Boards dari Visual Micro Explorer (atau dari Boards Manager di Arduino IDE).

Anda perlu mengganti Driver USB pada Antarmuka 0 Segger J-Link Anda menggunakan alat Zadig.exe (lihat video di bagian bawah untuk panduannya).

Ayo Kode!

Sekarang kita perlu menyiapkan proyek terpisah, satu untuk setiap inti dari Portenta Board kita. Kode terlampir adalah contoh Blink sederhana, di mana setiap inti mengedipkan LED berwarna berbeda. Untuk debugging, siapkan setiap inti dalam instance terpisah dari Visual Studio.

Jangan lupa untuk memastikan Anda memanggil fungsi bootM4() pada proyek M7 Core Anda untuk memastikan kedua inti berjalan.

Pengaturan Debug:M7 Core

Buka M7 Core Sketch Anda dan pilih Debug> Hardware, dan Segger J-Link Debugger (BUKAN "versi NoOpenOCD)

Bangun dan unggah Sketsa M7 Anda ke inti M7 saat ini.

Pengaturan Perangkat Lunak:M4 Core

Buka Sketch Anda dan pilih Debug> Hardware, dan Segger J-Link Debugger (NoOpenOCD)

Bangun dan unggah Sketsa M4 Anda ke inti M4 saat ini.

Mulai Debugger

Pertama, mulai debugging menggunakan sketsa M7 Core dengan menggunakan "Debug> Attach to Process".

Kemudian mulai debugging menggunakan sketsa M4 Core dengan menggunakan "Debug> Attach to Process".

Anda sekarang harus dapat menambahkan breakpoint ke salah satu sketsa, dan melihat debugger berhenti di atasnya..... dengan setiap inti dapat berhenti/melangkah/melanjutkan secara independen!!

Video Panduan

Lihat panduan untuk proses ini di YouTube....

Dokumentasi + Diagram Pengkabelan

Papan Breakout Portenta

Segger JLink

Kode

  • Kode Kedipan H7 M4
  • Kode Kedipan H7 M5
Kode Blink H7 M4Arduino
Kode untuk Mendemonstrasikan Berkedip pada Portenta M4 Core
// Kode untuk Menunjukkan Berkedip pada Portenta M4 Core// fungsi setup berjalan satu kali ketika Anda menekan reset atau menyalakan boardvoid setup() { // menginisialisasi pin digital 13 sebagai keluaran. pinMode(LED_BLUE, OUTPUT);}// fungsi loop berjalan berulang-ulang selamanyavoid loop() { digitalWrite(LED_BLUE, HIGH); // nyalakan LED (TINGGI adalah level tegangan) delay(1000); // tunggu digitalWrite kedua(LED_BLUE, LOW); // matikan LED dengan membuat tegangan LOW delay(1000); // tunggu sebentar}
Kode Blink H7 M5Arduino
Kode untuk Mendemonstrasikan Berkedip pada Portenta M7 Core
// Kode untuk Menunjukkan Berkedip pada Portenta M7 Core// fungsi setup berjalan satu kali ketika Anda menekan reset atau menyalakan boardvoid setup() { bootM4(); // inisialisasi pin digital 13 sebagai output. pinMode(LED_RED, OUTPUT);}// fungsi loop berjalan berulang-ulang selamanyavoid loop() { digitalWrite(LED_RED, HIGH); // nyalakan LED (TINGGI adalah level tegangan) delay(1000); // tunggu digitalWrite kedua(LED_RED, LOW); // matikan LED dengan membuat tegangan LOW delay(1000); // tunggu sebentar}

Skema

Cara menyambungkan pin SWD pada Breakout Board ke Segger J-Link

Proses manufaktur

  1. board Arduino menargetkan IoT industri
  2. Arduino Spybot
  3. FlickMote
  4. TV Buatan Sendiri B-Gone
  5. Jam Master
  6. Temukan Saya
  7. Arduino Power
  8. Tech-TicTacToe
  9. Arduino Quadruped
  10. Arduino Joystick