ฉันใช้ 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 ฉันไม่พบคำตอบว่าอะไรเป็นสาเหตุของสิ่งนี้ ใครบ้างมีเบาะแสในการแก้ปัญหานี้