Skip to content

Commit 3ba405a

Browse files
committed
7.4.0
1 parent 9f79417 commit 3ba405a

File tree

95 files changed

+7876
-2485
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

95 files changed

+7876
-2485
lines changed

.gitignore

Lines changed: 38 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,55 @@
1+
# QM sessions
2+
*.qms
3+
14
# Prerequisites
25
*.d
36

4-
# Compiled Object files
5-
*.slo
6-
*.lo
7+
# Object files
78
*.o
9+
*.ko
810
*.obj
11+
*.elf
12+
13+
# Linker output
14+
*.ilk
15+
*.map
16+
*.exp
917

1018
# Precompiled Headers
1119
*.gch
1220
*.pch
1321

14-
# Compiled Dynamic libraries
22+
# Libraries
23+
*.lib
24+
*.a
25+
*.la
26+
*.lo
27+
28+
# Shared objects (inc. Windows DLLs)
29+
*.dll
1530
*.so
31+
*.so.*
1632
*.dylib
17-
*.dll
18-
19-
# Fortran module files
20-
*.mod
21-
*.smod
22-
23-
# Compiled Static libraries
24-
*.lai
25-
*.la
26-
*.a
27-
*.lib
2833

2934
# Executables
3035
*.exe
3136
*.out
3237
*.app
38+
*.i*86
39+
*.x86_64
40+
*.hex
41+
42+
# Debug files
43+
*.dSYM/
44+
*.su
45+
*.idb
46+
*.pdb
47+
48+
# Kernel Module Compile Results
49+
*.mod*
50+
*.cmd
51+
.tmp_versions/
52+
modules.order
53+
Module.symvers
54+
Mkfile.old
55+
dkms.conf

README.md

Lines changed: 38 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,17 @@
22
[![Quantum Leaps](https://www.state-machine.com/attachments/logo_ql_400.png)](https://www.state-machine.com)
33
<hr>
44

5-
# About qpcpp-examples
6-
This repository contains the application examples for the QP/C++
7-
Real-Time Embedded Framework (see https://github.com/QuantumLeaps/qpcpp ).
5+
# About qpc-examples
6+
This repository contains the application examples for the QP/C
7+
Real-Time Embedded Framework (see https://github.com/QuantumLeaps/qpc ).
88

99
This repository can be used in several ways:
1010
- [Standalone examples](#standalone-examples-in-the-cmsis-packs-folder)
11-
that don't require the [qpcpp framework repo](https://github.com/QuantumLeaps/qpcpp).
12-
(These examples rely on the qpcpp framework included from the
11+
that don't require the [qpc framework repo](https://github.com/QuantumLeaps/qpc).
12+
(These examples rely on the qpc framework included from the
1313
[CMIS-packs](https://github.com/QuantumLeaps/cmsis-packs))
1414

15-
- [As a sub-module to the qpcpp repo](#as-a-sub-module-to-the-qpcpp-repository)
15+
- [As a sub-module to the qpc repo](#as-a-sub-module-to-the-qpc-repository)
1616

1717
- [Examples for the QView monitoring system](#examples-for-qview-monitoring-system)
1818

@@ -29,7 +29,7 @@ This repository can be used in several ways:
2929
|
3030
```
3131

32-
## As a sub-module to the qpcpp repository
32+
## As a sub-module to the qpc repository
3333
```
3434
+---arm-cm
3535
| +---blinky_ek-tm4c123gxl
@@ -106,6 +106,17 @@ This repository can be used in several ways:
106106
| +---reminder
107107
| \---reminder2
108108
|
109+
+---threadx
110+
| \---arm-cm
111+
| +---dpp_ek-tm4c123gxl
112+
| \---dpp_stm32f429-discovery
113+
+---uc-os2
114+
| \---arm-cm
115+
| \---dpp_ek-tm4c123gxl
116+
+---zephyr
117+
| +---blinky
118+
| \---dpp
119+
|
109120
+---qutest <== examples for QUTest testing harness
110121
| +---blinky
111122
| +---dpp
@@ -124,27 +135,35 @@ This repository can be used in several ways:
124135
| +---src
125136
| \---test
126137
|
127-
+---threadx
128-
| \---arm-cm
129-
| +---dpp_ek-tm4c123gxl
130-
| \---dpp_stm32f429-discovery
131-
+---uc-os2
132-
| \---arm-cm
133-
| \---dpp_ek-tm4c123gxl
134-
+---zephyr
135-
| +---blinky
136-
| \---dpp
137-
|
138-
+---qview-dpp <== examples for the QView monitoring system
138+
+---qview-dpp <== examples for QView monitoring (DPP example)
139139
| +---img
140140
| dpp.py
141+
| dpp1.py
142+
| qview-dpp.lnk
143+
| qview-dpp.lnk
141144
|
142145
+---qwin-gui <== examples for the QWin GUI
143146
| +---dpp-gui
144147
| \---game-gui
145148
|
146149
```
147150

151+
## Examples for QTest Testing System
152+
The "qutest" Python package (included in the
153+
[QTools collection](https://github.com/QuantumLeaps/qtools))
154+
is a powerful [testing system](https://www.state-machine.com/qtools/qutest.html).
155+
It has been specifically designed for deeply embedded systems, but also supports
156+
unit and integration testing of embedded code on host computers ("dual targeting").
157+
QUTest is the fundamental tooling for Test-Driven Development (TDD) and Behavior-
158+
Driven Development (BDD) of QP/C/C++ applications , which is a highly recommended
159+
best-practice.
160+
161+
The following screen shot show a typical QUTest run with the QSPY ouptut
162+
in the background.
163+
164+
![](qutest/img/qutest-dpp.webp)
165+
166+
148167
## Examples for QView Monitoring System
149168
The "qview" Python package (included in the
150169
[QTools collection](https://github.com/QuantumLeaps/qtools))
@@ -174,18 +193,3 @@ application with the QSPY ouptut in the background.
174193

175194
![](qview-dpp/img/qview-dpp.webp)
176195

177-
178-
## Examples for QTest Testing System
179-
The "qutest" Python package (included in the
180-
[QTools collection](https://github.com/QuantumLeaps/qtools))
181-
is a powerful [testing system](https://www.state-machine.com/qtools/qutest.html).
182-
It has been specifically designed for deeply embedded systems, but also supports
183-
unit and integration testing of embedded code on host computers ("dual targeting").
184-
QUTest is the fundamental tooling for Test-Driven Development (TDD) and Behavior-
185-
Driven Development (BDD) of QP/C/C++ applications , which is a highly recommended
186-
best-practice.
187-
188-
The following screen shot show a typical QUTest run with the QSPY ouptut
189-
in the background.
190-
191-
![](qutest/img/qutest-dpp.webp)

arm-cm/blinky_ek-tm4c123gxl/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@
22
This file is best viewed in a **markdown viewer**, such as the one built into GitHub. Markdown viewers are also available as plug-ins to popular Internet browsers.
33

44
# Blinky on EK-TM4C123GXL
5-
This example implements the simple [Blinky application](https://www.state-machine.com/qpcpp/tut_blinky.html) on the EK-TM4C123GLX board (ARM Cortex-M4F). The example blinks the LED
5+
This example implements the simple [Blinky application](https://www.state-machine.com/qpc/tut_blinky.html) on the EK-TM4C123GLX board (ARM Cortex-M4F). The example blinks the LED
66
on the EK-TM4C123GXL board at 1Hz (0.5 seconds on, 0.5 seconds off).
77

88
<p align="center">
9-
<img src="./ek-tm4c123gxl.jpg"/><br>
9+
<img src="ek-tm4c123gxl.webp"/><br>
1010
<b>EK-TM4C123GXL (TivaC LaunchPad)</b>
1111
</p>
1212

-49.3 KB
Binary file not shown.
29.3 KB
Loading

arm-cm/blinky_nucleo-c031c6/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,10 @@
22
This file is best viewed in a **markdown viewer**, such as the one built into GitHub. Markdown viewers are also available as plug-ins to popular Internet browsers.
33

44
# Blinky on NUCLEO-C031C6
5-
This example demonstrates the [Blinky application](https://www.state-machine.com/qpcpp/tut_blinky.html) on the STM32 NUCLEO-C031C6 board (ARM Cortex-M0+).
5+
This example demonstrates the [Blinky application](https://www.state-machine.com/qpc/tut_blinky.html) on the STM32 NUCLEO-C031C6 board (ARM Cortex-M0+).
66

77
<p align="center">
8-
<img src="./stm32-nucleo-c031c6.jpg"/><br>
8+
<img src="stm32-nucleo-c031c6.webp"/><br>
99
<b>STM32 NUCLEO-C031C6</b>
1010
</p>
1111

-42.5 KB
Binary file not shown.
23.3 KB
Loading

arm-cm/dpp_efm32-slstk3401a/README.md

Lines changed: 129 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,131 @@
1-
![STM32 EFM32-SLSTK3401A](../../../doxygen/images/bd_EFM32-SLSTK3401A.jpg)
1+
> **NOTE**
2+
This file is best viewed in a **markdown viewer**, such as the one built into GitHub. Markdown viewers are also available as plug-ins to popular Internet browsers.
23

3-
Documentation for this example is available in the QP/C Manual at:
4+
# DPP on EFM32-SLSTK3401A
5+
This example demonstrates the [Dining Philosophers Problem (DPP) application](https://www.state-machine.com/qpc/tut_dpp.html) on the EFM32-SLSTK3401A board (ARM Cortex-M4F).
6+
7+
<p align="center">
8+
<img src="efm32-slstk3401a.webp"/><br>
9+
<b>EFM32-SLSTK3401A (Pearl Gecko)</b>
10+
</p>
11+
12+
## Features Demonstrated
13+
- multiple cooperating active objects
14+
- immutable (const) events
15+
- mutable (dynamic) events
16+
- time events
17+
- direct event posting
18+
- publish-subscribe event delivery
19+
- cooperative QV kernel
20+
+ with ARM-KEIL toolchain
21+
+ with GNU-ARM toolchain
22+
+ with IAR-ARM toolchain
23+
- preemptive run-to-completion QK kernel
24+
+ with ARM-KEIL toolchain
25+
+ with GNU-ARM toolchain
26+
+ with IAR-ARM toolchain
27+
- preemptive dual-mode QXK kernel
28+
+ with ARM-KEIL toolchain
29+
+ with GNU-ARM toolchain
30+
+ with IAR-ARM toolchain
31+
32+
## Build Configurations
33+
- Debug
34+
- Release
35+
- Spy - software tracing with the built-in virtual COM port
36+
37+
# Code Organization
38+
```
39+
examples\arm-cm\dpp_efm32-slstk3401a
40+
|
41+
+---qk // preemptive QK kernel
42+
| +---gnu // GNU-ARM toolchain
43+
| | \---targetConfigs
44+
| | Makefile // Makefile for GNU-ARM
45+
| +---armclang // ARM/KEIL toolchain with Compiler 6 (ARM/CLANG)
46+
| | dpp-qk.uvprojx // uVision project
47+
| \---iar // IAR EWARM
48+
| dpp-qk.eww // IAR EW-ARM workspace
49+
|
50+
\---qv // cooperative QK kernel
51+
| +---gnu // GNU-ARM toolchain
52+
| | \---targetConfigs
53+
| | Makefile // Makefile for GNU-ARM
54+
| +---armclang // ARM/KEIL toolchain with Compiler 6 (ARM/CLANG)
55+
| | dpp-qv.uvprojx // uVision project
56+
| \---iar // IAR EWARM
57+
| dpp-qv.eww // IAR EW-ARM workspace
58+
|
59+
+---qxk // preemptive, dual-mode QXK kernel
60+
| +---gnu // GNU-ARM toolchain
61+
| | \---targetConfigs
62+
| | Makefile // Makefile for GNU-ARM
63+
| +---armclang // ARM/KEIL toolchain with Compiler 6 (ARM/CLANG)
64+
| | dpp-qk.uvprojx // uVision project
65+
| \---iar // IAR EWARM
66+
| dpp-qk.eww // IAR EW-ARM workspace
67+
|
68+
```
69+
70+
# Building the example
71+
72+
### GNU/ARM
73+
- open terminal window
74+
- change to the desired directory (either `examples\arm-cm\dpp_efm32-slstk3401a\qk\gnu`, `examples\arm-cm\dpp_efm32-slstk3401a\qv\gnu`, or `examples\arm-cm\dpp_efm32-slstk3401a\qxk\gnu`)
75+
- to build the default Debug configuration, type:
76+
77+
```
78+
make
79+
```
80+
81+
> **NOTE**
82+
The `make` utility for Windows is provided in the QTools collection for Windows.
83+
84+
- to build the Release configuration, type:
85+
86+
```
87+
make CONF=rel
88+
```
89+
90+
- to build the Spy configuration, type:
91+
92+
```
93+
make CONF=spy
94+
```
95+
96+
97+
### ARM/KEIL MDK
98+
- Open the provided KEIL uVision project (either `dpp-qk.uvprojx`, `dpp-qv.uvprojx`, or `dpp-qxk.uvprojx`)
99+
in Keil uVision IDE. Build/Debug/Download to the board from the IDE.
100+
- Change the build configuration in the "Project Target" drop-down menu.
101+
102+
103+
### IAR EWARM
104+
- Open the provided IAR EWARM workspace (either `dpp-qk.eww`, `dpp-qv.eww`, or `dpp-qxk.eww`)
105+
in IAR EWARM IDE. Build/Debug/Download to the board from the IDE.
106+
- Change the build configuration in the "Project Configuration" drop-down menu.
107+
108+
109+
# Tracing with QP/Spy
110+
When the board is flashed with the Spy build configuration, it produces the QP/Spy software tracing output to the built-in virtual COM port of the TivaC LauchPad board. The trace is binary rather than ASCII, and therefore requires a special host-based application called QSPY.
111+
112+
> **NOTE** QSPY host application is available in the QTools collection.
113+
114+
To launch the QSPY host application:
115+
- open terminal window
116+
- type:
117+
118+
```
119+
qspy -c COM5
120+
```
121+
122+
where "COM5" is an example virtual COM port enumerated by the board. You need to check the specific COM port number on your host computer using the Device Manager application, Ports (COM and LPT) section.
123+
124+
125+
The following screen shot shows a typical output from QSPY:
126+
127+
<p align="center">
128+
<img src="./qspy-output.png"/><br>
129+
<b>Typical QSPY output produced by the Spy build configuration</b>
130+
</p>
4131

5-
- https://www.state-machine.com/qpcpp/arm-cm_dpp_efm32-slstk3401a.html
15.9 KB
Loading

0 commit comments

Comments
 (0)