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 that don't require the qpc framework repo. (These examples rely on the qpc framework included from the CMIS-packs)
+---cmsis-packs <=== standalone examples
| +---dpp_nucleo-c031c6-qk-gcc
| +---dpp_nucleo-c031c6-qk-keil
| +---dpp_nucleo-c031c6-qk-stm32cube
| \---dpp_nucleo-u545re-qk-stm32cube
|
+---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
|
The "qutest" Python package (included in the QTools collection) is a powerful testing system. 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.
The "qview" Python package (included in the QTools collection) is a powerful Visualization and Monitoring system, 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 and can also interact with the embedded target by sending various commands.
NOTE You need to install the
qview
package in your Python setup.
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.