Sam3S+openocd+gdb+GPNVM1 = Hardfault

Gast #3724648
Lesenswert?

Hi,

ich habe vor, einen ATmel SAM3S Cortex M3 mit Openocd zu debuggen und zu 
programmieren. Ziel soll es sein, das Board nicht mit SAM-BA 
programmieren zu müssen. Damit das geflashte Programm läuft, muss das 
Flag GPNVM1 gesetzt sein.

Wenn es nicht gesetzt ist, kann ich das Programm über OpenOCD laden und 
ohne Probleme debuggen.

Ist es gesetzt, kann ich den Chip zwar flashen, aber der Debugger hängt 
sofort im Hardfault-handler. Nach einem Reset durch Power Off/On und 
ohne dass GDB auf den Chip will, startet das neu geflashte Programm ohne 
Probleme.
1
target remote localhost:3333
2
0x004033d4 in ResetException () at lowlevel/board_cstartup_gnu.c:137
3
137      LowLevelInit() ;
4
monitor sleep 500
5
monitor halt
6
monitor poll
7
monitor gdb_breakpoint_override soft
8
set mem inaccessible-by-default off
9
tbreak main
10
Temporary breakpoint 1 at 0x401186: file main.c, line 230.
11
continue
12
Note: automatically using hardware breakpoints for read-only addresses.
13

14
Program received signal SIGINT, Interrupt.
15
0x0040373a in HardFault_Handler () at libraries/libchip_sam3s/source/exceptions.c:112
16
112      __asm volatile

Hat jemand eine Idee, was ich tun kann, damit ich auch ein aus dem Flash 
startendes Programm debuggen kann?

Mit freundlichen Grüßen,

Arne
Gast #3724812
Lesenswert?

Hi Jim,

ich benutze OpenOCD 0.60

ich bekommen jetzt folgendes log:
1
ResetException () at lowlevel/board_cstartup_gnu.c:133
2
133  {
3
monitor reset init
4
monitor sleep 500
5
monitor halt
6
set mem inaccessible-by-default off
7
load C:\\Users\\ark\\entwicklung\\eclipse_workspace\\CrystalAnalyzer_revA\\flash.elf 
8
Loading section .text, size 0xb440 lma 0x400000
9
Loading section .relocate, size 0x8a0 lma 0x40b440
10
Start address 0x4033d1, load size 48352
11
Transfer rate: 11 KB/sec, 12088 bytes/write.
12
continue
13

14
Program received signal SIGINT, Interrupt.
15
0x0040373a in HardFault_Handler () at libraries/libchip_sam3s/source/exceptions.c:112
16
112      __asm volatile
Das Problem besteht weiter noch. Bei Eclipse weiß ich nicht wir ich aus 
einem tbreak ein thbreak machen soll. Ich habe den Haken bei 
Breakpoint@main einfach mal gelöscht.

Hat noch jemand eine Idee?

Viele Grüße,

Arne
Gast #3724867
Lesenswert?

Das ist übrigens das, was mein OpenOCD sagt, wenn er den Chip über GDB 
programmieren soll und das GPNVM gesetzt ist.

OpenOCD:
1
Info : accepting 'gdb' connection from 3333
2
Info : JTAG tap: sam3.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00
3
, ver: 0x4)
4
target state: halted
5
target halted due to debug-request, current mode: Thread
6
xPSR: 0x01000000 pc: 0x004033d4 msp: 0x2000bffc
7
Warn : acknowledgment received, but no packet pending
8
sam3-gpnvm0: 0
9
sam3-gpnvm1: 1
10
Info : JTAG tap: sam3.cpu tap/device found: 0x4ba00477 (mfg: 0x23b, part: 0xba00
11
, ver: 0x4)
12
target state: halted
13
target halted due to debug-request, current mode: Thread
14
xPSR: 0x01000000 pc: 0x37363238 msp: 0x50323120
15
background polling: on
16
TAP: sam3.cpu (enabled)
17
target state: halted
18
target halted due to debug-request, current mode: Thread
19
xPSR: 0x01000000 pc: 0x37363238 msp: 0x50323120
20
Info : sam3 auto-erases while programming (request ignored)
21
Error: sam3.cpu -- clearing lockup after double fault
22
Polling target sam3.cpu failed, GDB will be halted. Polling again in 100ms
23
Error: JTAG-DP STICKY ERROR
24
Error: MEM_AP_CSW 0x23000052, MEM_AP_TAR 0xfffffffc
25
Error: JTAG-DP STICKY ERROR
26
Error: MEM_AP_CSW 0x23000052, MEM_AP_TAR 0xfffffffc
27
Warn : Block read error address 0xfffffff8
28
Error: JTAG-DP STICKY ERROR
29
Error: MEM_AP_CSW 0x23000052, MEM_AP_TAR 0xfffffffc
30
Error: JTAG-DP STICKY ERROR
31
Error: MEM_AP_CSW 0x23000052, MEM_AP_TAR 0xfffffffc
32
Warn : Block read error address 0xfffffff8
33
Polling target sam3.cpu succeeded again
34
Info : dropped 'gdb' connection

GDB:
1
target remote localhost:3333
2
ResetException () at lowlevel/board_cstartup_gnu.c:133
3
133  {
4
monitor at91sam3 gpnvm set 1
5
monitor reset init
6
monitor sleep 500
7
monitor halt
8
monitor poll
9
set mem inaccessible-by-default off
10
continue
11

12
Program received signal SIGINT, Interrupt.
13
0x0040373e in HardFault_Handler () at libraries/libchip_sam3s/source/exceptions.c:112
14
112      __asm volatile
15
kill

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren