From 8b67c9135cb78abc394d43e449ccc6387c73f014 Mon Sep 17 00:00:00 2001 From: Chris Johns Date: Sun, 20 May 2018 08:32:42 +1200 Subject: user: Add RTEMS executable and test documentation. --- images/user/exe-app.puml | 72 +++++++++++++++++++++++++++++++++ images/user/exe-debug-jtag.ditaa | 33 +++++++++++++++ images/user/exe-debug-libdebugger.ditaa | 43 ++++++++++++++++++++ images/user/exe-debug-qemu.ditaa | 23 +++++++++++ images/user/exe-debug.ditaa | 20 +++++++++ images/user/exe-vert-stack.puml | 56 +++++++++++++++++++++++++ images/user/test-cfg-1.puml | 20 +++++++++ images/user/test-cfg-2.puml | 35 ++++++++++++++++ images/user/test-gdb-jtag.puml | 35 ++++++++++++++++ images/user/test-simulation.puml | 23 +++++++++++ images/user/test-tftp-seq-1.puml | 35 ++++++++++++++++ images/user/test-tftp-seq-2.puml | 39 ++++++++++++++++++ images/user/test-tftp-seq-3.puml | 33 +++++++++++++++ images/user/test-tftp-seq-4.puml | 26 ++++++++++++ images/user/test-tftp.puml | 29 +++++++++++++ 15 files changed, 522 insertions(+) create mode 100644 images/user/exe-app.puml create mode 100644 images/user/exe-debug-jtag.ditaa create mode 100644 images/user/exe-debug-libdebugger.ditaa create mode 100644 images/user/exe-debug-qemu.ditaa create mode 100644 images/user/exe-debug.ditaa create mode 100644 images/user/exe-vert-stack.puml create mode 100644 images/user/test-cfg-1.puml create mode 100644 images/user/test-cfg-2.puml create mode 100644 images/user/test-gdb-jtag.puml create mode 100644 images/user/test-simulation.puml create mode 100644 images/user/test-tftp-seq-1.puml create mode 100644 images/user/test-tftp-seq-2.puml create mode 100644 images/user/test-tftp-seq-3.puml create mode 100644 images/user/test-tftp-seq-4.puml create mode 100644 images/user/test-tftp.puml (limited to 'images/user') diff --git a/images/user/exe-app.puml b/images/user/exe-app.puml new file mode 100644 index 0000000..0ca2c69 --- /dev/null +++ b/images/user/exe-app.puml @@ -0,0 +1,72 @@ +' +' Executable Application +' +' Copyright (c) 2018 Chris Johns +' All rights reserved. +' +@startuml + + folder Application { + file app1.c + file app2.c + } + + rectangle "3rd Party\nHeaders" as 3rd_party_headers { + folder headers as pkg_headers + } + + folder rtems_headers { + file rtems.h + } + + folder std_headers { + file stddef.h + file stdio.h + } + + agent cc + file objects + + Application --> cc : app1.c\napp2.c + pkg_headers --> cc : -Ipkg + rtems_headers --> cc : -Irtems + std_headers --> cc + cc --> objects: **compile** + + rectangle "3rd Party\nLibraries" as 3rd_party { + package libpkg as pkg + } + + folder librtems { + folder rtems + folder posix + folder sapi + folder score + } + + folder stdlibs { + file libc + file libm + file "libstdc++" + } + + agent ld + + objects --> ld : app1.o\napp2.o + pkg --> ld : -lpkg + librtems --> ld : -lrtems + stdlibs --> ld : "-lm\n-lstdc++" + + file executable + + ld --> executable: **link** + + rectangle Target { + agent bootloader + agent memory + } + + executable --> bootloader: **load** + bootloader -right-> memory: **execute** + +@enduml diff --git a/images/user/exe-debug-jtag.ditaa b/images/user/exe-debug-jtag.ditaa new file mode 100644 index 0000000..2ceedbc --- /dev/null +++ b/images/user/exe-debug-jtag.ditaa @@ -0,0 +1,33 @@ +' +' Executable debugging : JTAG +' +' Copyright (c) 2018 Chris Johns +' All rights reserved. +' +@startditaa + + +---------------------------------+ + | OpenOCD | + | | ++----------+ | +--------+ | +| | TCP | /---------------\ | | | +| GDB |<-------->| GDB server |<->| JTAG | | +| | | \---------------/ | | | ++----------+ | +--------+ | + ^ | ^ | + | +---------------------------|-----+ + /-----\ | USB + | ELF | V + \-----/ /-------\ + | POD | + \-------/ + ^ + | cable + V + +----------+ + | | + | Target | + | | + +----------+ + +@endditaa diff --git a/images/user/exe-debug-libdebugger.ditaa b/images/user/exe-debug-libdebugger.ditaa new file mode 100644 index 0000000..974365c --- /dev/null +++ b/images/user/exe-debug-libdebugger.ditaa @@ -0,0 +1,43 @@ +' +' Executable debugging : libdebugger +' +' Copyright (c) 2018 Chris Johns +' All rights reserved. +' +@startditaa + + +---------------------------------+ + | RTEMS Executable | + | | ++----------+ | /--------+ | +| | TCP | /---------------\ | | | +| GDB |<-------->| libbsd |<->| | | +| | | | networking | | | | ++----------+ | \---------------/ | | | + ^ | ^ | | | + | | | | | | + /-----\ | V | kernel | | + | ELF | | /---------------\ | | | + \-----/ | | libdebugger |<->| | | + | \---------------/ | | | + | ^ | | | + | | | | | + | +--------+ +--------/ | + | | ^ | + | : | | + | | +----------+ | + | | | | + +-|--------------|----------------+ + | | + +-----|--------------|------------------+ + | V V | + | /-------\ /-------\ +--------+ | + | | debug |<-=-->| cores |<->| | | + | | hw | \-------/ | memory | | + | \-------/ | | | + | +--------+ | + | | + | Target | + +---------------------------------------+ + +@endditaa diff --git a/images/user/exe-debug-qemu.ditaa b/images/user/exe-debug-qemu.ditaa new file mode 100644 index 0000000..168aae6 --- /dev/null +++ b/images/user/exe-debug-qemu.ditaa @@ -0,0 +1,23 @@ +' +' Executable debugging : QEMU +' +' Copyright (c) 2018 Chris Johns +' All rights reserved. +' +@startditaa + + +-----------------------------------+ + | QEMU | + | | ++----------+ | +----------+ | +| | TCP | /---------------\ | | | +| GDB |<-------->| GDB server |<->| Target | | +| | | \---------------/ | | | ++----------+ | +----------+ | + ^ | | + | +-----------------------------------+ + /-----\ + | ELF | + \-----/ + +@endditaa diff --git a/images/user/exe-debug.ditaa b/images/user/exe-debug.ditaa new file mode 100644 index 0000000..a38ba91 --- /dev/null +++ b/images/user/exe-debug.ditaa @@ -0,0 +1,20 @@ +' +' Executable debugging. +' +' Copyright (c) 2018 Chris Johns +' All rights reserved. +' +@startditaa + ++----------+ /---------------\ +----------+ +| | TCP | Debug Agent | agent | | +| GDB |<----->| (GDB server) |<---------->| Target | +| | \---------------/ connection | | ++----------+ +----------+ + ^ + | + /-----\ + | ELF | + \-----/ + +@endditaa diff --git a/images/user/exe-vert-stack.puml b/images/user/exe-vert-stack.puml new file mode 100644 index 0000000..720806b --- /dev/null +++ b/images/user/exe-vert-stack.puml @@ -0,0 +1,56 @@ +' +' Executable Application Vertical Stack +' +' Copyright (c) 2018 Chris Johns +' All rights reserved. +' +@startuml + + node Application [ + Application + ---- + Management + .... + Control + .... + Workers + .... + Protocol + ] + + note right of Application + High Level + end note + + node 3rdParty [ + 3rd Party Packages + ---- + Protobufs + .... + Networking (libbsd) + ] + + node RTEMS [ + RTEMS + ---- + API + .... + Kernel + .... + Drivers + .... + BSP + ] + node Hardware [ + Hardware + ] + + Application .down. 3rdParty + 3rdParty .down. RTEMS + RTEMS .down. Hardware + + note right of Hardware + Low Level + end note + +@enduml diff --git a/images/user/test-cfg-1.puml b/images/user/test-cfg-1.puml new file mode 100644 index 0000000..8264fd2 --- /dev/null +++ b/images/user/test-cfg-1.puml @@ -0,0 +1,20 @@ +' +' Tester Configuration 1. +' +' Copyright (c) 2018 Chris Johns +' All rights reserved. +' +@startuml + + artifact Defaults + artifact BSP + artifact User + artifact Config + rectangle "RTEMS Test\n(rtems-tester)" as tester + + Defaults -down-> tester: .mc + BSP -down-> tester: .ini + User -down-> tester: .ini + Config -down-> tester: .cfg + +@enduml diff --git a/images/user/test-cfg-2.puml b/images/user/test-cfg-2.puml new file mode 100644 index 0000000..fae4a77 --- /dev/null +++ b/images/user/test-cfg-2.puml @@ -0,0 +1,35 @@ +' +' Tester Configuration 2. +' +' Copyright (c) 2018 Chris Johns +' All rights reserved. +' +@startuml + + participant Run + database Defaults + database BSP + database User + database Config + + Run -> Defaults: load + activate Defaults + Defaults -> Run: loaded + deactivate Defaults + + Run -> BSP: load + activate BSP + BSP -> Run: BSP macro map loaded + deactivate BSP + + Run -> User: load + activate User + User -> Run: User config loaded + deactivate User + + Run -> Config: execute %{tester} script + activate Config + Config -> Run: finished + deactivate Config + +@enduml diff --git a/images/user/test-gdb-jtag.puml b/images/user/test-gdb-jtag.puml new file mode 100644 index 0000000..fbd1b47 --- /dev/null +++ b/images/user/test-gdb-jtag.puml @@ -0,0 +1,35 @@ +' +' Tester GDB +' +' Copyright (c) 2018 Chris Johns +' All rights reserved. +' +@startuml + + !define TESTER [rtems-test] + + artifact source + card EXE + agent TESTER + agent gdb + storage results + + agent openocd + agent ser2net + + card console + card pod + node target + + source --> EXE: build + EXE --> [rtems-test]: command line + TESTER --> gdb: GDB MI + gdb --> openocd: remote\nprotocol + TESTER <--> ser2net: telnet + openocd --> pod: USB + pod =down=> target: JTAG + console <=down=> target: UART + ser2net <--> console: USB + TESTER -> results + +@enduml diff --git a/images/user/test-simulation.puml b/images/user/test-simulation.puml new file mode 100644 index 0000000..7c6cfe4 --- /dev/null +++ b/images/user/test-simulation.puml @@ -0,0 +1,23 @@ +' +' Tester Simulation. +' +' Copyright (c) 2018 Chris Johns +' All rights reserved. +' +@startuml + + !define TESTER [rtems-test] + + artifact source + card EXE + agent TESTER + storage results + agent simulator + + source --> EXE: build + EXE --> [rtems-test]: command line + TESTER --> simulator + simulator --> TESTER: stdout + TESTER -> results + +@enduml diff --git a/images/user/test-tftp-seq-1.puml b/images/user/test-tftp-seq-1.puml new file mode 100644 index 0000000..e3397a6 --- /dev/null +++ b/images/user/test-tftp-seq-1.puml @@ -0,0 +1,35 @@ +' +' Tester TFTP Sequence 1: +' +' Pass and Fail +' +' Copyright (c) 2018 Chris Johns +' All rights reserved. +' +@startuml + + participant Start + participant Reset + participant UBoot + participant TFTP + participant Test + participant Finish + + note right of Start: target_on_command run before the first test + + Start --> UBoot: tester running, target has reset + activate UBoot + Start -->> Reset: target_on_command + activate Reset + Reset --> UBoot: target power on + deactivate Reset + UBoot --> TFTP: download + deactivate UBoot + activate TFTP + TFTP --> Test: execute + deactivate TFTP + activate Test + Test --> Finish: test pass or fail? + deactivate TFTP + +@enduml diff --git a/images/user/test-tftp-seq-2.puml b/images/user/test-tftp-seq-2.puml new file mode 100644 index 0000000..2d8dca9 --- /dev/null +++ b/images/user/test-tftp-seq-2.puml @@ -0,0 +1,39 @@ +' +' Tester TFTP Sequence 2: +' +' Start Filter Trigger +' +' Copyright (c) 2018 Chris Johns +' All rights reserved. +' +@startuml + + participant Start + participant Reset + participant UBoot + participant TFTP + participant Test + participant Finish + + note left of Finish: ""target_start_regex"" triggers on target async restart match + + Start --> UBoot : target already running + activate UBoot + UBoot -->> Reset : ""target_start_regex"" + activate Reset + Reset --> UBoot : target running + UBoot --> TFTP : download + activate TFTP + TFTP -->> Reset : ""target_start_regex"" + deactivate UBoot + TFTP --> Test : execute + deactivate TFTP + activate Test + Test --> Finish: test pass or fail? + Test -->> Reset : ""target_start_regex"" + deactivate TFTP + deactivate Test + Reset --> Finish : Invalid + deactivate Reset + +@enduml diff --git a/images/user/test-tftp-seq-3.puml b/images/user/test-tftp-seq-3.puml new file mode 100644 index 0000000..4777e66 --- /dev/null +++ b/images/user/test-tftp-seq-3.puml @@ -0,0 +1,33 @@ +' +' Tester TFTP Sequence 3: +' +' Reset Filter Trigger +' +' Copyright (c) 2018 Chris Johns +' All rights reserved. +' +@startuml + + participant Start + participant Reset + participant UBoot + participant TFTP + + note right of Start + ""target_reset_regex"" triggers on an async + target console match + end note + + Start --> UBoot : target already running + activate UBoot + Reset --> UBoot : target running + activate Reset + UBoot -->> Reset : ""target_reset_command"" + UBoot --> TFTP : download + deactivate UBoot + activate TFTP + TFTP -->> Reset : ""target_reset_command"" + deactivate TFTP + deactivate Reset + +@enduml diff --git a/images/user/test-tftp-seq-4.puml b/images/user/test-tftp-seq-4.puml new file mode 100644 index 0000000..669a0f5 --- /dev/null +++ b/images/user/test-tftp-seq-4.puml @@ -0,0 +1,26 @@ +' +' Tester TFTP Sequence 4: +' +' Reset Filter Trigger +' +' Copyright (c) 2018 Chris Johns +' All rights reserved. +' +@startuml + + participant UBoot + participant TFTP + participant Test + participant Reset + participant Finish + + note right of UBoot : A timeout can occur at any time + + UBoot -->> Reset : ""target_reset_command"" + activate Reset + TFTP -->> Reset : ""target_reset_command"" + Test -->> Reset : ""target_reset_command"" + Reset --> Finish : timeout + deactivate Reset + +@enduml diff --git a/images/user/test-tftp.puml b/images/user/test-tftp.puml new file mode 100644 index 0000000..9e2f234 --- /dev/null +++ b/images/user/test-tftp.puml @@ -0,0 +1,29 @@ +' +' Tester Hardware using TFTP network downloading. +' +' Copyright (c) 2018 Chris Johns +' All rights reserved. +' +@startuml + + !define TESTER [rtems-test] + + artifact source + card EXE + agent TESTER + storage results + + agent ser2net + + card console + node target + + source --> EXE: build + EXE --> [rtems-test]: command line + TESTER =down=> target: TFTP\nprotocol + TESTER <=down=> ser2net: telnet + console <=down=> target: UART + ser2net <==> console: USB + TESTER -> results + +@enduml -- cgit v1.2.3