|
| 1 | +## Brought to you by: |
| 2 | +[](https://www.state-machine.com) |
| 3 | +<hr> |
| 4 | + |
1 | 5 | # About qpcpp-examples |
2 | | -This `qpcpp-examples` repository contains the examples for the QP/C++ Real-Time Embedded Framework. |
| 6 | +This repository contains the application examples for the QP/C++ |
| 7 | +Real-Time Embedded Framework (see https://github.com/QuantumLeaps/qpcpp ). |
| 8 | + |
| 9 | +This repository can be used in several ways: |
| 10 | +- [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 |
| 13 | + [CMIS-packs](https://github.com/QuantumLeaps/cmsis-packs)) |
| 14 | + |
| 15 | +- [As a sub-module to the qpcpp repo](#as-a-sub-module-to-the-qpcpp-repository) |
| 16 | + |
| 17 | +- [Examples for the QView monitoring system](#examples-for-qview-monitoring-system) |
| 18 | + |
| 19 | +- [Examples for the QUTest testing system](#examples-for-qtest-testing-system) |
| 20 | + |
| 21 | + |
| 22 | +## Standalone (examples in the `cmsis-packs` folder) |
| 23 | +``` |
| 24 | ++---cmsis-packs <=== standalone examples |
| 25 | +| +---dpp_nucleo-c031c6-qk-gcc |
| 26 | +| +---dpp_nucleo-c031c6-qk-keil |
| 27 | +| +---dpp_nucleo-c031c6-qk-stm32cube |
| 28 | +| \---dpp_nucleo-u545re-qk-stm32cube |
| 29 | +| |
| 30 | +``` |
| 31 | + |
| 32 | +## As a sub-module to the qpcpp repository |
| 33 | +``` |
| 34 | ++---arm-cm |
| 35 | +| +---blinky_ek-tm4c123gxl |
| 36 | +| +---blinky_nucleo-c031c6 |
| 37 | +| +---dpp_efm32-slstk3401a |
| 38 | +| | +---qk |
| 39 | +| | | +---armclang |
| 40 | +| | | +---gnu |
| 41 | +| | | \---iar |
| 42 | +| | +---qv |
| 43 | +| | | +---armclang |
| 44 | +| | | +---gnu |
| 45 | +| | | \---iar |
| 46 | +| | +---qview |
| 47 | +| | | \---img |
| 48 | +| | \---qxk |
| 49 | +| | +---armclang |
| 50 | +| | +---gnu |
| 51 | +| | \---iar |
| 52 | +| +---dpp_ek-tm4c123gxl |
| 53 | +| +---dpp_ek-tm4c123gxl_mpu |
| 54 | +| +---dpp_mbed-lpc1768 |
| 55 | +| +---dpp_nucleo-c031c6 |
| 56 | +| +---dpp_nucleo-c031c6_mpu |
| 57 | +| +---dpp_nucleo-h743zi |
| 58 | +| +---dpp_nucleo-l053r8 |
| 59 | +| +---dpp_nucleo-l152re |
| 60 | +| +---dpp_nucleo-l552ze |
| 61 | +| +---dpp_nucleo-u545re |
| 62 | +| +---dpp_stm32f4-discovery |
| 63 | +| +---game_efm32-slstk3401a |
| 64 | +| +---low-power_ek-tm4c123gxl |
| 65 | +| \---real-time_nucleo-l053r8 |
| 66 | +| |
| 67 | ++---arm-cr |
| 68 | +| +---blinky_launchxl2-tms57012 |
| 69 | +| \---dpp_launchxl2-tms57012 |
| 70 | +| |
| 71 | ++---embos |
| 72 | +| \---arm-cm |
| 73 | +| \---dpp_nucleo-h743zi |
| 74 | ++---emwin |
| 75 | +| +---demo_no_wm |
| 76 | +| \---demo_with_wm |
| 77 | +| |
| 78 | ++---freertos |
| 79 | +| \---arm-cm |
| 80 | +| +---dpp_ek-tm4c123gxl |
| 81 | +| \---dpp_nucleo-h743zi |
| 82 | +| |
| 83 | ++---lwip |
| 84 | +| \---arm-cm |
| 85 | +| \---lwip_ek-lm3s6965 |
| 86 | +| |
| 87 | ++---msp430 |
| 88 | +| +---blinky_msp-exp430f5529lp |
| 89 | +| +---blinky_msp-exp430g2 |
| 90 | +| \---dpp_msp-exp430f5529lp |
| 91 | +| |
| 92 | ++---posix-win32 <== examples for the host computer |
| 93 | +| +---blinky |
| 94 | +| +---calc |
| 95 | +| +---calc2 |
| 96 | +| +---calc_sub |
| 97 | +| +---comp |
| 98 | +| +---defer |
| 99 | +| +---dpp |
| 100 | +| +---dpp-posix |
| 101 | +| +---dpp_comp |
| 102 | +| +---history_qhsm |
| 103 | +| +---history_qmsm |
| 104 | +| +---qhsmtst |
| 105 | +| +---qmsmtst |
| 106 | +| +---reminder |
| 107 | +| \---reminder2 |
| 108 | +| |
| 109 | ++---qutest <== examples for QUTest testing harness |
| 110 | +| +---blinky |
| 111 | +| +---dpp |
| 112 | +| +---dpp-comp |
| 113 | +| +---evt_par |
| 114 | +| +---qhsmtst |
| 115 | +| +---qmsmtst |
| 116 | +| +---self_test |
| 117 | +| +---start_seq |
| 118 | +| +---unity_basic |
| 119 | +| +---unity_ledbar |
| 120 | +| +---unity_ledbar2 |
| 121 | +| +---unity_mock |
| 122 | +| \---unity_strlen |
| 123 | +| +---qutest |
| 124 | +| +---src |
| 125 | +| \---test |
| 126 | +| |
| 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 |
| 139 | +| +---img |
| 140 | +| dpp.py |
| 141 | +| |
| 142 | ++---qwin-gui <== examples for the QWin GUI |
| 143 | +| +---dpp-gui |
| 144 | +| \---game-gui |
| 145 | +| |
| 146 | +``` |
| 147 | + |
| 148 | +## Examples for QView Monitoring System |
| 149 | +The "qview" Python package (included in the |
| 150 | +[QTools collection](https://github.com/QuantumLeaps/qtools)) |
| 151 | +is a powerful |
| 152 | +[Visualization and Monitoring system](https://www.state-machine.com/qtools/qview.html), |
| 153 | +which allows embedded developers to create virtual Graphical User Interfaces |
| 154 | +in Python to monitor and control their embedded devices from a host (desktop) |
| 155 | +computer. The interfaces created by QView can visualize the data produced |
| 156 | +by [QP/Spy software tracing system](https://www.state-machine.com/qtools/qpspy.html) |
| 157 | +and can also interact with the embedded target by sending various commands. |
| 158 | + |
| 159 | +> **NOTE** You need to **install** the `qview` package in your Python setup.<br> |
| 160 | +`pip install qview` |
| 161 | + |
| 162 | +The python scripts `qview-dpp/dpp.py` and `qview-dpp/dpp1.py` will allow |
| 163 | +monitoring of all DPP examples running on any supported board (or on the |
| 164 | +host computer). Here is how you can launch the QView monitoring for DPP: |
| 165 | + |
| 166 | +``` |
| 167 | +pythonw dpp.py |
| 168 | +
|
| 169 | +pythonw dpp1.py |
| 170 | +``` |
| 171 | + |
| 172 | +The following screen shot shows QView for the DPP (Dining Philosophers Problem) |
| 173 | +application with the QSPY ouptut in the background. |
| 174 | + |
| 175 | + |
| 176 | + |
| 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. |
3 | 190 |
|
4 | | -> **NOTE** |
5 | | -This repository is **NOT** designed to be used standalone, but rather only as submodule of the repository [qpcpp](https://github.com/QuantumLeaps/qpcpp) |
| 191 | + |
0 commit comments