Eclipse GDB ร่วมกับ OpenOCD

ฉันใช้ eclipse CDT เพื่อสร้างซอฟต์แวร์สำหรับ stm32f0-discovery ฉันใช้ ST-link เพื่อตั้งโปรแกรมคอนโทรลเลอร์นี้โดยใช้ usb

ไม่กี่วันที่ผ่านมา ฉันได้แก้ไขจุดบกพร่องชิปของฉันโดยใช้ OpenOCD6.0.1 ฉันทำตามบทช่วยสอนนี้:

บทช่วยสอนการดีบักเกอร์

หลังจากผ่านไปไม่กี่ชั่วโมง ฉันก็ทำงานได้ โดยสามารถก้าวไปสู่จุดพักการตั้งค่าโปรแกรมของฉันและเครื่องมือแก้ไขข้อบกพร่องอื่นๆ ตามปกติได้ ทีนี้ก็มีเรื่องประหลาดเกิดขึ้น ฉันเริ่มเปลี่ยนการกำหนดค่าจาก -> Monitor Reset Halt เป็น -> Monitor soft_reset_halt ฉันทำสิ่งนี้เพราะในที่สุดฉันก็ต้องการพัฒนาบอร์ดด้วยชิปซีรีส์ stm32f0 ซึ่งฉันสามารถโปรแกรมได้โดยใช้สายเพียงสามสายเท่านั้น (การเขียนโปรแกรม SWD) เนื่องจากฉันไม่สามารถใช้งานได้ ฉันจึงคืนค่าการตั้งค่ากลับไปเพื่อหยุดการรีเซ็ตมอนิเตอร์

วันนี้ฉันต้องการดีบักชิปของฉัน และฉันพบสิ่งต่อไปนี้ เมื่อฉันเริ่มดีบัก eclipse บอกฉันว่าอุปกรณ์ของฉันอยู่ในตัวจัดการการรีเซ็ต (ดูเหมือนว่าจะถูกต้องสำหรับฉันเนื่องจากคำสั่งหยุดการรีเซ็ตจอภาพ) เอาต์พุต openocd ณ จุดนี้ เป็น:

Open On-Chip Debugger 0.6.1 (2012-10-07-10:34)
Licensed under GNU GPL v2
For bug reports, read
    http://openocd.sourceforge.net/doc/doxygen/bugs.html
adapter speed: 1000 kHz
srst_only separate srst_nogate srst_open_drain
Info : clock speed 1000 kHz
Info : stm32f0x.cpu: hardware has 4 breakpoints, 2 watchpoints
Info : accepting 'gdb' connection from 3333
Info : device id = 0x20006440
Info : flash size = 64kbytes
Warn : acknowledgment received, but no packet pending
undefined debug reason 6 - target needs reset
target state: halted
target halted due to debug-request, current mode: Thread 
xPSR: 0xc1000000 pc: 0x0800291c msp: 0x20002000
Info : Padding image section 0 with 4 bytes
target state: halted
target halted due to breakpoint, current mode: Thread 
xPSR: 0x61000000 pc: 0x2000003a msp: 0x20002000
Warn : stepi ignored. GDB will now fetch the register state from the target.

ตอนนี้ ฉันต้องการข้ามตัวจัดการการรีเซ็ตเพื่อเริ่มโปรแกรม จากนั้นฉันจะได้รับคำเตือนนี้:

คำเตือน: stepi ละเว้น GDB จะดึงสถานะการลงทะเบียนจากเป้าหมาย

หลังจาก googling ฉันไม่พบคำตอบว่าอะไรเป็นสาเหตุของสิ่งนี้ ใครบ้างมีเบาะแสในการแก้ปัญหานี้


person Bart Teunissen    schedule 18.01.2013    source แหล่งที่มา


คำตอบ (1)


โอเค ฉันเจออันนี้แล้ว เพราะฉันใช้บอร์ด stm32f0discovery มากกว่าหนึ่งบอร์ด (อันหนึ่งในการทำงานของฉันและอีกอันสำหรับงานอดิเรกที่บ้าน) การกำหนดค่าของบอร์ดแตกต่างกัน ดังนั้นฉันจึงต้องอัพเดตเฟิร์มแวร์ของบอร์ดที่ใช้งานไม่ได้ เฟิร์มแวร์นั้นเก่ากว่า 2 เวอร์ชันจากเวอร์ชันที่ฉันมีที่บ้าน

แก้ไขปัญหา :)

person Bart Teunissen    schedule 18.01.2013