summaryrefslogtreecommitdiffstats
path: root/images
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2018-05-20 08:32:42 +1200
committerChris Johns <chrisj@rtems.org>2018-11-03 16:36:32 +1100
commit8b67c9135cb78abc394d43e449ccc6387c73f014 (patch)
tree6d4a21905a43cc4f476a1d6013baf151ce39ade5 /images
parent21c1a4492a6c437d057c3af605278e9ba5edcac0 (diff)
downloadrtems-docs-8b67c9135cb78abc394d43e449ccc6387c73f014.tar.bz2
user: Add RTEMS executable and test documentation.
Diffstat (limited to 'images')
-rw-r--r--images/user/exe-app.puml72
-rw-r--r--images/user/exe-debug-jtag.ditaa33
-rw-r--r--images/user/exe-debug-libdebugger.ditaa43
-rw-r--r--images/user/exe-debug-qemu.ditaa23
-rw-r--r--images/user/exe-debug.ditaa20
-rw-r--r--images/user/exe-vert-stack.puml56
-rw-r--r--images/user/test-cfg-1.puml20
-rw-r--r--images/user/test-cfg-2.puml35
-rw-r--r--images/user/test-gdb-jtag.puml35
-rw-r--r--images/user/test-simulation.puml23
-rw-r--r--images/user/test-tftp-seq-1.puml35
-rw-r--r--images/user/test-tftp-seq-2.puml39
-rw-r--r--images/user/test-tftp-seq-3.puml33
-rw-r--r--images/user/test-tftp-seq-4.puml26
-rw-r--r--images/user/test-tftp.puml29
15 files changed, 522 insertions, 0 deletions
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 <chrisj@rtems.org>
+' 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 <chrisj@rtems.org>
+' 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 <chrisj@rtems.org>
+' 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 <chrisj@rtems.org>
+' 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 <chrisj@rtems.org>
+' 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 <chrisj@rtems.org>
+' All rights reserved.
+'
+@startuml
+
+ node Application [
+ <b>Application
+ ----
+ Management
+ ....
+ Control
+ ....
+ Workers
+ ....
+ Protocol
+ ]
+
+ note right of Application
+ High Level
+ end note
+
+ node 3rdParty [
+ <b>3rd Party Packages
+ ----
+ Protobufs
+ ....
+ Networking (libbsd)
+ ]
+
+ node RTEMS [
+ <b>RTEMS
+ ----
+ API
+ ....
+ Kernel
+ ....
+ Drivers
+ ....
+ BSP
+ ]
+ node Hardware [
+ <b>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 <chrisj@rtems.org>
+' 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 <chrisj@rtems.org>
+' 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 <chrisj@rtems.org>
+' 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 <chrisj@rtems.org>
+' 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 <chrisj@rtems.org>
+' 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 <chrisj@rtems.org>
+' 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 <chrisj@rtems.org>
+' 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 <chrisj@rtems.org>
+' 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 <chrisj@rtems.org>
+' 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