Debugging STM32F103C8T6 menggunakan SW4STM32 + OpenOCD + STLINK

Ini adalah bagian keempat mengenai penggunaan SW4STM32. Bagian sebelumnya telah disebutkan di tulisan ini. Setelah sebelumnya berhasil melakukan instalasi SW4STM32, di sini akan diungkapkan catatan mengenai bagaimana mempergunakannya untuk proses debugging.

Untuk kelancaran proses berikutnya; lakukan terlebih dahulu instalasi ST-Link V2 dan OpenOCD. Instalasi perangkat lunak untuk ST-LinkV2 sudah dibahas di tulisan sebelumnya [link].  Untuk OpenOCD pun proses instalasinya umumnya tidak terlalu sulit, terutama untuk sistem berbasis Microsoft Windows. Untuk sistem GNU/Linux setelah mengunduh file instalasinya di link ini, maka lakukan proses berikut:

cd ~/openocd-0.9.0
sudo ./configure
sudo make
sudo make install

Kembali ke SW4STM32:

OCDdebug001Gambar 1. Awal pengaturan untuk debugging.

OCDdebug002Gambar 2.

Jika cara seperti pada Gambar 1 dan Gambar 2 menghasilkan pesan keesalahan, maka cobalah cara seperti Gambar 3.

OCDdebug003Gambar 3.

OCDdebug004Gambar 4. Pada proses debugging untuk pertama kali, diperlukan pengaturan seperti ini.

OCDdebug005Gambar 5.

OCDdebug006Gambar 6.

OCDdebug007Gambar 7. Scroll ke bawah hingga seperti pada Gambar 8.

OCDdebug008Gambar 8.

OCDdebug009Gambar 9.

Selain mempergunakan konfigurasi Ac6, pengguna bisa juga mempergunakan cara debugging lain seperti pada Gambar 10.

OCDdebug010Gambar 10.

OCDdebug011Gambar 11.

OCDdebug012Gambar 12.

OCDdebug013Gambar 13.

OCDdebug014Gambar 14.

OCDdebug015Gambar 15.

Nah sekarang pengguna sudah memilki dua konfigurasi debugging yang siap dipergunakan. Tetapi sebelum melakukan mencoba upaya debugging dengan bantuan OpenOCD + STLINK, perlu dilakukan perubahan kode uji. Gambahkan di bagian endless loop dengan kode uji coba blinking led:

  while (1)
    {
//      HAL_GPIO_TogglePin (LedMerah_GPIO_Port, LedMerah_Pin);
      HAL_GPIO_TogglePin(GPIOC,GPIO_PIN_13);
      HAL_Delay (100);
      /* USER CODE END WHILE */
      /* USER CODE BEGIN 3 */
    }

Hubungkan dongle ST-LINK V2 ke port USB di komputer.

wp-1472023019498.jpegGambar 16.

Lalu aktifkan OpenOCD dengan baris perintah berikut (sesuaikan letak file dengan konfigurasi di komputer pengguna):

$ reset; openocd -f ~/openocd-0.9.0/tcl/interface/stlink-v2.cfg -f ~/openocd-0.9.0/tcl/target/stm32f1x.cfg

Saat aktif OpenOCD pada terminal seperti pada Gambar 17.

OCDdebug016Gambar 17. OpenOCD menunggu koneksi.

Jika nanti dengan konfigurasi standard yang diatur oleh SW4STM32 gagal berfungsi dengan baik, salah satu upaya solusi adalah dengan membuat file konfigurasi baru yang akan diacu oleh setting dalam SW4STM32. Konfigurasi dalam file STM32F103SW.cfg yang perlu diganti (di dalam file lain) adalah: reset_config srst_nogate.

# This is an STM32F103SW board with a single STM32F103C8Tx chip.
# Generated by System Workbench for STM32

source [find interface/stlink-v2.cfg]

set WORKAREASIZE 0x5000
transport select "hla_swd"


source [find target/stm32f1x_stlink.cfg]

# use hardware reset, connect under reset
#reset_config srst_only srst_nogate
reset_config srst_nogate

Jika papan mikrokontroler STM32F103C8T6 tidak dapat diprogram atau di-debug, salah satu cara adalah dengan melakukan erase. Ubah posisi jumper seperti pada Gambar 18.

wp-1472127176031.jpegGambar 18.

Lalu seperti pada Gambar 19 perintah erase dapat dilakukan setelah tombol reset pada papan ditekan dalam keadaan konfigurasi jumper seperti pada Gambar 18.

OCDdebug017Gambar 19. st-flash erase

Ok, sekarang kembali ke Gambar 16, diasumsikan semua kondisi normal dan posisi jumper sudah kembali ke posisi seperti pada gambar. Dilanjutkan pada posisi monitoring seperti pada Gambar 17. Maka proses debugging siap dilakukan dari dalam SW4STM32.

OCDdebug018Gambar 20.

Pada pilihan konfigurasi seperti pada Gambar 20, debugging terkadang dapat saya lakukan tanpa perlu melakukan aktifasi OpenOCD eksternal. Tetapi untuk amannya maka tetap pergunakan OpenOCD eksternal.

OCDdebug019Gambar 21. [Klik gambar untuk memperbesar tampilan]

Hal  yang sama juga diperoleh jika mempergunakan konfigurasi GDB Hardware Debugging.

Berikut adalah video singkat proses uji debugging.

[intense_video video_type=”youtube” video_url=”https://www.youtube.com/watch?v=6MtAfxhhEsE”]

Leave a Comment