กลับมาทำ STM32

Started by tha, September 05, 2020, 07:39:29 AM

Previous topic - Next topic

dec

ใช่ครับ STM32CubeMX ตัวใหม่ๆ รวมถึง CubIDE ด้วย ต้องใช้ OS 64bit ครับ

OpenOCD เป็น Open Source On-Chip Debugging ครับ มันจะทำหน้าที่เป็น GDB Server ให้ และรันอยู่บนคอมเรานี่แหละ
ไม่ต้องใช้เน็ตแต่อย่างใดครับ

ในปัจจุบันการ Debug ภาษา C เราแทบจะใช้ GDB แทบทั้งสิ้นครับ (ย่อมาจาก GNU Debugger) แต่ก็จะมีการ Custom โปรแกรม
ให้เหมาะกับ environment ต่างๆ กันไป สำหรับใน MCU แล้ว GDB Server จะคอยรับคำสั่งจาก GDB Client แล้วไปสั่งการ MCU ให้หยุด
หรือทำงาน หรืออ่านค่าจาก Memory และ Register ผ่าน JTAG Communication Protocol



ในตอนที่เราสั่งให้ Eclipse เข้า Debug Mode ตัว Eclipse มันก็จะไปเรียก GDB Server (OpenOCD) ขึ้นมาทำงาน
แล้วก็จะเรียก GDB Client (arm-none-eabi-gdb.exe) ขึ้นมาเพื่อสั่งการ GDB Server แล้วก็จะเอา Response ต่างๆ
ที่ GDB Client ได้รับมาแสดงผลให้เราดูบนโปรแกรม Eclipse IDE ครับ

OpenOCD มันก็มีข้อดีตรงที่มันฟรี และมันก็รองรับ MCU กับ JTAG Adapter หลายชนิดมาก
แต่ประสิทธิภาพมันยังเป็นรองพวก GDB Server จากผู้ผลิต JTAG Adapter โดยตรงอย่างมากครับ
ถ้าไม่มีทางเลือกจริงๆ หรือโปรแกรมที่จะ Debug ไม่ซับซ้อนมันก็ใช้ได้ครับ ผมเคยต้อง Debug MicroPython
บน STM32 ด้วย OpenOCD บอกตามตรงว่าอารมณ์เสียมาก

tha

ขอบคุณมากครับ ก็ยังไม่มีงบซื้อโน๊ตบุ็ค 6 bit ตัวใหม่ คงต้องใช้ System Workbench for STM32 ไปก่อน ส่วนการ debug จากประสบการณ์ ผมก็ไม่ค่อยจะได้ใช้ ใช้ไม่ค่อยจะเป็นด้วย ดูไม่ค่อยจะออกด้วย ก็ใช้ OpenOCD โปรแกรมไปก่อนได้ครับ

tha

พอมีอะไรทำเป็นงานอดิเรก ได้มาอีกหนึ่งโปรเจ็ค เป็นโปรแกรมไฟวิ่งของ ETT ก็มาเขียนใส่ลงใน System Workbench for STM32 ได้ ก็ใช้ ST Link ของบอร์ด STM32F0-Discovery มาโปรแกรมให้บอร์ด STM32F103RB ได้ ไม่ยาก





คงจะไม่แปลนะ เพราะตาไปทำต้อกระจกมาแล้ว ตาไม่ดีแล้ว ก็ลองแปลกันเอานะ ผมก็นึกคำไม่ออกก็ต้องใช้กูเกิ้ลแปลเอาด้วยเหมือนกัน ก็ค่อนข้างที่จะแปลถูก คำศัพย์มีไม่กี่ตัวหรอก ลองหัดแปลกันเอา พอนานไปก็จะคล่องเองครับ


tha

การใส่ไฟล์ paltform_config.h ก็สามารถทำได้โดยก๊อปปี้ไฟล์ paltform_config.h แล้ว paste ลงในโฟลเดอร์ inc เพราะเป็นไฟล์ _.h จากนั้นก็คลิ๊กขวาที่โฟลเดอร์ inc แล้วกด refresh ก็เป็นอันว่าไฟล์ paltform_config.h เข้ามาในโปรเจ็คของเราแล้ว จากนั้นก็แก้ใขภายในไฟล์ให้เป็นแบบ HAL เป็นอักเสร็จ ลืมบอกไปอีกจุด ท่านใดเตือนมา ก็ขอขอบคุณครับ ต้องใช้เวลาศึกษา HAL อีกสักหน่อย อ่านศึกษา register ด้วย ก็ยังพอจะจำได้อยู่ แต่ขายหนังสือ STM32 ภาษาไทยไปเสียแล้ว

ก็หา REFERENCE MANUALS มาอ่านกันดู เยอะมาก อย่าท้อนะครับ ค่อยๆแกะไปทีละ peripheral ที่เราใช้เอา ดู registar bit ด้วย
https://www.st.com/en/microcontrollers-microprocessors/stm32f103rb.html#resource

ศึกษา HAL ด้วยนะ พันกว่าหน้านะ ค่อยๆแกะไป คำศัพย์มีไม่มากหรอก อ่านไปก็คงจะคล่องไปเอง ของอะไรมันต้องใช้เวลา
https://www.st.com/resource/en/user_manual/dm00154093-description-of-stm32f1-hal-and-low-layer-drivers-stmicroelectronics.pdf


tha

คราวนี้ถ้าชำนาญแล้วจะทำอะไรก็ได้ ศึกษากันสักหน่อยนะครับ

tha

เรื่องการเอาไฟล์  paltform_config.h เข้าไปในโปรเจ็ค ให้คลิ๊กซ้ายก่อน แล้วจากนั้นก็คลิ๊กขวาที่โฟลเดอร์ inc แล้วกด refresh ก็เป็นอันว่าไฟล์ paltform_config.h เข้ามาในโปรเจ็คของเราแล้ว
ตกการคลิ๊กซ้ายไปจุด ท่านใดแจ้งเตือนมา ก็ขอขอบคุณด้วยครับ