This repository was archived by the owner on May 26, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.gdbinit-swo
More file actions
95 lines (76 loc) · 2.5 KB
/
.gdbinit-swo
File metadata and controls
95 lines (76 loc) · 2.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
!killall openocd
!orbtrace -p vtpwr,3.3 -e vtpwr,on
!orbtrace --trace-format m
!openocd -f arduino-portenta-h7.ocd &
file /tmp/arduino/sketches/817DC06D31EFAD33501697C59B5B9880/Blink.ino.elf
target extended-remote localhost:3333
set mem inaccessible-by-default off
set print pretty
break main
#load
####################################################################
set $SWO_BASE = 0x5C003000
set $SWO_CODR = $SWO_BASE + 0x010
set $SWO_SPPR = $SWO_BASE + 0x0F0
set $SWO_LAR = $SWO_BASE + 0xFB0
set $SWO_LSR = $SWO_BASE + 0xFB4
set $SWTF_BASE = 0x5C004000
set $SWTF_CTRL = $SWTF_BASE + 0x000
set $SWTF_LAR = $SWTF_BASE + 0xFB0
set $SWTF_LSR = $SWTF_BASE + 0xFB4
set $DBGMCU_BASE = 0x5C001000
set $DBGMCU_CR = $DBGMCU_BASE + 0x04
####################################################################
# DBGMCU_CR: enable clock domains for debugging
# D3DBGCKEN | D1DBGCKEN | TRACECLKEN
set *$DBGMCU_CR |= (1<<22) | (1<<21) | (1<<20)
# Unlock for modifications
set *$SWO_LAR = 0xC5ACCE55
x/1dw $SWO_LSR
# Calculate and set bit-rate prescaler
set $SYSTEM_CORE_CLOCK_Hz = 480*1000*1000
set $SWO_SPEED_Hz = 48*1000*1000
set $SWO_PRESCALER = ($SYSTEM_CORE_CLOCK_Hz / $SWO_SPEED_Hz) - 1
print $SWO_PRESCALER
set *$SWO_CODR = $SWO_PRESCALER
x/1dw $SWO_CODR
# Configure for manchester encoding.
set *$SWO_SPPR = 0x00000001
# Unlock for modifications
set *$SWTF_LAR = 0xC5ACCE55
x/1dw $SWTF_LSR
# Enable SWO.
set *$SWTF_CTRL |= 0x00000001
####################################################################
set $RCC_BASE_ADDR = 0x58024400
set $RCC_AHB4ENR = $RCC_BASE_ADDR + 0xE0
set $GPIOB_BASE_ADDR = 0x58020400
set $GPIOB_MODER = $GPIOB_BASE_ADDR + 0x00
set $GPIOB_OSPEEDR = $GPIOB_BASE_ADDR + 0x08
set $GPIOB_PUDR = $GPIOB_BASE_ADDR + 0x0C
set $GPIOB_AFRL = $GPIOB_BASE_ADDR + 0x20
# STM32H747 / M7 CORE - TRACESWO = PB3
# enable peripheral clock for Port B
set *$RCC_AHB4ENR |= 0x000000002
# enable alternate function mode
set *$GPIOB_MODER &= ~(0x000000C0)
set *$GPIOB_MODER |= (0x00000080)
# set speed to high speed
set *$GPIOB_OSPEEDR |= (0x00000080)
# no pull-up, no pull-down
set *$GPIOB_PUDR &= ~(0x000000C0)
# set to alternate function #0 (= TRACESWO)
set *$GPIOB_AFRL &= ~(0x0000F000)
####################################################################
source /home/alex/projects/arduino/orbuculum/Support/gdbtrace.init
dwtTraceException 1
dwtSamplePC 1
dwtSyncTap 3
dwtPostTap 1
dwtPostInit 1
dwtPostReset 10
dwtCycEna 1
ITMTXEna 1
ITMEna 1
####################################################################
run