Skip to content

Commit f3f5046

Browse files
committed
add mermaid diagrams
1 parent eabce91 commit f3f5046

File tree

1 file changed

+119
-6
lines changed

1 file changed

+119
-6
lines changed

flow-chart.md

Lines changed: 119 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Sequence diagrams for pyOCD sub-commands
22

33
## Erase
4-
- Sessions starts
4+
<!-- - Sessions starts
55
- Set Debug enable
66
- Discovery phase:
77
- Use selected connect mode (normal, pre-reset, under reset)
@@ -22,11 +22,51 @@
2222
- Clean-up phase:
2323
- Put all cores in deadloops
2424
- Session ends:
25-
- Remove Debug enable on device
25+
- Remove Debug enable on device -->
26+
27+
```mermaid
28+
flowchart TD
29+
%% ERASE
30+
A0([Session starts]) --> A1[Set Debug enable]
31+
32+
subgraph A_DISC[Discovery phase]
33+
direction TB
34+
A2[Select connect: mode normal , pre-reset , under-reset] --> A3{Debug sequence needed?}
35+
A3 -- Yes --> A4[Execute debug sequence]
36+
A3 -- No --> A5[Continue]
37+
end
38+
A1 --> A_DISC
39+
40+
subgraph A_ERASE[Erase phase]
41+
direction TB
42+
A6[Halt all cores] --> A7[Set vector catch on all cores]
43+
A7 --> A8[Reset device using reset_type - primary core]
44+
A8 --> A9[Clear vector catch on all cores]
45+
A9 --> A10[Collect memory regions to erase]
46+
A10 --> A11{Algorithms executable on primary core?}
47+
A11 -- Yes --> A12{Erase mode?}
48+
A11 -- No --> A15[Switch to required core and perform erase]
49+
A15 --> A12
50+
A12 -- Chip erase --> A13[Run chipErase else fall back to sector erase]
51+
A12 -- Sector erase --> A14[Collect sectors and erase]
52+
A13 --> A16[Erase successful]
53+
A14 --> A16
54+
end
55+
A_DISC --> A_ERASE
56+
57+
subgraph A_CLEAN[Clean-up phase]
58+
direction TB
59+
A17[Put all cores in deadloops]
60+
end
61+
A_ERASE --> A_CLEAN
62+
63+
A18([Session ends]) --> A19[Remove Debug enable]
64+
A_CLEAN --> A18
65+
```
2666

2767

2868
## Load
29-
- Session starts
69+
<!-- - Session starts
3070
- Set Debug enable
3171
- Discovery phase:
3272
- Use selected connect mode (normal, pre-reset, under-reset)
@@ -50,11 +90,53 @@
5090
- Clean-up phase:
5191
- Put all cores in deadloops
5292
- Session ends:
53-
- Remove Debug enable on device
93+
- Remove Debug enable on device -->
94+
95+
```mermaid
96+
flowchart TD
97+
%% LOAD
98+
B0([Session starts]) --> B1[Set Debug enable]
99+
100+
subgraph B_DISC[Discovery phase]
101+
direction TB
102+
B2[Select connect mode: normal, pre-reset, under-reset] --> B3{Debug sequence needed?}
103+
B3 -- Yes --> B4[Execute debug sequence]
104+
B3 -- No --> B5[Continue]
105+
end
106+
B1 --> B_DISC
54107
108+
subgraph B_FLASH[Flash phase]
109+
direction TB
110+
B6[Halt all cores] --> B7[Set vector catch on all cores]
111+
B7 --> B8[Reset device using reset_type - primary core]
112+
B8 --> B9[Clear vector catch on all cores]
113+
B9 --> B10[Collect memory regions to program]
114+
B10 --> B11{Algorithm usable on primary core?}
115+
B11 -- Yes --> B12[Flash application]
116+
B11 -- No --> B13[Switch to required core]
117+
B12 --> B14[Flash successful]
118+
B13 --> B12
119+
120+
B14 --> B15{Optional post-flash reset?}
121+
B15 -- Yes --> B16[Set vector catch on all cores]
122+
B16 --> B17[Hardware reset device]
123+
B17 --> B18[Clear vector catch on all cores]
124+
B15 -- No --> B19[Skip]
125+
end
126+
B_DISC --> B_FLASH
127+
128+
subgraph B_CLEAN[Clean-up phase]
129+
direction TB
130+
B20[Put all cores in deadloops]
131+
end
132+
B_FLASH --> B_CLEAN
133+
134+
B21([Session ends]) --> B22[Remove Debug enable]
135+
B_CLEAN --> B21
136+
```
55137

56138
## GDBServer
57-
- Session start
139+
<!-- - Session start
58140
- Set Debug enable
59141
- Discovery phase:
60142
- Use selected connect mode (normal, pre-reset, under-reset)
@@ -68,4 +150,35 @@
68150
- Execute GDB init commands (monitor reset halt)
69151
- Debug..
70152
- Debug session ends
71-
- Remove Debug enable on device
153+
- Remove Debug enable on device -->
154+
155+
```mermaid
156+
flowchart TD
157+
%% GDBSERVER
158+
C0([Session starts]) --> C1[Set Debug enable]
159+
160+
subgraph C_DISC[Discovery phase]
161+
direction TB
162+
C2[Select connect mode: normal, pre-reset, under-reset] --> C3{Debug sequence needed?}
163+
C3 -- Yes --> C4[Execute debug sequence]
164+
C3 -- No --> C5[Continue]
165+
end
166+
C1 --> C_DISC
167+
168+
subgraph C_GDB[GDB phase]
169+
direction TB
170+
C6[Halt all cores] --> C7[Create GDB servers for all cores]
171+
C7 --> C8{reset-run option?}
172+
C8 -- Yes --> C9[Reset device using reset_type - primary core]
173+
C8 -- No --> C10[Skip reset]
174+
C9 --> C11[Wait for GDB client]
175+
C10 --> C11
176+
C11 --> C12[Client connected]
177+
C12 --> C13[Run GDB init commands - e.g., monitor reset halt]
178+
C13 --> C14[Debugging in progress]
179+
end
180+
C_DISC --> C_GDB
181+
182+
C15([Debug session ends]) --> C16[Remove Debug enable]
183+
C_GDB --> C15
184+
```

0 commit comments

Comments
 (0)