You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
196 lines
5.2 KiB
Markdown
196 lines
5.2 KiB
Markdown
## Brought to you by:
|
|
[](https://www.state-machine.com)
|
|
<hr>
|
|
|
|
# About qpc-examples
|
|
This repository contains the application examples for the QP/C
|
|
Real-Time Embedded Framework (see https://github.com/QuantumLeaps/qpc ).
|
|
|
|
This repository can be used in several ways:
|
|
- [Standalone examples](#standalone-examples-in-the-cmsis-packs-folder)
|
|
that don't require the [qpc framework repo](https://github.com/QuantumLeaps/qpc).
|
|
(These examples rely on the qpc framework included from the
|
|
[CMIS-packs](https://github.com/QuantumLeaps/cmsis-packs))
|
|
|
|
- [As a sub-module to the qpc repo](#as-a-sub-module-to-the-qpc-repository)
|
|
|
|
- [Examples for the QView monitoring system](#examples-for-qview-monitoring-system)
|
|
|
|
- [Examples for the QUTest testing system](#examples-for-qtest-testing-system)
|
|
|
|
|
|
## Standalone (examples in the `cmsis-packs` folder)
|
|
```
|
|
+---cmsis-packs <=== standalone examples
|
|
| +---dpp_nucleo-c031c6-qk-gcc
|
|
| +---dpp_nucleo-c031c6-qk-keil
|
|
| +---dpp_nucleo-c031c6-qk-stm32cube
|
|
| \---dpp_nucleo-u545re-qk-stm32cube
|
|
|
|
|
```
|
|
|
|
## As a sub-module to the qpc repository
|
|
```
|
|
+---arm-cm
|
|
| +---blinky_ek-tm4c123gxl
|
|
| +---blinky_nucleo-c031c6
|
|
| +---dpp_efm32-slstk3401a
|
|
| | +---qk
|
|
| | | +---armclang
|
|
| | | +---gnu
|
|
| | | \---iar
|
|
| | +---qv
|
|
| | | +---armclang
|
|
| | | +---gnu
|
|
| | | \---iar
|
|
| | +---qview
|
|
| | | \---img
|
|
| | \---qxk
|
|
| | +---armclang
|
|
| | +---gnu
|
|
| | \---iar
|
|
| +---dpp_ek-tm4c123gxl
|
|
| +---dpp_ek-tm4c123gxl_mpu
|
|
| +---dpp_mbed-lpc1768
|
|
| +---dpp_nucleo-c031c6
|
|
| +---dpp_nucleo-c031c6_mpu
|
|
| +---dpp_nucleo-h743zi
|
|
| +---dpp_nucleo-l053r8
|
|
| +---dpp_nucleo-l152re
|
|
| +---dpp_nucleo-l552ze
|
|
| +---dpp_nucleo-u545re
|
|
| +---dpp_stm32f4-discovery
|
|
| +---game_efm32-slstk3401a
|
|
| +---low-power_ek-tm4c123gxl
|
|
| \---real-time_nucleo-l053r8
|
|
|
|
|
+---arm-cr
|
|
| +---blinky_launchxl2-tms57012
|
|
| \---dpp_launchxl2-tms57012
|
|
|
|
|
+---embos
|
|
| \---arm-cm
|
|
| \---dpp_nucleo-h743zi
|
|
+---emwin
|
|
| +---demo_no_wm
|
|
| \---demo_with_wm
|
|
|
|
|
+---freertos
|
|
| \---arm-cm
|
|
| +---dpp_ek-tm4c123gxl
|
|
| \---dpp_nucleo-h743zi
|
|
|
|
|
+---lwip
|
|
| \---arm-cm
|
|
| \---lwip_ek-lm3s6965
|
|
|
|
|
+---msp430
|
|
| +---blinky_msp-exp430f5529lp
|
|
| +---blinky_msp-exp430g2
|
|
| \---dpp_msp-exp430f5529lp
|
|
|
|
|
+---posix-win32 <== examples for the host computer
|
|
| +---blinky
|
|
| +---calc
|
|
| +---calc2
|
|
| +---calc_sub
|
|
| +---comp
|
|
| +---defer
|
|
| +---dpp
|
|
| +---dpp-posix
|
|
| +---dpp_comp
|
|
| +---history_qhsm
|
|
| +---history_qmsm
|
|
| +---qhsmtst
|
|
| +---qmsmtst
|
|
| +---reminder
|
|
| \---reminder2
|
|
|
|
|
+---threadx
|
|
| \---arm-cm
|
|
| +---dpp_ek-tm4c123gxl
|
|
| \---dpp_stm32f429-discovery
|
|
+---uc-os2
|
|
| \---arm-cm
|
|
| \---dpp_ek-tm4c123gxl
|
|
+---zephyr
|
|
| +---blinky
|
|
| \---dpp
|
|
|
|
|
+---qutest <== examples for QUTest testing harness
|
|
| +---blinky
|
|
| +---dpp
|
|
| +---dpp-comp
|
|
| +---evt_par
|
|
| +---qhsmtst
|
|
| +---qmsmtst
|
|
| +---self_test
|
|
| +---start_seq
|
|
| +---unity_basic
|
|
| +---unity_ledbar
|
|
| +---unity_ledbar2
|
|
| +---unity_mock
|
|
| \---unity_strlen
|
|
| +---qutest
|
|
| +---src
|
|
| \---test
|
|
|
|
|
+---qview-dpp <== examples for QView monitoring (DPP example)
|
|
| +---img
|
|
| dpp.py
|
|
| dpp1.py
|
|
| qview-dpp.lnk
|
|
| qview-dpp.lnk
|
|
|
|
|
+---qwin-gui <== examples for the QWin GUI
|
|
| +---dpp-gui
|
|
| \---game-gui
|
|
|
|
|
```
|
|
|
|
## Examples for QTest Testing System
|
|
The "qutest" Python package (included in the
|
|
[QTools collection](https://github.com/QuantumLeaps/qtools))
|
|
is a powerful [testing system](https://www.state-machine.com/qtools/qutest.html).
|
|
It has been specifically designed for deeply embedded systems, but also supports
|
|
unit and integration testing of embedded code on host computers ("dual targeting").
|
|
QUTest is the fundamental tooling for Test-Driven Development (TDD) and Behavior-
|
|
Driven Development (BDD) of QP/C/C++ applications , which is a highly recommended
|
|
best-practice.
|
|
|
|
The following screen shot show a typical QUTest run with the QSPY ouptut
|
|
in the background.
|
|
|
|

|
|
|
|
|
|
## Examples for QView Monitoring System
|
|
The "qview" Python package (included in the
|
|
[QTools collection](https://github.com/QuantumLeaps/qtools))
|
|
is a powerful
|
|
[Visualization and Monitoring system](https://www.state-machine.com/qtools/qview.html),
|
|
which allows embedded developers to create virtual Graphical User Interfaces
|
|
in Python to monitor and control their embedded devices from a host (desktop)
|
|
computer. The interfaces created by QView can visualize the data produced
|
|
by [QP/Spy software tracing system](https://www.state-machine.com/qtools/qpspy.html)
|
|
and can also interact with the embedded target by sending various commands.
|
|
|
|
> **NOTE** You need to **install** the `qview` package in your Python setup.<br>
|
|
`pip install qview`
|
|
|
|
The python scripts `qview-dpp/dpp.py` and `qview-dpp/dpp1.py` will allow
|
|
monitoring of all DPP examples running on any supported board (or on the
|
|
host computer). Here is how you can launch the QView monitoring for DPP:
|
|
|
|
```
|
|
pythonw dpp.py
|
|
|
|
pythonw dpp1.py
|
|
```
|
|
|
|
The following screen shot shows QView for the DPP (Dining Philosophers Problem)
|
|
application with the QSPY ouptut in the background.
|
|
|
|

|
|
|