This commit is contained in:
MMS 2022-04-20 10:05:26 -04:00
parent d0160c8c7b
commit 90feff97a0
135 changed files with 14237 additions and 12480 deletions

2
.gitignore vendored
View File

@ -33,11 +33,9 @@
*.Release
*.bak
*.qlc
*.dox
JLink*.*
version-*
doxygen/
html/
test_priv/
dbg/

View File

@ -97,7 +97,7 @@ GENERATE_TODOLIST = YES
GENERATE_TESTLIST = YES
GENERATE_BUGLIST = YES
GENERATE_DEPRECATEDLIST= YES
ENABLED_SECTIONS = QPC CERT
ENABLED_SECTIONS = QPC
MAX_INITIALIZER_LINES = 30
SHOW_USED_FILES = YES
SHOW_FILES = YES

10
doxygen/Doxyfile-CERT Normal file
View File

@ -0,0 +1,10 @@
# Doxyfile 1.9.3
@INCLUDE = Doxyfile
#---------------------------------------------------------------------------
# Configuration options related to the input files
#---------------------------------------------------------------------------
ENABLED_SECTIONS += CERT

60
doxygen/dir.dox Normal file
View File

@ -0,0 +1,60 @@
/*##########################################################################*/
/*! @dir ../include
Platform-independent QP™/C API
@attention
The QP&trade;/C <span class="img folder">include</span> directory needs to be added to the compiler's include path in the applications using QP&trade;/C.
*/
/*##########################################################################*/
/*! @dir ../src
Platform-independent QP&trade;/C source code
Files from this directory need to be added to the project, to build the QP&trade;/C framework from source code.
@attention
The QP&trade;/C <span class="img folder">src</span> directory needs to be added to the compiler's include path in the applications that build QP&trade;/C framework from sources (as opposed to using QP as a pre-built library).
*/
/*##########################################################################*/
/*! @dir ../src/qf
Platform-independent implementation of the @ref qep and @ref qf components.
@note
Typically, files in this directory need to be added to the application build, but some QP ports might not need all the files in this directory. For example, a QP port to a 3rd-party RTOS kernel might be using a message queue of the RTOS instead of the native QP event queue, in which case the file qf_actq.c would not be needed and should be excluded from the build.
*/
/*##########################################################################*/
/*! @dir ../src/qv
Platform-independent implementation of the @ref qv built-in kernel.
@attention
Files in this directory need to be included in the QP application build only if the application uses the @ref qv kernel.
*/
/*##########################################################################*/
/*! @dir ../src/qk
Platform-independent implementation of the @ref qk built-in kernel.
@attention
Files in this directory need to be included in the QP application build only if the application uses the @ref qk kernel.
*/
/*##########################################################################*/
/*! @dir ../src/qxk
Platform-independent implementation of the @ref qxk built-in kernel.
@attention
Files in this directory need to be included in the QP application build only if the application uses the @ref qxk kernel.
*/
/*##########################################################################*/
/*! @dir ../src/qs
Platform-independent implementation of the @ref qs component (software tracing).
*/
/*##########################################################################*/
/*! @dir ../3rd_party
3rd-Party code used in the QP&trade;/C @ref ports "ports" and @ref exa "examples"
*/

BIN
doxygen/images/AN-game.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

BIN
doxygen/images/AN_DPP.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

BIN
doxygen/images/SM_calc.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 63 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 97 KiB

BIN
doxygen/images/game.mp4 Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

BIN
doxygen/images/gs-video.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 115 KiB

BIN
doxygen/images/misra3.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 73 KiB

BIN
doxygen/images/psicc1.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 67 KiB

BIN
doxygen/images/psicc2.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

BIN
doxygen/images/qk_synch.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
doxygen/images/qpc_gh.jpg Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 91 KiB

BIN
doxygen/images/qwin_ani.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 233 KiB

BIN
doxygen/img/logo_github.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

190
doxygen/metrics.dox Normal file
View File

@ -0,0 +1,190 @@
/** @page metrics Code Metrics
@code{cpp}
Code Metrics
================================================
NLOC CCN token PARAM length location
------------------------------------------------
3 1 19 1 3 QHsm_state@379-381@..\include\qep.h
3 1 16 1 3 QMsm_stateObj@470-472@..\include\qep.h
3 1 14 1 3 QEQueue_getNFree@186-188@..\include\qequeue.h
3 1 14 1 3 QEQueue_getNMin@201-203@..\include\qequeue.h
3 1 20 1 3 QEQueue_isEmpty@218-220@..\include\qequeue.h
3 1 15 1 3 QPSet_setEmpty@71-73@..\include\qpset.h
3 1 16 1 3 QPSet_isEmpty@76-78@..\include\qpset.h
3 1 16 1 3 QPSet_notEmpty@81-83@..\include\qpset.h
3 1 36 2 3 QPSet_hasElement@86-88@..\include\qpset.h
3 1 31 2 3 QPSet_insert@91-93@..\include\qpset.h
3 1 36 2 3 QPSet_remove@96-98@..\include\qpset.h
3 1 17 1 3 QPSet_findMax@103-105@..\include\qpset.h
4 1 27 1 4 QPSet_setEmpty@120-123@..\include\qpset.h
5 2 34 1 6 QPSet_isEmpty@126-131@..\include\qpset.h
5 2 34 1 6 QPSet_notEmpty@134-139@..\include\qpset.h
5 2 74 2 5 QPSet_hasElement@142-146@..\include\qpset.h
8 2 66 2 8 QPSet_insert@149-156@..\include\qpset.h
8 2 76 2 8 QPSet_remove@159-166@..\include\qpset.h
5 2 45 1 5 QPSet_findMax@171-175@..\include\qpset.h
6 1 23 1 15 Q_DEFINE_THIS_MODULE@45-59@..\src\qf\qep_hsm.c
5 1 31 3 5 QHsm_trig_@77-81@..\src\qf\qep_hsm.c
10 2 56 2 12 QHsm_ctor@142-153@..\src\qf\qep_hsm.c
48 8 357 2 73 QHsm_init_@173-245@..\src\qf\qep_hsm.c
5 1 32 2 5 QHsm_top@265-269@..\src\qf\qep_hsm.c
104 15 670 2 157 QHsm_dispatch_@292-448@..\src\qf\qep_hsm.c
95 15 500 2 133 QHsm_tran_@472-604@..\src\qf\qep_hsm.c
3 1 16 1 3 QHsm_getStateHandler_@608-610@..\src\qf\qep_hsm.c
16 3 107 2 23 QHsm_isIn@630-652@..\src\qf\qep_hsm.c
22 4 131 2 30 QHsm_childState@678-707@..\src\qf\qep_hsm.c
10 2 59 2 13 QMsm_ctor@115-127@..\src\qf\qep_msm.c
24 5 211 2 44 QMsm_init_@146-189@..\src\qf\qep_msm.c
122 23 847 2 185 QMsm_dispatch_@210-394@..\src\qf\qep_msm.c
3 1 18 1 3 QMsm_getStateHandler_@398-400@..\src\qf\qep_msm.c
52 9 328 2 65 QMsm_execTatbl_@425-489@..\src\qf\qep_msm.c
20 4 120 3 28 QMsm_exitToTranSource_@509-536@..\src\qf\qep_msm.c
41 6 236 2 50 QMsm_enterHistory_@557-606@..\src\qf\qep_msm.c
13 3 69 2 14 QMsm_isInState@624-637@..\src\qf\qep_msm.c
21 4 97 2 27 QMsm_childStateObj@658-684@..\src\qf\qep_msm.c
10 3 65 1 16 QF_add_@66-81@..\src\qf\qf_act.c
10 3 79 1 15 QF_remove_@99-113@..\src\qf\qf_act.c
7 2 46 2 7 QF_bzero@130-136@..\src\qf\qf_act.c
24 6 143 1 29 QF_LOG2@143-171@..\src\qf\qf_act.c
79 13 422 3 115 QActive_post_@88-202@..\src\qf\qf_actq.c
42 7 268 2 65 QActive_postLIFO_@223-287@..\src\qf\qf_actq.c
34 3 235 1 45 QActive_get_@312-356@..\src\qf\qf_actq.c
9 2 60 1 12 QF_getQueueMin@378-389@..\src\qf\qf_actq.c
14 2 78 2 18 QTicker_ctor@421-438@..\src\qf\qf_actq.c
7 2 39 2 10 QTicker_init_@445-454@..\src\qf\qf_actq.c
14 3 87 2 20 QTicker_dispatch_@461-480@..\src\qf\qf_actq.c
27 2 150 4 35 QTicker_post_@487-521@..\src\qf\qf_actq.c
5 1 30 2 5 QTicker_postLIFO_@524-528@..\src\qf\qf_actq.c
14 1 84 3 16 QActive_defer@72-87@..\src\qf\qf_defer.c
32 3 169 2 52 QActive_recall@112-163@..\src\qf\qf_defer.c
13 2 68 2 13 QActive_flushDeferred@182-194@..\src\qf\qf_defer.c
5 1 37 2 6 QEvt_ctor@63-68@..\src\qf\qf_dyn.c
15 3 117 3 24 QF_poolInit@108-131@..\src\qf\qf_dyn.c
37 7 234 3 55 QF_newX_@161-215@..\src\qf\qf_dyn.c
30 4 186 1 47 QF_gc@242-288@..\src\qf\qf_dyn.c
16 2 94 2 24 QF_newRef_@306-329@..\src\qf\qf_dyn.c
11 1 67 1 13 QF_deleteRef_@343-355@..\src\qf\qf_dyn.c
3 1 17 1 3 QF_poolGetMaxBlockSize@363-365@..\src\qf\qf_dyn.c
30 5 235 4 48 QMPool_init@83-130@..\src\qf\qf_mem.c
16 2 113 3 23 QMPool_put@155-177@..\src\qf\qf_mem.c
43 4 238 3 66 QMPool_get@213-278@..\src\qf\qf_mem.c
9 3 59 1 13 QF_getPoolMin@294-306@..\src\qf\qf_mem.c
5 1 35 2 10 QF_psInit@85-94@..\src\qf\qf_ps.c
37 5 211 3 64 QF_publish_@120-183@..\src\qf\qf_ps.c
16 5 113 2 22 QActive_subscribe@205-226@..\src\qf\qf_ps.c
16 5 113 2 25 QActive_unsubscribe@254-278@..\src\qf\qf_ps.c
19 5 134 1 24 QActive_unsubscribeAll@304-327@..\src\qf\qf_ps.c
14 2 71 2 21 QActive_ctor@60-80@..\src\qf\qf_qact.c
13 2 85 3 13 QEQueue_init@65-77@..\src\qf\qf_qeq.c
55 8 303 4 74 QEQueue_post@104-177@..\src\qf\qf_qeq.c
35 5 201 3 45 QEQueue_postLIFO@203-247@..\src\qf\qf_qeq.c
36 4 221 2 46 QEQueue_get@269-314@..\src\qf\qf_qeq.c
14 2 78 2 32 QMActive_ctor@68-99@..\src\qf\qf_qmact.c
66 7 368 1 98 QF_tickX_@89-186@..\src\qf\qf_time.c
14 3 75 1 17 QF_noTimeEvtsActiveX@203-219@..\src\qf\qf_time.c
13 2 99 4 30 QTimeEvt_ctorX@240-269@..\src\qf\qf_time.c
32 8 225 3 58 QTimeEvt_armX@302-359@..\src\qf\qf_time.c
31 3 173 1 41 QTimeEvt_disarm@381-421@..\src\qf\qf_time.c
34 8 230 2 62 QTimeEvt_rearm@445-506@..\src\qf\qf_time.c
5 1 36 1 5 QTimeEvt_wasDisarmed@531-535@..\src\qf\qf_time.c
7 1 30 1 8 QTimeEvt_currCtr@554-561@..\src\qf\qf_time.c
11 2 76 1 16 QF_init@65-80@..\src\qk\qk.c
3 1 10 1 4 QF_stop@99-102@..\src\qk\qk.c
6 2 26 1 8 initial_events@107-114@..\src\qk\qk.c
12 3 45 1 19 QF_run@125-143@..\src\qk\qk.c
21 5 144 7 31 QActive_start_@167-197@..\src\qk\qk.c
22 2 111 1 33 QK_schedLock@221-253@..\src\qk\qk.c
21 4 123 1 33 QK_schedUnlock@271-303@..\src\qk\qk.c
14 3 76 1 17 QK_sched_@320-336@..\src\qk\qk.c
61 16 353 1 105 QK_activate_@348-452@..\src\qk\qk.c
9 2 64 1 13 QF_init@66-78@..\src\qv\qv.c
3 1 10 1 4 QF_stop@97-100@..\src\qv\qv.c
39 9 197 1 76 QF_run@110-185@..\src\qv\qv.c
14 3 114 7 20 QActive_start_@209-228@..\src\qv\qv.c
14 2 108 1 22 QF_init@68-89@..\src\qxk\qxk.c
3 1 10 1 4 QF_stop@108-111@..\src\qxk\qxk.c
6 2 26 1 8 initial_events@116-123@..\src\qxk\qxk.c
12 3 45 1 20 QF_run@133-152@..\src\qxk\qxk.c
23 6 164 7 33 QActive_start_@177-209@..\src\qxk\qxk.c
23 3 130 1 34 QXK_schedLock@241-274@..\src\qxk\qxk.c
20 4 123 1 33 QXK_schedUnlock@297-329@..\src\qxk\qxk.c
47 7 268 1 65 QXK_sched_@345-409@..\src\qxk\qxk.c
73 16 474 1 128 QXK_activate_@421-548@..\src\qxk\qxk.c
12 2 72 1 18 QXK_current@551-568@..\src\qxk\qxk.c
16 4 113 2 25 QXMutex_init@80-104@..\src\qxk\qxk_mutex.c
69 12 542 2 110 QXMutex_lock@127-236@..\src\qxk\qxk_mutex.c
43 10 315 1 67 QXMutex_tryLock@259-325@..\src\qxk\qxk_mutex.c
64 16 502 1 111 QXMutex_unlock@347-457@..\src\qxk\qxk_mutex.c
8 1 49 3 10 QXSemaphore_init@72-81@..\src\qxk\qxk_sema.c
43 7 321 2 69 QXSemaphore_wait@107-175@..\src\qxk\qxk_sema.c
15 2 61 1 20 QXSemaphore_tryWait@192-211@..\src\qxk\qxk_sema.c
28 6 195 1 46 QXSemaphore_signal@233-278@..\src\qxk\qxk_sema.c
20 2 112 3 25 QXThread_ctor@105-129@..\src\qxk\qxk_xthr.c
8 2 38 3 11 QXThread_init_@136-146@..\src\qxk\qxk_xthr.c
8 2 38 3 11 QXThread_dispatch_@152-162@..\src\qxk\qxk_xthr.c
25 6 202 7 47 QXThread_start_@189-235@..\src\qxk\qxk_xthr.c
97 13 519 3 131 QXThread_post_@280-410@..\src\qxk\qxk_xthr.c
5 1 30 2 5 QXThread_postLIFO_@423-427@..\src\qxk\qxk_xthr.c
58 7 497 1 84 QXThread_queueGet@449-532@..\src\qxk\qxk_xthr.c
5 1 51 1 7 QXThread_block_@542-548@..\src\qxk\qxk_xthr.c
8 3 58 1 8 QXThread_unblock_@558-565@..\src\qxk\qxk_xthr.c
19 3 153 3 37 QXThread_teArm_@576-612@..\src\qxk\qxk_xthr.c
11 2 46 1 13 QXThread_teDisarm_@622-634@..\src\qxk\qxk_xthr.c
21 4 195 1 38 QXThread_delay@650-687@..\src\qxk\qxk_xthr.c
14 2 68 1 16 QXThread_delayCancel@699-714@..\src\qxk\qxk_xthr.c
13 2 106 1 23 QXK_threadRet_@727-749@..\src\qxk\qxk_xthr.c
37 file analyzed.
==============================================================
NLOC Avg.NLOC AvgCCN Avg.token function_cnt file
--------------------------------------------------------------
4 0.0 0.0 0.0 0 ..\include\qassert.h
108 3.0 1.0 17.5 2 ..\include\qep.h
28 3.0 1.0 16.0 3 ..\include\qequeue.h
93 0.0 0.0 0.0 0 ..\include\qf.h
20 0.0 0.0 0.0 0 ..\include\qk.h
21 0.0 0.0 0.0 0 ..\include\qmpool.h
8 0.0 0.0 0.0 0 ..\include\qpc.h
71 4.4 1.4 37.4 14 ..\include\qpset.h
238 0.0 0.0 0.0 0 ..\include\qs.h
3 0.0 0.0 0.0 0 ..\include\qstamp.c
2 0.0 0.0 0.0 0 ..\include\qstamp.h
0 0.0 0.0 0.0 0 ..\include\qs_dummy.h
9 0.0 0.0 0.0 0 ..\include\quit.h
5 0.0 0.0 0.0 0 ..\include\qv.h
23 0.0 0.0 0.0 0 ..\include\qxk.h
32 0.0 0.0 0.0 0 ..\include\qxthread.h
337 31.4 5.1 192.3 10 ..\src\qf\qep_hsm.c
346 34.0 6.3 220.6 9 ..\src\qf\qep_msm.c
59 12.8 3.5 83.2 4 ..\src\qf\qf_act.c
257 25.7 3.9 152.1 9 ..\src\qf\qf_actq.c
66 19.7 2.0 107.0 3 ..\src\qf\qf_defer.c
126 16.7 2.7 107.4 7 ..\src\qf\qf_dyn.c
105 24.5 3.5 161.2 4 ..\src\qf\qf_mem.c
103 18.6 4.2 121.2 5 ..\src\qf\qf_ps.c
16 14.0 2.0 71.0 1 ..\src\qf\qf_qact.c
146 34.8 4.8 202.5 4 ..\src\qf\qf_qeq.c
16 14.0 2.0 78.0 1 ..\src\qf\qf_qmact.c
211 25.2 4.1 154.5 8 ..\src\qf\qf_time.c
180 19.0 4.2 107.1 9 ..\src\qk\qk.c
73 16.2 3.8 96.2 4 ..\src\qv\qv.c
243 23.3 4.6 142.0 10 ..\src\qxk\qxk.c
199 48.0 10.5 368.0 4 ..\src\qxk\qxk_mutex.c
101 23.5 4.0 156.5 4 ..\src\qxk\qxk_sema.c
339 22.3 3.6 150.9 14 ..\src\qxk\qxk_xthr.c
19 0.0 0.0 0.0 0 ..\src\qf_pkg.h
30 0.0 0.0 0.0 0 ..\src\qs_pkg.h
16 0.0 0.0 0.0 0 ..\src\qxk_pkg.h
=========================================================================================================
!!!! Warnings (cyclomatic_complexity > 20 or length > 500 or nloc > 1000000 or parameter_count > 10) !!!!
================================================
NLOC CCN token PARAM length location
------------------------------------------------
122 23 847 2 185 QMsm_dispatch_@210-394@..\src\qf\qep_msm.c
==========================================================================================
Total nloc Avg.NLOC AvgCCN Avg.token Fun Cnt Warning cnt Fun Rt nloc Rt
------------------------------------------------------------------------------------------
3653 21.6 3.9 137.3 129 1 0.01 0.04
@endcode
*/

1442
doxygen/ports_arm-cm.dox Normal file

File diff suppressed because it is too large Load Diff

View File

@ -19,8 +19,8 @@ system (RTOS). The currently supported 3rd-party RTOS kernels are:
- @subpage embos
- @subpage freertos
- @subpage threadx
- @subpage ucos-ii
- <a href="http://erika.tuxfamily.org/drupal/news/qp-framework-erika-enterprise" target="_blank" class="extern">OSEK/VDX RTOS ERIKA Enterprise</a>
- @subpage uc-os2
- <a href="https://www.erika-enterprise.com" target="_blank" class="extern">OSEK/VDX RTOS ERIKA Enterprise</a>
Combined with a conventional RTOS, QP/C takes full advantage of the multitasking capabilities of the RTOS by executing each active object in a separate RTOS task. The QP/C Platform Abstraction Layer (PAL) includes an abstract RTOS interface to enable integration between QP/C and the underlying RTOS. Specifically, the PAL allows adapting most message queue variants as event queues of active objects as well as most memory partitions as QP/C event pools.
@ -30,7 +30,7 @@ Combined with a conventional RTOS, QP/C takes full advantage of the multitasking
/*##########################################################################*/
/*! @page embos embOS
<p>The QP/C/C++ ports and examples for embOS are described in the Quantum Leaps Application Note <a class="extern" target="_blank" href="https://www.state-machine.com/doc/AN_RTOS-embOS.pdf"><strong>QP and embOS</strong></a>.
<p>The QP/C/C++ ports and examples for embOS are described in the Quantum Leaps Application Note @webref{doc/AN_RTOS-embOS.pdf, QP and embOS}.
</p>
@htmlonly
@ -78,7 +78,6 @@ The design of FreeRTOS requires the use of special "FromISR" API inside ISRs, wh
- The QP port does not mandate any specific method to manage the QP time events, but the provided examples use the FreeRTOS "hook" `vApplicationTickHook()` to periodically invoke the QP clock tick QF_TICK_X_FROM_ISR(). (NOTE: the `vApplicationTickHook()` executes in the ISR context and therefore mandates the use of the "FromISR" APIs).
@section freertos_examples Example Code
The QP port to FreeRTOS comes with examples located in the directory `qpc/examples/freertos/`. Currently, the examples are provided for the following boards and development toolchains:
@ -164,8 +163,8 @@ int main() {
tableQueueSto, /* event queue storage */
Q_DIM(tableQueueSto), /* queue length [events] */
tableStack, /* stack storage */
sizeof(tableStack), /* stack size [bytes] */
(QEvt *)0); /* initialization event (not used) */
sizeof(tableStack), /* stack size [bytes] */
(void *)0); /* initialization param (not used) */
. . .
return QF_run(); /* run the QF application */
}
@ -177,7 +176,7 @@ int main() {
/*##########################################################################*/
/*! @page threadx ThreadX
<p>The QP/C/C++ ports and examples for ThreadX are described in the Quantum Leaps Application Note <a class="extern" target="_blank" href="https://www.state-machine.com/doc/AN_RTOS-ThreadX.pdf"><strong>QP and ThreadX</strong></a>.
<p>The QP/C/C++ ports and examples for ThreadX are described in the Quantum Leaps Application Note @webref{doc/AN_RTOS-ThreadX.pdf, QP and ThreadX}.
</p>
@htmlonly
@ -189,31 +188,30 @@ Application Note: QP and ThreadX
</div>
@endhtmlonly
@next{ucos-ii}
@next{uc-os2}
*/
/*##########################################################################*/
/*! @page ucos-ii uC/OS-II
/*! @page uc-os2 uC-OS
@section ucos-ii_about About the QP Port to uC/OS-II
This directory contains a generic platform-independent QP/C port to uC/OS-II V2.92.
@section uc-os2_about About the QP Port to uC-OS2
This directory contains a generic platform-independent QP/C port to uC-OS2 V2.92.
Typically, you should not need to change the files in this directory to adapt the QP-uC/OS port on any CPU/Compiler to which uC/OS-II has been ported, because all the CPU and compiler specifics are handled by the uC/OS-II RTOS.
Typically, you should not need to change the files in this directory to adapt the QP-uC-OS2 port on any CPU/Compiler to which uC-OS2 has been ported, because all the CPU and compiler specifics are handled by the uC-OS2 RTOS.
@note
Currently, the port has been tested only on ARM Cortex-M3 and M4F.
@section ucos-ii_source uC/OS-II Source and ARM Cortex-M3/M4 Ports
The uC/OS-II V2.92 source code and ports are located in `3rd_party/uCOS-II`. Please make sure to read about uC/OS-II licensing in the README file found in this directory.
@section uc-os2_source uC-OS2 Source and ARM Cortex-M3/M4 Ports
The uC-OS2 V2.92 source code and ports are located in `3rd_party/uc-os2`. Please make sure to read about uC-OS2 licensing in the README file found in this directory.
@note
The official Micrium ARM-Cortex-M ports have been modified by Quantum Leaps to remove the dependencies on the Micrium's uC-CPU and uC-LIB components, and instead to inter-operate with the Cortex Microcontroller Software Interface Standard (CMSIS).
@section ucos-ii_using Using this QP Port to uC/OS-II
The example projects for this port are located in @ref exa_ucos-ii "examples/ucos-ii/arm-cm/dpp_ek-tm4c123gxl".
@section uc-os2_using Using this QP Port to uC-OS2
The example projects for this port are located in @ref exa_uc-os2 "examples/uc-os2/arm-cm/dpp_ek-tm4c123gxl".
Currently, ARM-KEIL and IAR-ARM toolsets are supported (in the <span class="img folder">arm</span> and <span class="img folder">iar</span> sub-directories within this example project).
@ -222,42 +220,45 @@ The example projects use this port by directly including the QP source code (and
However, this port can also be used as a library, in which case you need to build the QP library yourself and include in your project.
@subsection ucos-ii_build QP Source Files Needed in this QP Port
Whether you use this QP port as source files or as a library, it is important to note that not all QP soruce files should be included. Here is the list of QP source files needed:
@subsection uc-os2_build QP Source Files Needed in this QP Port
Whether you use this QP port as source files or as a library, it is important to note that not all QP source files should be included. Here is the list of QP source files needed:
@verbatim
qpc
+-source
| +-qep_hsm.c
| +-qep_msm.c
| +-qf_act.c
| +-qf_defer.c
| +-qf_dyn.c
| +-qf_ps.c
| +-qf_qeq.c
| +-qf_qmact.c
| +-qf_time.c
qpc/
+-src/
| | +-qf/
| | | +-qep_hsm.c
| | | +-qep_msm.c
| | | +-qf_act.c
| | | +-qf_actq.c - NOT included (implemented in uC-OS2)
| | | +-qf_defer.c
| | | +-qf_dyn.c
| | | +-qf_mem.c - NOT included (implemented in uC-OS2)
| | | +-qf_ps.c
| | | +-qf_qeq.c
| | | +-qf_qmact.c
| | | +-qf_time.c
| |
| +-qs.c - included only in the Spy build configuration
| +-qs_fp.c - included only in the Spy build configuration
| | +-qs/
| | | +-qs.c - included only in the Spy build configuration
| | | +-qs_fp.c - included only in the Spy build configuration
|
+-ports
| +-ucos-ii
| +-uc-os2
| | +-qf_port.c
|
@endverbatim
@note
Specifically, the QP source files qf_actq.c and qf_mem.c must **NOT** be included in the build, because this functionality is taken from uC/OS-II.
Specifically, the QP source files qf_actq.c and qf_mem.c must **NOT** be included in the build, because this functionality is taken from uC-OS2.
<p>The QP/C/C++ ports and examples for uC/OS-II are described in the Quantum Leaps Application Note <a class="extern" target="_blank" href="https://www.state-machine.com/doc/AN_RTOS-uCOS2.pdf"><strong>QP and uC/OS-II</strong></a>.
</p>
The QP/C/C++ ports and examples for uC-OS2 are described in the Quantum Leaps Application Note @webref{doc/AN_RTOS-uCOS2.pdf, QP and uC-OS2}.
@htmlonly
<div class="image">
<a target="_blank" href="https://www.state-machine.com/doc/AN_RTOS-uCOS2.pdf"><img border="0" src="img/AN.jpg" title="Download PDF"></a>
<div class="caption">
Application Note: QP and uC/OS-II
Application Note: QP and uC-OS2
</div>
</div>
@endhtmlonly

View File

@ -0,0 +1,20 @@
QState Blinky_off(Blinky * const me, QEvt const * const e) {
QState status;
switch (e->sig) {
case Q_ENTRY_SIG: {
BSP_ledOff();
status = Q_HANDLED();
break;
}
case TIMEOUT_SIG: {
status = Q_TRAN(&Blinky_on);
break;
}
default: {
status = Q_SUPER(&QHsm_top); /*<--- */
break;
}
}
return status;
}

View File

@ -0,0 +1,36 @@
/* bsp.h ----------------- */
extern QTicker ticker0; /* "ticker" AO for clock rate 0 */
extern QTicker ticker1; /* "ticker" AO for clock rate 1 */
/* bsp.c ----------------- */
QTicker ticker0; /* "ticker" AO for clock rate 0 */
QTicker ticker1; /* "ticker" AO for clock rate 1 */
/* system clock tick ISR for clock rate 0 */
void SysTick_Handler(void) {
. . .
QACTIVE_POST(&ticker0.super, (QEvt *)0, &qs_tick0_id);
. . .
}
/* system clock tick ISR for clock rate 1 */
void Timer0A_IRQHandler(void) {
. . .
QACTIVE_POST(&ticker1.super, (QEvt *)0, &qs_tick1_id);
. . .
}
/* main.c --------------- */
main () {
. . .
QACTIVE_START(&ticker0.super,
1U, /* priority */
0, 0, 0, 0, 0); /* not used */
QACTIVE_START(&ticker1.super,
2U, /* priority */
0, 0, 0, 0, 0); /* not used */
. . .
}

View File

@ -1,7 +1,7 @@
About uCOS-II for ARM Cortex-M Examples
About uC-OS2 for ARM Cortex-M Examples
=======================================
This folder contains examples for uCOS-II V2.93 running on ARM Cortex-M.
This uCOS-II version has been released under the permissive Apache License,
This folder contains examples for uC-OS2 V2.93 running on ARM Cortex-M.
This uC-OS2 version has been released under the permissive Apache License,
Version 2.0 (see GitHub https://github.com/SiliconLabs/uC-OS2 ).
@ -23,9 +23,9 @@ generated automatically by the QM graphical modeling tool. The DPP examples
contain projects for the ARM (MDK-ARM) compiler and the IAR compiler.
uCOS-II Source and QP-Port
==========================
The QP-Port to uCOS-II is located in qpc\ports\ucos-ii
uC-OS2 Source and QP-Port
=========================
The QP-Port to uC-OS2 is located in qpc\ports\uC-OS2
The uCOS-II source code and ports are located in 3rd_party\ucos-ii.
The uC-OS2 source code and ports are located in 3rd_party\uC-OS2.
Please make sure to read the README.md file found in that directory.

View File

@ -103,7 +103,7 @@
<bEvRecOn>1</bEvRecOn>
<bSchkAxf>0</bSchkAxf>
<bTchkAxf>0</bTchkAxf>
<nTsel>8</nTsel>
<nTsel>-1</nTsel>
<sDll></sDll>
<sDllPa></sDllPa>
<sDlgDll></sDlgDll>
@ -941,7 +941,7 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\..\ports\ucos-ii\qf_port.c</PathWithFileName>
<PathWithFileName>..\..\..\..\..\ports\uc-os2\qf_port.c</PathWithFileName>
<FilenameWithoutPath>qf_port.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
@ -953,7 +953,7 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\..\ports\ucos-ii\qep_port.h</PathWithFileName>
<PathWithFileName>..\..\..\..\..\ports\uc-os2\qep_port.h</PathWithFileName>
<FilenameWithoutPath>qep_port.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
@ -965,7 +965,7 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\..\ports\ucos-ii\qf_port.h</PathWithFileName>
<PathWithFileName>..\..\..\..\..\ports\uc-os2\qf_port.h</PathWithFileName>
<FilenameWithoutPath>qf_port.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
@ -977,7 +977,7 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\..\ports\ucos-ii\qs_port.h</PathWithFileName>
<PathWithFileName>..\..\..\..\..\ports\uc-os2\qs_port.h</PathWithFileName>
<FilenameWithoutPath>qs_port.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
@ -1041,7 +1041,7 @@
</Group>
<Group>
<GroupName>ucos-ii</GroupName>
<GroupName>uC-OS2</GroupName>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
@ -1053,7 +1053,7 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\..\3rd_party\ucos-ii\Source\os_core.c</PathWithFileName>
<PathWithFileName>..\..\..\..\..\3rd_party\uC-OS2\Source\os_core.c</PathWithFileName>
<FilenameWithoutPath>os_core.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
@ -1065,7 +1065,7 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\..\3rd_party\ucos-ii\Source\os_task.c</PathWithFileName>
<PathWithFileName>..\..\..\..\..\3rd_party\uC-OS2\Source\os_task.c</PathWithFileName>
<FilenameWithoutPath>os_task.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
@ -1077,7 +1077,7 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\..\3rd_party\ucos-ii\Source\os_flag.c</PathWithFileName>
<PathWithFileName>..\..\..\..\..\3rd_party\uC-OS2\Source\os_flag.c</PathWithFileName>
<FilenameWithoutPath>os_flag.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
@ -1089,7 +1089,7 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\..\3rd_party\ucos-ii\Source\os_mbox.c</PathWithFileName>
<PathWithFileName>..\..\..\..\..\3rd_party\uC-OS2\Source\os_mbox.c</PathWithFileName>
<FilenameWithoutPath>os_mbox.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
@ -1101,7 +1101,7 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\..\3rd_party\ucos-ii\Source\os_mem.c</PathWithFileName>
<PathWithFileName>..\..\..\..\..\3rd_party\uC-OS2\Source\os_mem.c</PathWithFileName>
<FilenameWithoutPath>os_mem.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
@ -1113,7 +1113,7 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\..\3rd_party\ucos-ii\Source\os_mutex.c</PathWithFileName>
<PathWithFileName>..\..\..\..\..\3rd_party\uC-OS2\Source\os_mutex.c</PathWithFileName>
<FilenameWithoutPath>os_mutex.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
@ -1125,7 +1125,7 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\..\3rd_party\ucos-ii\Source\os_q.c</PathWithFileName>
<PathWithFileName>..\..\..\..\..\3rd_party\uC-OS2\Source\os_q.c</PathWithFileName>
<FilenameWithoutPath>os_q.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
@ -1137,7 +1137,7 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\..\3rd_party\ucos-ii\Source\os_sem.c</PathWithFileName>
<PathWithFileName>..\..\..\..\..\3rd_party\uC-OS2\Source\os_sem.c</PathWithFileName>
<FilenameWithoutPath>os_sem.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
@ -1149,7 +1149,7 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\..\3rd_party\ucos-ii\Source\os_time.c</PathWithFileName>
<PathWithFileName>..\..\..\..\..\3rd_party\uC-OS2\Source\os_time.c</PathWithFileName>
<FilenameWithoutPath>os_time.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
@ -1161,7 +1161,7 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\..\3rd_party\ucos-ii\Source\os_tmr.c</PathWithFileName>
<PathWithFileName>..\..\..\..\..\3rd_party\uC-OS2\Source\os_tmr.c</PathWithFileName>
<FilenameWithoutPath>os_tmr.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
@ -1169,7 +1169,7 @@
</Group>
<Group>
<GroupName>ucos-ii_port</GroupName>
<GroupName>uC-OS2_port</GroupName>
<tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel>
@ -1181,7 +1181,7 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\..\3rd_party\ucos-ii\Ports\ARM-Cortex-M\ARMv7-M\os_cpu_c.c</PathWithFileName>
<PathWithFileName>..\..\..\..\..\3rd_party\uC-OS2\Ports\ARM-Cortex-M\ARMv7-M\os_cpu_c.c</PathWithFileName>
<FilenameWithoutPath>os_cpu_c.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
@ -1193,7 +1193,7 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\..\3rd_party\ucos-ii\Ports\ARM-Cortex-M\ARMv7-M\ARM\os_cpu.h</PathWithFileName>
<PathWithFileName>..\..\..\..\..\3rd_party\uC-OS2\Ports\ARM-Cortex-M\ARMv7-M\ARM\os_cpu.h</PathWithFileName>
<FilenameWithoutPath>os_cpu.h</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
@ -1205,7 +1205,7 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\..\3rd_party\ucos-ii\Ports\ARM-Cortex-M\ARMv7-M\ARM\os_cpu_a.asm</PathWithFileName>
<PathWithFileName>..\..\..\..\..\3rd_party\uC-OS2\Ports\ARM-Cortex-M\ARMv7-M\ARM\os_cpu_a.asm</PathWithFileName>
<FilenameWithoutPath>os_cpu_a.asm</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>
@ -1217,7 +1217,7 @@
<tvExp>0</tvExp>
<tvExpOptDlg>0</tvExpOptDlg>
<bDave2>0</bDave2>
<PathWithFileName>..\..\..\..\..\3rd_party\ucos-ii\Ports\ARM-Cortex-M\ARMv7-M\ARM\os_dbg.c</PathWithFileName>
<PathWithFileName>..\..\..\..\..\3rd_party\uC-OS2\Ports\ARM-Cortex-M\ARMv7-M\ARM\os_dbg.c</PathWithFileName>
<FilenameWithoutPath>os_dbg.c</FilenameWithoutPath>
<RteFlg>0</RteFlg>
<bShared>0</bShared>

View File

@ -133,7 +133,7 @@
<UseExternalTool>0</UseExternalTool>
<RunIndependent>0</RunIndependent>
<UpdateFlashBeforeDebugging>1</UpdateFlashBeforeDebugging>
<Capability>1</Capability>
<Capability>0</Capability>
<DriverSelection>4097</DriverSelection>
</Flash1>
<bUseTDR>1</bUseTDR>
@ -339,7 +339,7 @@
<MiscControls></MiscControls>
<Define>__FPU_PRESENT</Define>
<Undefine></Undefine>
<IncludePath>..;..\..\..\..\..\include;..\..\..\..\..\src;..\..\..\..\..\ports\ucos-ii;..\..\..\..\..\3rd_party\ucos-ii\Source;..\..\..\..\..\3rd_party\ucos-ii\Ports\ARM-Cortex-M\ARMv7-M\ARM;..\..\..\..\..\3rd_party\CMSIS\Include;..\..\..\..\..\3rd_party\ek-tm4c123gxl</IncludePath>
<IncludePath>..;..\..\..\..\..\include;..\..\..\..\..\src;..\..\..\..\..\ports\uc-os2;..\..\..\..\..\3rd_party\uC-OS2\Source;..\..\..\..\..\3rd_party\uC-OS2\Ports\ARM-Cortex-M\ARMv7-M\ARM;..\..\..\..\..\3rd_party\CMSIS\Include;..\..\..\..\..\3rd_party\ek-tm4c123gxl</IncludePath>
</VariousControls>
</Cads>
<Aads>
@ -536,22 +536,22 @@
<File>
<FileName>qf_port.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\ports\ucos-ii\qf_port.c</FilePath>
<FilePath>..\..\..\..\..\ports\uc-os2\qf_port.c</FilePath>
</File>
<File>
<FileName>qep_port.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\..\ports\ucos-ii\qep_port.h</FilePath>
<FilePath>..\..\..\..\..\ports\uc-os2\qep_port.h</FilePath>
</File>
<File>
<FileName>qf_port.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\..\ports\ucos-ii\qf_port.h</FilePath>
<FilePath>..\..\..\..\..\ports\uc-os2\qf_port.h</FilePath>
</File>
<File>
<FileName>qs_port.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\..\ports\ucos-ii\qs_port.h</FilePath>
<FilePath>..\..\..\..\..\ports\uc-os2\qs_port.h</FilePath>
</File>
</Files>
</Group>
@ -650,82 +650,82 @@
</Files>
</Group>
<Group>
<GroupName>ucos-ii</GroupName>
<GroupName>uC-OS2</GroupName>
<Files>
<File>
<FileName>os_core.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_core.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_core.c</FilePath>
</File>
<File>
<FileName>os_task.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_task.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_task.c</FilePath>
</File>
<File>
<FileName>os_flag.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_flag.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_flag.c</FilePath>
</File>
<File>
<FileName>os_mbox.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_mbox.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_mbox.c</FilePath>
</File>
<File>
<FileName>os_mem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_mem.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_mem.c</FilePath>
</File>
<File>
<FileName>os_mutex.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_mutex.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_mutex.c</FilePath>
</File>
<File>
<FileName>os_q.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_q.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_q.c</FilePath>
</File>
<File>
<FileName>os_sem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_sem.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_sem.c</FilePath>
</File>
<File>
<FileName>os_time.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_time.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_time.c</FilePath>
</File>
<File>
<FileName>os_tmr.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_tmr.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_tmr.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>ucos-ii_port</GroupName>
<GroupName>uC-OS2_port</GroupName>
<Files>
<File>
<FileName>os_cpu_c.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Ports\ARM-Cortex-M\ARMv7-M\os_cpu_c.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Ports\ARM-Cortex-M\ARMv7-M\os_cpu_c.c</FilePath>
</File>
<File>
<FileName>os_cpu.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Ports\ARM-Cortex-M\ARMv7-M\ARM\os_cpu.h</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Ports\ARM-Cortex-M\ARMv7-M\ARM\os_cpu.h</FilePath>
</File>
<File>
<FileName>os_cpu_a.asm</FileName>
<FileType>2</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Ports\ARM-Cortex-M\ARMv7-M\ARM\os_cpu_a.asm</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Ports\ARM-Cortex-M\ARMv7-M\ARM\os_cpu_a.asm</FilePath>
</File>
<File>
<FileName>os_dbg.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Ports\ARM-Cortex-M\ARMv7-M\ARM\os_dbg.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Ports\ARM-Cortex-M\ARMv7-M\ARM\os_dbg.c</FilePath>
</File>
</Files>
</Group>
@ -1064,7 +1064,7 @@
<MiscControls></MiscControls>
<Define>NDEBUG __FPU_PRESENT</Define>
<Undefine></Undefine>
<IncludePath>..;..\..\..\..\..\include;..\..\..\..\..\src;..\..\..\..\..\ports\ucos-ii;..\..\..\..\..\3rd_party\ucos-ii\Source;..\..\..\..\..\3rd_party\ucos-ii\Ports\ARM-Cortex-M\ARMv7-M\ARM;..\..\..\..\..\3rd_party\CMSIS\Include;..\..\..\..\..\3rd_party\ek-tm4c123gxl</IncludePath>
<IncludePath>..;..\..\..\..\..\include;..\..\..\..\..\src;..\..\..\..\..\ports\uc-os2;..\..\..\..\..\3rd_party\uC-OS2\Source;..\..\..\..\..\3rd_party\uC-OS2\Ports\ARM-Cortex-M\ARMv7-M\ARM;..\..\..\..\..\3rd_party\CMSIS\Include;..\..\..\..\..\3rd_party\ek-tm4c123gxl</IncludePath>
</VariousControls>
</Cads>
<Aads>
@ -1261,22 +1261,22 @@
<File>
<FileName>qf_port.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\ports\ucos-ii\qf_port.c</FilePath>
<FilePath>..\..\..\..\..\ports\uc-os2\qf_port.c</FilePath>
</File>
<File>
<FileName>qep_port.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\..\ports\ucos-ii\qep_port.h</FilePath>
<FilePath>..\..\..\..\..\ports\uc-os2\qep_port.h</FilePath>
</File>
<File>
<FileName>qf_port.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\..\ports\ucos-ii\qf_port.h</FilePath>
<FilePath>..\..\..\..\..\ports\uc-os2\qf_port.h</FilePath>
</File>
<File>
<FileName>qs_port.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\..\ports\ucos-ii\qs_port.h</FilePath>
<FilePath>..\..\..\..\..\ports\uc-os2\qs_port.h</FilePath>
</File>
</Files>
</Group>
@ -1375,82 +1375,82 @@
</Files>
</Group>
<Group>
<GroupName>ucos-ii</GroupName>
<GroupName>uC-OS2</GroupName>
<Files>
<File>
<FileName>os_core.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_core.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_core.c</FilePath>
</File>
<File>
<FileName>os_task.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_task.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_task.c</FilePath>
</File>
<File>
<FileName>os_flag.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_flag.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_flag.c</FilePath>
</File>
<File>
<FileName>os_mbox.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_mbox.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_mbox.c</FilePath>
</File>
<File>
<FileName>os_mem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_mem.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_mem.c</FilePath>
</File>
<File>
<FileName>os_mutex.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_mutex.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_mutex.c</FilePath>
</File>
<File>
<FileName>os_q.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_q.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_q.c</FilePath>
</File>
<File>
<FileName>os_sem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_sem.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_sem.c</FilePath>
</File>
<File>
<FileName>os_time.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_time.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_time.c</FilePath>
</File>
<File>
<FileName>os_tmr.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_tmr.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_tmr.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>ucos-ii_port</GroupName>
<GroupName>uC-OS2_port</GroupName>
<Files>
<File>
<FileName>os_cpu_c.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Ports\ARM-Cortex-M\ARMv7-M\os_cpu_c.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Ports\ARM-Cortex-M\ARMv7-M\os_cpu_c.c</FilePath>
</File>
<File>
<FileName>os_cpu.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Ports\ARM-Cortex-M\ARMv7-M\ARM\os_cpu.h</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Ports\ARM-Cortex-M\ARMv7-M\ARM\os_cpu.h</FilePath>
</File>
<File>
<FileName>os_cpu_a.asm</FileName>
<FileType>2</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Ports\ARM-Cortex-M\ARMv7-M\ARM\os_cpu_a.asm</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Ports\ARM-Cortex-M\ARMv7-M\ARM\os_cpu_a.asm</FilePath>
</File>
<File>
<FileName>os_dbg.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Ports\ARM-Cortex-M\ARMv7-M\ARM\os_dbg.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Ports\ARM-Cortex-M\ARMv7-M\ARM\os_dbg.c</FilePath>
</File>
</Files>
</Group>
@ -1789,7 +1789,7 @@
<MiscControls></MiscControls>
<Define>Q_SPY __FPU_PRESENT</Define>
<Undefine></Undefine>
<IncludePath>..;..\..\..\..\..\include;..\..\..\..\..\src;..\..\..\..\..\ports\ucos-ii;..\..\..\..\..\3rd_party\ucos-ii\Source;..\..\..\..\..\3rd_party\ucos-ii\Ports\ARM-Cortex-M\ARMv7-M\ARM;..\..\..\..\..\3rd_party\CMSIS\Include;..\..\..\..\..\3rd_party\ek-tm4c123gxl</IncludePath>
<IncludePath>..;..\..\..\..\..\include;..\..\..\..\..\src;..\..\..\..\..\ports\uc-os2;..\..\..\..\..\3rd_party\uC-OS2\Source;..\..\..\..\..\3rd_party\uC-OS2\Ports\ARM-Cortex-M\ARMv7-M\ARM;..\..\..\..\..\3rd_party\CMSIS\Include;..\..\..\..\..\3rd_party\ek-tm4c123gxl</IncludePath>
</VariousControls>
</Cads>
<Aads>
@ -1986,22 +1986,22 @@
<File>
<FileName>qf_port.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\ports\ucos-ii\qf_port.c</FilePath>
<FilePath>..\..\..\..\..\ports\uc-os2\qf_port.c</FilePath>
</File>
<File>
<FileName>qep_port.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\..\ports\ucos-ii\qep_port.h</FilePath>
<FilePath>..\..\..\..\..\ports\uc-os2\qep_port.h</FilePath>
</File>
<File>
<FileName>qf_port.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\..\ports\ucos-ii\qf_port.h</FilePath>
<FilePath>..\..\..\..\..\ports\uc-os2\qf_port.h</FilePath>
</File>
<File>
<FileName>qs_port.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\..\ports\ucos-ii\qs_port.h</FilePath>
<FilePath>..\..\..\..\..\ports\uc-os2\qs_port.h</FilePath>
</File>
</Files>
</Group>
@ -2031,82 +2031,82 @@
</Files>
</Group>
<Group>
<GroupName>ucos-ii</GroupName>
<GroupName>uC-OS2</GroupName>
<Files>
<File>
<FileName>os_core.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_core.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_core.c</FilePath>
</File>
<File>
<FileName>os_task.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_task.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_task.c</FilePath>
</File>
<File>
<FileName>os_flag.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_flag.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_flag.c</FilePath>
</File>
<File>
<FileName>os_mbox.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_mbox.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_mbox.c</FilePath>
</File>
<File>
<FileName>os_mem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_mem.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_mem.c</FilePath>
</File>
<File>
<FileName>os_mutex.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_mutex.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_mutex.c</FilePath>
</File>
<File>
<FileName>os_q.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_q.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_q.c</FilePath>
</File>
<File>
<FileName>os_sem.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_sem.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_sem.c</FilePath>
</File>
<File>
<FileName>os_time.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_time.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_time.c</FilePath>
</File>
<File>
<FileName>os_tmr.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Source\os_tmr.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Source\os_tmr.c</FilePath>
</File>
</Files>
</Group>
<Group>
<GroupName>ucos-ii_port</GroupName>
<GroupName>uC-OS2_port</GroupName>
<Files>
<File>
<FileName>os_cpu_c.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Ports\ARM-Cortex-M\ARMv7-M\os_cpu_c.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Ports\ARM-Cortex-M\ARMv7-M\os_cpu_c.c</FilePath>
</File>
<File>
<FileName>os_cpu.h</FileName>
<FileType>5</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Ports\ARM-Cortex-M\ARMv7-M\ARM\os_cpu.h</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Ports\ARM-Cortex-M\ARMv7-M\ARM\os_cpu.h</FilePath>
</File>
<File>
<FileName>os_cpu_a.asm</FileName>
<FileType>2</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Ports\ARM-Cortex-M\ARMv7-M\ARM\os_cpu_a.asm</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Ports\ARM-Cortex-M\ARMv7-M\ARM\os_cpu_a.asm</FilePath>
</File>
<File>
<FileName>os_dbg.c</FileName>
<FileType>1</FileType>
<FilePath>..\..\..\..\..\3rd_party\ucos-ii\Ports\ARM-Cortex-M\ARMv7-M\ARM\os_dbg.c</FilePath>
<FilePath>..\..\..\..\..\3rd_party\uC-OS2\Ports\ARM-Cortex-M\ARMv7-M\ARM\os_dbg.c</FilePath>
</File>
</Files>
</Group>

Some files were not shown because too many files have changed in this diff Show More