summaryrefslogtreecommitdiff
path: root/docs/RTOS/html
diff options
context:
space:
mode:
Diffstat (limited to 'docs/RTOS/html')
-rw-r--r--docs/RTOS/html/API_Structure.pngbin0 -> 9200 bytes
-rw-r--r--docs/RTOS/html/CMSIS_Logo_Final.pngbin0 -> 12402 bytes
-rw-r--r--docs/RTOS/html/CMSIS_RTOS_Files.pngbin0 -> 15706 bytes
-rw-r--r--docs/RTOS/html/CMSIS_RTOS_Tutorial.pdfbin0 -> 2022914 bytes
-rw-r--r--docs/RTOS/html/MailQueue.pngbin0 -> 14737 bytes
-rw-r--r--docs/RTOS/html/MessageQueue.pngbin0 -> 11898 bytes
-rw-r--r--docs/RTOS/html/Mutex.pngbin0 -> 8034 bytes
-rw-r--r--docs/RTOS/html/RTX_Structure.pngbin0 -> 12738 bytes
-rw-r--r--docs/RTOS/html/RTX__Conf__CM_8c.html499
-rw-r--r--docs/RTOS/html/Semaphore.pngbin0 -> 16954 bytes
-rw-r--r--docs/RTOS/html/ThreadStatus.pngbin0 -> 20521 bytes
-rw-r--r--docs/RTOS/html/Timer.pngbin0 -> 13428 bytes
-rw-r--r--docs/RTOS/html/TimerValues.pngbin0 -> 4226 bytes
-rw-r--r--docs/RTOS/html/add_item.pngbin0 -> 71569 bytes
-rw-r--r--docs/RTOS/html/annotated.html150
-rw-r--r--docs/RTOS/html/annotated.js14
-rw-r--r--docs/RTOS/html/bc_s.pngbin0 -> 676 bytes
-rw-r--r--docs/RTOS/html/bdwn.pngbin0 -> 147 bytes
-rw-r--r--docs/RTOS/html/classes.html144
-rw-r--r--docs/RTOS/html/closed.pngbin0 -> 132 bytes
-rw-r--r--docs/RTOS/html/cmsis.css1282
-rw-r--r--docs/RTOS/html/cmsis__os_8h.html895
-rw-r--r--docs/RTOS/html/cmsis__os_8h_structosMailQDef__t.js6
-rw-r--r--docs/RTOS/html/cmsis__os_8h_structosMessageQDef__t.js6
-rw-r--r--docs/RTOS/html/cmsis__os_8h_structosMutexDef__t.js4
-rw-r--r--docs/RTOS/html/cmsis__os_8h_structosPoolDef__t.js6
-rw-r--r--docs/RTOS/html/cmsis__os_8h_structosSemaphoreDef__t.js4
-rw-r--r--docs/RTOS/html/cmsis__os_8h_structosThreadDef__t.js7
-rw-r--r--docs/RTOS/html/cmsis__os_8h_structosTimerDef__t.js4
-rw-r--r--docs/RTOS/html/cmsis__os_8txt.html175
-rw-r--r--docs/RTOS/html/cmsis__os__rtx__extensions_8h.html147
-rw-r--r--docs/RTOS/html/config_wizard.pngbin0 -> 25580 bytes
-rw-r--r--docs/RTOS/html/configure.html146
-rw-r--r--docs/RTOS/html/configure.js21
-rw-r--r--docs/RTOS/html/creating_RTX_LIB.html142
-rw-r--r--docs/RTOS/html/dir_67baed4ff719a838d401a6dc7774cf41.html137
-rw-r--r--docs/RTOS/html/dir_899ec648bfef5b77e4c17b1ad40af9f5.html135
-rw-r--r--docs/RTOS/html/dir_8ecbca576638d6cf096e42200a0f53dc.html135
-rw-r--r--docs/RTOS/html/dir_9afdeffb8e409a4e0df5c5bf9ab1a7d2.html135
-rw-r--r--docs/RTOS/html/dir_b0448b4e45a55bca3a46fdbabd848ed7.html135
-rw-r--r--docs/RTOS/html/dir_c0ad159d7acfc6a66622c7bec0ee8a21.html135
-rw-r--r--docs/RTOS/html/dirstructfiles.html496
-rw-r--r--docs/RTOS/html/doxygen.css1366
-rw-r--r--docs/RTOS/html/doxygen.pngbin0 -> 3779 bytes
-rw-r--r--docs/RTOS/html/dynsections.js97
-rw-r--r--docs/RTOS/html/exampleRTX_Tutorial.html131
-rw-r--r--docs/RTOS/html/files.html135
-rw-r--r--docs/RTOS/html/ftv2blank.pngbin0 -> 86 bytes
-rw-r--r--docs/RTOS/html/ftv2cl.pngbin0 -> 453 bytes
-rw-r--r--docs/RTOS/html/ftv2doc.pngbin0 -> 746 bytes
-rw-r--r--docs/RTOS/html/ftv2folderclosed.pngbin0 -> 616 bytes
-rw-r--r--docs/RTOS/html/ftv2folderopen.pngbin0 -> 597 bytes
-rw-r--r--docs/RTOS/html/ftv2lastnode.pngbin0 -> 86 bytes
-rw-r--r--docs/RTOS/html/ftv2link.pngbin0 -> 746 bytes
-rw-r--r--docs/RTOS/html/ftv2mlastnode.pngbin0 -> 246 bytes
-rw-r--r--docs/RTOS/html/ftv2mnode.pngbin0 -> 246 bytes
-rw-r--r--docs/RTOS/html/ftv2mo.pngbin0 -> 403 bytes
-rw-r--r--docs/RTOS/html/ftv2node.pngbin0 -> 86 bytes
-rw-r--r--docs/RTOS/html/ftv2ns.pngbin0 -> 388 bytes
-rw-r--r--docs/RTOS/html/ftv2plastnode.pngbin0 -> 229 bytes
-rw-r--r--docs/RTOS/html/ftv2pnode.pngbin0 -> 229 bytes
-rw-r--r--docs/RTOS/html/ftv2splitbar.pngbin0 -> 314 bytes
-rw-r--r--docs/RTOS/html/ftv2vertline.pngbin0 -> 86 bytes
-rw-r--r--docs/RTOS/html/functionOverview.html237
-rw-r--r--docs/RTOS/html/functions.html184
-rw-r--r--docs/RTOS/html/functions_vars.html184
-rw-r--r--docs/RTOS/html/genRTOSIF.html175
-rw-r--r--docs/RTOS/html/globals.html563
-rw-r--r--docs/RTOS/html/globals_defs.html296
-rw-r--r--docs/RTOS/html/globals_enum.html147
-rw-r--r--docs/RTOS/html/globals_eval.html211
-rw-r--r--docs/RTOS/html/globals_func.html297
-rw-r--r--docs/RTOS/html/globals_type.html163
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS.html160
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS.js10
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__Definitions.html257
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__Definitions.js18
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__Definitions_structosEvent.js6
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__Definitions_unionosEvent_8def.js5
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__Definitions_unionosEvent_8value.js6
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__InterThread.html171
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__InterThread.js9
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__KernelCtrl.html469
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__KernelCtrl.js14
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__Mail.html634
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__Mail.js12
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__Message.html489
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__Message.js9
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__MutexMgmt.html444
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__MutexMgmt.js9
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__PoolMgmt.html495
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__PoolMgmt.js10
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__SemaphoreMgmt.html463
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__SemaphoreMgmt.js10
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__SignalMgmt.html376
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__SignalMgmt.js7
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__Status.html234
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__Status.js20
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__ThreadMgmt.html647
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__ThreadMgmt.js21
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__TimerMgmt.html534
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__TimerMgmt.js13
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__Wait.html293
-rw-r--r--docs/RTOS/html/group__CMSIS__RTOS__Wait.js6
-rw-r--r--docs/RTOS/html/group__RTX__Global__Functions.html468
-rw-r--r--docs/RTOS/html/group__RTX__Global__Functions.js11
-rw-r--r--docs/RTOS/html/index.html154
-rw-r--r--docs/RTOS/html/jquery.js72
-rw-r--r--docs/RTOS/html/lowPower.html204
-rw-r--r--docs/RTOS/html/manage_rte_output.pngbin0 -> 117551 bytes
-rw-r--r--docs/RTOS/html/misraCompliance.html173
-rw-r--r--docs/RTOS/html/modules.html147
-rw-r--r--docs/RTOS/html/modules.js5
-rw-r--r--docs/RTOS/html/nav_f.pngbin0 -> 153 bytes
-rw-r--r--docs/RTOS/html/nav_g.pngbin0 -> 95 bytes
-rw-r--r--docs/RTOS/html/nav_h.pngbin0 -> 98 bytes
-rw-r--r--docs/RTOS/html/navtree.css143
-rw-r--r--docs/RTOS/html/navtree.js551
-rw-r--r--docs/RTOS/html/navtreeindex0.js208
-rw-r--r--docs/RTOS/html/open.pngbin0 -> 123 bytes
-rw-r--r--docs/RTOS/html/own_lib_projwin.pngbin0 -> 17182 bytes
-rw-r--r--docs/RTOS/html/pages.html132
-rw-r--r--docs/RTOS/html/printComponentTabs.js39
-rw-r--r--docs/RTOS/html/project_window.pngbin0 -> 9643 bytes
-rw-r--r--docs/RTOS/html/resize.js97
-rw-r--r--docs/RTOS/html/rtosValidation.html171
-rw-r--r--docs/RTOS/html/rtos_revisionHistory.html227
-rw-r--r--docs/RTOS/html/rtxImplementation.html163
-rw-r--r--docs/RTOS/html/rtxImplementation.js26
-rw-r--r--docs/RTOS/html/search/all_0.html26
-rw-r--r--docs/RTOS/html/search/all_0.js4
-rw-r--r--docs/RTOS/html/search/all_1.html26
-rw-r--r--docs/RTOS/html/search/all_1.js10
-rw-r--r--docs/RTOS/html/search/all_2.html26
-rw-r--r--docs/RTOS/html/search/all_2.js6
-rw-r--r--docs/RTOS/html/search/all_3.html26
-rw-r--r--docs/RTOS/html/search/all_3.js4
-rw-r--r--docs/RTOS/html/search/all_4.html26
-rw-r--r--docs/RTOS/html/search/all_4.js6
-rw-r--r--docs/RTOS/html/search/all_5.html26
-rw-r--r--docs/RTOS/html/search/all_5.js6
-rw-r--r--docs/RTOS/html/search/all_6.html26
-rw-r--r--docs/RTOS/html/search/all_6.js4
-rw-r--r--docs/RTOS/html/search/all_7.html26
-rw-r--r--docs/RTOS/html/search/all_7.js8
-rw-r--r--docs/RTOS/html/search/all_8.html26
-rw-r--r--docs/RTOS/html/search/all_8.js150
-rw-r--r--docs/RTOS/html/search/all_9.html26
-rw-r--r--docs/RTOS/html/search/all_9.js7
-rw-r--r--docs/RTOS/html/search/all_a.html26
-rw-r--r--docs/RTOS/html/search/all_a.js4
-rw-r--r--docs/RTOS/html/search/all_b.html26
-rw-r--r--docs/RTOS/html/search/all_b.js10
-rw-r--r--docs/RTOS/html/search/all_c.html26
-rw-r--r--docs/RTOS/html/search/all_c.js11
-rw-r--r--docs/RTOS/html/search/all_d.html26
-rw-r--r--docs/RTOS/html/search/all_d.js9
-rw-r--r--docs/RTOS/html/search/all_e.html26
-rw-r--r--docs/RTOS/html/search/all_e.js4
-rw-r--r--docs/RTOS/html/search/all_f.html26
-rw-r--r--docs/RTOS/html/search/all_f.js4
-rw-r--r--docs/RTOS/html/search/classes_0.html26
-rw-r--r--docs/RTOS/html/search/classes_0.js14
-rw-r--r--docs/RTOS/html/search/close.pngbin0 -> 273 bytes
-rw-r--r--docs/RTOS/html/search/defines_0.html26
-rw-r--r--docs/RTOS/html/search/defines_0.js27
-rw-r--r--docs/RTOS/html/search/enums_0.html26
-rw-r--r--docs/RTOS/html/search/enums_0.js6
-rw-r--r--docs/RTOS/html/search/enumvalues_0.html26
-rw-r--r--docs/RTOS/html/search/enumvalues_0.js28
-rw-r--r--docs/RTOS/html/search/files_0.html26
-rw-r--r--docs/RTOS/html/search/files_0.js6
-rw-r--r--docs/RTOS/html/search/files_1.html26
-rw-r--r--docs/RTOS/html/search/files_1.js4
-rw-r--r--docs/RTOS/html/search/functions_0.html26
-rw-r--r--docs/RTOS/html/search/functions_0.js51
-rw-r--r--docs/RTOS/html/search/functions_1.html26
-rw-r--r--docs/RTOS/html/search/functions_1.js4
-rw-r--r--docs/RTOS/html/search/groups_0.html26
-rw-r--r--docs/RTOS/html/search/groups_0.js4
-rw-r--r--docs/RTOS/html/search/groups_1.html26
-rw-r--r--docs/RTOS/html/search/groups_1.js5
-rw-r--r--docs/RTOS/html/search/groups_2.html26
-rw-r--r--docs/RTOS/html/search/groups_2.js4
-rw-r--r--docs/RTOS/html/search/groups_3.html26
-rw-r--r--docs/RTOS/html/search/groups_3.js4
-rw-r--r--docs/RTOS/html/search/groups_4.html26
-rw-r--r--docs/RTOS/html/search/groups_4.js7
-rw-r--r--docs/RTOS/html/search/groups_5.html26
-rw-r--r--docs/RTOS/html/search/groups_5.js4
-rw-r--r--docs/RTOS/html/search/groups_6.html26
-rw-r--r--docs/RTOS/html/search/groups_6.js6
-rw-r--r--docs/RTOS/html/search/groups_7.html26
-rw-r--r--docs/RTOS/html/search/groups_7.js5
-rw-r--r--docs/RTOS/html/search/mag_sel.pngbin0 -> 563 bytes
-rw-r--r--docs/RTOS/html/search/nomatches.html12
-rw-r--r--docs/RTOS/html/search/pages_0.html26
-rw-r--r--docs/RTOS/html/search/pages_0.js4
-rw-r--r--docs/RTOS/html/search/pages_1.html26
-rw-r--r--docs/RTOS/html/search/pages_1.js6
-rw-r--r--docs/RTOS/html/search/pages_2.html26
-rw-r--r--docs/RTOS/html/search/pages_2.js4
-rw-r--r--docs/RTOS/html/search/pages_3.html26
-rw-r--r--docs/RTOS/html/search/pages_3.js4
-rw-r--r--docs/RTOS/html/search/pages_4.html26
-rw-r--r--docs/RTOS/html/search/pages_4.js4
-rw-r--r--docs/RTOS/html/search/pages_5.html26
-rw-r--r--docs/RTOS/html/search/pages_5.js4
-rw-r--r--docs/RTOS/html/search/pages_6.html26
-rw-r--r--docs/RTOS/html/search/pages_6.js8
-rw-r--r--docs/RTOS/html/search/pages_7.html26
-rw-r--r--docs/RTOS/html/search/pages_7.js5
-rw-r--r--docs/RTOS/html/search/pages_8.html26
-rw-r--r--docs/RTOS/html/search/pages_8.js6
-rw-r--r--docs/RTOS/html/search/pages_9.html26
-rw-r--r--docs/RTOS/html/search/pages_9.js4
-rw-r--r--docs/RTOS/html/search/search.css271
-rw-r--r--docs/RTOS/html/search/search.js813
-rw-r--r--docs/RTOS/html/search/search_l.pngbin0 -> 604 bytes
-rw-r--r--docs/RTOS/html/search/search_m.pngbin0 -> 158 bytes
-rw-r--r--docs/RTOS/html/search/search_r.pngbin0 -> 612 bytes
-rw-r--r--docs/RTOS/html/search/typedefs_0.html26
-rw-r--r--docs/RTOS/html/search/typedefs_0.js12
-rw-r--r--docs/RTOS/html/search/variables_0.html26
-rw-r--r--docs/RTOS/html/search/variables_0.js5
-rw-r--r--docs/RTOS/html/search/variables_1.html26
-rw-r--r--docs/RTOS/html/search/variables_1.js5
-rw-r--r--docs/RTOS/html/search/variables_2.html26
-rw-r--r--docs/RTOS/html/search/variables_2.js7
-rw-r--r--docs/RTOS/html/search/variables_3.html26
-rw-r--r--docs/RTOS/html/search/variables_3.js4
-rw-r--r--docs/RTOS/html/search/variables_4.html26
-rw-r--r--docs/RTOS/html/search/variables_4.js5
-rw-r--r--docs/RTOS/html/search/variables_5.html26
-rw-r--r--docs/RTOS/html/search/variables_5.js4
-rw-r--r--docs/RTOS/html/search/variables_6.html26
-rw-r--r--docs/RTOS/html/search/variables_6.js4
-rw-r--r--docs/RTOS/html/search/variables_7.html26
-rw-r--r--docs/RTOS/html/search/variables_7.js5
-rw-r--r--docs/RTOS/html/simple_signal.pngbin0 -> 10667 bytes
-rw-r--r--docs/RTOS/html/stack_usage_watermark.pngbin0 -> 28581 bytes
-rw-r--r--docs/RTOS/html/structosMailQDef__t.html193
-rw-r--r--docs/RTOS/html/structosMailQDef__t.js6
-rw-r--r--docs/RTOS/html/structosMessageQDef__t.html193
-rw-r--r--docs/RTOS/html/structosMessageQDef__t.js6
-rw-r--r--docs/RTOS/html/structosMutexDef__t.html163
-rw-r--r--docs/RTOS/html/structosMutexDef__t.js4
-rw-r--r--docs/RTOS/html/structosPoolDef__t.html193
-rw-r--r--docs/RTOS/html/structosPoolDef__t.js6
-rw-r--r--docs/RTOS/html/structosSemaphoreDef__t.html163
-rw-r--r--docs/RTOS/html/structosSemaphoreDef__t.js4
-rw-r--r--docs/RTOS/html/structosThreadDef__t.html208
-rw-r--r--docs/RTOS/html/structosThreadDef__t.js7
-rw-r--r--docs/RTOS/html/structosTimerDef__t.html163
-rw-r--r--docs/RTOS/html/structosTimerDef__t.js4
-rw-r--r--docs/RTOS/html/svcFunctions.html167
-rw-r--r--docs/RTOS/html/sync_off.pngbin0 -> 853 bytes
-rw-r--r--docs/RTOS/html/sync_on.pngbin0 -> 845 bytes
-rw-r--r--docs/RTOS/html/systemConfig.html194
-rw-r--r--docs/RTOS/html/tab_a.pngbin0 -> 142 bytes
-rw-r--r--docs/RTOS/html/tab_b.pngbin0 -> 169 bytes
-rw-r--r--docs/RTOS/html/tab_h.pngbin0 -> 177 bytes
-rw-r--r--docs/RTOS/html/tab_s.pngbin0 -> 184 bytes
-rw-r--r--docs/RTOS/html/tab_topnav.pngbin0 -> 232 bytes
-rw-r--r--docs/RTOS/html/tabs.css71
-rw-r--r--docs/RTOS/html/technicalData.html211
-rw-r--r--docs/RTOS/html/theory.html194
-rw-r--r--docs/RTOS/html/threadConfig.html192
-rw-r--r--docs/RTOS/html/timerTick.html225
-rw-r--r--docs/RTOS/html/using.html203
-rw-r--r--docs/RTOS/html/usingOS.html902
271 files changed, 24608 insertions, 0 deletions
diff --git a/docs/RTOS/html/API_Structure.png b/docs/RTOS/html/API_Structure.png
new file mode 100644
index 0000000..832753b
--- /dev/null
+++ b/docs/RTOS/html/API_Structure.png
Binary files differ
diff --git a/docs/RTOS/html/CMSIS_Logo_Final.png b/docs/RTOS/html/CMSIS_Logo_Final.png
new file mode 100644
index 0000000..2056b7e
--- /dev/null
+++ b/docs/RTOS/html/CMSIS_Logo_Final.png
Binary files differ
diff --git a/docs/RTOS/html/CMSIS_RTOS_Files.png b/docs/RTOS/html/CMSIS_RTOS_Files.png
new file mode 100644
index 0000000..136bc6d
--- /dev/null
+++ b/docs/RTOS/html/CMSIS_RTOS_Files.png
Binary files differ
diff --git a/docs/RTOS/html/CMSIS_RTOS_Tutorial.pdf b/docs/RTOS/html/CMSIS_RTOS_Tutorial.pdf
new file mode 100644
index 0000000..0530643
--- /dev/null
+++ b/docs/RTOS/html/CMSIS_RTOS_Tutorial.pdf
Binary files differ
diff --git a/docs/RTOS/html/MailQueue.png b/docs/RTOS/html/MailQueue.png
new file mode 100644
index 0000000..9e75ff4
--- /dev/null
+++ b/docs/RTOS/html/MailQueue.png
Binary files differ
diff --git a/docs/RTOS/html/MessageQueue.png b/docs/RTOS/html/MessageQueue.png
new file mode 100644
index 0000000..712eeac
--- /dev/null
+++ b/docs/RTOS/html/MessageQueue.png
Binary files differ
diff --git a/docs/RTOS/html/Mutex.png b/docs/RTOS/html/Mutex.png
new file mode 100644
index 0000000..7eec93b
--- /dev/null
+++ b/docs/RTOS/html/Mutex.png
Binary files differ
diff --git a/docs/RTOS/html/RTX_Structure.png b/docs/RTOS/html/RTX_Structure.png
new file mode 100644
index 0000000..c873cc7
--- /dev/null
+++ b/docs/RTOS/html/RTX_Structure.png
Binary files differ
diff --git a/docs/RTOS/html/RTX__Conf__CM_8c.html b/docs/RTOS/html/RTX__Conf__CM_8c.html
new file mode 100644
index 0000000..5481dd1
--- /dev/null
+++ b/docs/RTOS/html/RTX__Conf__CM_8c.html
@@ -0,0 +1,499 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>RTX_Conf_CM.c File Reference</title>
+<title>CMSIS-RTOS: RTX_Conf_CM.c File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('RTX__Conf__CM_8c.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">RTX_Conf_CM.c File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:a309353d912327b7f4a2300711ee1b349"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html#a309353d912327b7f4a2300711ee1b349">OS_TASKCNT</a>&#160;&#160;&#160;6</td></tr>
+<tr class="separator:a309353d912327b7f4a2300711ee1b349"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a16495c133349f3e7c27ac933857c1a8c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html#a16495c133349f3e7c27ac933857c1a8c">OS_STKSIZE</a>&#160;&#160;&#160;50</td></tr>
+<tr class="separator:a16495c133349f3e7c27ac933857c1a8c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a95362a96f44d4314f148ae24edd52f7c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html#a95362a96f44d4314f148ae24edd52f7c">OS_MAINSTKSIZE</a>&#160;&#160;&#160;50</td></tr>
+<tr class="separator:a95362a96f44d4314f148ae24edd52f7c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a7cfcbf2c4f9d0a63424a2a48592955b1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html#a7cfcbf2c4f9d0a63424a2a48592955b1">OS_PRIVCNT</a>&#160;&#160;&#160;0</td></tr>
+<tr class="separator:a7cfcbf2c4f9d0a63424a2a48592955b1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6e0d30986e4ae0df44f449a4b3b0fbec"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html#a6e0d30986e4ae0df44f449a4b3b0fbec">OS_PRIVSTKSIZE</a>&#160;&#160;&#160;0</td></tr>
+<tr class="separator:a6e0d30986e4ae0df44f449a4b3b0fbec"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a6ef9e00396f881f0fa9ac877150e5962"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html#a6ef9e00396f881f0fa9ac877150e5962">OS_STKCHECK</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:a6ef9e00396f881f0fa9ac877150e5962"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac820623da739e4219ee86f15bdcd9752"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html#ac820623da739e4219ee86f15bdcd9752">OS_STKINIT</a>&#160;&#160;&#160;0</td></tr>
+<tr class="separator:ac820623da739e4219ee86f15bdcd9752"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a786924d58be54e943a7e73458cebc51b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html#a786924d58be54e943a7e73458cebc51b">OS_RUNPRIV</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:a786924d58be54e943a7e73458cebc51b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adff23afdf544a322a38314870f8848b9"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html#adff23afdf544a322a38314870f8848b9">OS_CLOCK</a>&#160;&#160;&#160;12000000</td></tr>
+<tr class="separator:adff23afdf544a322a38314870f8848b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab6b10bd6d60e95ab28c775757f6bfbcc"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html#ab6b10bd6d60e95ab28c775757f6bfbcc">OS_TICK</a>&#160;&#160;&#160;1000</td></tr>
+<tr class="separator:ab6b10bd6d60e95ab28c775757f6bfbcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae34f3058383d9fa9280bbf595618ab0a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html#ae34f3058383d9fa9280bbf595618ab0a">OS_ROBIN</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:ae34f3058383d9fa9280bbf595618ab0a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad89fdd7232cfba74d400080b6bcc0012"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html#ad89fdd7232cfba74d400080b6bcc0012">OS_ROBINTOUT</a>&#160;&#160;&#160;5</td></tr>
+<tr class="separator:ad89fdd7232cfba74d400080b6bcc0012"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a23b0f1095632e58b5ac0d8f7dcfdfded"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html#a23b0f1095632e58b5ac0d8f7dcfdfded">OS_TIMERS</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:a23b0f1095632e58b5ac0d8f7dcfdfded"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a90af874f1df4dfb0f8821cc2d860dae6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html#a90af874f1df4dfb0f8821cc2d860dae6">OS_TIMERPRIO</a>&#160;&#160;&#160;5</td></tr>
+<tr class="separator:a90af874f1df4dfb0f8821cc2d860dae6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a76d1b01799981a753fc528e600015627"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html#a76d1b01799981a753fc528e600015627">OS_TIMERSTKSZ</a>&#160;&#160;&#160;50</td></tr>
+<tr class="separator:a76d1b01799981a753fc528e600015627"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a29701cff84a42494279367ad018f252d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html#a29701cff84a42494279367ad018f252d">OS_TIMERCBQS</a>&#160;&#160;&#160;4</td></tr>
+<tr class="separator:a29701cff84a42494279367ad018f252d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a93c8e36d441750016f9f72e102f68d66"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html#a93c8e36d441750016f9f72e102f68d66">OS_FIFOSZ</a>&#160;&#160;&#160;16</td></tr>
+<tr class="separator:a93c8e36d441750016f9f72e102f68d66"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad11cf133eea28b601f9a63cd9af9b786"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html#ad11cf133eea28b601f9a63cd9af9b786">OS_MUTEXCNT</a>&#160;&#160;&#160;8</td></tr>
+<tr class="separator:ad11cf133eea28b601f9a63cd9af9b786"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9d55a070ddb219165bd4287f08318d51"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html#a9d55a070ddb219165bd4287f08318d51">OS_TRV</a>&#160;&#160;&#160;((uint32_t)(((double)<a class="el" href="RTX__Conf__CM_8c.html#adff23afdf544a322a38314870f8848b9">OS_CLOCK</a>*(double)<a class="el" href="RTX__Conf__CM_8c.html#ab6b10bd6d60e95ab28c775757f6bfbcc">OS_TICK</a>)/1E6)-1)</td></tr>
+<tr class="separator:a9d55a070ddb219165bd4287f08318d51"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:abf8311a7a239ec56c6d725f926ba766d"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html#abf8311a7a239ec56c6d725f926ba766d">OS_ERROR_STACK_OVF</a>&#160;&#160;&#160;1</td></tr>
+<tr class="separator:abf8311a7a239ec56c6d725f926ba766d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a075d54df14c85a6afe32b7f5c99c9c29"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html#a075d54df14c85a6afe32b7f5c99c9c29">OS_ERROR_FIFO_OVF</a>&#160;&#160;&#160;2</td></tr>
+<tr class="separator:a075d54df14c85a6afe32b7f5c99c9c29"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab715d7d66c341c067ef0a97b55db8a10"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html#ab715d7d66c341c067ef0a97b55db8a10">OS_ERROR_MBX_OVF</a>&#160;&#160;&#160;3</td></tr>
+<tr class="separator:ab715d7d66c341c067ef0a97b55db8a10"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a79d7e388d951f11bd0dabd13f722cea8"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html#a79d7e388d951f11bd0dabd13f722cea8">OS_ERROR_TIMER_OVF</a>&#160;&#160;&#160;4</td></tr>
+<tr class="separator:a79d7e388d951f11bd0dabd13f722cea8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gafb4dc4d3dff8343a393726d2860282e4"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__RTX__Global__Functions.html#gafb4dc4d3dff8343a393726d2860282e4">os_idle_demon</a> (void)</td></tr>
+<tr class="memdesc:gafb4dc4d3dff8343a393726d2860282e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">The idle demon is running when no other thread is ready to run. <a href="group__RTX__Global__Functions.html#gafb4dc4d3dff8343a393726d2860282e4">More...</a><br/></td></tr>
+<tr class="separator:gafb4dc4d3dff8343a393726d2860282e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga145e7eafdd042bb522020cbb3b469d9c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__RTX__Global__Functions.html#ga145e7eafdd042bb522020cbb3b469d9c">os_tick_init</a> (void)</td></tr>
+<tr class="memdesc:ga145e7eafdd042bb522020cbb3b469d9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes an alternative hardware timer as RTX kernel timer. <a href="group__RTX__Global__Functions.html#ga145e7eafdd042bb522020cbb3b469d9c">More...</a><br/></td></tr>
+<tr class="separator:ga145e7eafdd042bb522020cbb3b469d9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga567543bf38239a91f09751686c23017b"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__RTX__Global__Functions.html#ga567543bf38239a91f09751686c23017b">os_tick_val</a> (void)</td></tr>
+<tr class="memdesc:ga567543bf38239a91f09751686c23017b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get alternative hardware timer's current value (0 .. OS_TRV) <a href="group__RTX__Global__Functions.html#ga567543bf38239a91f09751686c23017b">More...</a><br/></td></tr>
+<tr class="separator:ga567543bf38239a91f09751686c23017b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad5deddec3fea0fb31798f571afc3c692"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__RTX__Global__Functions.html#gad5deddec3fea0fb31798f571afc3c692">os_tick_ovf</a> (void)</td></tr>
+<tr class="memdesc:gad5deddec3fea0fb31798f571afc3c692"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get alternative hardware timer's overflow flag. <a href="group__RTX__Global__Functions.html#gad5deddec3fea0fb31798f571afc3c692">More...</a><br/></td></tr>
+<tr class="separator:gad5deddec3fea0fb31798f571afc3c692"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga85dab8408f27236c7341a69feb6258c7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__RTX__Global__Functions.html#ga85dab8408f27236c7341a69feb6258c7">os_tick_irqack</a> (void)</td></tr>
+<tr class="memdesc:ga85dab8408f27236c7341a69feb6258c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Acknowledge alternative hardware timer interrupt. <a href="group__RTX__Global__Functions.html#ga85dab8408f27236c7341a69feb6258c7">More...</a><br/></td></tr>
+<tr class="separator:ga85dab8408f27236c7341a69feb6258c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a395cca131b7746fc43c104a3485b77f7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html#a395cca131b7746fc43c104a3485b77f7">svcThreadGetId</a> (void)</td></tr>
+<tr class="separator:a395cca131b7746fc43c104a3485b77f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga651ae76b3acf45f80bf0e0487b51d6e6"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__RTX__Global__Functions.html#ga651ae76b3acf45f80bf0e0487b51d6e6">os_error</a> (uint32_t error_code)</td></tr>
+<tr class="memdesc:ga651ae76b3acf45f80bf0e0487b51d6e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Called when a runtime error is detected. <a href="group__RTX__Global__Functions.html#ga651ae76b3acf45f80bf0e0487b51d6e6">More...</a><br/></td></tr>
+<tr class="separator:ga651ae76b3acf45f80bf0e0487b51d6e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="adff23afdf544a322a38314870f8848b9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define OS_CLOCK&#160;&#160;&#160;12000000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a075d54df14c85a6afe32b7f5c99c9c29"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define OS_ERROR_FIFO_OVF&#160;&#160;&#160;2</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab715d7d66c341c067ef0a97b55db8a10"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define OS_ERROR_MBX_OVF&#160;&#160;&#160;3</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="abf8311a7a239ec56c6d725f926ba766d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define OS_ERROR_STACK_OVF&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a79d7e388d951f11bd0dabd13f722cea8"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define OS_ERROR_TIMER_OVF&#160;&#160;&#160;4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a93c8e36d441750016f9f72e102f68d66"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define OS_FIFOSZ&#160;&#160;&#160;16</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a95362a96f44d4314f148ae24edd52f7c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define OS_MAINSTKSIZE&#160;&#160;&#160;50</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad11cf133eea28b601f9a63cd9af9b786"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define OS_MUTEXCNT&#160;&#160;&#160;8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a7cfcbf2c4f9d0a63424a2a48592955b1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define OS_PRIVCNT&#160;&#160;&#160;0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6e0d30986e4ae0df44f449a4b3b0fbec"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define OS_PRIVSTKSIZE&#160;&#160;&#160;0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ae34f3058383d9fa9280bbf595618ab0a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define OS_ROBIN&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad89fdd7232cfba74d400080b6bcc0012"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define OS_ROBINTOUT&#160;&#160;&#160;5</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a786924d58be54e943a7e73458cebc51b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define OS_RUNPRIV&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a6ef9e00396f881f0fa9ac877150e5962"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define OS_STKCHECK&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac820623da739e4219ee86f15bdcd9752"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define OS_STKINIT&#160;&#160;&#160;0</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a16495c133349f3e7c27ac933857c1a8c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define OS_STKSIZE&#160;&#160;&#160;50</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a309353d912327b7f4a2300711ee1b349"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define OS_TASKCNT&#160;&#160;&#160;6</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ab6b10bd6d60e95ab28c775757f6bfbcc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define OS_TICK&#160;&#160;&#160;1000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a29701cff84a42494279367ad018f252d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define OS_TIMERCBQS&#160;&#160;&#160;4</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a90af874f1df4dfb0f8821cc2d860dae6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define OS_TIMERPRIO&#160;&#160;&#160;5</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a23b0f1095632e58b5ac0d8f7dcfdfded"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define OS_TIMERS&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a76d1b01799981a753fc528e600015627"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define OS_TIMERSTKSZ&#160;&#160;&#160;50</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a9d55a070ddb219165bd4287f08318d51"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define OS_TRV&#160;&#160;&#160;((uint32_t)(((double)<a class="el" href="RTX__Conf__CM_8c.html#adff23afdf544a322a38314870f8848b9">OS_CLOCK</a>*(double)<a class="el" href="RTX__Conf__CM_8c.html#ab6b10bd6d60e95ab28c775757f6bfbcc">OS_TICK</a>)/1E6)-1)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="a395cca131b7746fc43c104a3485b77f7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> svcThreadGetId </td>
+ <td>(</td>
+ <td class="paramtype">void&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_67baed4ff719a838d401a6dc7774cf41.html">RTOS</a></li><li class="navelem"><a class="el" href="dir_8ecbca576638d6cf096e42200a0f53dc.html">RTX</a></li><li class="navelem"><a class="el" href="dir_899ec648bfef5b77e4c17b1ad40af9f5.html">Templates</a></li><li class="navelem"><a class="el" href="RTX__Conf__CM_8c.html">RTX_Conf_CM.c</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/Semaphore.png b/docs/RTOS/html/Semaphore.png
new file mode 100644
index 0000000..f1939c0
--- /dev/null
+++ b/docs/RTOS/html/Semaphore.png
Binary files differ
diff --git a/docs/RTOS/html/ThreadStatus.png b/docs/RTOS/html/ThreadStatus.png
new file mode 100644
index 0000000..45a0564
--- /dev/null
+++ b/docs/RTOS/html/ThreadStatus.png
Binary files differ
diff --git a/docs/RTOS/html/Timer.png b/docs/RTOS/html/Timer.png
new file mode 100644
index 0000000..63c666b
--- /dev/null
+++ b/docs/RTOS/html/Timer.png
Binary files differ
diff --git a/docs/RTOS/html/TimerValues.png b/docs/RTOS/html/TimerValues.png
new file mode 100644
index 0000000..08add5d
--- /dev/null
+++ b/docs/RTOS/html/TimerValues.png
Binary files differ
diff --git a/docs/RTOS/html/add_item.png b/docs/RTOS/html/add_item.png
new file mode 100644
index 0000000..20e6946
--- /dev/null
+++ b/docs/RTOS/html/add_item.png
Binary files differ
diff --git a/docs/RTOS/html/annotated.html b/docs/RTOS/html/annotated.html
new file mode 100644
index 0000000..7b447e9
--- /dev/null
+++ b/docs/RTOS/html/annotated.html
@@ -0,0 +1,150 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Data Structures</title>
+<title>CMSIS-RTOS: Data Structures</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+ <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('annotated.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Data Structures</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here are the data structures with brief descriptions:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="group__CMSIS__RTOS__Definitions.html#structos__mailQ" target="_self">os_mailQ</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="group__CMSIS__RTOS__Definitions.html#structosEvent" target="_self">osEvent</a></td><td class="desc">Event structure contains detailed information about an event </td></tr>
+<tr id="row_2_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="group__CMSIS__RTOS__Definitions.html#unionosEvent_8def" target="_self">osEvent.def</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="group__CMSIS__RTOS__Definitions.html#unionosEvent_8value" target="_self">osEvent.value</a></td><td class="desc"></td></tr>
+<tr id="row_4_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="cmsis__os_8h.html#structosMailQDef__t" target="_self">osMailQDef_t</a></td><td class="desc">Definition structure for mail queue </td></tr>
+<tr id="row_5_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="cmsis__os_8h.html#structosMessageQDef__t" target="_self">osMessageQDef_t</a></td><td class="desc">Definition structure for message queue </td></tr>
+<tr id="row_6_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="cmsis__os_8h.html#structosMutexDef__t" target="_self">osMutexDef_t</a></td><td class="desc">Mutex Definition structure contains setup information for a mutex </td></tr>
+<tr id="row_7_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="cmsis__os_8h.html#structosPoolDef__t" target="_self">osPoolDef_t</a></td><td class="desc">Definition structure for memory block allocation </td></tr>
+<tr id="row_8_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="cmsis__os_8h.html#structosSemaphoreDef__t" target="_self">osSemaphoreDef_t</a></td><td class="desc">Semaphore Definition structure contains setup information for a semaphore </td></tr>
+<tr id="row_9_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="cmsis__os_8h.html#structosThreadDef__t" target="_self">osThreadDef_t</a></td><td class="desc">Thread Definition structure contains startup information of a thread </td></tr>
+<tr id="row_10_" class="even"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2cl.png" alt="C" width="24" height="22" /><a class="el" href="cmsis__os_8h.html#structosTimerDef__t" target="_self">osTimerDef_t</a></td><td class="desc">Timer Definition structure contains timer parameters </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/annotated.js b/docs/RTOS/html/annotated.js
new file mode 100644
index 0000000..72eeb65
--- /dev/null
+++ b/docs/RTOS/html/annotated.js
@@ -0,0 +1,14 @@
+var annotated =
+[
+ [ "os_mailQ", "group__CMSIS__RTOS__Definitions.html#structos__mailQ", null ],
+ [ "osEvent", "group__CMSIS__RTOS__Definitions.html#structosEvent", "group__CMSIS__RTOS__Definitions_structosEvent" ],
+ [ "osEvent.def", "group__CMSIS__RTOS__Definitions.html#unionosEvent_8def", "group__CMSIS__RTOS__Definitions_unionosEvent_8def" ],
+ [ "osEvent.value", "group__CMSIS__RTOS__Definitions.html#unionosEvent_8value", "group__CMSIS__RTOS__Definitions_unionosEvent_8value" ],
+ [ "osMailQDef_t", "cmsis__os_8h.html#structosMailQDef__t", "cmsis__os_8h_structosMailQDef__t" ],
+ [ "osMessageQDef_t", "cmsis__os_8h.html#structosMessageQDef__t", "cmsis__os_8h_structosMessageQDef__t" ],
+ [ "osMutexDef_t", "cmsis__os_8h.html#structosMutexDef__t", "cmsis__os_8h_structosMutexDef__t" ],
+ [ "osPoolDef_t", "cmsis__os_8h.html#structosPoolDef__t", "cmsis__os_8h_structosPoolDef__t" ],
+ [ "osSemaphoreDef_t", "cmsis__os_8h.html#structosSemaphoreDef__t", "cmsis__os_8h_structosSemaphoreDef__t" ],
+ [ "osThreadDef_t", "cmsis__os_8h.html#structosThreadDef__t", "cmsis__os_8h_structosThreadDef__t" ],
+ [ "osTimerDef_t", "cmsis__os_8h.html#structosTimerDef__t", "cmsis__os_8h_structosTimerDef__t" ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/bc_s.png b/docs/RTOS/html/bc_s.png
new file mode 100644
index 0000000..224b29a
--- /dev/null
+++ b/docs/RTOS/html/bc_s.png
Binary files differ
diff --git a/docs/RTOS/html/bdwn.png b/docs/RTOS/html/bdwn.png
new file mode 100644
index 0000000..940a0b9
--- /dev/null
+++ b/docs/RTOS/html/bdwn.png
Binary files differ
diff --git a/docs/RTOS/html/classes.html b/docs/RTOS/html/classes.html
new file mode 100644
index 0000000..991a434
--- /dev/null
+++ b/docs/RTOS/html/classes.html
@@ -0,0 +1,144 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Data Structure Index</title>
+<title>CMSIS-RTOS: Data Structure Index</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li class="current"><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+ <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('classes.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Data Structure Index</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="qindex"><a class="qindex" href="#letter_O">O</a></div>
+<table style="margin: 10px; white-space: nowrap;" align="center" width="95%" border="0" cellspacing="0" cellpadding="0">
+<tr><td rowspan="2" valign="bottom"><a name="letter_o"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;o&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="cmsis__os_8h.html#structosMailQDef__t">osMailQDef_t</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="cmsis__os_8h.html#structosPoolDef__t">osPoolDef_t</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="cmsis__os_8h.html#structosTimerDef__t">osTimerDef_t</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="group__CMSIS__RTOS__Definitions.html#unionosEvent_8def">osEvent.def</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="cmsis__os_8h.html#structosMessageQDef__t">osMessageQDef_t</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="cmsis__os_8h.html#structosSemaphoreDef__t">osSemaphoreDef_t</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td valign="top"><a class="el" href="group__CMSIS__RTOS__Definitions.html#structos__mailQ">os_mailQ</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="group__CMSIS__RTOS__Definitions.html#unionosEvent_8value">osEvent.value</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="cmsis__os_8h.html#structosMutexDef__t">osMutexDef_t</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="cmsis__os_8h.html#structosThreadDef__t">osThreadDef_t</a>&#160;&#160;&#160;</td><td></td></tr>
+<tr><td></td><td></td><td></td><td></td><td></td></tr>
+</table>
+<div class="qindex"><a class="qindex" href="#letter_O">O</a></div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/closed.png b/docs/RTOS/html/closed.png
new file mode 100644
index 0000000..98cc2c9
--- /dev/null
+++ b/docs/RTOS/html/closed.png
Binary files differ
diff --git a/docs/RTOS/html/cmsis.css b/docs/RTOS/html/cmsis.css
new file mode 100644
index 0000000..bba1010
--- /dev/null
+++ b/docs/RTOS/html/cmsis.css
@@ -0,0 +1,1282 @@
+/* The standard CSS for doxygen */
+
+body, table, div, p, dl {
+ font-family: Lucida Grande, Verdana, Geneva, Arial, sans-serif;
+ font-size: 13px;
+ line-height: 1.3;
+}
+
+/* CMSIS styles */
+
+.style1 {
+ text-align: center;
+}
+.style2 {
+ color: #0000FF;
+ font-weight: normal;
+}
+.style3 {
+ text-align: left;
+}
+.style4 {
+ color: #008000;
+}
+.style5 {
+ color: #0000FF;
+}
+.style6 {
+ color: #000000;
+ font-style:italic;
+}
+.mand {
+ color: #0000FF;
+}
+.opt {
+ color: #008000;
+}
+.cond {
+ color: #990000;
+}
+
+.choice
+{
+ background-color:#F7F9D0;
+}
+.seq
+{
+ background-color:#C9DECB;
+}
+.group1
+{
+ background-color:#F8F1F1;
+}
+.group2
+{
+ background-color:#DCEDEA;
+}
+
+
+ul ul {
+ list-style-type: disc;
+}
+
+ul ul ul {
+ list-style-type: disc;
+}
+
+ul.hierarchy {
+ color: green;
+}
+
+em {
+ color: #000000;
+ font-style:italic;
+}
+
+
+
+/* CMSIS Tables */
+table.cmtab1 {
+ padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #A3B4D7;
+ text-align: justify;
+ width:70%;
+}
+
+th.cmtab1 {
+ background: #EBEFF6;
+ font-weight: bold;
+ height: 28px;
+}
+
+td.cmtab1 {
+ padding:1px;
+ text-align: left;
+}
+
+table.cmtable {
+ border-collapse:collapse;
+ text-align: justify;
+}
+
+table.cmtable td, table.cmtable th {
+ border: 1px solid #2D4068;
+ padding: 3px 7px 2px;
+}
+
+table.cmtable th {
+ background-color: #EBEFF6;
+ font-size: 110%;
+ padding-bottom: 4px;
+ padding-top: 5px;
+ text-align:left;
+}
+
+td.MonoTxt {
+ font-family:"Arial monospaced for SAP";
+}
+
+td.XML-Token
+{
+ azimuth: 180;
+ font-style:italic;
+ color:Maroon;
+ z-index:20;
+
+}
+
+span.XML-Token
+{
+ azimuth: 180;
+ font-style:italic;
+ color:Maroon;
+ z-index:20;
+
+}
+
+span.h2
+{
+ font-size: 120%;
+ font-weight: bold;
+}
+
+div.new
+{
+ background-color:#ccffcc; /* light green */
+}
+
+div.mod
+{
+ background-color:#ffe6cc; /* light amber */
+}
+
+div.del
+{
+ background-color:#ffcccc; /* light red */
+}
+
+/* @group Heading Levels */
+
+h1 {
+ font-size: 150%;
+}
+
+.title {
+ font-size: 150%;
+ font-weight: bold;
+ margin: 10px 2px;
+}
+
+h2 {
+ font-size: 120%;
+}
+
+h3 {
+ font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ -webkit-transition: text-shadow 0.5s linear;
+ -moz-transition: text-shadow 0.5s linear;
+ -ms-transition: text-shadow 0.5s linear;
+ -o-transition: text-shadow 0.5s linear;
+ transition: text-shadow 0.5s linear;
+ margin-right: 15px;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+ text-shadow: 0 0 15px cyan;
+}
+
+dt {
+ font-weight: bold;
+}
+
+div.multicol {
+ -moz-column-gap: 1em;
+ -webkit-column-gap: 1em;
+ -moz-column-count: 3;
+ -webkit-column-count: 3;
+}
+
+p.startli, p.startdd, p.starttd {
+ margin-top: 2px;
+}
+
+p.endli {
+ margin-bottom: 0px;
+}
+
+p.enddd {
+ margin-bottom: 4px;
+}
+
+p.endtd {
+ margin-bottom: 2px;
+}
+
+/* @end */
+
+caption {
+ font-weight: bold;
+}
+
+span.legend {
+ font-size: 70%;
+ text-align: center;
+}
+
+h3.version {
+ font-size: 90%;
+ text-align: center;
+}
+
+div.qindex, div.navtab{
+ background-color: #EBEFF6;
+ border: 1px solid #A2B4D8;
+ text-align: center;
+}
+
+div.qindex, div.navpath {
+ width: 100%;
+ line-height: 140%;
+}
+
+div.navtab {
+ margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+ color: #3A568E;
+ font-weight: normal;
+ text-decoration: none;
+}
+
+.contents a:visited {
+ color: #4464A5;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+a.qindex {
+ font-weight: bold;
+}
+
+a.qindexHL {
+ font-weight: bold;
+ background-color: #9AAED5;
+ color: #ffffff;
+ border: 1px double #849CCC;
+}
+
+.contents a.qindexHL:visited {
+ color: #ffffff;
+}
+
+a.el {
+ font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited {
+ color: #4665A2;
+}
+
+a.codeRef, a.codeRef:visited {
+ color: #4665A2;
+}
+
+/* @end */
+
+dl.el {
+ margin-left: -1cm;
+}
+
+pre.fragment {
+ border: 1px solid #C4CFE5;
+ background-color: #FBFCFD;
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+ overflow: auto;
+ word-wrap: break-word;
+ font-size: 9pt;
+ line-height: 125%;
+ font-family: monospace, fixed;
+ font-size: 105%;
+}
+
+div.fragment {
+ padding: 4px;
+ margin: 4px;
+ background-color: #FBFCFD;
+ border: 1px solid #C3CFE6;
+}
+
+div.line {
+ font-family: monospace, fixed;
+ font-size: 13px;
+ line-height: 1.0;
+ text-wrap: unrestricted;
+ white-space: -moz-pre-wrap; /* Moz */
+ white-space: -pre-wrap; /* Opera 4-6 */
+ white-space: -o-pre-wrap; /* Opera 7 */
+ white-space: pre-wrap; /* CSS3 */
+ word-wrap: break-word; /* IE 5.5+ */
+ text-indent: -53px;
+ padding-left: 53px;
+ padding-bottom: 0px;
+ margin: 0px;
+}
+
+span.lineno {
+ padding-right: 4px;
+ text-align: right;
+ border-right: 2px solid #0F0;
+ background-color: #E8E8E8;
+ white-space: pre;
+}
+span.lineno a {
+ background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+ background-color: #C8C8C8;
+}
+
+div.ah {
+ background-color: black;
+ font-weight: bold;
+ color: #ffffff;
+ margin-bottom: 3px;
+ margin-top: 3px;
+ padding: 0.2em;
+ border: solid thin #333;
+ border-radius: 0.5em;
+ -webkit-border-radius: .5em;
+ -moz-border-radius: .5em;
+ box-shadow: 2px 2px 3px #999;
+ -webkit-box-shadow: 2px 2px 3px #999;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+ background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
+}
+
+div.groupHeader {
+ margin-left: 16px;
+ margin-top: 12px;
+ font-weight: bold;
+}
+
+div.groupText {
+ margin-left: 16px;
+ font-style: italic;
+}
+
+body {
+ background-color: white;
+ color: black;
+ margin: 0;
+}
+
+div.contents {
+ margin-top: 10px;
+ margin-left: 12px;
+ margin-right: 8px;
+}
+
+td.indexkey {
+ background-color: #EBEFF6;
+ font-weight: bold;
+ border: 1px solid #C3CFE6;
+ margin: 2px 0px 2px 0;
+ padding: 2px 10px;
+ white-space: nowrap;
+ vertical-align: top;
+}
+
+td.indexvalue {
+ background-color: #EBEFF6;
+ border: 1px solid #C3CFE6;
+ padding: 2px 10px;
+ margin: 2px 0px;
+}
+
+tr.memlist {
+ background-color: #EDF1F7;
+}
+
+p.formulaDsp {
+ text-align: center;
+}
+
+img.formulaDsp {
+
+}
+
+img.formulaInl {
+ vertical-align: middle;
+}
+
+div.center {
+ text-align: center;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 0px;
+}
+
+div.center img {
+ border: 0px;
+}
+
+address.footer {
+ text-align: right;
+ padding-right: 12px;
+}
+
+img.footer {
+ border: 0px;
+ vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+ color: #008000
+}
+
+span.keywordtype {
+ color: #604020
+}
+
+span.keywordflow {
+ color: #e08000
+}
+
+span.comment {
+ color: #800000
+}
+
+span.preprocessor {
+ color: #806020
+}
+
+span.stringliteral {
+ color: #002080
+}
+
+span.charliteral {
+ color: #008080
+}
+
+span.vhdldigit {
+ color: #ff00ff
+}
+
+span.vhdlchar {
+ color: #000000
+}
+
+span.vhdlkeyword {
+ color: #700070
+}
+
+span.vhdllogic {
+ color: #ff0000
+}
+
+blockquote {
+ background-color: #F7F8FB;
+ border-left: 2px solid #9AAED5;
+ margin: 0 24px 0 4px;
+ padding: 0 12px 0 16px;
+}
+
+/* @end */
+
+/*
+.search {
+ color: #003399;
+ font-weight: bold;
+}
+
+form.search {
+ margin-bottom: 0px;
+ margin-top: 0px;
+}
+
+input.search {
+ font-size: 75%;
+ color: #000080;
+ font-weight: normal;
+ background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+ font-size: 75%;
+}
+
+.dirtab {
+ padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #A2B4D8;
+}
+
+th.dirtab {
+ background: #EBEFF6;
+ font-weight: bold;
+}
+
+hr {
+ height: 0px;
+ border: none;
+ border-top: 1px solid #4769AD;
+}
+
+hr.footer {
+ height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+ border-spacing: 0px;
+ padding: 0px;
+}
+
+.memberdecls td {
+ -webkit-transition-property: background-color, box-shadow;
+ -webkit-transition-duration: 0.5s;
+ -moz-transition-property: background-color, box-shadow;
+ -moz-transition-duration: 0.5s;
+ -ms-transition-property: background-color, box-shadow;
+ -ms-transition-duration: 0.5s;
+ -o-transition-property: background-color, box-shadow;
+ -o-transition-duration: 0.5s;
+ transition-property: background-color, box-shadow;
+ transition-duration: 0.5s;
+}
+
+.memberdecls td.glow {
+ background-color: cyan;
+ box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+ background-color: #F9FAFC;
+ border: none;
+ margin: 4px;
+ padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+ padding: 0px 8px 4px 8px;
+ color: #555;
+}
+
+.memItemLeft, .memItemRight, .memTemplParams {
+ border-top: 1px solid #C3CFE6;
+}
+
+.memItemLeft, .memTemplItemLeft {
+ white-space: nowrap;
+}
+
+.memItemRight {
+ width: 100%;
+}
+
+.memTemplParams {
+ color: #4464A5;
+ white-space: nowrap;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtemplate {
+ font-size: 80%;
+ color: #4464A5;
+ font-weight: normal;
+ margin-left: 9px;
+}
+
+.memnav {
+ background-color: #EBEFF6;
+ border: 1px solid #A2B4D8;
+ text-align: center;
+ margin: 2px;
+ margin-right: 15px;
+ padding: 2px;
+}
+
+.mempage {
+ width: 100%;
+}
+
+.memitem {
+ padding: 0;
+ margin-bottom: 10px;
+ margin-right: 5px;
+ -webkit-transition: box-shadow 0.5s linear;
+ -moz-transition: box-shadow 0.5s linear;
+ -ms-transition: box-shadow 0.5s linear;
+ -o-transition: box-shadow 0.5s linear;
+ transition: box-shadow 0.5s linear;
+}
+
+.memitem.glow {
+ box-shadow: 0 0 15px cyan;
+}
+
+.memname {
+ font-weight: bold;
+ margin-left: 6px;
+}
+
+.memname td {
+ vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+ border-top: 1px solid #A7B8DA;
+ border-left: 1px solid #A7B8DA;
+ border-right: 1px solid #A7B8DA;
+ padding: 6px 0px 6px 0px;
+ color: #233456;
+ font-weight: bold;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E7F3;
+ /* opera specific markup */
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ /* firefox specific markup */
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ -moz-border-radius-topright: 4px;
+ -moz-border-radius-topleft: 4px;
+ /* webkit specific markup */
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ -webkit-border-top-right-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+
+}
+
+.memdoc, dl.reflist dd {
+ border-bottom: 1px solid #A7B8DA;
+ border-left: 1px solid #A7B8DA;
+ border-right: 1px solid #A7B8DA;
+ padding: 6px 10px 2px 10px;
+ background-color: #FBFCFD;
+ border-top-width: 0;
+ background-image:url('nav_g.png');
+ background-repeat:repeat-x;
+ background-color: #FFFFFF;
+ /* opera specific markup */
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ /* firefox specific markup */
+ -moz-border-radius-bottomleft: 4px;
+ -moz-border-radius-bottomright: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ /* webkit specific markup */
+ -webkit-border-bottom-left-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+dl.reflist dt {
+ padding: 5px;
+}
+
+dl.reflist dd {
+ margin: 0px 0px 10px 0px;
+ padding: 5px;
+}
+
+.paramkey {
+ text-align: right;
+}
+
+.paramtype {
+ white-space: nowrap;
+}
+
+.paramname {
+ color: #602020;
+ white-space: nowrap;
+}
+.paramname em {
+ font-style: normal;
+}
+
+.params, .retval, .exception, .tparams {
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+.params .paramname, .retval .paramname {
+ font-weight: bold;
+ vertical-align: top;
+}
+
+.params .paramtype {
+ font-style: italic;
+ vertical-align: top;
+}
+
+.params .paramdir {
+ font-family: "courier new",courier,monospace;
+ vertical-align: top;
+}
+
+table.mlabels {
+ border-spacing: 0px;
+}
+
+td.mlabels-left {
+ width: 100%;
+ padding: 0px;
+}
+
+td.mlabels-right {
+ vertical-align: bottom;
+ padding: 0px;
+ white-space: nowrap;
+}
+
+span.mlabels {
+ margin-left: 8px;
+}
+
+span.mlabel {
+ background-color: #708CC4;
+ border-top:1px solid #5072B7;
+ border-left:1px solid #5072B7;
+ border-right:1px solid #C3CFE6;
+ border-bottom:1px solid #C3CFE6;
+ text-shadow: none;
+ color: white;
+ margin-right: 4px;
+ padding: 2px 3px;
+ border-radius: 3px;
+ font-size: 7pt;
+ white-space: nowrap;
+}
+
+
+
+/* @end */
+
+/* these are for tree view when not used as main index */
+
+div.directory {
+ margin: 10px 0px;
+ border-top: 1px solid #A8B8D9;
+ border-bottom: 1px solid #A8B8D9;
+ width: 100%;
+}
+
+.directory table {
+ border-collapse:collapse;
+}
+
+.directory td {
+ margin: 0px;
+ padding: 0px;
+ vertical-align: top;
+}
+
+.directory td.entry {
+ white-space: nowrap;
+ padding-right: 6px;
+}
+
+.directory td.entry a {
+ outline:none;
+}
+
+.directory td.desc {
+ width: 100%;
+ padding-left: 6px;
+ padding-right: 6px;
+ border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory tr.even {
+ padding-left: 6px;
+ background-color: #F7F8FB;
+}
+
+.directory img {
+ vertical-align: -30%;
+}
+
+.directory .levels {
+ white-space: nowrap;
+ width: 100%;
+ text-align: right;
+ font-size: 9pt;
+}
+
+.directory .levels span {
+ cursor: pointer;
+ padding-left: 2px;
+ padding-right: 2px;
+ color: #3A568E;
+}
+
+div.dynheader {
+ margin-top: 8px;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+address {
+ font-style: normal;
+ color: #293C63;
+}
+
+table.doxtable {
+ border-collapse:collapse;
+ margin-top: 4px;
+ margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+ border: 1px solid #2B4069;
+ padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+ background-color: #EBEFF6;
+ color: #000000;
+ font-size: 110%;
+ padding-bottom: 4px;
+ padding-top: 5px;
+}
+
+table.fieldtable {
+ width: 100%;
+ margin-bottom: 10px;
+ border: 1px solid #A7B8DA;
+ border-spacing: 0px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+ box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+ padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+ white-space: nowrap;
+ border-right: 1px solid #A7B8DA;
+ border-bottom: 1px solid #A7B8DA;
+ vertical-align: top;
+}
+
+.fieldtable td.fielddoc {
+ border-bottom: 1px solid #A7B8DA;
+ width: 100%;
+}
+
+.fieldtable tr:last-child td {
+ border-bottom: none;
+}
+
+.fieldtable th {
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E7F3;
+ font-size: 90%;
+ color: #233456;
+ padding-bottom: 4px;
+ padding-top: 5px;
+ text-align:left;
+ -moz-border-radius-topleft: 4px;
+ -moz-border-radius-topright: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom: 1px solid #A7B8DA;
+}
+
+
+.tabsearch {
+ top: 0px;
+ left: 10px;
+ height: 36px;
+ background-image: url('tab_b.png');
+ z-index: 101;
+ overflow: hidden;
+ font-size: 13px;
+}
+
+.navpath ul
+{
+ font-size: 11px;
+ background-image:url('tab_b.png');
+ background-repeat:repeat-x;
+ height:30px;
+ line-height:30px;
+ color:#889FCE;
+ border:solid 1px #C1CDE5;
+ overflow:hidden;
+ margin:0px;
+ padding:0px;
+}
+
+.navpath li
+{
+ list-style-type:none;
+ float:left;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:url('bc_s.png');
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#344D7E;
+}
+
+.navpath li.navelem a
+{
+ height:32px;
+ display:block;
+ text-decoration: none;
+ outline: none;
+}
+
+.navpath li.navelem a:hover
+{
+ color:#6583BF;
+}
+
+.navpath li.footer
+{
+ list-style-type:none;
+ float:right;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:none;
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#344D7E;
+ font-size: 8pt;
+}
+
+
+div.summary
+{
+ float: right;
+ font-size: 8pt;
+ padding-right: 5px;
+ width: 50%;
+ text-align: right;
+}
+
+div.summary a
+{
+ white-space: nowrap;
+}
+
+div.ingroups
+{
+ margin-left: 5px;
+ font-size: 8pt;
+ padding-left: 5px;
+ width: 50%;
+ text-align: left;
+}
+
+div.ingroups a
+{
+ white-space: nowrap;
+}
+
+div.header
+{
+ background-image:url('nav_h.png');
+ background-repeat:repeat-x;
+ background-color: #F9FAFC;
+ margin: 0px;
+ border-bottom: 1px solid #C3CFE6;
+}
+
+div.headertitle
+{
+ padding: 5px 5px 5px 7px;
+}
+
+dl
+{
+ padding: 0 0 0 10px;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
+dl.section
+{
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+dl.note
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #D0C000;
+}
+
+dl.warning, dl.attention
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #00D000;
+}
+
+dl.deprecated
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #505050;
+}
+
+dl.todo
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #00C0E0;
+}
+
+dl.test
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #3030E0;
+}
+
+dl.bug
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #C08050;
+}
+
+dl.section dd {
+ margin-bottom: 6px;
+}
+
+
+#projectlogo
+{
+ text-align: center;
+ vertical-align: bottom;
+ border-collapse: separate;
+}
+
+#projectlogo img
+{
+ border: 0px none;
+}
+
+#projectname
+{
+ font: 300% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 2px 0px;
+}
+
+#projectbrief
+{
+ font: 120% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#projectnumber
+{
+ font: 50% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#titlearea
+{
+ padding: 0px;
+ margin: 0px;
+ width: 100%;
+ border-bottom: 1px solid #5072B7;
+}
+
+.image
+{
+ text-align: center;
+}
+
+.dotgraph
+{
+ text-align: center;
+}
+
+.mscgraph
+{
+ text-align: center;
+}
+
+.caption
+{
+ font-weight: bold;
+}
+
+div.zoom
+{
+ border: 1px solid #8EA4D0;
+}
+
+dl.citelist {
+ margin-bottom:50px;
+}
+
+dl.citelist dt {
+ color:#314877;
+ float:left;
+ font-weight:bold;
+ margin-right:10px;
+ padding:5px;
+}
+
+dl.citelist dd {
+ margin:2px 0;
+ padding:5px 0;
+}
+
+div.toc {
+ padding: 14px 25px;
+ background-color: #F4F6FA;
+ border: 1px solid #D7DFEE;
+ border-radius: 7px 7px 7px 7px;
+ float: right;
+ height: auto;
+ margin: 0 20px 10px 10px;
+ width: 200px;
+}
+
+div.toc li {
+ background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+ font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+ margin-top: 5px;
+ padding-left: 10px;
+ padding-top: 2px;
+}
+
+div.toc h3 {
+ font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+ color: #4464A5;
+ border-bottom: 0 none;
+ margin: 0;
+}
+
+div.toc ul {
+ list-style: none outside none;
+ border: medium none;
+ padding: 0px;
+}
+
+div.toc li.level1 {
+ margin-left: 0px;
+}
+
+div.toc li.level2 {
+ margin-left: 15px;
+}
+
+div.toc li.level3 {
+ margin-left: 30px;
+}
+
+div.toc li.level4 {
+ margin-left: 45px;
+}
+
+.inherit_header {
+ font-weight: bold;
+ color: gray;
+ cursor: pointer;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.inherit_header td {
+ padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+ display: none;
+}
+
+tr.heading h2 {
+ margin-top: 12px;
+ margin-bottom: 4px;
+}
+
+@media print
+{
+ #top { display: none; }
+ #side-nav { display: none; }
+ #nav-path { display: none; }
+ body { overflow:visible; }
+ h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+ .summary { display: none; }
+ .memitem { page-break-inside: avoid; }
+ #doc-content
+ {
+ margin-left:0 !important;
+ height:auto !important;
+ width:auto !important;
+ overflow:inherit;
+ display:inline;
+ }
+}
+
diff --git a/docs/RTOS/html/cmsis__os_8h.html b/docs/RTOS/html/cmsis__os_8h.html
new file mode 100644
index 0000000..2641239
--- /dev/null
+++ b/docs/RTOS/html/cmsis__os_8h.html
@@ -0,0 +1,895 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>cmsis_os.h File Reference</title>
+<title>CMSIS-RTOS: cmsis_os.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('cmsis__os_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> &#124;
+<a href="#define-members">Macros</a> &#124;
+<a href="#typedef-members">Typedefs</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">cmsis_os.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:structosThreadDef__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmsis__os_8h.html#structosThreadDef__t">osThreadDef_t</a></td></tr>
+<tr class="memdesc:structosThreadDef__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Thread Definition structure contains startup information of a thread. <a href="cmsis__os_8h.html#structosThreadDef__t">More...</a><br/></td></tr>
+<tr class="separator:structosThreadDef__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:structosTimerDef__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmsis__os_8h.html#structosTimerDef__t">osTimerDef_t</a></td></tr>
+<tr class="memdesc:structosTimerDef__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Timer Definition structure contains timer parameters. <a href="cmsis__os_8h.html#structosTimerDef__t">More...</a><br/></td></tr>
+<tr class="separator:structosTimerDef__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:structosMutexDef__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmsis__os_8h.html#structosMutexDef__t">osMutexDef_t</a></td></tr>
+<tr class="memdesc:structosMutexDef__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mutex Definition structure contains setup information for a mutex. <a href="cmsis__os_8h.html#structosMutexDef__t">More...</a><br/></td></tr>
+<tr class="separator:structosMutexDef__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:structosSemaphoreDef__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmsis__os_8h.html#structosSemaphoreDef__t">osSemaphoreDef_t</a></td></tr>
+<tr class="memdesc:structosSemaphoreDef__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Semaphore Definition structure contains setup information for a semaphore. <a href="cmsis__os_8h.html#structosSemaphoreDef__t">More...</a><br/></td></tr>
+<tr class="separator:structosSemaphoreDef__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:structosPoolDef__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmsis__os_8h.html#structosPoolDef__t">osPoolDef_t</a></td></tr>
+<tr class="memdesc:structosPoolDef__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Definition structure for memory block allocation. <a href="cmsis__os_8h.html#structosPoolDef__t">More...</a><br/></td></tr>
+<tr class="separator:structosPoolDef__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:structosMessageQDef__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmsis__os_8h.html#structosMessageQDef__t">osMessageQDef_t</a></td></tr>
+<tr class="memdesc:structosMessageQDef__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Definition structure for message queue. <a href="cmsis__os_8h.html#structosMessageQDef__t">More...</a><br/></td></tr>
+<tr class="separator:structosMessageQDef__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:structosMailQDef__t"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmsis__os_8h.html#structosMailQDef__t">osMailQDef_t</a></td></tr>
+<tr class="memdesc:structosMailQDef__t"><td class="mdescLeft">&#160;</td><td class="mdescRight">Definition structure for mail queue. <a href="cmsis__os_8h.html#structosMailQDef__t">More...</a><br/></td></tr>
+<tr class="separator:structosMailQDef__t"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:structosEvent"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a></td></tr>
+<tr class="memdesc:structosEvent"><td class="mdescLeft">&#160;</td><td class="mdescRight">Event structure contains detailed information about an event. <a href="group__CMSIS__RTOS__Definitions.html#structosEvent">More...</a><br/></td></tr>
+<tr class="separator:structosEvent"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:unionosEvent_8value"><td class="memItemLeft" align="right" valign="top">union &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Definitions.html#unionosEvent_8value">osEvent.value</a></td></tr>
+<tr class="separator:unionosEvent_8value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:unionosEvent_8def"><td class="memItemLeft" align="right" valign="top">union &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Definitions.html#unionosEvent_8def">osEvent.def</a></td></tr>
+<tr class="separator:unionosEvent_8def"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ga702196bacccbb978620c736b209387f1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga702196bacccbb978620c736b209387f1">osCMSIS</a>&#160;&#160;&#160;0x10002</td></tr>
+<tr class="memdesc:ga702196bacccbb978620c736b209387f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">API version (main [31:16] .sub [15:0]) <a href="group__CMSIS__RTOS__KernelCtrl.html#ga702196bacccbb978620c736b209387f1">More...</a><br/></td></tr>
+<tr class="separator:ga702196bacccbb978620c736b209387f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab78dce646fabec479c5f34bc5175b7de"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gab78dce646fabec479c5f34bc5175b7de">osCMSIS_KERNEL</a>&#160;&#160;&#160;0x10000</td></tr>
+<tr class="memdesc:gab78dce646fabec479c5f34bc5175b7de"><td class="mdescLeft">&#160;</td><td class="mdescRight">RTOS identification and version (main [31:16] .sub [15:0]) <a href="group__CMSIS__RTOS__KernelCtrl.html#gab78dce646fabec479c5f34bc5175b7de">More...</a><br/></td></tr>
+<tr class="separator:gab78dce646fabec479c5f34bc5175b7de"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga47cf03658f01cdffca688e9096b58289"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga47cf03658f01cdffca688e9096b58289">osKernelSystemId</a>&#160;&#160;&#160;&quot;KERNEL V1.00&quot;</td></tr>
+<tr class="memdesc:ga47cf03658f01cdffca688e9096b58289"><td class="mdescLeft">&#160;</td><td class="mdescRight">RTOS identification string. <a href="group__CMSIS__RTOS__KernelCtrl.html#ga47cf03658f01cdffca688e9096b58289">More...</a><br/></td></tr>
+<tr class="separator:ga47cf03658f01cdffca688e9096b58289"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga22f7d235bc9f783933bd5a981fd79696"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga22f7d235bc9f783933bd5a981fd79696">osFeature_MainThread</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:ga22f7d235bc9f783933bd5a981fd79696"><td class="mdescLeft">&#160;</td><td class="mdescRight">main thread 1=main can be thread, 0=not available <a href="group__CMSIS__RTOS__KernelCtrl.html#ga22f7d235bc9f783933bd5a981fd79696">More...</a><br/></td></tr>
+<tr class="separator:ga22f7d235bc9f783933bd5a981fd79696"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadd84b683001de327894851b428587caa"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#gadd84b683001de327894851b428587caa">osFeature_Pool</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:gadd84b683001de327894851b428587caa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Memory Pools: 1=available, 0=not available. <a href="group__CMSIS__RTOS__PoolMgmt.html#gadd84b683001de327894851b428587caa">More...</a><br/></td></tr>
+<tr class="separator:gadd84b683001de327894851b428587caa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaceb2e0071ce160d153047f2eac1aca8e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Mail.html#gaceb2e0071ce160d153047f2eac1aca8e">osFeature_MailQ</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:gaceb2e0071ce160d153047f2eac1aca8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mail Queues: 1=available, 0=not available. <a href="group__CMSIS__RTOS__Mail.html#gaceb2e0071ce160d153047f2eac1aca8e">More...</a><br/></td></tr>
+<tr class="separator:gaceb2e0071ce160d153047f2eac1aca8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga479a6561f859e3d4818e25708593d203"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Message.html#ga479a6561f859e3d4818e25708593d203">osFeature_MessageQ</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:ga479a6561f859e3d4818e25708593d203"><td class="mdescLeft">&#160;</td><td class="mdescRight">Message Queues: 1=available, 0=not available. <a href="group__CMSIS__RTOS__Message.html#ga479a6561f859e3d4818e25708593d203">More...</a><br/></td></tr>
+<tr class="separator:ga479a6561f859e3d4818e25708593d203"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga01edde265710d883b6e237d34a6ef4a6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga01edde265710d883b6e237d34a6ef4a6">osFeature_Signals</a>&#160;&#160;&#160;8</td></tr>
+<tr class="memdesc:ga01edde265710d883b6e237d34a6ef4a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">maximum number of Signal Flags available per thread <a href="group__CMSIS__RTOS__SignalMgmt.html#ga01edde265710d883b6e237d34a6ef4a6">More...</a><br/></td></tr>
+<tr class="separator:ga01edde265710d883b6e237d34a6ef4a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga7da4c7bfb340779c9fc7b321f5ab3e3a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga7da4c7bfb340779c9fc7b321f5ab3e3a">osFeature_Semaphore</a>&#160;&#160;&#160;30</td></tr>
+<tr class="memdesc:ga7da4c7bfb340779c9fc7b321f5ab3e3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">maximum count for <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb">osSemaphoreCreate</a> function <a href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga7da4c7bfb340779c9fc7b321f5ab3e3a">More...</a><br/></td></tr>
+<tr class="separator:ga7da4c7bfb340779c9fc7b321f5ab3e3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6c97d38879ae86491628f6e647639bad"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Wait.html#ga6c97d38879ae86491628f6e647639bad">osFeature_Wait</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:ga6c97d38879ae86491628f6e647639bad"><td class="mdescLeft">&#160;</td><td class="mdescRight">osWait function: 1=available, 0=not available <a href="group__CMSIS__RTOS__Wait.html#ga6c97d38879ae86491628f6e647639bad">More...</a><br/></td></tr>
+<tr class="separator:ga6c97d38879ae86491628f6e647639bad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae554ec16c23c5b7d65affade2a351891"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gae554ec16c23c5b7d65affade2a351891">osFeature_SysTick</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:gae554ec16c23c5b7d65affade2a351891"><td class="mdescLeft">&#160;</td><td class="mdescRight">osKernelSysTick functions: 1=available, 0=not available <a href="group__CMSIS__RTOS__KernelCtrl.html#gae554ec16c23c5b7d65affade2a351891">More...</a><br/></td></tr>
+<tr class="separator:gae554ec16c23c5b7d65affade2a351891"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a9eb9a7a797a42e4b55eb171ecc609ddb"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmsis__os_8h.html#a9eb9a7a797a42e4b55eb171ecc609ddb">osWaitForever</a>&#160;&#160;&#160;0xFFFFFFFF</td></tr>
+<tr class="memdesc:a9eb9a7a797a42e4b55eb171ecc609ddb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Timeout value. <a href="#a9eb9a7a797a42e4b55eb171ecc609ddb">More...</a><br/></td></tr>
+<tr class="separator:a9eb9a7a797a42e4b55eb171ecc609ddb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9e0954d52722673e2031233a2ab99960"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga9e0954d52722673e2031233a2ab99960">osKernelSysTickFrequency</a>&#160;&#160;&#160;100000000</td></tr>
+<tr class="memdesc:ga9e0954d52722673e2031233a2ab99960"><td class="mdescLeft">&#160;</td><td class="mdescRight">The RTOS kernel system timer frequency in Hz. <a href="group__CMSIS__RTOS__KernelCtrl.html#ga9e0954d52722673e2031233a2ab99960">More...</a><br/></td></tr>
+<tr class="separator:ga9e0954d52722673e2031233a2ab99960"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae12c190af42d7310d8006d64f4ed5a88"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gae12c190af42d7310d8006d64f4ed5a88">osKernelSysTickMicroSec</a>(microsec)&#160;&#160;&#160;(((uint64_t)microsec * (<a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga9e0954d52722673e2031233a2ab99960">osKernelSysTickFrequency</a>)) / 1000000)</td></tr>
+<tr class="memdesc:gae12c190af42d7310d8006d64f4ed5a88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a microseconds value to a RTOS kernel system timer value. <a href="group__CMSIS__RTOS__KernelCtrl.html#gae12c190af42d7310d8006d64f4ed5a88">More...</a><br/></td></tr>
+<tr class="separator:gae12c190af42d7310d8006d64f4ed5a88"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaee93d929beb350f16e5cc7fa602e229f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a>(name, priority, instances, stacksz)</td></tr>
+<tr class="memdesc:gaee93d929beb350f16e5cc7fa602e229f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a Thread Definition with function, priority, and stack requirements. <a href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">More...</a><br/></td></tr>
+<tr class="separator:gaee93d929beb350f16e5cc7fa602e229f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf0c7c6b5e09f8be198312144b5c9e453"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">osThread</a>(name)&#160;&#160;&#160;&amp;os_thread_def_##name</td></tr>
+<tr class="memdesc:gaf0c7c6b5e09f8be198312144b5c9e453"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access a Thread definition. <a href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">More...</a><br/></td></tr>
+<tr class="separator:gaf0c7c6b5e09f8be198312144b5c9e453"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1c720627e08d1cc1afcad44e799ed492"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga1c720627e08d1cc1afcad44e799ed492">osTimerDef</a>(name, function)</td></tr>
+<tr class="memdesc:ga1c720627e08d1cc1afcad44e799ed492"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define a Timer object. <a href="group__CMSIS__RTOS__TimerMgmt.html#ga1c720627e08d1cc1afcad44e799ed492">More...</a><br/></td></tr>
+<tr class="separator:ga1c720627e08d1cc1afcad44e799ed492"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1b8d670eaf964b2910fa06885e650678"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678">osTimer</a>(name)&#160;&#160;&#160;&amp;os_timer_def_##name</td></tr>
+<tr class="memdesc:ga1b8d670eaf964b2910fa06885e650678"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access a Timer definition. <a href="group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678">More...</a><br/></td></tr>
+<tr class="separator:ga1b8d670eaf964b2910fa06885e650678"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9b522438489d7c402c95332b58bc94f3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga9b522438489d7c402c95332b58bc94f3">osMutexDef</a>(name)&#160;&#160;&#160;const <a class="el" href="cmsis__os_8h.html#structosMutexDef__t">osMutexDef_t</a> os_mutex_def_##name = { 0 }</td></tr>
+<tr class="memdesc:ga9b522438489d7c402c95332b58bc94f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define a Mutex. <a href="group__CMSIS__RTOS__MutexMgmt.html#ga9b522438489d7c402c95332b58bc94f3">More...</a><br/></td></tr>
+<tr class="separator:ga9b522438489d7c402c95332b58bc94f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1122a86faa64b4a0880c76cf68d0c934"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga1122a86faa64b4a0880c76cf68d0c934">osMutex</a>(name)&#160;&#160;&#160;&amp;os_mutex_def_##name</td></tr>
+<tr class="memdesc:ga1122a86faa64b4a0880c76cf68d0c934"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access a Mutex definition. <a href="group__CMSIS__RTOS__MutexMgmt.html#ga1122a86faa64b4a0880c76cf68d0c934">More...</a><br/></td></tr>
+<tr class="separator:ga1122a86faa64b4a0880c76cf68d0c934"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9e66fe361749071e5ab87826c43c2f1b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga9e66fe361749071e5ab87826c43c2f1b">osSemaphoreDef</a>(name)&#160;&#160;&#160;const <a class="el" href="cmsis__os_8h.html#structosSemaphoreDef__t">osSemaphoreDef_t</a> os_semaphore_def_##name = { 0 }</td></tr>
+<tr class="memdesc:ga9e66fe361749071e5ab87826c43c2f1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define a Semaphore object. <a href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga9e66fe361749071e5ab87826c43c2f1b">More...</a><br/></td></tr>
+<tr class="separator:ga9e66fe361749071e5ab87826c43c2f1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga03761ee8d2c3cd4544e18364ab301dac"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga03761ee8d2c3cd4544e18364ab301dac">osSemaphore</a>(name)&#160;&#160;&#160;&amp;os_semaphore_def_##name</td></tr>
+<tr class="memdesc:ga03761ee8d2c3cd4544e18364ab301dac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access a Semaphore definition. <a href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga03761ee8d2c3cd4544e18364ab301dac">More...</a><br/></td></tr>
+<tr class="separator:ga03761ee8d2c3cd4544e18364ab301dac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga87b471d4fe2d5dbd0040708edd52771b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga87b471d4fe2d5dbd0040708edd52771b">osPoolDef</a>(name, no, type)</td></tr>
+<tr class="memdesc:ga87b471d4fe2d5dbd0040708edd52771b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define a Memory Pool. <a href="group__CMSIS__RTOS__PoolMgmt.html#ga87b471d4fe2d5dbd0040708edd52771b">More...</a><br/></td></tr>
+<tr class="separator:ga87b471d4fe2d5dbd0040708edd52771b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5f0b204a82327533d420210125c90697"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga5f0b204a82327533d420210125c90697">osPool</a>(name)&#160;&#160;&#160;&amp;os_pool_def_##name</td></tr>
+<tr class="memdesc:ga5f0b204a82327533d420210125c90697"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access a Memory Pool definition. <a href="group__CMSIS__RTOS__PoolMgmt.html#ga5f0b204a82327533d420210125c90697">More...</a><br/></td></tr>
+<tr class="separator:ga5f0b204a82327533d420210125c90697"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac9a6a6276c12609793e7701afcc82326"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Message.html#gac9a6a6276c12609793e7701afcc82326">osMessageQDef</a>(name, queue_sz, type)</td></tr>
+<tr class="memdesc:gac9a6a6276c12609793e7701afcc82326"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a Message Queue Definition. <a href="group__CMSIS__RTOS__Message.html#gac9a6a6276c12609793e7701afcc82326">More...</a><br/></td></tr>
+<tr class="separator:gac9a6a6276c12609793e7701afcc82326"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2d446a0b4bb90bf05d6f92eedeaabc97"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Message.html#ga2d446a0b4bb90bf05d6f92eedeaabc97">osMessageQ</a>(name)&#160;&#160;&#160;&amp;os_messageQ_def_##name</td></tr>
+<tr class="memdesc:ga2d446a0b4bb90bf05d6f92eedeaabc97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access a Message Queue Definition. <a href="group__CMSIS__RTOS__Message.html#ga2d446a0b4bb90bf05d6f92eedeaabc97">More...</a><br/></td></tr>
+<tr class="separator:ga2d446a0b4bb90bf05d6f92eedeaabc97"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga58d712b16c0c6668059f509386d1e55b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Mail.html#ga58d712b16c0c6668059f509386d1e55b">osMailQDef</a>(name, queue_sz, type)</td></tr>
+<tr class="memdesc:ga58d712b16c0c6668059f509386d1e55b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a Mail Queue Definition. <a href="group__CMSIS__RTOS__Mail.html#ga58d712b16c0c6668059f509386d1e55b">More...</a><br/></td></tr>
+<tr class="separator:ga58d712b16c0c6668059f509386d1e55b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad2deeb66d51ade54e63d8f87ff2ec9d2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Mail.html#gad2deeb66d51ade54e63d8f87ff2ec9d2">osMailQ</a>(name)&#160;&#160;&#160;&amp;os_mailQ_def_##name</td></tr>
+<tr class="memdesc:gad2deeb66d51ade54e63d8f87ff2ec9d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access a Mail Queue Definition. <a href="group__CMSIS__RTOS__Mail.html#gad2deeb66d51ade54e63d8f87ff2ec9d2">More...</a><br/></td></tr>
+<tr class="separator:gad2deeb66d51ade54e63d8f87ff2ec9d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="typedef-members"></a>
+Typedefs</h2></td></tr>
+<tr class="memitem:aee631e5ea1b700fc35695cc7bc574cf7"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmsis__os_8h.html#aee631e5ea1b700fc35695cc7bc574cf7">os_pthread</a> )(void const *argument)</td></tr>
+<tr class="memdesc:aee631e5ea1b700fc35695cc7bc574cf7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Entry point of a thread. <a href="#aee631e5ea1b700fc35695cc7bc574cf7">More...</a><br/></td></tr>
+<tr class="separator:aee631e5ea1b700fc35695cc7bc574cf7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa2d85e49bde9f6951ff3545cd323f065"><td class="memItemLeft" align="right" valign="top">typedef void(*&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmsis__os_8h.html#aa2d85e49bde9f6951ff3545cd323f065">os_ptimer</a> )(void const *argument)</td></tr>
+<tr class="memdesc:aa2d85e49bde9f6951ff3545cd323f065"><td class="mdescLeft">&#160;</td><td class="mdescRight">Entry point of a timer call back function. <a href="#aa2d85e49bde9f6951ff3545cd323f065">More...</a><br/></td></tr>
+<tr class="separator:aa2d85e49bde9f6951ff3545cd323f065"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adfeb153a84a81309e2d958268197617f"><td class="memItemLeft" align="right" valign="top">typedef struct os_thread_cb *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a></td></tr>
+<tr class="memdesc:adfeb153a84a81309e2d958268197617f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Thread ID identifies the thread (pointer to a thread control block). <a href="#adfeb153a84a81309e2d958268197617f">More...</a><br/></td></tr>
+<tr class="separator:adfeb153a84a81309e2d958268197617f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ab8530dd4273f1f5382187732e14fcaa7"><td class="memItemLeft" align="right" valign="top">typedef struct os_timer_cb *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7">osTimerId</a></td></tr>
+<tr class="memdesc:ab8530dd4273f1f5382187732e14fcaa7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Timer ID identifies the timer (pointer to a timer control block). <a href="#ab8530dd4273f1f5382187732e14fcaa7">More...</a><br/></td></tr>
+<tr class="separator:ab8530dd4273f1f5382187732e14fcaa7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3263c1ad9fd79b84f908d65e8da44ac2"><td class="memItemLeft" align="right" valign="top">typedef struct os_mutex_cb *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">osMutexId</a></td></tr>
+<tr class="memdesc:a3263c1ad9fd79b84f908d65e8da44ac2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mutex ID identifies the mutex (pointer to a mutex control block). <a href="#a3263c1ad9fd79b84f908d65e8da44ac2">More...</a><br/></td></tr>
+<tr class="separator:a3263c1ad9fd79b84f908d65e8da44ac2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa8968896c84094aa973683c84fa06f84"><td class="memItemLeft" align="right" valign="top">typedef struct os_semaphore_cb *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmsis__os_8h.html#aa8968896c84094aa973683c84fa06f84">osSemaphoreId</a></td></tr>
+<tr class="memdesc:aa8968896c84094aa973683c84fa06f84"><td class="mdescLeft">&#160;</td><td class="mdescRight">Semaphore ID identifies the semaphore (pointer to a semaphore control block). <a href="#aa8968896c84094aa973683c84fa06f84">More...</a><br/></td></tr>
+<tr class="separator:aa8968896c84094aa973683c84fa06f84"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a08d2e20fd9bbd96220fe068d420f3686"><td class="memItemLeft" align="right" valign="top">typedef struct os_pool_cb *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686">osPoolId</a></td></tr>
+<tr class="memdesc:a08d2e20fd9bbd96220fe068d420f3686"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pool ID identifies the memory pool (pointer to a memory pool control block). <a href="#a08d2e20fd9bbd96220fe068d420f3686">More...</a><br/></td></tr>
+<tr class="separator:a08d2e20fd9bbd96220fe068d420f3686"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad9ec70c32c6c521970636b521e12d17f"><td class="memItemLeft" align="right" valign="top">typedef struct os_messageQ_cb *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmsis__os_8h.html#ad9ec70c32c6c521970636b521e12d17f">osMessageQId</a></td></tr>
+<tr class="memdesc:ad9ec70c32c6c521970636b521e12d17f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Message ID identifies the message queue (pointer to a message queue control block). <a href="#ad9ec70c32c6c521970636b521e12d17f">More...</a><br/></td></tr>
+<tr class="separator:ad9ec70c32c6c521970636b521e12d17f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1dac049fb7725a8af8b26c71cbb373b5"><td class="memItemLeft" align="right" valign="top">typedef struct os_mailQ_cb *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">osMailQId</a></td></tr>
+<tr class="memdesc:a1dac049fb7725a8af8b26c71cbb373b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mail ID identifies the mail queue (pointer to a mail queue control block). <a href="#a1dac049fb7725a8af8b26c71cbb373b5">More...</a><br/></td></tr>
+<tr class="separator:a1dac049fb7725a8af8b26c71cbb373b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga7f2b42f1983b9107775ec2a1c69a849a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a">osPriority</a> { <br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa549e79a43ff4f8b2b31afb613f5caa81">osPriorityIdle</a> = -3,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa61cb822239ac8f66dfbdc7291598a3d4">osPriorityLow</a> = -2,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa193b650117c209b4a203954542bcc3e6">osPriorityBelowNormal</a> = -1,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1">osPriorityNormal</a> = 0,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa17b36cd9cd38652c2bc6d4803990674b">osPriorityAboveNormal</a> = +1,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa914433934143a9ba767e59577c56e6c2">osPriorityHigh</a> = +2,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa1485dec3702434a1ec3cb74c7a17a4af">osPriorityRealtime</a> = +3,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aae35f5e2f9c64ad346822521b643bdea4">osPriorityError</a> = 0x84
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga7f2b42f1983b9107775ec2a1c69a849a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Priority used for thread control. <a href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a">More...</a><br/></td></tr>
+<tr class="separator:ga7f2b42f1983b9107775ec2a1c69a849a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae2e091fefc4c767117727bd5aba4d99e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmsis__os_8h.html#ae2e091fefc4c767117727bd5aba4d99e">osStatus</a> { <br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f">osOK</a> = 0,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea5df7e9643aa8a2f5f3a6f6ec59758518">osEventSignal</a> = 0x08,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ead604f3673359dd4ac643b16dc5a2c342">osEventMessage</a> = 0x10,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea15b12e42b42b53f35fb8a2724ad02926">osEventMail</a> = 0x20,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea78f477732375c0e1fca814e369618177">osEventTimeout</a> = 0x40,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eac24adca6a5d072c9f01c32178ba0d109">osErrorParameter</a> = 0x80,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea8fc5801e8b0482bdf22ad63a77f0155d">osErrorResource</a> = 0x81,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea314d24a49003f09459035db0dd7c9467">osErrorTimeoutResource</a> = 0xC1,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea21635bdc492d3094fe83027fa4a30e2f">osErrorISR</a> = 0x82,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eaf6552310a817452aedfcd453f2805d65">osErrorISRRecursive</a> = 0x83,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eab7dda0ef504817659334cbfd650ae56f">osErrorPriority</a> = 0x84,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eaf1fac0240218e51eb30a13da2f8aae81">osErrorNoMemory</a> = 0x85,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea4672c8a0c0f6bb1d7981da4602e8e9ee">osErrorValue</a> = 0x86,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea5fde24ff588ec5ab9cb8314bade26fbc">osErrorOS</a> = 0xFF,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eac7a77f5fe18a15a357790c36a4aca1b1">os_status_reserved</a> = 0x7FFFFFFF
+<br/>
+ }</td></tr>
+<tr class="memdesc:ae2e091fefc4c767117727bd5aba4d99e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Status code values returned by CMSIS-RTOS functions. <a href="cmsis__os_8h.html#ae2e091fefc4c767117727bd5aba4d99e">More...</a><br/></td></tr>
+<tr class="separator:ae2e091fefc4c767117727bd5aba4d99e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:adac860eb9e1b4b0619271e6595ed83d9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmsis__os_8h.html#adac860eb9e1b4b0619271e6595ed83d9">os_timer_type</a> { <br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ad21712f8df5f97069c82dc9eec37b951">osTimerOnce</a> = 0,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788">osTimerPeriodic</a> = 1
+<br/>
+ }</td></tr>
+<tr class="memdesc:adac860eb9e1b4b0619271e6595ed83d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Timer type value for the timer definition. <a href="cmsis__os_8h.html#adac860eb9e1b4b0619271e6595ed83d9">More...</a><br/></td></tr>
+<tr class="separator:adac860eb9e1b4b0619271e6595ed83d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga53d078a801022e202e8115c083ece68e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e">osKernelInitialize</a> (void)</td></tr>
+<tr class="memdesc:ga53d078a801022e202e8115c083ece68e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the RTOS Kernel for creating objects. <a href="group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e">More...</a><br/></td></tr>
+<tr class="separator:ga53d078a801022e202e8115c083ece68e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaab668ffd2ea76bb0a77ab0ab385eaef2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2">osKernelStart</a> (void)</td></tr>
+<tr class="memdesc:gaab668ffd2ea76bb0a77ab0ab385eaef2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start the RTOS Kernel. <a href="group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2">More...</a><br/></td></tr>
+<tr class="separator:gaab668ffd2ea76bb0a77ab0ab385eaef2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3b571de44cd3094c643247a7397f86b5"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga3b571de44cd3094c643247a7397f86b5">osKernelRunning</a> (void)</td></tr>
+<tr class="memdesc:ga3b571de44cd3094c643247a7397f86b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the RTOS kernel is already started. <a href="group__CMSIS__RTOS__KernelCtrl.html#ga3b571de44cd3094c643247a7397f86b5">More...</a><br/></td></tr>
+<tr class="separator:ga3b571de44cd3094c643247a7397f86b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad0262e4688e95d1e9038afd9bcc16001"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gad0262e4688e95d1e9038afd9bcc16001">osKernelSysTick</a> (void)</td></tr>
+<tr class="memdesc:gad0262e4688e95d1e9038afd9bcc16001"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the RTOS kernel system timer counter. <a href="group__CMSIS__RTOS__KernelCtrl.html#gad0262e4688e95d1e9038afd9bcc16001">More...</a><br/></td></tr>
+<tr class="separator:gad0262e4688e95d1e9038afd9bcc16001"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac59b5713cb083702dce759c73fd90dff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> (const <a class="el" href="cmsis__os_8h.html#structosThreadDef__t">osThreadDef_t</a> *thread_def, void *argument)</td></tr>
+<tr class="memdesc:gac59b5713cb083702dce759c73fd90dff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a thread and add it to Active Threads and set it to state READY. <a href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">More...</a><br/></td></tr>
+<tr class="separator:gac59b5713cb083702dce759c73fd90dff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab1df2a28925862ef8f9cf4e1c995c5a7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7">osThreadGetId</a> (void)</td></tr>
+<tr class="memdesc:gab1df2a28925862ef8f9cf4e1c995c5a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the thread ID of the current running thread. <a href="group__CMSIS__RTOS__ThreadMgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7">More...</a><br/></td></tr>
+<tr class="separator:gab1df2a28925862ef8f9cf4e1c995c5a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaea135bb90eb853eff39e0800b91bbeab"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaea135bb90eb853eff39e0800b91bbeab">osThreadTerminate</a> (<a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> thread_id)</td></tr>
+<tr class="memdesc:gaea135bb90eb853eff39e0800b91bbeab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Terminate execution of a thread and remove it from Active Threads. <a href="group__CMSIS__RTOS__ThreadMgmt.html#gaea135bb90eb853eff39e0800b91bbeab">More...</a><br/></td></tr>
+<tr class="separator:gaea135bb90eb853eff39e0800b91bbeab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf13a667493c5d629a90c13e113b99233"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf13a667493c5d629a90c13e113b99233">osThreadYield</a> (void)</td></tr>
+<tr class="memdesc:gaf13a667493c5d629a90c13e113b99233"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pass control to next thread that is in state <b>READY</b>. <a href="group__CMSIS__RTOS__ThreadMgmt.html#gaf13a667493c5d629a90c13e113b99233">More...</a><br/></td></tr>
+<tr class="separator:gaf13a667493c5d629a90c13e113b99233"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0dfb90ccf1f6e4b54b9251b12d1cbc8b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga0dfb90ccf1f6e4b54b9251b12d1cbc8b">osThreadSetPriority</a> (<a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> thread_id, <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a">osPriority</a> priority)</td></tr>
+<tr class="memdesc:ga0dfb90ccf1f6e4b54b9251b12d1cbc8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Change priority of an active thread. <a href="group__CMSIS__RTOS__ThreadMgmt.html#ga0dfb90ccf1f6e4b54b9251b12d1cbc8b">More...</a><br/></td></tr>
+<tr class="separator:ga0dfb90ccf1f6e4b54b9251b12d1cbc8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4299d838978bc2aae5e4350754e6a4e9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a">osPriority</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga4299d838978bc2aae5e4350754e6a4e9">osThreadGetPriority</a> (<a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> thread_id)</td></tr>
+<tr class="memdesc:ga4299d838978bc2aae5e4350754e6a4e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get current priority of an active thread. <a href="group__CMSIS__RTOS__ThreadMgmt.html#ga4299d838978bc2aae5e4350754e6a4e9">More...</a><br/></td></tr>
+<tr class="separator:ga4299d838978bc2aae5e4350754e6a4e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga02e19d5e723bfb06ba9324d625162255"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Wait.html#ga02e19d5e723bfb06ba9324d625162255">osDelay</a> (uint32_t millisec)</td></tr>
+<tr class="memdesc:ga02e19d5e723bfb06ba9324d625162255"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait for Timeout (Time Delay). <a href="group__CMSIS__RTOS__Wait.html#ga02e19d5e723bfb06ba9324d625162255">More...</a><br/></td></tr>
+<tr class="separator:ga02e19d5e723bfb06ba9324d625162255"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8470c8aaedfde524a44e22e5b2328285"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Wait.html#ga8470c8aaedfde524a44e22e5b2328285">osWait</a> (uint32_t millisec)</td></tr>
+<tr class="memdesc:ga8470c8aaedfde524a44e22e5b2328285"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait for Signal, Message, Mail, or Timeout. <a href="group__CMSIS__RTOS__Wait.html#ga8470c8aaedfde524a44e22e5b2328285">More...</a><br/></td></tr>
+<tr class="separator:ga8470c8aaedfde524a44e22e5b2328285"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaedd312bfdca04e0b8162b666e09a1ae6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7">osTimerId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6">osTimerCreate</a> (const <a class="el" href="cmsis__os_8h.html#structosTimerDef__t">osTimerDef_t</a> *timer_def, <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9">os_timer_type</a> type, void *argument)</td></tr>
+<tr class="memdesc:gaedd312bfdca04e0b8162b666e09a1ae6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a timer. <a href="group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6">More...</a><br/></td></tr>
+<tr class="separator:gaedd312bfdca04e0b8162b666e09a1ae6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga27a797a401b068e2644d1125f22a07ca"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca">osTimerStart</a> (<a class="el" href="cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7">osTimerId</a> timer_id, uint32_t millisec)</td></tr>
+<tr class="memdesc:ga27a797a401b068e2644d1125f22a07ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start or restart a timer. <a href="group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca">More...</a><br/></td></tr>
+<tr class="separator:ga27a797a401b068e2644d1125f22a07ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga58f36b121a812936435cacc6e1e0e091"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga58f36b121a812936435cacc6e1e0e091">osTimerStop</a> (<a class="el" href="cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7">osTimerId</a> timer_id)</td></tr>
+<tr class="memdesc:ga58f36b121a812936435cacc6e1e0e091"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop the timer. <a href="group__CMSIS__RTOS__TimerMgmt.html#ga58f36b121a812936435cacc6e1e0e091">More...</a><br/></td></tr>
+<tr class="separator:ga58f36b121a812936435cacc6e1e0e091"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga746b8043d906849bd65e3900fcb483cf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga746b8043d906849bd65e3900fcb483cf">osTimerDelete</a> (<a class="el" href="cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7">osTimerId</a> timer_id)</td></tr>
+<tr class="memdesc:ga746b8043d906849bd65e3900fcb483cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a timer that was created by <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6">osTimerCreate</a>. <a href="group__CMSIS__RTOS__TimerMgmt.html#ga746b8043d906849bd65e3900fcb483cf">More...</a><br/></td></tr>
+<tr class="separator:ga746b8043d906849bd65e3900fcb483cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3de2730654589d6c3559c4b9e2825553"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga3de2730654589d6c3559c4b9e2825553">osSignalSet</a> (<a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> thread_id, int32_t signals)</td></tr>
+<tr class="memdesc:ga3de2730654589d6c3559c4b9e2825553"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the specified Signal Flags of an active thread. <a href="group__CMSIS__RTOS__SignalMgmt.html#ga3de2730654589d6c3559c4b9e2825553">More...</a><br/></td></tr>
+<tr class="separator:ga3de2730654589d6c3559c4b9e2825553"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga87283a6ebc31ce9ed42baf3ea7e4eab6"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga87283a6ebc31ce9ed42baf3ea7e4eab6">osSignalClear</a> (<a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> thread_id, int32_t signals)</td></tr>
+<tr class="memdesc:ga87283a6ebc31ce9ed42baf3ea7e4eab6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the specified Signal Flags of an active thread. <a href="group__CMSIS__RTOS__SignalMgmt.html#ga87283a6ebc31ce9ed42baf3ea7e4eab6">More...</a><br/></td></tr>
+<tr class="separator:ga87283a6ebc31ce9ed42baf3ea7e4eab6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga38860acda96df47da6923348d96fc4c9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga38860acda96df47da6923348d96fc4c9">osSignalWait</a> (int32_t signals, uint32_t millisec)</td></tr>
+<tr class="memdesc:ga38860acda96df47da6923348d96fc4c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait for one or more Signal Flags to become signaled for the current <b>RUNNING</b> thread. <a href="group__CMSIS__RTOS__SignalMgmt.html#ga38860acda96df47da6923348d96fc4c9">More...</a><br/></td></tr>
+<tr class="separator:ga38860acda96df47da6923348d96fc4c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5c9de56e717016e39e788064e9a291cc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">osMutexId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga5c9de56e717016e39e788064e9a291cc">osMutexCreate</a> (const <a class="el" href="cmsis__os_8h.html#structosMutexDef__t">osMutexDef_t</a> *mutex_def)</td></tr>
+<tr class="memdesc:ga5c9de56e717016e39e788064e9a291cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create and Initialize a Mutex object. <a href="group__CMSIS__RTOS__MutexMgmt.html#ga5c9de56e717016e39e788064e9a291cc">More...</a><br/></td></tr>
+<tr class="separator:ga5c9de56e717016e39e788064e9a291cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5e1752b73f573ee015dbd9ef1edaba13"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga5e1752b73f573ee015dbd9ef1edaba13">osMutexWait</a> (<a class="el" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">osMutexId</a> mutex_id, uint32_t millisec)</td></tr>
+<tr class="memdesc:ga5e1752b73f573ee015dbd9ef1edaba13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait until a Mutex becomes available. <a href="group__CMSIS__RTOS__MutexMgmt.html#ga5e1752b73f573ee015dbd9ef1edaba13">More...</a><br/></td></tr>
+<tr class="separator:ga5e1752b73f573ee015dbd9ef1edaba13"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga006e4744d741e8e132c3d5bbc295afe1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga006e4744d741e8e132c3d5bbc295afe1">osMutexRelease</a> (<a class="el" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">osMutexId</a> mutex_id)</td></tr>
+<tr class="memdesc:ga006e4744d741e8e132c3d5bbc295afe1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release a Mutex that was obtained by <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga5e1752b73f573ee015dbd9ef1edaba13">osMutexWait</a>. <a href="group__CMSIS__RTOS__MutexMgmt.html#ga006e4744d741e8e132c3d5bbc295afe1">More...</a><br/></td></tr>
+<tr class="separator:ga006e4744d741e8e132c3d5bbc295afe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac27e24135185d51d18f3dabc20910219"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#gac27e24135185d51d18f3dabc20910219">osMutexDelete</a> (<a class="el" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">osMutexId</a> mutex_id)</td></tr>
+<tr class="memdesc:gac27e24135185d51d18f3dabc20910219"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a Mutex that was created by <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga5c9de56e717016e39e788064e9a291cc">osMutexCreate</a>. <a href="group__CMSIS__RTOS__MutexMgmt.html#gac27e24135185d51d18f3dabc20910219">More...</a><br/></td></tr>
+<tr class="separator:gac27e24135185d51d18f3dabc20910219"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga97381e8e55cd47cec390bf57c96d6edb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cmsis__os_8h.html#aa8968896c84094aa973683c84fa06f84">osSemaphoreId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb">osSemaphoreCreate</a> (const <a class="el" href="cmsis__os_8h.html#structosSemaphoreDef__t">osSemaphoreDef_t</a> *semaphore_def, int32_t count)</td></tr>
+<tr class="memdesc:ga97381e8e55cd47cec390bf57c96d6edb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create and Initialize a Semaphore object used for managing resources. <a href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb">More...</a><br/></td></tr>
+<tr class="separator:ga97381e8e55cd47cec390bf57c96d6edb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacc15b0fc8ce1167fe43da33042e62098"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gacc15b0fc8ce1167fe43da33042e62098">osSemaphoreWait</a> (<a class="el" href="cmsis__os_8h.html#aa8968896c84094aa973683c84fa06f84">osSemaphoreId</a> semaphore_id, uint32_t millisec)</td></tr>
+<tr class="memdesc:gacc15b0fc8ce1167fe43da33042e62098"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait until a Semaphore token becomes available. <a href="group__CMSIS__RTOS__SemaphoreMgmt.html#gacc15b0fc8ce1167fe43da33042e62098">More...</a><br/></td></tr>
+<tr class="separator:gacc15b0fc8ce1167fe43da33042e62098"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab108914997c49e14d8ff1ae0d1988ca0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gab108914997c49e14d8ff1ae0d1988ca0">osSemaphoreRelease</a> (<a class="el" href="cmsis__os_8h.html#aa8968896c84094aa973683c84fa06f84">osSemaphoreId</a> semaphore_id)</td></tr>
+<tr class="memdesc:gab108914997c49e14d8ff1ae0d1988ca0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release a Semaphore token. <a href="group__CMSIS__RTOS__SemaphoreMgmt.html#gab108914997c49e14d8ff1ae0d1988ca0">More...</a><br/></td></tr>
+<tr class="separator:gab108914997c49e14d8ff1ae0d1988ca0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabae2801ac2c096f6e8c69a264908f595"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gabae2801ac2c096f6e8c69a264908f595">osSemaphoreDelete</a> (<a class="el" href="cmsis__os_8h.html#aa8968896c84094aa973683c84fa06f84">osSemaphoreId</a> semaphore_id)</td></tr>
+<tr class="memdesc:gabae2801ac2c096f6e8c69a264908f595"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a Semaphore that was created by <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb">osSemaphoreCreate</a>. <a href="group__CMSIS__RTOS__SemaphoreMgmt.html#gabae2801ac2c096f6e8c69a264908f595">More...</a><br/></td></tr>
+<tr class="separator:gabae2801ac2c096f6e8c69a264908f595"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga34af5c4f4ab38f4138ea7f1f9ece3a1a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686">osPoolId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a">osPoolCreate</a> (const <a class="el" href="cmsis__os_8h.html#structosPoolDef__t">osPoolDef_t</a> *pool_def)</td></tr>
+<tr class="memdesc:ga34af5c4f4ab38f4138ea7f1f9ece3a1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create and Initialize a memory pool. <a href="group__CMSIS__RTOS__PoolMgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a">More...</a><br/></td></tr>
+<tr class="separator:ga34af5c4f4ab38f4138ea7f1f9ece3a1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa0b2994f1a866c19e0d11e6e0d44f543"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#gaa0b2994f1a866c19e0d11e6e0d44f543">osPoolAlloc</a> (<a class="el" href="cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686">osPoolId</a> pool_id)</td></tr>
+<tr class="memdesc:gaa0b2994f1a866c19e0d11e6e0d44f543"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a memory block from a memory pool. <a href="group__CMSIS__RTOS__PoolMgmt.html#gaa0b2994f1a866c19e0d11e6e0d44f543">More...</a><br/></td></tr>
+<tr class="separator:gaa0b2994f1a866c19e0d11e6e0d44f543"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9f129fcad4730fbd1048ad4fa262f36a"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga9f129fcad4730fbd1048ad4fa262f36a">osPoolCAlloc</a> (<a class="el" href="cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686">osPoolId</a> pool_id)</td></tr>
+<tr class="memdesc:ga9f129fcad4730fbd1048ad4fa262f36a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a memory block from a memory pool and set memory block to zero. <a href="group__CMSIS__RTOS__PoolMgmt.html#ga9f129fcad4730fbd1048ad4fa262f36a">More...</a><br/></td></tr>
+<tr class="separator:ga9f129fcad4730fbd1048ad4fa262f36a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4a861e9c469c9d0daf5721bf174f8e54"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga4a861e9c469c9d0daf5721bf174f8e54">osPoolFree</a> (<a class="el" href="cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686">osPoolId</a> pool_id, void *block)</td></tr>
+<tr class="memdesc:ga4a861e9c469c9d0daf5721bf174f8e54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an allocated memory block back to a specific memory pool. <a href="group__CMSIS__RTOS__PoolMgmt.html#ga4a861e9c469c9d0daf5721bf174f8e54">More...</a><br/></td></tr>
+<tr class="separator:ga4a861e9c469c9d0daf5721bf174f8e54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf3b9345cf426304d46565152bc26fb78"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cmsis__os_8h.html#ad9ec70c32c6c521970636b521e12d17f">osMessageQId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Message.html#gaf3b9345cf426304d46565152bc26fb78">osMessageCreate</a> (const <a class="el" href="cmsis__os_8h.html#structosMessageQDef__t">osMessageQDef_t</a> *queue_def, <a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> thread_id)</td></tr>
+<tr class="memdesc:gaf3b9345cf426304d46565152bc26fb78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create and Initialize a Message Queue. <a href="group__CMSIS__RTOS__Message.html#gaf3b9345cf426304d46565152bc26fb78">More...</a><br/></td></tr>
+<tr class="separator:gaf3b9345cf426304d46565152bc26fb78"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac0dcf462fc92de8ffaba6cc004514a6d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Message.html#gac0dcf462fc92de8ffaba6cc004514a6d">osMessagePut</a> (<a class="el" href="cmsis__os_8h.html#ad9ec70c32c6c521970636b521e12d17f">osMessageQId</a> queue_id, uint32_t info, uint32_t millisec)</td></tr>
+<tr class="memdesc:gac0dcf462fc92de8ffaba6cc004514a6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Put a Message to a Queue. <a href="group__CMSIS__RTOS__Message.html#gac0dcf462fc92de8ffaba6cc004514a6d">More...</a><br/></td></tr>
+<tr class="separator:gac0dcf462fc92de8ffaba6cc004514a6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6c6892b8f2296cca6becd57ca2d7e1ae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Message.html#ga6c6892b8f2296cca6becd57ca2d7e1ae">osMessageGet</a> (<a class="el" href="cmsis__os_8h.html#ad9ec70c32c6c521970636b521e12d17f">osMessageQId</a> queue_id, uint32_t millisec)</td></tr>
+<tr class="memdesc:ga6c6892b8f2296cca6becd57ca2d7e1ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a Message or Wait for a Message from a Queue. <a href="group__CMSIS__RTOS__Message.html#ga6c6892b8f2296cca6becd57ca2d7e1ae">More...</a><br/></td></tr>
+<tr class="separator:ga6c6892b8f2296cca6becd57ca2d7e1ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa177e7fe5820dd70d8c9e46ded131174"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">osMailQId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Mail.html#gaa177e7fe5820dd70d8c9e46ded131174">osMailCreate</a> (const <a class="el" href="cmsis__os_8h.html#structosMailQDef__t">osMailQDef_t</a> *queue_def, <a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> thread_id)</td></tr>
+<tr class="memdesc:gaa177e7fe5820dd70d8c9e46ded131174"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create and Initialize mail queue. <a href="group__CMSIS__RTOS__Mail.html#gaa177e7fe5820dd70d8c9e46ded131174">More...</a><br/></td></tr>
+<tr class="separator:gaa177e7fe5820dd70d8c9e46ded131174"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadf5ce811bd6a56e617e902a1db6c2194"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Mail.html#gadf5ce811bd6a56e617e902a1db6c2194">osMailAlloc</a> (<a class="el" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">osMailQId</a> queue_id, uint32_t millisec)</td></tr>
+<tr class="memdesc:gadf5ce811bd6a56e617e902a1db6c2194"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a memory block from a mail. <a href="group__CMSIS__RTOS__Mail.html#gadf5ce811bd6a56e617e902a1db6c2194">More...</a><br/></td></tr>
+<tr class="separator:gadf5ce811bd6a56e617e902a1db6c2194"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8fde74f6fe5b9e88f75cc5eb8f2124fd"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Mail.html#ga8fde74f6fe5b9e88f75cc5eb8f2124fd">osMailCAlloc</a> (<a class="el" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">osMailQId</a> queue_id, uint32_t millisec)</td></tr>
+<tr class="memdesc:ga8fde74f6fe5b9e88f75cc5eb8f2124fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a memory block from a mail and set memory block to zero. <a href="group__CMSIS__RTOS__Mail.html#ga8fde74f6fe5b9e88f75cc5eb8f2124fd">More...</a><br/></td></tr>
+<tr class="separator:ga8fde74f6fe5b9e88f75cc5eb8f2124fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga485ef6f81854ebda8ffbce4832181e02"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Mail.html#ga485ef6f81854ebda8ffbce4832181e02">osMailPut</a> (<a class="el" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">osMailQId</a> queue_id, void *mail)</td></tr>
+<tr class="memdesc:ga485ef6f81854ebda8ffbce4832181e02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Put a mail to a queue. <a href="group__CMSIS__RTOS__Mail.html#ga485ef6f81854ebda8ffbce4832181e02">More...</a><br/></td></tr>
+<tr class="separator:ga485ef6f81854ebda8ffbce4832181e02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac6ad7e6e7d6c4a80e60da22c57a42ccd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Mail.html#gac6ad7e6e7d6c4a80e60da22c57a42ccd">osMailGet</a> (<a class="el" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">osMailQId</a> queue_id, uint32_t millisec)</td></tr>
+<tr class="memdesc:gac6ad7e6e7d6c4a80e60da22c57a42ccd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a mail from a queue. <a href="group__CMSIS__RTOS__Mail.html#gac6ad7e6e7d6c4a80e60da22c57a42ccd">More...</a><br/></td></tr>
+<tr class="separator:gac6ad7e6e7d6c4a80e60da22c57a42ccd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga27c1060cf21393f96b4fd1ed1c0167cc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Mail.html#ga27c1060cf21393f96b4fd1ed1c0167cc">osMailFree</a> (<a class="el" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">osMailQId</a> queue_id, void *mail)</td></tr>
+<tr class="memdesc:ga27c1060cf21393f96b4fd1ed1c0167cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a memory block from a mail. <a href="group__CMSIS__RTOS__Mail.html#ga27c1060cf21393f96b4fd1ed1c0167cc">More...</a><br/></td></tr>
+<tr class="separator:ga27c1060cf21393f96b4fd1ed1c0167cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<hr/><h2 class="groupheader">Data Structure Documentation</h2>
+<a name="structosThreadDef__t" id="structosThreadDef__t"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct osThreadDef_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<div class="textblock"><dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: <b>os_thread_def</b> is implementation specific in every CMSIS-RTOS. </dd></dl>
+</div><table class="fieldtable">
+<tr><th colspan="3">Data Fields</th></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="aa4c4115851a098c0b87358ab6c025603"></a>uint32_t</td>
+<td class="fieldname">
+instances</td>
+<td class="fielddoc">
+maximum number of instances of that thread function </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="ad3c9624ee214329fb34e71f544a6933e"></a><a class="el" href="cmsis__os_8h.html#aee631e5ea1b700fc35695cc7bc574cf7">os_pthread</a></td>
+<td class="fieldname">
+pthread</td>
+<td class="fielddoc">
+start address of thread function </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a950b7f81ad4711959517296e63bc79d1"></a>uint32_t</td>
+<td class="fieldname">
+stacksize</td>
+<td class="fielddoc">
+stack size requirements in bytes; 0 is default stack size </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a15da8f23c6fe684b70a73646ada685e7"></a><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a">osPriority</a></td>
+<td class="fieldname">
+tpriority</td>
+<td class="fielddoc">
+initial thread priority </td></tr>
+</table>
+
+</div>
+</div>
+<a name="structosTimerDef__t" id="structosTimerDef__t"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct osTimerDef_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<div class="textblock"><dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: <b>os_timer_def</b> is implementation specific in every CMSIS-RTOS. </dd></dl>
+</div><table class="fieldtable">
+<tr><th colspan="3">Data Fields</th></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a15773df83aba93f8e61f3737af5fae47"></a><a class="el" href="cmsis__os_8h.html#aa2d85e49bde9f6951ff3545cd323f065">os_ptimer</a></td>
+<td class="fieldname">
+ptimer</td>
+<td class="fielddoc">
+start address of a timer function </td></tr>
+</table>
+
+</div>
+</div>
+<a name="structosMutexDef__t" id="structosMutexDef__t"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct osMutexDef_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<div class="textblock"><dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: <b>os_mutex_def</b> is implementation specific in every CMSIS-RTOS. </dd></dl>
+</div><table class="fieldtable">
+<tr><th colspan="3">Data Fields</th></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a44b7a3baf02bac7ad707e8f2f5eca1ca"></a>uint32_t</td>
+<td class="fieldname">
+dummy</td>
+<td class="fielddoc">
+dummy value. </td></tr>
+</table>
+
+</div>
+</div>
+<a name="structosSemaphoreDef__t" id="structosSemaphoreDef__t"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct osSemaphoreDef_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<div class="textblock"><dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: <b>os_semaphore_def</b> is implementation specific in every CMSIS-RTOS. </dd></dl>
+</div><table class="fieldtable">
+<tr><th colspan="3">Data Fields</th></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a44b7a3baf02bac7ad707e8f2f5eca1ca"></a>uint32_t</td>
+<td class="fieldname">
+dummy</td>
+<td class="fielddoc">
+dummy value. </td></tr>
+</table>
+
+</div>
+</div>
+<a name="structosPoolDef__t" id="structosPoolDef__t"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct osPoolDef_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<div class="textblock"><dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: <b>os_pool_def</b> is implementation specific in every CMSIS-RTOS. </dd></dl>
+</div><table class="fieldtable">
+<tr><th colspan="3">Data Fields</th></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a4c2a0c691de3365c00ecd22d8102811f"></a>uint32_t</td>
+<td class="fieldname">
+item_sz</td>
+<td class="fielddoc">
+size of an item </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a269c3935f8bc66db70bccdd02cb05e3c"></a>void *</td>
+<td class="fieldname">
+pool</td>
+<td class="fielddoc">
+pointer to memory for pool </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="ac112e786b2a234e0e45cb5bdbee53763"></a>uint32_t</td>
+<td class="fieldname">
+pool_sz</td>
+<td class="fielddoc">
+number of items (elements) in the pool </td></tr>
+</table>
+
+</div>
+</div>
+<a name="structosMessageQDef__t" id="structosMessageQDef__t"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct osMessageQDef_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<div class="textblock"><dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: <b>os_messageQ_def</b> is implementation specific in every CMSIS-RTOS. </dd></dl>
+</div><table class="fieldtable">
+<tr><th colspan="3">Data Fields</th></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a4c2a0c691de3365c00ecd22d8102811f"></a>uint32_t</td>
+<td class="fieldname">
+item_sz</td>
+<td class="fielddoc">
+size of an item </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a269c3935f8bc66db70bccdd02cb05e3c"></a>void *</td>
+<td class="fieldname">
+pool</td>
+<td class="fielddoc">
+memory array for messages </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a8a83a3a8c0aa8057b13807d2a54077e0"></a>uint32_t</td>
+<td class="fieldname">
+queue_sz</td>
+<td class="fielddoc">
+number of elements in the queue </td></tr>
+</table>
+
+</div>
+</div>
+<a name="structosMailQDef__t" id="structosMailQDef__t"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct osMailQDef_t</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<div class="textblock"><dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: <b>os_mailQ_def</b> is implementation specific in every CMSIS-RTOS. </dd></dl>
+</div><table class="fieldtable">
+<tr><th colspan="3">Data Fields</th></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a4c2a0c691de3365c00ecd22d8102811f"></a>uint32_t</td>
+<td class="fieldname">
+item_sz</td>
+<td class="fielddoc">
+size of an item </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a269c3935f8bc66db70bccdd02cb05e3c"></a>void *</td>
+<td class="fieldname">
+pool</td>
+<td class="fielddoc">
+memory array for mail </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a8a83a3a8c0aa8057b13807d2a54077e0"></a>uint32_t</td>
+<td class="fieldname">
+queue_sz</td>
+<td class="fielddoc">
+number of elements in the queue </td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="a9eb9a7a797a42e4b55eb171ecc609ddb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osWaitForever&#160;&#160;&#160;0xFFFFFFFF</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osWaitForever</b> shall be consistent in every CMSIS-RTOS. wait forever timeout value </dd></dl>
+
+</div>
+</div>
+<h2 class="groupheader">Typedef Documentation</h2>
+<a class="anchor" id="aee631e5ea1b700fc35695cc7bc574cf7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* os_pthread)(void const *argument)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>os_pthread</b> shall be consistent in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="aa2d85e49bde9f6951ff3545cd323f065"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef void(* os_ptimer)(void const *argument)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>os_ptimer</b> shall be consistent in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a1dac049fb7725a8af8b26c71cbb373b5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef struct os_mailQ_cb* <a class="el" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">osMailQId</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: <b>os_mailQ_cb</b> is implementation specific in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ad9ec70c32c6c521970636b521e12d17f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef struct os_messageQ_cb* <a class="el" href="cmsis__os_8h.html#ad9ec70c32c6c521970636b521e12d17f">osMessageQId</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: <b>os_messageQ_cb</b> is implementation specific in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a3263c1ad9fd79b84f908d65e8da44ac2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef struct os_mutex_cb* <a class="el" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">osMutexId</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: <b>os_mutex_cb</b> is implementation specific in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="a08d2e20fd9bbd96220fe068d420f3686"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef struct os_pool_cb* <a class="el" href="cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686">osPoolId</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: <b>os_pool_cb</b> is implementation specific in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="aa8968896c84094aa973683c84fa06f84"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef struct os_semaphore_cb* <a class="el" href="cmsis__os_8h.html#aa8968896c84094aa973683c84fa06f84">osSemaphoreId</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: <b>os_semaphore_cb</b> is implementation specific in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="adfeb153a84a81309e2d958268197617f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef struct os_thread_cb* <a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: <b>os_thread_cb</b> is implementation specific in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ab8530dd4273f1f5382187732e14fcaa7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">typedef struct os_timer_cb* <a class="el" href="cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7">osTimerId</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: <b>os_timer_cb</b> is implementation specific in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="adac860eb9e1b4b0619271e6595ed83d9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9">os_timer_type</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>os_timer_type</b> shall be consistent in every CMSIS-RTOS. </dd></dl>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gadac860eb9e1b4b0619271e6595ed83d9ad21712f8df5f97069c82dc9eec37b951"></a>osTimerOnce</em>&#160;</td><td class="fielddoc">
+<p>one-shot timer </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788"></a>osTimerPeriodic</em>&#160;</td><td class="fielddoc">
+<p>repeating timer </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<a class="anchor" id="ae2e091fefc4c767117727bd5aba4d99e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osStatus</b> shall be consistent in every CMSIS-RTOS. </dd></dl>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f"></a>osOK</em>&#160;</td><td class="fielddoc">
+<p>function completed; no error or event occurred. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99ea5df7e9643aa8a2f5f3a6f6ec59758518"></a>osEventSignal</em>&#160;</td><td class="fielddoc">
+<p>function completed; signal event occurred. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99ead604f3673359dd4ac643b16dc5a2c342"></a>osEventMessage</em>&#160;</td><td class="fielddoc">
+<p>function completed; message event occurred. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99ea15b12e42b42b53f35fb8a2724ad02926"></a>osEventMail</em>&#160;</td><td class="fielddoc">
+<p>function completed; mail event occurred. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99ea78f477732375c0e1fca814e369618177"></a>osEventTimeout</em>&#160;</td><td class="fielddoc">
+<p>function completed; timeout occurred. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99eac24adca6a5d072c9f01c32178ba0d109"></a>osErrorParameter</em>&#160;</td><td class="fielddoc">
+<p>parameter error: a mandatory parameter was missing or specified an incorrect object. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99ea8fc5801e8b0482bdf22ad63a77f0155d"></a>osErrorResource</em>&#160;</td><td class="fielddoc">
+<p>resource not available: a specified resource was not available. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99ea314d24a49003f09459035db0dd7c9467"></a>osErrorTimeoutResource</em>&#160;</td><td class="fielddoc">
+<p>resource not available within given time: a specified resource was not available within the timeout period. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99ea21635bdc492d3094fe83027fa4a30e2f"></a>osErrorISR</em>&#160;</td><td class="fielddoc">
+<p>not allowed in ISR context: the function cannot be called from interrupt service routines. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99eaf6552310a817452aedfcd453f2805d65"></a>osErrorISRRecursive</em>&#160;</td><td class="fielddoc">
+<p>function called multiple times from ISR with same object. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99eab7dda0ef504817659334cbfd650ae56f"></a>osErrorPriority</em>&#160;</td><td class="fielddoc">
+<p>system cannot determine priority or thread has illegal priority. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99eaf1fac0240218e51eb30a13da2f8aae81"></a>osErrorNoMemory</em>&#160;</td><td class="fielddoc">
+<p>system is out of memory: it was impossible to allocate or reserve memory for the operation. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99ea4672c8a0c0f6bb1d7981da4602e8e9ee"></a>osErrorValue</em>&#160;</td><td class="fielddoc">
+<p>value of a parameter is out of range. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99ea5fde24ff588ec5ab9cb8314bade26fbc"></a>osErrorOS</em>&#160;</td><td class="fielddoc">
+<p>unspecified RTOS error: run-time error but no other error message fits. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99eac7a77f5fe18a15a357790c36a4aca1b1"></a>os_status_reserved</em>&#160;</td><td class="fielddoc">
+<p>prevent from enum down-size compiler optimization. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_67baed4ff719a838d401a6dc7774cf41.html">RTOS</a></li><li class="navelem"><a class="el" href="dir_9afdeffb8e409a4e0df5c5bf9ab1a7d2.html">Template</a></li><li class="navelem"><a class="el" href="cmsis__os_8h.html">cmsis_os.h</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/cmsis__os_8h_structosMailQDef__t.js b/docs/RTOS/html/cmsis__os_8h_structosMailQDef__t.js
new file mode 100644
index 0000000..d77435a
--- /dev/null
+++ b/docs/RTOS/html/cmsis__os_8h_structosMailQDef__t.js
@@ -0,0 +1,6 @@
+var cmsis__os_8h_structosMailQDef__t =
+[
+ [ "item_sz", "cmsis__os_8h.html#a4c2a0c691de3365c00ecd22d8102811f", null ],
+ [ "pool", "cmsis__os_8h.html#a269c3935f8bc66db70bccdd02cb05e3c", null ],
+ [ "queue_sz", "cmsis__os_8h.html#a8a83a3a8c0aa8057b13807d2a54077e0", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/cmsis__os_8h_structosMessageQDef__t.js b/docs/RTOS/html/cmsis__os_8h_structosMessageQDef__t.js
new file mode 100644
index 0000000..e94515e
--- /dev/null
+++ b/docs/RTOS/html/cmsis__os_8h_structosMessageQDef__t.js
@@ -0,0 +1,6 @@
+var cmsis__os_8h_structosMessageQDef__t =
+[
+ [ "item_sz", "cmsis__os_8h.html#a4c2a0c691de3365c00ecd22d8102811f", null ],
+ [ "pool", "cmsis__os_8h.html#a269c3935f8bc66db70bccdd02cb05e3c", null ],
+ [ "queue_sz", "cmsis__os_8h.html#a8a83a3a8c0aa8057b13807d2a54077e0", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/cmsis__os_8h_structosMutexDef__t.js b/docs/RTOS/html/cmsis__os_8h_structosMutexDef__t.js
new file mode 100644
index 0000000..29828d5
--- /dev/null
+++ b/docs/RTOS/html/cmsis__os_8h_structosMutexDef__t.js
@@ -0,0 +1,4 @@
+var cmsis__os_8h_structosMutexDef__t =
+[
+ [ "dummy", "cmsis__os_8h.html#a44b7a3baf02bac7ad707e8f2f5eca1ca", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/cmsis__os_8h_structosPoolDef__t.js b/docs/RTOS/html/cmsis__os_8h_structosPoolDef__t.js
new file mode 100644
index 0000000..db1c662
--- /dev/null
+++ b/docs/RTOS/html/cmsis__os_8h_structosPoolDef__t.js
@@ -0,0 +1,6 @@
+var cmsis__os_8h_structosPoolDef__t =
+[
+ [ "item_sz", "cmsis__os_8h.html#a4c2a0c691de3365c00ecd22d8102811f", null ],
+ [ "pool", "cmsis__os_8h.html#a269c3935f8bc66db70bccdd02cb05e3c", null ],
+ [ "pool_sz", "cmsis__os_8h.html#ac112e786b2a234e0e45cb5bdbee53763", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/cmsis__os_8h_structosSemaphoreDef__t.js b/docs/RTOS/html/cmsis__os_8h_structosSemaphoreDef__t.js
new file mode 100644
index 0000000..4ef52a4
--- /dev/null
+++ b/docs/RTOS/html/cmsis__os_8h_structosSemaphoreDef__t.js
@@ -0,0 +1,4 @@
+var cmsis__os_8h_structosSemaphoreDef__t =
+[
+ [ "dummy", "cmsis__os_8h.html#a44b7a3baf02bac7ad707e8f2f5eca1ca", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/cmsis__os_8h_structosThreadDef__t.js b/docs/RTOS/html/cmsis__os_8h_structosThreadDef__t.js
new file mode 100644
index 0000000..806d0d7
--- /dev/null
+++ b/docs/RTOS/html/cmsis__os_8h_structosThreadDef__t.js
@@ -0,0 +1,7 @@
+var cmsis__os_8h_structosThreadDef__t =
+[
+ [ "instances", "cmsis__os_8h.html#aa4c4115851a098c0b87358ab6c025603", null ],
+ [ "pthread", "cmsis__os_8h.html#ad3c9624ee214329fb34e71f544a6933e", null ],
+ [ "stacksize", "cmsis__os_8h.html#a950b7f81ad4711959517296e63bc79d1", null ],
+ [ "tpriority", "cmsis__os_8h.html#a15da8f23c6fe684b70a73646ada685e7", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/cmsis__os_8h_structosTimerDef__t.js b/docs/RTOS/html/cmsis__os_8h_structosTimerDef__t.js
new file mode 100644
index 0000000..01d9dc2
--- /dev/null
+++ b/docs/RTOS/html/cmsis__os_8h_structosTimerDef__t.js
@@ -0,0 +1,4 @@
+var cmsis__os_8h_structosTimerDef__t =
+[
+ [ "ptimer", "cmsis__os_8h.html#a15773df83aba93f8e61f3737af5fae47", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/cmsis__os_8txt.html b/docs/RTOS/html/cmsis__os_8txt.html
new file mode 100644
index 0000000..f8c28d5
--- /dev/null
+++ b/docs/RTOS/html/cmsis__os_8txt.html
@@ -0,0 +1,175 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>cmsis_os.txt File Reference</title>
+<title>CMSIS-RTOS: cmsis_os.txt File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('cmsis__os_8txt.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">cmsis_os.txt File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:gadac860eb9e1b4b0619271e6595ed83d9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9">os_timer_type</a> { <br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ad21712f8df5f97069c82dc9eec37b951">osTimerOnce</a> = 0,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788">osTimerPeriodic</a> = 1
+<br/>
+ }</td></tr>
+<tr class="separator:gadac860eb9e1b4b0619271e6595ed83d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae2e091fefc4c767117727bd5aba4d99e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> { <br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f">osOK</a> = 0,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea5df7e9643aa8a2f5f3a6f6ec59758518">osEventSignal</a> = 0x08,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ead604f3673359dd4ac643b16dc5a2c342">osEventMessage</a> = 0x10,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea15b12e42b42b53f35fb8a2724ad02926">osEventMail</a> = 0x20,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea78f477732375c0e1fca814e369618177">osEventTimeout</a> = 0x40,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eac24adca6a5d072c9f01c32178ba0d109">osErrorParameter</a> = 0x80,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea8fc5801e8b0482bdf22ad63a77f0155d">osErrorResource</a> = 0x81,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea314d24a49003f09459035db0dd7c9467">osErrorTimeoutResource</a> = 0xC1,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea21635bdc492d3094fe83027fa4a30e2f">osErrorISR</a> = 0x82,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eaf6552310a817452aedfcd453f2805d65">osErrorISRRecursive</a> = 0x83,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eab7dda0ef504817659334cbfd650ae56f">osErrorPriority</a> = 0x84,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eaf1fac0240218e51eb30a13da2f8aae81">osErrorNoMemory</a> = 0x85,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea4672c8a0c0f6bb1d7981da4602e8e9ee">osErrorValue</a> = 0x86,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea5fde24ff588ec5ab9cb8314bade26fbc">osErrorOS</a> = 0xFF,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eac7a77f5fe18a15a357790c36a4aca1b1">os_status_reserved</a> = 0x7FFFFFFF
+<br/>
+ }</td></tr>
+<tr class="separator:gae2e091fefc4c767117727bd5aba4d99e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="cmsis__os_8txt.html">cmsis_os.txt</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/cmsis__os__rtx__extensions_8h.html b/docs/RTOS/html/cmsis__os__rtx__extensions_8h.html
new file mode 100644
index 0000000..bdf1824
--- /dev/null
+++ b/docs/RTOS/html/cmsis__os__rtx__extensions_8h.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>cmsis_os_rtx_extensions.h File Reference</title>
+<title>CMSIS-RTOS: cmsis_os_rtx_extensions.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('cmsis__os__rtx__extensions_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">cmsis_os_rtx_extensions.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga3e9c57746ccbdfe90464ad50513c569e"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__RTX__Global__Functions.html#ga3e9c57746ccbdfe90464ad50513c569e">os_suspend</a> (void)</td></tr>
+<tr class="memdesc:ga3e9c57746ccbdfe90464ad50513c569e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Suspend the RTX task scheduler. <a href="group__RTX__Global__Functions.html#ga3e9c57746ccbdfe90464ad50513c569e">More...</a><br/></td></tr>
+<tr class="separator:ga3e9c57746ccbdfe90464ad50513c569e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1b85a217d43e6b971ffcf24f8aae1c33"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__RTX__Global__Functions.html#ga1b85a217d43e6b971ffcf24f8aae1c33">os_resume</a> (uint32_t sleep_time)</td></tr>
+<tr class="memdesc:ga1b85a217d43e6b971ffcf24f8aae1c33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resume the RTX task scheduler. <a href="group__RTX__Global__Functions.html#ga1b85a217d43e6b971ffcf24f8aae1c33">More...</a><br/></td></tr>
+<tr class="separator:ga1b85a217d43e6b971ffcf24f8aae1c33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gafb4dc4d3dff8343a393726d2860282e4"><td class="memItemLeft" align="right" valign="top">__NO_RETURN void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__RTX__Global__Functions.html#gafb4dc4d3dff8343a393726d2860282e4">os_idle_demon</a> (void)</td></tr>
+<tr class="memdesc:gafb4dc4d3dff8343a393726d2860282e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">OS idle demon (running when no other thread is ready to run). <a href="group__RTX__Global__Functions.html#gafb4dc4d3dff8343a393726d2860282e4">More...</a><br/></td></tr>
+<tr class="separator:gafb4dc4d3dff8343a393726d2860282e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga651ae76b3acf45f80bf0e0487b51d6e6"><td class="memItemLeft" align="right" valign="top">__NO_RETURN void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__RTX__Global__Functions.html#ga651ae76b3acf45f80bf0e0487b51d6e6">os_error</a> (uint32_t error_code)</td></tr>
+<tr class="memdesc:ga651ae76b3acf45f80bf0e0487b51d6e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">OS error callback (called when a runtime error is detected). <a href="group__RTX__Global__Functions.html#ga651ae76b3acf45f80bf0e0487b51d6e6">More...</a><br/></td></tr>
+<tr class="separator:ga651ae76b3acf45f80bf0e0487b51d6e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_b0448b4e45a55bca3a46fdbabd848ed7.html">src</a></li><li class="navelem"><a class="el" href="dir_c0ad159d7acfc6a66622c7bec0ee8a21.html">RTX</a></li><li class="navelem"><a class="el" href="cmsis__os__rtx__extensions_8h.html">cmsis_os_rtx_extensions.h</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/config_wizard.png b/docs/RTOS/html/config_wizard.png
new file mode 100644
index 0000000..10c7e1d
--- /dev/null
+++ b/docs/RTOS/html/config_wizard.png
Binary files differ
diff --git a/docs/RTOS/html/configure.html b/docs/RTOS/html/configure.html
new file mode 100644
index 0000000..2e2d556
--- /dev/null
+++ b/docs/RTOS/html/configure.html
@@ -0,0 +1,146 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Configure RTX</title>
+<title>CMSIS-RTOS: Configure RTX</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('configure.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Configure RTX </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The file <a class="el" href="dirstructfiles.html#RTX_Conf_CM">RTX_Conf_CM.c</a> is used to define the configuration parameters of CMSIS-RTOS RTX. This file must be part of every project that is using the CMSIS-RTOS RTX kernel.</p>
+<p>The configuration file uses <b>Configuration Wizard Annotations</b>. Refer to <b>Pack - Configuration Wizard Annotations</b> for details. Depending on the development tool that is used, this might lead to a more user friendly graphical representation of the settings. The following is a screenshot of the same configuration file using µVision's Configuration Wizard view:</p>
+<div class="image">
+<img src="config_wizard.png" alt="config_wizard.png"/>
+<div class="caption">
+RTX_Conf_CM.c in Configuration Wizard View</div></div>
+<p> The configuration options are explained on these pages:</p>
+<ul>
+<li><a class="el" href="threadConfig.html">Thread Configuration</a></li>
+<li><a class="el" href="timerTick.html">RTX Kernel Tick Timer Configuration</a></li>
+<li><a class="el" href="systemConfig.html">System Configuration</a></li>
+</ul>
+<p>Other configuration options not covered by the Configuration Wizard are explained here:</p>
+<ul>
+<li><a class="el" href="lowPower.html">Configuration for Low-Power Modes</a></li>
+<li><a class="el" href="svcFunctions.html">SVC Functions</a> </li>
+</ul>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="index.html">index</a></li><li class="navelem"><a class="el" href="rtxImplementation.html">RTX Implementation</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/configure.js b/docs/RTOS/html/configure.js
new file mode 100644
index 0000000..6b347d7
--- /dev/null
+++ b/docs/RTOS/html/configure.js
@@ -0,0 +1,21 @@
+var configure =
+[
+ [ "Thread Configuration", "threadConfig.html", [
+ [ "Configuration of Thread count and Stack Space", "threadConfig.html#stackConfig", null ],
+ [ "Stack Overflow Checking", "threadConfig.html#stackCheck", null ],
+ [ "Stack Usage Watermark", "threadConfig.html#stackUsage", null ],
+ [ "Processor Mode for Thread Execution", "threadConfig.html#processorMode", null ]
+ ] ],
+ [ "RTX Kernel Tick Timer Configuration", "timerTick.html", [
+ [ "Usage of an Alternate Timer as RTX Kernel Timer", "timerTick.html#AltTimer", null ]
+ ] ],
+ [ "System Configuration", "systemConfig.html", [
+ [ "Settings for Round-Robin Thread Switching", "systemConfig.html#RoundRobin", null ],
+ [ "User Timer Management", "systemConfig.html#UserTimer", null ],
+ [ "ISR FIFO Queue size", "systemConfig.html#ISRFIFO", null ]
+ ] ],
+ [ "Configuration for Low-Power Modes", "lowPower.html", [
+ [ "Tick-less operation", "lowPower.html#TickLess", null ]
+ ] ],
+ [ "SVC Functions", "svcFunctions.html", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/creating_RTX_LIB.html b/docs/RTOS/html/creating_RTX_LIB.html
new file mode 100644
index 0000000..c54c90e
--- /dev/null
+++ b/docs/RTOS/html/creating_RTX_LIB.html
@@ -0,0 +1,142 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Building the RTX Library</title>
+<title>CMSIS-RTOS: Building the RTX Library</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('creating_RTX_LIB.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Building the RTX Library </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The CMSIS Pack contains a µVision project for building the set of CMSIS-RTOS RTX libraries. This project can also be used as a reference for building the CMSIS-RTOS RTX libraries using a tool-chain of your choice.</p>
+<ol type="1">
+<li>Open the project <b>RTX_Lib_CM.uvproj</b> from the pack folder <b>CMSIS/RTOS/RTX/SRC/ARM/</b> in uVision.</li>
+<li>Select the project target that matches your device's processor core. <br/>
+ The project provides target configuration for all supported Cortex-M targets supported by RTX. <br/>
+ Note: The targets <b>CMF4_LE</b> (Little Endian) and <b>CMF4_BE</b> (Big Endian) shall be used for Cortex-M4 as well as Cortex-M7 based devices with FPU.</li>
+<li>You can find out about the required preprocessor defines in the dialogs <b>Options for Target - C/C++</b> and <b>Options for Target - Asm</b>.</li>
+<li>From the <b>Project</b> window you find the list of source files required for a complete library build.</li>
+</ol>
+<div class="image">
+<img src="own_lib_projwin.png" alt="own_lib_projwin.png"/>
+<div class="caption">
+Project with files for Cortex-M4 cores</div></div>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="index.html">index</a></li><li class="navelem"><a class="el" href="rtxImplementation.html">RTX Implementation</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/dir_67baed4ff719a838d401a6dc7774cf41.html b/docs/RTOS/html/dir_67baed4ff719a838d401a6dc7774cf41.html
new file mode 100644
index 0000000..a604885
--- /dev/null
+++ b/docs/RTOS/html/dir_67baed4ff719a838d401a6dc7774cf41.html
@@ -0,0 +1,137 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>RTOS Directory Reference</title>
+<title>CMSIS-RTOS: RTOS Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_67baed4ff719a838d401a6dc7774cf41.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">RTOS Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_8ecbca576638d6cf096e42200a0f53dc"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_8ecbca576638d6cf096e42200a0f53dc.html">RTX</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:dir_9afdeffb8e409a4e0df5c5bf9ab1a7d2"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_9afdeffb8e409a4e0df5c5bf9ab1a7d2.html">Template</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_67baed4ff719a838d401a6dc7774cf41.html">RTOS</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/dir_899ec648bfef5b77e4c17b1ad40af9f5.html b/docs/RTOS/html/dir_899ec648bfef5b77e4c17b1ad40af9f5.html
new file mode 100644
index 0000000..e877b29
--- /dev/null
+++ b/docs/RTOS/html/dir_899ec648bfef5b77e4c17b1ad40af9f5.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Templates Directory Reference</title>
+<title>CMSIS-RTOS: Templates Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_899ec648bfef5b77e4c17b1ad40af9f5.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Templates Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:RTX__Conf__CM_8c"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="RTX__Conf__CM_8c.html">RTX_Conf_CM.c</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_67baed4ff719a838d401a6dc7774cf41.html">RTOS</a></li><li class="navelem"><a class="el" href="dir_8ecbca576638d6cf096e42200a0f53dc.html">RTX</a></li><li class="navelem"><a class="el" href="dir_899ec648bfef5b77e4c17b1ad40af9f5.html">Templates</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/dir_8ecbca576638d6cf096e42200a0f53dc.html b/docs/RTOS/html/dir_8ecbca576638d6cf096e42200a0f53dc.html
new file mode 100644
index 0000000..42263ce
--- /dev/null
+++ b/docs/RTOS/html/dir_8ecbca576638d6cf096e42200a0f53dc.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>RTX Directory Reference</title>
+<title>CMSIS-RTOS: RTX Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_8ecbca576638d6cf096e42200a0f53dc.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">RTX Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_899ec648bfef5b77e4c17b1ad40af9f5"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_899ec648bfef5b77e4c17b1ad40af9f5.html">Templates</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_67baed4ff719a838d401a6dc7774cf41.html">RTOS</a></li><li class="navelem"><a class="el" href="dir_8ecbca576638d6cf096e42200a0f53dc.html">RTX</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/dir_9afdeffb8e409a4e0df5c5bf9ab1a7d2.html b/docs/RTOS/html/dir_9afdeffb8e409a4e0df5c5bf9ab1a7d2.html
new file mode 100644
index 0000000..1019110
--- /dev/null
+++ b/docs/RTOS/html/dir_9afdeffb8e409a4e0df5c5bf9ab1a7d2.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Template Directory Reference</title>
+<title>CMSIS-RTOS: Template Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_9afdeffb8e409a4e0df5c5bf9ab1a7d2.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Template Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:cmsis__os_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmsis__os_8h.html">cmsis_os.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_67baed4ff719a838d401a6dc7774cf41.html">RTOS</a></li><li class="navelem"><a class="el" href="dir_9afdeffb8e409a4e0df5c5bf9ab1a7d2.html">Template</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/dir_b0448b4e45a55bca3a46fdbabd848ed7.html b/docs/RTOS/html/dir_b0448b4e45a55bca3a46fdbabd848ed7.html
new file mode 100644
index 0000000..aaf24e7
--- /dev/null
+++ b/docs/RTOS/html/dir_b0448b4e45a55bca3a46fdbabd848ed7.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>src Directory Reference</title>
+<title>CMSIS-RTOS: src Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_b0448b4e45a55bca3a46fdbabd848ed7.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">src Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="subdirs"></a>
+Directories</h2></td></tr>
+<tr class="memitem:dir_c0ad159d7acfc6a66622c7bec0ee8a21"><td class="memItemLeft" align="right" valign="top">directory &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dir_c0ad159d7acfc6a66622c7bec0ee8a21.html">RTX</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_b0448b4e45a55bca3a46fdbabd848ed7.html">src</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/dir_c0ad159d7acfc6a66622c7bec0ee8a21.html b/docs/RTOS/html/dir_c0ad159d7acfc6a66622c7bec0ee8a21.html
new file mode 100644
index 0000000..85b3ec5
--- /dev/null
+++ b/docs/RTOS/html/dir_c0ad159d7acfc6a66622c7bec0ee8a21.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>RTX Directory Reference</title>
+<title>CMSIS-RTOS: RTX Directory Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dir_c0ad159d7acfc6a66622c7bec0ee8a21.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">RTX Directory Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
+Files</h2></td></tr>
+<tr class="memitem:cmsis__os__rtx__extensions_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="cmsis__os__rtx__extensions_8h.html">cmsis_os_rtx_extensions.h</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_b0448b4e45a55bca3a46fdbabd848ed7.html">src</a></li><li class="navelem"><a class="el" href="dir_c0ad159d7acfc6a66622c7bec0ee8a21.html">RTX</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/dirstructfiles.html b/docs/RTOS/html/dirstructfiles.html
new file mode 100644
index 0000000..fd51c8c
--- /dev/null
+++ b/docs/RTOS/html/dirstructfiles.html
@@ -0,0 +1,496 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Directory Structure and File Overview</title>
+<title>CMSIS-RTOS: Directory Structure and File Overview</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('dirstructfiles.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Directory Structure and File Overview </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The following section provides an overview of the directory structure and the files that are relevant for the user's for CMSIS-RTOS RTX.</p>
+<h1><a class="anchor" id="Folders"></a>
+CMSIS-RTOS RTX Directory Structure</h1>
+<p>The CMSIS-RTOS RTX is delivered in source code and several examples are provided.</p>
+<table class="cmtable" summary="CMSIS-RTOS RTX Library Files">
+<tr>
+<th>Directory </th><th>Content </th></tr>
+<tr>
+<td>INC </td><td>The include files for CMSIS-RTOS RTX. <a class="el" href="cmsis__os_8h.html">cmsis_os.h</a> is the central include file for user applications. </td></tr>
+<tr>
+<td>LIB </td><td>CMSIS-RTOS RTX library files for ARMCC, GCC, and IAR Compiler. </td></tr>
+<tr>
+<td>SRC </td><td>Source code of CMSIS-RTOS RTX library along with project files for ARMCC, GCC, and IAR Compiler. </td></tr>
+<tr>
+<td>Templates </td><td>CMSIS-RTOS RTX configuration file (<a class="el" href="dirstructfiles.html#RTX_Conf_CM">RTX_Conf_CM.c</a>). </td></tr>
+<tr>
+<td>UserCode Templates </td><td>Template files for creating application projects with CMSIS-RTOS RTX. </td></tr>
+</table>
+<h1><a class="anchor" id="libFiles"></a>
+CMSIS-RTOS RTX Library Files</h1>
+<p>The CMSIS-RTOS RTX Library is available pre-compiled for ARMCC, GCC, and IAR C/C++ Compilers and supports all Cortex-M processor variants in every configuration.</p>
+<table class="cmtable" summary="CMSIS-RTOS RTX Library Files">
+<tr>
+<th>Library File </th><th>Processor Configuration </th></tr>
+<tr>
+<td>LIB/ARM/RTX_CM0.lib </td><td>CMSIS-RTOS RTX Library for ARMCC Compiler, Cortex-M0 and M1, little-endian. </td></tr>
+<tr>
+<td>LIB/ARM/RTX_CM0_B.lib </td><td>CMSIS-RTOS RTX Library for ARMCC Compiler, Cortex-M0 and M1, big-endian. </td></tr>
+<tr>
+<td>LIB/ARM/RTX_CM3.lib </td><td>CMSIS-RTOS RTX Library for ARMCC Compiler, Cortex-M3, M4, and M7 without FPU, little-endian. </td></tr>
+<tr>
+<td>LIB/ARM/RTX_CM3_B.lib </td><td>CMSIS-RTOS RTX Library for ARMCC Compiler, Cortex-M3, M4, and M7 without FPU, big-endian. </td></tr>
+<tr>
+<td>LIB/ARM/RTX_CM4.lib </td><td>CMSIS-RTOS RTX Library for ARMCC Compiler, Cortex-M4 and M7 with FPU, little-endian. </td></tr>
+<tr>
+<td>LIB/ARM/RTX_CM4_B.lib </td><td>CMSIS-RTOS RTX Library for ARMCC Compiler, Cortex-M4 and M7 with FPU, big-endian. </td></tr>
+<tr>
+<td>LIB/GCC/libRTX_CM0.a </td><td>CMSIS-RTOS RTX Library for GCC Compiler, Cortex-M0 and M1, little-endian. </td></tr>
+<tr>
+<td>LIB/GCC/libRTX_CM0_B.a </td><td>CMSIS-RTOS RTX Library for GCC Compiler, Cortex-M0 and M1, big-endian. </td></tr>
+<tr>
+<td>LIB/GCC/libRTX_CM3.a </td><td>CMSIS-RTOS RTX Library for GCC Compiler, Cortex-M3, M4, and M7 without FPU, little-endian. </td></tr>
+<tr>
+<td>LIB/GCC/libRTX_CM3_B.a </td><td>CMSIS-RTOS RTX Library for GCC Compiler, Cortex-M3, M4, and M7 without FPU, big-endian. </td></tr>
+<tr>
+<td>LIB/GCC/libRTX_CM4.a </td><td>CMSIS-RTOS RTX Library for GCC Compiler, Cortex-M4 and M7 with FPU, little-endian. </td></tr>
+<tr>
+<td>LIB/GCC/libRTX_CM4_B.a </td><td>CMSIS-RTOS RTX Library for GCC Compiler, Cortex-M4 and M7 with FPU, big-endian. </td></tr>
+<tr>
+<td>LIB/IAR/RTX_CM0.lib </td><td>CMSIS-RTOS RTX Library for IAR Compiler, Cortex-M0 and M1, little-endian. </td></tr>
+<tr>
+<td>LIB/IAR/RTX_CM0_B.lib </td><td>CMSIS-RTOS RTX Library for IAR Compiler, Cortex-M0 and M1, big-endian. </td></tr>
+<tr>
+<td>LIB/IAR/RTX_CM3.lib </td><td>CMSIS-RTOS RTX Library for IAR Compiler, Cortex-M3, M4, and M7 without FPU, little-endian. </td></tr>
+<tr>
+<td>LIB/IAR/RTX_CM3_B.lib </td><td>CMSIS-RTOS RTX Library for IAR Compiler, Cortex-M3, M4, and M7 without FPU, big-endian. </td></tr>
+<tr>
+<td>LIB/IAR/RTX_CM4.lib </td><td>CMSIS-RTOS RTX Library for IAR Compiler, Cortex-M4 and M7 with FPU, little-endian. </td></tr>
+<tr>
+<td>LIB/IAR/RTX_CM4_B.lib </td><td>CMSIS-RTOS RTX Library for IAR Compiler, Cortex-M4 and M7 with FPU, big-endian. </td></tr>
+</table>
+<h1><a class="anchor" id="RTX_Conf_CM"></a>
+Configuration File RTX_Conf_CM.c</h1>
+<div class="fragment"><div class="line"><span class="comment">/*----------------------------------------------------------------------------</span></div>
+<div class="line"><span class="comment"> * CMSIS-RTOS - RTX</span></div>
+<div class="line"><span class="comment"> *----------------------------------------------------------------------------</span></div>
+<div class="line"><span class="comment"> * Name: RTX_Conf_CM.C</span></div>
+<div class="line"><span class="comment"> * Purpose: Configuration of CMSIS RTX Kernel for Cortex-M</span></div>
+<div class="line"><span class="comment"> * Rev.: V4.70.1</span></div>
+<div class="line"><span class="comment"> *----------------------------------------------------------------------------</span></div>
+<div class="line"><span class="comment"> *</span></div>
+<div class="line"><span class="comment"> * Copyright (c) 1999-2009 KEIL, 2009-2016 ARM Germany GmbH. All rights reserved.</span></div>
+<div class="line"><span class="comment"> *</span></div>
+<div class="line"><span class="comment"> * SPDX-License-Identifier: Apache-2.0</span></div>
+<div class="line"><span class="comment"> *</span></div>
+<div class="line"><span class="comment"> * Licensed under the Apache License, Version 2.0 (the License); you may</span></div>
+<div class="line"><span class="comment"> * not use this file except in compliance with the License.</span></div>
+<div class="line"><span class="comment"> * You may obtain a copy of the License at</span></div>
+<div class="line"><span class="comment"> *</span></div>
+<div class="line"><span class="comment"> * www.apache.org/licenses/LICENSE-2.0</span></div>
+<div class="line"><span class="comment"> *</span></div>
+<div class="line"><span class="comment"> * Unless required by applicable law or agreed to in writing, software</span></div>
+<div class="line"><span class="comment"> * distributed under the License is distributed on an AS IS BASIS, WITHOUT</span></div>
+<div class="line"><span class="comment"> * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div>
+<div class="line"><span class="comment"> * See the License for the specific language governing permissions and</span></div>
+<div class="line"><span class="comment"> * limitations under the License.</span></div>
+<div class="line"><span class="comment"> *---------------------------------------------------------------------------*/</span></div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"></div>
+<div class="line"><span class="comment">/*----------------------------------------------------------------------------</span></div>
+<div class="line"><span class="comment"> * RTX User configuration part BEGIN</span></div>
+<div class="line"><span class="comment"> *---------------------------------------------------------------------------*/</span></div>
+<div class="line"> </div>
+<div class="line"><span class="comment">//-------- &lt;&lt;&lt; Use Configuration Wizard in Context Menu &gt;&gt;&gt; -----------------</span></div>
+<div class="line"><span class="comment">//</span></div>
+<div class="line"><span class="comment">// &lt;h&gt;Thread Configuration</span></div>
+<div class="line"><span class="comment">// =======================</span></div>
+<div class="line"><span class="comment">//</span></div>
+<div class="line"><span class="comment">// &lt;o&gt;Number of concurrent running user threads &lt;1-250&gt;</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Defines max. number of user threads that will run at the same time.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: 6</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_TASKCNT</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_TASKCNT 6</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="comment">// &lt;o&gt;Default Thread stack size [bytes] &lt;64-4096:8&gt;&lt;#/4&gt;</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Defines default stack size for threads with osThreadDef stacksz = 0</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: 200</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_STKSIZE</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_STKSIZE 50 // this stack size value is in words</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="comment">// &lt;o&gt;Main Thread stack size [bytes] &lt;64-32768:8&gt;&lt;#/4&gt;</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Defines stack size for main thread.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: 200</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_MAINSTKSIZE</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_MAINSTKSIZE 50 // this stack size value is in words</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="comment">// &lt;o&gt;Number of threads with user-provided stack size &lt;0-250&gt;</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Defines the number of threads with user-provided stack size.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: 0</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_PRIVCNT</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_PRIVCNT 0</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="comment">// &lt;o&gt;Total stack size [bytes] for threads with user-provided stack size &lt;0-1048576:8&gt;&lt;#/4&gt;</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Defines the combined stack size for threads with user-provided stack size.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: 0</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_PRIVSTKSIZE</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_PRIVSTKSIZE 0 // this stack size value is in words</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="comment">// &lt;q&gt;Stack overflow checking</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Enable stack overflow checks at thread switch.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Enabling this option increases slightly the execution time of a thread switch.</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_STKCHECK</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_STKCHECK 1</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="comment">// &lt;q&gt;Stack usage watermark</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Initialize thread stack with watermark pattern for analyzing stack usage (current/maximum) in System and Thread Viewer.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Enabling this option increases significantly the execution time of osThreadCreate.</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_STKINIT</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define OS_STKINIT 0</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="comment">// &lt;o&gt;Processor mode for thread execution </span></div>
+<div class="line"><span class="comment">// &lt;0=&gt; Unprivileged mode </span></div>
+<div class="line"><span class="comment">// &lt;1=&gt; Privileged mode</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: Privileged mode</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_RUNPRIV</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_RUNPRIV 1</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="comment">// &lt;/h&gt;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="comment">// &lt;h&gt;RTX Kernel Timer Tick Configuration</span></div>
+<div class="line"><span class="comment">// ======================================</span></div>
+<div class="line"><span class="comment">// &lt;q&gt; Use Cortex-M SysTick timer as RTX Kernel Timer</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Cortex-M processors provide in most cases a SysTick timer that can be used as </span></div>
+<div class="line"><span class="comment">// &lt;i&gt; as time-base for RTX.</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_SYSTICK</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_SYSTICK 1</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span><span class="comment">//</span></div>
+<div class="line"><span class="comment">// &lt;o&gt;RTOS Kernel Timer input clock frequency [Hz] &lt;1-1000000000&gt;</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Defines the input frequency of the RTOS Kernel Timer. </span></div>
+<div class="line"><span class="comment">// &lt;i&gt; When the Cortex-M SysTick timer is used, the input clock </span></div>
+<div class="line"><span class="comment">// &lt;i&gt; is on most systems identical with the core clock.</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_CLOCK</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_CLOCK 12000000</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="comment">// &lt;o&gt;RTX Timer tick interval value [us] &lt;1-1000000&gt;</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; The RTX Timer tick interval value is used to calculate timeout values.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; When the Cortex-M SysTick timer is enabled, the value also configures the SysTick timer.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: 1000 (1ms)</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_TICK</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_TICK 1000</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="comment">// &lt;/h&gt;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="comment">// &lt;h&gt;System Configuration</span></div>
+<div class="line"><span class="comment">// =======================</span></div>
+<div class="line"><span class="comment">//</span></div>
+<div class="line"><span class="comment">// &lt;e&gt;Round-Robin Thread switching</span></div>
+<div class="line"><span class="comment">// ===============================</span></div>
+<div class="line"><span class="comment">//</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Enables Round-Robin Thread switching.</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_ROBIN</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_ROBIN 1</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="comment">// &lt;o&gt;Round-Robin Timeout [ticks] &lt;1-1000&gt;</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Defines how long a thread will execute before a thread switch.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: 5</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_ROBINTOUT</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_ROBINTOUT 5</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="comment">// &lt;/e&gt;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="comment">// &lt;e&gt;User Timers</span></div>
+<div class="line"><span class="comment">// ==============</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Enables user Timers</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_TIMERS</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_TIMERS 1</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="comment">// &lt;o&gt;Timer Thread Priority</span></div>
+<div class="line"><span class="comment">// &lt;1=&gt; Low</span></div>
+<div class="line"><span class="comment">// &lt;2=&gt; Below Normal &lt;3=&gt; Normal &lt;4=&gt; Above Normal</span></div>
+<div class="line"><span class="comment">// &lt;5=&gt; High</span></div>
+<div class="line"><span class="comment">// &lt;6=&gt; Realtime (highest)</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Defines priority for Timer Thread</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: High</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_TIMERPRIO</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_TIMERPRIO 5</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="comment">// &lt;o&gt;Timer Thread stack size [bytes] &lt;64-4096:8&gt;&lt;#/4&gt;</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Defines stack size for Timer thread.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: 200</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_TIMERSTKSZ</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_TIMERSTKSZ 50 // this stack size value is in words</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="comment">// &lt;o&gt;Timer Callback Queue size &lt;1-32&gt;</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Number of concurrent active timer callback functions.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: 4</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_TIMERCBQS</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_TIMERCBQS 4</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="comment">// &lt;/e&gt;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="comment">// &lt;o&gt;ISR FIFO Queue size&lt;4=&gt; 4 entries &lt;8=&gt; 8 entries</span></div>
+<div class="line"><span class="comment">// &lt;12=&gt; 12 entries &lt;16=&gt; 16 entries</span></div>
+<div class="line"><span class="comment">// &lt;24=&gt; 24 entries &lt;32=&gt; 32 entries</span></div>
+<div class="line"><span class="comment">// &lt;48=&gt; 48 entries &lt;64=&gt; 64 entries</span></div>
+<div class="line"><span class="comment">// &lt;96=&gt; 96 entries</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; ISR functions store requests to this buffer,</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; when they are called from the interrupt handler.</span></div>
+<div class="line"><span class="comment">// &lt;i&gt; Default: 16 entries</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_FIFOSZ</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_FIFOSZ 16</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="comment">// &lt;/h&gt;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="comment">//------------- &lt;&lt;&lt; end of configuration section &gt;&gt;&gt; -----------------------</span></div>
+<div class="line"> </div>
+<div class="line"><span class="comment">// Standard library system mutexes</span></div>
+<div class="line"><span class="comment">// ===============================</span></div>
+<div class="line"><span class="comment">// Define max. number system mutexes that are used to protect </span></div>
+<div class="line"><span class="comment">// the arm standard runtime library. For microlib they are not used.</span></div>
+<div class="line"><span class="preprocessor">#ifndef OS_MUTEXCNT</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor"> #define OS_MUTEXCNT 8</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="comment">/*----------------------------------------------------------------------------</span></div>
+<div class="line"><span class="comment"> * RTX User configuration part END</span></div>
+<div class="line"><span class="comment"> *---------------------------------------------------------------------------*/</span></div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#define OS_TRV ((uint32_t)(((double)OS_CLOCK*(double)OS_TICK)/1E6)-1)</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"></div>
+<div class="line"><span class="comment">/*----------------------------------------------------------------------------</span></div>
+<div class="line"><span class="comment"> * Global Functions</span></div>
+<div class="line"><span class="comment"> *---------------------------------------------------------------------------*/</span></div>
+<div class="line"> </div>
+<div class="line"><span class="comment">/*--------------------------- os_idle_demon ---------------------------------*/</span></div>
+<div class="line"><span class="comment"></span></div>
+<div class="line"><span class="comment">/// \brief The idle demon is running when no other thread is ready to run</span></div>
+<div class="line"><span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="group__RTX__Global__Functions.html#gafb4dc4d3dff8343a393726d2860282e4">os_idle_demon</a> (<span class="keywordtype">void</span>) {</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">for</span> (;;) {</div>
+<div class="line"> <span class="comment">/* HERE: include optional user code to be executed when no thread runs.*/</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#if (OS_SYSTICK == 0) // Functions for alternative timer as RTX kernel timer</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="comment">/*--------------------------- os_tick_init ----------------------------------*/</span></div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// \brief Initializes an alternative hardware timer as RTX kernel timer</span></div>
+<div class="line"><span class="comment">/// \return IRQ number of the alternative hardware timer</span></div>
+<div class="line"><span class="comment"></span><span class="keywordtype">int</span> <a class="code" href="group__RTX__Global__Functions.html#ga145e7eafdd042bb522020cbb3b469d9c">os_tick_init</a> (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <span class="keywordflow">return</span> (-1); <span class="comment">/* Return IRQ number of timer (0..239) */</span></div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"><span class="comment">/*--------------------------- os_tick_val -----------------------------------*/</span></div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// \brief Get alternative hardware timer&#39;s current value (0 .. OS_TRV)</span></div>
+<div class="line"><span class="comment">/// \return Current value of the alternative hardware timer</span></div>
+<div class="line"><span class="comment"></span>uint32_t <a class="code" href="group__RTX__Global__Functions.html#ga567543bf38239a91f09751686c23017b">os_tick_val</a> (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <span class="keywordflow">return</span> (0);</div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"><span class="comment">/*--------------------------- os_tick_ovf -----------------------------------*/</span></div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// \brief Get alternative hardware timer&#39;s overflow flag</span></div>
+<div class="line"><span class="comment">/// \return Overflow flag\n</span></div>
+<div class="line"><span class="comment">/// - 1 : overflow</span></div>
+<div class="line"><span class="comment">/// - 0 : no overflow</span></div>
+<div class="line"><span class="comment"></span>uint32_t <a class="code" href="group__RTX__Global__Functions.html#gad5deddec3fea0fb31798f571afc3c692">os_tick_ovf</a> (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <span class="keywordflow">return</span> (0);</div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"><span class="comment">/*--------------------------- os_tick_irqack --------------------------------*/</span></div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// \brief Acknowledge alternative hardware timer interrupt</span></div>
+<div class="line"><span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="group__RTX__Global__Functions.html#ga85dab8408f27236c7341a69feb6258c7">os_tick_irqack</a> (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <span class="comment">/* ... */</span></div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#endif // (OS_SYSTICK == 0)</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="comment">/*--------------------------- os_error --------------------------------------*/</span></div>
+<div class="line"> </div>
+<div class="line"><span class="comment">/* OS Error Codes */</span></div>
+<div class="line"><span class="preprocessor">#define OS_ERROR_STACK_OVF 1</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define OS_ERROR_FIFO_OVF 2</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define OS_ERROR_MBX_OVF 3</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define OS_ERROR_TIMER_OVF 4</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="keyword">extern</span> <a class="code" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> <a class="code" href="RTX__Conf__CM_8c.html#a395cca131b7746fc43c104a3485b77f7">svcThreadGetId</a> (<span class="keywordtype">void</span>);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// \brief Called when a runtime error is detected</span></div>
+<div class="line"><span class="comment">/// \param[in] error_code actual error code that has been detected</span></div>
+<div class="line"><span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="group__RTX__Global__Functions.html#ga651ae76b3acf45f80bf0e0487b51d6e6">os_error</a> (uint32_t error_code) {</div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">/* HERE: include optional code to be executed on runtime error. */</span></div>
+<div class="line"> <span class="keywordflow">switch</span> (error_code) {</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="RTX__Conf__CM_8c.html#abf8311a7a239ec56c6d725f926ba766d">OS_ERROR_STACK_OVF</a>:</div>
+<div class="line"> <span class="comment">/* Stack overflow detected for the currently running task. */</span></div>
+<div class="line"> <span class="comment">/* Thread can be identified by calling svcThreadGetId(). */</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="RTX__Conf__CM_8c.html#a075d54df14c85a6afe32b7f5c99c9c29">OS_ERROR_FIFO_OVF</a>:</div>
+<div class="line"> <span class="comment">/* ISR FIFO Queue buffer overflow detected. */</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="RTX__Conf__CM_8c.html#ab715d7d66c341c067ef0a97b55db8a10">OS_ERROR_MBX_OVF</a>:</div>
+<div class="line"> <span class="comment">/* Mailbox overflow detected. */</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="RTX__Conf__CM_8c.html#a79d7e388d951f11bd0dabd13f722cea8">OS_ERROR_TIMER_OVF</a>:</div>
+<div class="line"> <span class="comment">/* User Timer Callback Queue overflow detected. */</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> <span class="keywordflow">default</span>:</div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">for</span> (;;);</div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"></div>
+<div class="line"><span class="comment">/*----------------------------------------------------------------------------</span></div>
+<div class="line"><span class="comment"> * RTX Configuration Functions</span></div>
+<div class="line"><span class="comment"> *---------------------------------------------------------------------------*/</span></div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#include &quot;RTX_CM_lib.h&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="comment">/*----------------------------------------------------------------------------</span></div>
+<div class="line"><span class="comment"> * end of file</span></div>
+<div class="line"><span class="comment"> *---------------------------------------------------------------------------*/</span></div>
+</div><!-- fragment --> </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="index.html">index</a></li><li class="navelem"><a class="el" href="rtxImplementation.html">RTX Implementation</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/doxygen.css b/docs/RTOS/html/doxygen.css
new file mode 100644
index 0000000..f0f36f8
--- /dev/null
+++ b/docs/RTOS/html/doxygen.css
@@ -0,0 +1,1366 @@
+/* The standard CSS for doxygen 1.8.6 */
+
+body, table, div, p, dl {
+ font: 400 14px/22px Roboto,sans-serif;
+}
+
+/* @group Heading Levels */
+
+h1.groupheader {
+ font-size: 150%;
+}
+
+.title {
+ font: 400 14px/28px Roboto,sans-serif;
+ font-size: 150%;
+ font-weight: bold;
+ margin: 10px 2px;
+}
+
+h2.groupheader {
+ border-bottom: 1px solid #879ECB;
+ color: #354C7B;
+ font-size: 150%;
+ font-weight: normal;
+ margin-top: 1.75em;
+ padding-top: 8px;
+ padding-bottom: 4px;
+ width: 100%;
+}
+
+h3.groupheader {
+ font-size: 100%;
+}
+
+h1, h2, h3, h4, h5, h6 {
+ -webkit-transition: text-shadow 0.5s linear;
+ -moz-transition: text-shadow 0.5s linear;
+ -ms-transition: text-shadow 0.5s linear;
+ -o-transition: text-shadow 0.5s linear;
+ transition: text-shadow 0.5s linear;
+ margin-right: 15px;
+}
+
+h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow {
+ text-shadow: 0 0 15px cyan;
+}
+
+dt {
+ font-weight: bold;
+}
+
+div.multicol {
+ -moz-column-gap: 1em;
+ -webkit-column-gap: 1em;
+ -moz-column-count: 3;
+ -webkit-column-count: 3;
+}
+
+p.startli, p.startdd {
+ margin-top: 2px;
+}
+
+p.starttd {
+ margin-top: 0px;
+}
+
+p.endli {
+ margin-bottom: 0px;
+}
+
+p.enddd {
+ margin-bottom: 4px;
+}
+
+p.endtd {
+ margin-bottom: 2px;
+}
+
+/* @end */
+
+caption {
+ font-weight: bold;
+}
+
+span.legend {
+ font-size: 70%;
+ text-align: center;
+}
+
+h3.version {
+ font-size: 90%;
+ text-align: center;
+}
+
+div.qindex, div.navtab{
+ background-color: #EBEFF6;
+ border: 1px solid #A3B4D7;
+ text-align: center;
+}
+
+div.qindex, div.navpath {
+ width: 100%;
+ line-height: 140%;
+}
+
+div.navtab {
+ margin-right: 15px;
+}
+
+/* @group Link Styling */
+
+a {
+ color: #3D578C;
+ font-weight: normal;
+ text-decoration: none;
+}
+
+.contents a:visited {
+ color: #4665A2;
+}
+
+a:hover {
+ text-decoration: underline;
+}
+
+a.qindex {
+ font-weight: bold;
+}
+
+a.qindexHL {
+ font-weight: bold;
+ background-color: #9CAFD4;
+ color: #ffffff;
+ border: 1px double #869DCA;
+}
+
+.contents a.qindexHL:visited {
+ color: #ffffff;
+}
+
+a.el {
+ font-weight: bold;
+}
+
+a.elRef {
+}
+
+a.code, a.code:visited, a.line, a.line:visited {
+ color: #4665A2;
+}
+
+a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited {
+ color: #4665A2;
+}
+
+/* @end */
+
+dl.el {
+ margin-left: -1cm;
+}
+
+pre.fragment {
+ border: 1px solid #C4CFE5;
+ background-color: #FBFCFD;
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+ overflow: auto;
+ word-wrap: break-word;
+ font-size: 9pt;
+ line-height: 125%;
+ font-family: monospace, fixed;
+ font-size: 105%;
+}
+
+div.fragment {
+ padding: 4px 6px;
+ margin: 4px 8px 4px 2px;
+ background-color: #FBFCFD;
+ border: 1px solid #C4CFE5;
+}
+
+div.line {
+ font-family: monospace, fixed;
+ font-size: 13px;
+ min-height: 13px;
+ line-height: 1.0;
+ text-wrap: unrestricted;
+ white-space: -moz-pre-wrap; /* Moz */
+ white-space: -pre-wrap; /* Opera 4-6 */
+ white-space: -o-pre-wrap; /* Opera 7 */
+ white-space: pre-wrap; /* CSS3 */
+ word-wrap: break-word; /* IE 5.5+ */
+ text-indent: -53px;
+ padding-left: 53px;
+ padding-bottom: 0px;
+ margin: 0px;
+ -webkit-transition-property: background-color, box-shadow;
+ -webkit-transition-duration: 0.5s;
+ -moz-transition-property: background-color, box-shadow;
+ -moz-transition-duration: 0.5s;
+ -ms-transition-property: background-color, box-shadow;
+ -ms-transition-duration: 0.5s;
+ -o-transition-property: background-color, box-shadow;
+ -o-transition-duration: 0.5s;
+ transition-property: background-color, box-shadow;
+ transition-duration: 0.5s;
+}
+
+div.line.glow {
+ background-color: cyan;
+ box-shadow: 0 0 10px cyan;
+}
+
+
+span.lineno {
+ padding-right: 4px;
+ text-align: right;
+ border-right: 2px solid #0F0;
+ background-color: #E8E8E8;
+ white-space: pre;
+}
+span.lineno a {
+ background-color: #D8D8D8;
+}
+
+span.lineno a:hover {
+ background-color: #C8C8C8;
+}
+
+div.ah {
+ background-color: black;
+ font-weight: bold;
+ color: #ffffff;
+ margin-bottom: 3px;
+ margin-top: 3px;
+ padding: 0.2em;
+ border: solid thin #333;
+ border-radius: 0.5em;
+ -webkit-border-radius: .5em;
+ -moz-border-radius: .5em;
+ box-shadow: 2px 2px 3px #999;
+ -webkit-box-shadow: 2px 2px 3px #999;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444));
+ background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000);
+}
+
+div.groupHeader {
+ margin-left: 16px;
+ margin-top: 12px;
+ font-weight: bold;
+}
+
+div.groupText {
+ margin-left: 16px;
+ font-style: italic;
+}
+
+body {
+ background-color: white;
+ color: black;
+ margin: 0;
+}
+
+div.contents {
+ margin-top: 10px;
+ margin-left: 12px;
+ margin-right: 8px;
+}
+
+td.indexkey {
+ background-color: #EBEFF6;
+ font-weight: bold;
+ border: 1px solid #C4CFE5;
+ margin: 2px 0px 2px 0;
+ padding: 2px 10px;
+ white-space: nowrap;
+ vertical-align: top;
+}
+
+td.indexvalue {
+ background-color: #EBEFF6;
+ border: 1px solid #C4CFE5;
+ padding: 2px 10px;
+ margin: 2px 0px;
+}
+
+tr.memlist {
+ background-color: #EEF1F7;
+}
+
+p.formulaDsp {
+ text-align: center;
+}
+
+img.formulaDsp {
+
+}
+
+img.formulaInl {
+ vertical-align: middle;
+}
+
+div.center {
+ text-align: center;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ padding: 0px;
+}
+
+div.center img {
+ border: 0px;
+}
+
+address.footer {
+ text-align: right;
+ padding-right: 12px;
+}
+
+img.footer {
+ border: 0px;
+ vertical-align: middle;
+}
+
+/* @group Code Colorization */
+
+span.keyword {
+ color: #008000
+}
+
+span.keywordtype {
+ color: #604020
+}
+
+span.keywordflow {
+ color: #e08000
+}
+
+span.comment {
+ color: #800000
+}
+
+span.preprocessor {
+ color: #806020
+}
+
+span.stringliteral {
+ color: #002080
+}
+
+span.charliteral {
+ color: #008080
+}
+
+span.vhdldigit {
+ color: #ff00ff
+}
+
+span.vhdlchar {
+ color: #000000
+}
+
+span.vhdlkeyword {
+ color: #700070
+}
+
+span.vhdllogic {
+ color: #ff0000
+}
+
+blockquote {
+ background-color: #F7F8FB;
+ border-left: 2px solid #9CAFD4;
+ margin: 0 24px 0 4px;
+ padding: 0 12px 0 16px;
+}
+
+/* @end */
+
+/*
+.search {
+ color: #003399;
+ font-weight: bold;
+}
+
+form.search {
+ margin-bottom: 0px;
+ margin-top: 0px;
+}
+
+input.search {
+ font-size: 75%;
+ color: #000080;
+ font-weight: normal;
+ background-color: #e8eef2;
+}
+*/
+
+td.tiny {
+ font-size: 75%;
+}
+
+.dirtab {
+ padding: 4px;
+ border-collapse: collapse;
+ border: 1px solid #A3B4D7;
+}
+
+th.dirtab {
+ background: #EBEFF6;
+ font-weight: bold;
+}
+
+hr {
+ height: 0px;
+ border: none;
+ border-top: 1px solid #4A6AAA;
+}
+
+hr.footer {
+ height: 1px;
+}
+
+/* @group Member Descriptions */
+
+table.memberdecls {
+ border-spacing: 0px;
+ padding: 0px;
+}
+
+.memberdecls td, .fieldtable tr {
+ -webkit-transition-property: background-color, box-shadow;
+ -webkit-transition-duration: 0.5s;
+ -moz-transition-property: background-color, box-shadow;
+ -moz-transition-duration: 0.5s;
+ -ms-transition-property: background-color, box-shadow;
+ -ms-transition-duration: 0.5s;
+ -o-transition-property: background-color, box-shadow;
+ -o-transition-duration: 0.5s;
+ transition-property: background-color, box-shadow;
+ transition-duration: 0.5s;
+}
+
+.memberdecls td.glow, .fieldtable tr.glow {
+ background-color: cyan;
+ box-shadow: 0 0 15px cyan;
+}
+
+.mdescLeft, .mdescRight,
+.memItemLeft, .memItemRight,
+.memTemplItemLeft, .memTemplItemRight, .memTemplParams {
+ background-color: #F9FAFC;
+ border: none;
+ margin: 4px;
+ padding: 1px 0 0 8px;
+}
+
+.mdescLeft, .mdescRight {
+ padding: 0px 8px 4px 8px;
+ color: #555;
+}
+
+.memSeparator {
+ border-bottom: 1px solid #DEE4F0;
+ line-height: 1px;
+ margin: 0px;
+ padding: 0px;
+}
+
+.memItemLeft, .memTemplItemLeft {
+ white-space: nowrap;
+}
+
+.memItemRight {
+ width: 100%;
+}
+
+.memTemplParams {
+ color: #4665A2;
+ white-space: nowrap;
+ font-size: 80%;
+}
+
+/* @end */
+
+/* @group Member Details */
+
+/* Styles for detailed member documentation */
+
+.memtemplate {
+ font-size: 80%;
+ color: #4665A2;
+ font-weight: normal;
+ margin-left: 9px;
+}
+
+.memnav {
+ background-color: #EBEFF6;
+ border: 1px solid #A3B4D7;
+ text-align: center;
+ margin: 2px;
+ margin-right: 15px;
+ padding: 2px;
+}
+
+.mempage {
+ width: 100%;
+}
+
+.memitem {
+ padding: 0;
+ margin-bottom: 10px;
+ margin-right: 5px;
+ -webkit-transition: box-shadow 0.5s linear;
+ -moz-transition: box-shadow 0.5s linear;
+ -ms-transition: box-shadow 0.5s linear;
+ -o-transition: box-shadow 0.5s linear;
+ transition: box-shadow 0.5s linear;
+ display: table !important;
+ width: 100%;
+}
+
+.memitem.glow {
+ box-shadow: 0 0 15px cyan;
+}
+
+.memname {
+ font-weight: bold;
+ margin-left: 6px;
+}
+
+.memname td {
+ vertical-align: bottom;
+}
+
+.memproto, dl.reflist dt {
+ border-top: 1px solid #A8B8D9;
+ border-left: 1px solid #A8B8D9;
+ border-right: 1px solid #A8B8D9;
+ padding: 6px 0px 6px 0px;
+ color: #253555;
+ font-weight: bold;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E8F2;
+ /* opera specific markup */
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ /* firefox specific markup */
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ -moz-border-radius-topright: 4px;
+ -moz-border-radius-topleft: 4px;
+ /* webkit specific markup */
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ -webkit-border-top-right-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+
+}
+
+.memdoc, dl.reflist dd {
+ border-bottom: 1px solid #A8B8D9;
+ border-left: 1px solid #A8B8D9;
+ border-right: 1px solid #A8B8D9;
+ padding: 6px 10px 2px 10px;
+ background-color: #FBFCFD;
+ border-top-width: 0;
+ background-image:url('nav_g.png');
+ background-repeat:repeat-x;
+ background-color: #FFFFFF;
+ /* opera specific markup */
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
+ box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+ /* firefox specific markup */
+ -moz-border-radius-bottomleft: 4px;
+ -moz-border-radius-bottomright: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px;
+ /* webkit specific markup */
+ -webkit-border-bottom-left-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+dl.reflist dt {
+ padding: 5px;
+}
+
+dl.reflist dd {
+ margin: 0px 0px 10px 0px;
+ padding: 5px;
+}
+
+.paramkey {
+ text-align: right;
+}
+
+.paramtype {
+ white-space: nowrap;
+}
+
+.paramname {
+ color: #602020;
+ white-space: nowrap;
+}
+.paramname em {
+ font-style: normal;
+}
+.paramname code {
+ line-height: 14px;
+}
+
+.params, .retval, .exception, .tparams {
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+.params .paramname, .retval .paramname {
+ font-weight: bold;
+ vertical-align: top;
+}
+
+.params .paramtype {
+ font-style: italic;
+ vertical-align: top;
+}
+
+.params .paramdir {
+ font-family: "courier new",courier,monospace;
+ vertical-align: top;
+}
+
+table.mlabels {
+ border-spacing: 0px;
+}
+
+td.mlabels-left {
+ width: 100%;
+ padding: 0px;
+}
+
+td.mlabels-right {
+ vertical-align: bottom;
+ padding: 0px;
+ white-space: nowrap;
+}
+
+span.mlabels {
+ margin-left: 8px;
+}
+
+span.mlabel {
+ background-color: #728DC1;
+ border-top:1px solid #5373B4;
+ border-left:1px solid #5373B4;
+ border-right:1px solid #C4CFE5;
+ border-bottom:1px solid #C4CFE5;
+ text-shadow: none;
+ color: white;
+ margin-right: 4px;
+ padding: 2px 3px;
+ border-radius: 3px;
+ font-size: 7pt;
+ white-space: nowrap;
+ vertical-align: middle;
+}
+
+
+
+/* @end */
+
+/* these are for tree view when not used as main index */
+
+div.directory {
+ margin: 10px 0px;
+ border-top: 1px solid #A8B8D9;
+ border-bottom: 1px solid #A8B8D9;
+ width: 100%;
+}
+
+.directory table {
+ border-collapse:collapse;
+}
+
+.directory td {
+ margin: 0px;
+ padding: 0px;
+ vertical-align: top;
+}
+
+.directory td.entry {
+ white-space: nowrap;
+ padding-right: 6px;
+ padding-top: 3px;
+}
+
+.directory td.entry a {
+ outline:none;
+}
+
+.directory td.entry a img {
+ border: none;
+}
+
+.directory td.desc {
+ width: 100%;
+ padding-left: 6px;
+ padding-right: 6px;
+ padding-top: 3px;
+ border-left: 1px solid rgba(0,0,0,0.05);
+}
+
+.directory tr.even {
+ padding-left: 6px;
+ background-color: #F7F8FB;
+}
+
+.directory img {
+ vertical-align: -30%;
+}
+
+.directory .levels {
+ white-space: nowrap;
+ width: 100%;
+ text-align: right;
+ font-size: 9pt;
+}
+
+.directory .levels span {
+ cursor: pointer;
+ padding-left: 2px;
+ padding-right: 2px;
+ color: #3D578C;
+}
+
+div.dynheader {
+ margin-top: 8px;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+address {
+ font-style: normal;
+ color: #2A3D61;
+}
+
+table.doxtable {
+ border-collapse:collapse;
+ margin-top: 4px;
+ margin-bottom: 4px;
+}
+
+table.doxtable td, table.doxtable th {
+ border: 1px solid #2D4068;
+ padding: 3px 7px 2px;
+}
+
+table.doxtable th {
+ background-color: #374F7F;
+ color: #FFFFFF;
+ font-size: 110%;
+ padding-bottom: 4px;
+ padding-top: 5px;
+}
+
+table.fieldtable {
+ /*width: 100%;*/
+ margin-bottom: 10px;
+ border: 1px solid #A8B8D9;
+ border-spacing: 0px;
+ -moz-border-radius: 4px;
+ -webkit-border-radius: 4px;
+ border-radius: 4px;
+ -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px;
+ -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+ box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15);
+}
+
+.fieldtable td, .fieldtable th {
+ padding: 3px 7px 2px;
+}
+
+.fieldtable td.fieldtype, .fieldtable td.fieldname {
+ white-space: nowrap;
+ border-right: 1px solid #A8B8D9;
+ border-bottom: 1px solid #A8B8D9;
+ vertical-align: top;
+}
+
+.fieldtable td.fieldname {
+ padding-top: 3px;
+}
+
+.fieldtable td.fielddoc {
+ border-bottom: 1px solid #A8B8D9;
+ /*width: 100%;*/
+}
+
+.fieldtable td.fielddoc p:first-child {
+ margin-top: 0px;
+}
+
+.fieldtable td.fielddoc p:last-child {
+ margin-bottom: 2px;
+}
+
+.fieldtable tr:last-child td {
+ border-bottom: none;
+}
+
+.fieldtable th {
+ background-image:url('nav_f.png');
+ background-repeat:repeat-x;
+ background-color: #E2E8F2;
+ font-size: 90%;
+ color: #253555;
+ padding-bottom: 4px;
+ padding-top: 5px;
+ text-align:left;
+ -moz-border-radius-topleft: 4px;
+ -moz-border-radius-topright: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ border-top-left-radius: 4px;
+ border-top-right-radius: 4px;
+ border-bottom: 1px solid #A8B8D9;
+}
+
+
+.tabsearch {
+ top: 0px;
+ left: 10px;
+ height: 36px;
+ background-image: url('tab_b.png');
+ z-index: 101;
+ overflow: hidden;
+ font-size: 13px;
+}
+
+.navpath ul
+{
+ font-size: 11px;
+ background-image:url('tab_b.png');
+ background-repeat:repeat-x;
+ background-position: 0 -5px;
+ height:30px;
+ line-height:30px;
+ color:#8AA0CC;
+ border:solid 1px #C2CDE4;
+ overflow:hidden;
+ margin:0px;
+ padding:0px;
+}
+
+.navpath li
+{
+ list-style-type:none;
+ float:left;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:url('bc_s.png');
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#364D7C;
+}
+
+.navpath li.navelem a
+{
+ height:32px;
+ display:block;
+ text-decoration: none;
+ outline: none;
+ color: #283A5D;
+ font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ text-decoration: none;
+}
+
+.navpath li.navelem a:hover
+{
+ color:#6884BD;
+}
+
+.navpath li.footer
+{
+ list-style-type:none;
+ float:right;
+ padding-left:10px;
+ padding-right:15px;
+ background-image:none;
+ background-repeat:no-repeat;
+ background-position:right;
+ color:#364D7C;
+ font-size: 8pt;
+}
+
+
+div.summary
+{
+ float: right;
+ font-size: 8pt;
+ padding-right: 5px;
+ width: 50%;
+ text-align: right;
+}
+
+div.summary a
+{
+ white-space: nowrap;
+}
+
+div.ingroups
+{
+ font-size: 8pt;
+ width: 50%;
+ text-align: left;
+}
+
+div.ingroups a
+{
+ white-space: nowrap;
+}
+
+div.header
+{
+ background-image:url('nav_h.png');
+ background-repeat:repeat-x;
+ background-color: #F9FAFC;
+ margin: 0px;
+ border-bottom: 1px solid #C4CFE5;
+}
+
+div.headertitle
+{
+ padding: 5px 5px 5px 10px;
+}
+
+dl
+{
+ padding: 0 0 0 10px;
+}
+
+/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */
+dl.section
+{
+ margin-left: 0px;
+ padding-left: 0px;
+}
+
+dl.note
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #D0C000;
+}
+
+dl.warning, dl.attention
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #FF0000;
+}
+
+dl.pre, dl.post, dl.invariant
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #00D000;
+}
+
+dl.deprecated
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #505050;
+}
+
+dl.todo
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #00C0E0;
+}
+
+dl.test
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #3030E0;
+}
+
+dl.bug
+{
+ margin-left:-7px;
+ padding-left: 3px;
+ border-left:4px solid;
+ border-color: #C08050;
+}
+
+dl.section dd {
+ margin-bottom: 6px;
+}
+
+
+#projectlogo
+{
+ text-align: center;
+ vertical-align: bottom;
+ border-collapse: separate;
+}
+
+#projectlogo img
+{
+ border: 0px none;
+}
+
+#projectname
+{
+ font: 300% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 2px 0px;
+}
+
+#projectbrief
+{
+ font: 120% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#projectnumber
+{
+ font: 50% Tahoma, Arial,sans-serif;
+ margin: 0px;
+ padding: 0px;
+}
+
+#titlearea
+{
+ padding: 0px;
+ margin: 0px;
+ width: 100%;
+ border-bottom: 1px solid #5373B4;
+}
+
+.image
+{
+ text-align: center;
+}
+
+.dotgraph
+{
+ text-align: center;
+}
+
+.mscgraph
+{
+ text-align: center;
+}
+
+.diagraph
+{
+ text-align: center;
+}
+
+.caption
+{
+ font-weight: bold;
+}
+
+div.zoom
+{
+ border: 1px solid #90A5CE;
+}
+
+dl.citelist {
+ margin-bottom:50px;
+}
+
+dl.citelist dt {
+ color:#334975;
+ float:left;
+ font-weight:bold;
+ margin-right:10px;
+ padding:5px;
+}
+
+dl.citelist dd {
+ margin:2px 0;
+ padding:5px 0;
+}
+
+div.toc {
+ padding: 14px 25px;
+ background-color: #F4F6FA;
+ border: 1px solid #D8DFEE;
+ border-radius: 7px 7px 7px 7px;
+ float: right;
+ height: auto;
+ margin: 0 20px 10px 10px;
+ width: 200px;
+}
+
+div.toc li {
+ background: url("bdwn.png") no-repeat scroll 0 5px transparent;
+ font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif;
+ margin-top: 5px;
+ padding-left: 10px;
+ padding-top: 2px;
+}
+
+div.toc h3 {
+ font: bold 12px/1.2 Arial,FreeSans,sans-serif;
+ color: #4665A2;
+ border-bottom: 0 none;
+ margin: 0;
+}
+
+div.toc ul {
+ list-style: none outside none;
+ border: medium none;
+ padding: 0px;
+}
+
+div.toc li.level1 {
+ margin-left: 0px;
+}
+
+div.toc li.level2 {
+ margin-left: 15px;
+}
+
+div.toc li.level3 {
+ margin-left: 30px;
+}
+
+div.toc li.level4 {
+ margin-left: 45px;
+}
+
+.inherit_header {
+ font-weight: bold;
+ color: gray;
+ cursor: pointer;
+ -webkit-touch-callout: none;
+ -webkit-user-select: none;
+ -khtml-user-select: none;
+ -moz-user-select: none;
+ -ms-user-select: none;
+ user-select: none;
+}
+
+.inherit_header td {
+ padding: 6px 0px 2px 5px;
+}
+
+.inherit {
+ display: none;
+}
+
+tr.heading h2 {
+ margin-top: 12px;
+ margin-bottom: 4px;
+}
+
+/* tooltip related style info */
+
+.ttc {
+ position: absolute;
+ display: none;
+}
+
+#powerTip {
+ cursor: default;
+ white-space: nowrap;
+ background-color: white;
+ border: 1px solid gray;
+ border-radius: 4px 4px 4px 4px;
+ box-shadow: 1px 1px 7px gray;
+ display: none;
+ font-size: smaller;
+ max-width: 80%;
+ opacity: 0.9;
+ padding: 1ex 1em 1em;
+ position: absolute;
+ z-index: 2147483647;
+}
+
+#powerTip div.ttdoc {
+ color: grey;
+ font-style: italic;
+}
+
+#powerTip div.ttname a {
+ font-weight: bold;
+}
+
+#powerTip div.ttname {
+ font-weight: bold;
+}
+
+#powerTip div.ttdeci {
+ color: #006318;
+}
+
+#powerTip div {
+ margin: 0px;
+ padding: 0px;
+ font: 12px/16px Roboto,sans-serif;
+}
+
+#powerTip:before, #powerTip:after {
+ content: "";
+ position: absolute;
+ margin: 0px;
+}
+
+#powerTip.n:after, #powerTip.n:before,
+#powerTip.s:after, #powerTip.s:before,
+#powerTip.w:after, #powerTip.w:before,
+#powerTip.e:after, #powerTip.e:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.nw:after, #powerTip.nw:before,
+#powerTip.sw:after, #powerTip.sw:before {
+ border: solid transparent;
+ content: " ";
+ height: 0;
+ width: 0;
+ position: absolute;
+}
+
+#powerTip.n:after, #powerTip.s:after,
+#powerTip.w:after, #powerTip.e:after,
+#powerTip.nw:after, #powerTip.ne:after,
+#powerTip.sw:after, #powerTip.se:after {
+ border-color: rgba(255, 255, 255, 0);
+}
+
+#powerTip.n:before, #powerTip.s:before,
+#powerTip.w:before, #powerTip.e:before,
+#powerTip.nw:before, #powerTip.ne:before,
+#powerTip.sw:before, #powerTip.se:before {
+ border-color: rgba(128, 128, 128, 0);
+}
+
+#powerTip.n:after, #powerTip.n:before,
+#powerTip.ne:after, #powerTip.ne:before,
+#powerTip.nw:after, #powerTip.nw:before {
+ top: 100%;
+}
+
+#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after {
+ border-top-color: #ffffff;
+ border-width: 10px;
+ margin: 0px -10px;
+}
+#powerTip.n:before {
+ border-top-color: #808080;
+ border-width: 11px;
+ margin: 0px -11px;
+}
+#powerTip.n:after, #powerTip.n:before {
+ left: 50%;
+}
+
+#powerTip.nw:after, #powerTip.nw:before {
+ right: 14px;
+}
+
+#powerTip.ne:after, #powerTip.ne:before {
+ left: 14px;
+}
+
+#powerTip.s:after, #powerTip.s:before,
+#powerTip.se:after, #powerTip.se:before,
+#powerTip.sw:after, #powerTip.sw:before {
+ bottom: 100%;
+}
+
+#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after {
+ border-bottom-color: #ffffff;
+ border-width: 10px;
+ margin: 0px -10px;
+}
+
+#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before {
+ border-bottom-color: #808080;
+ border-width: 11px;
+ margin: 0px -11px;
+}
+
+#powerTip.s:after, #powerTip.s:before {
+ left: 50%;
+}
+
+#powerTip.sw:after, #powerTip.sw:before {
+ right: 14px;
+}
+
+#powerTip.se:after, #powerTip.se:before {
+ left: 14px;
+}
+
+#powerTip.e:after, #powerTip.e:before {
+ left: 100%;
+}
+#powerTip.e:after {
+ border-left-color: #ffffff;
+ border-width: 10px;
+ top: 50%;
+ margin-top: -10px;
+}
+#powerTip.e:before {
+ border-left-color: #808080;
+ border-width: 11px;
+ top: 50%;
+ margin-top: -11px;
+}
+
+#powerTip.w:after, #powerTip.w:before {
+ right: 100%;
+}
+#powerTip.w:after {
+ border-right-color: #ffffff;
+ border-width: 10px;
+ top: 50%;
+ margin-top: -10px;
+}
+#powerTip.w:before {
+ border-right-color: #808080;
+ border-width: 11px;
+ top: 50%;
+ margin-top: -11px;
+}
+
+@media print
+{
+ #top { display: none; }
+ #side-nav { display: none; }
+ #nav-path { display: none; }
+ body { overflow:visible; }
+ h1, h2, h3, h4, h5, h6 { page-break-after: avoid; }
+ .summary { display: none; }
+ .memitem { page-break-inside: avoid; }
+ #doc-content
+ {
+ margin-left:0 !important;
+ height:auto !important;
+ width:auto !important;
+ overflow:inherit;
+ display:inline;
+ }
+}
+
diff --git a/docs/RTOS/html/doxygen.png b/docs/RTOS/html/doxygen.png
new file mode 100644
index 0000000..3ff17d8
--- /dev/null
+++ b/docs/RTOS/html/doxygen.png
Binary files differ
diff --git a/docs/RTOS/html/dynsections.js b/docs/RTOS/html/dynsections.js
new file mode 100644
index 0000000..ed092c7
--- /dev/null
+++ b/docs/RTOS/html/dynsections.js
@@ -0,0 +1,97 @@
+function toggleVisibility(linkObj)
+{
+ var base = $(linkObj).attr('id');
+ var summary = $('#'+base+'-summary');
+ var content = $('#'+base+'-content');
+ var trigger = $('#'+base+'-trigger');
+ var src=$(trigger).attr('src');
+ if (content.is(':visible')===true) {
+ content.hide();
+ summary.show();
+ $(linkObj).addClass('closed').removeClass('opened');
+ $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+ content.show();
+ summary.hide();
+ $(linkObj).removeClass('closed').addClass('opened');
+ $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
+ }
+ return false;
+}
+
+function updateStripes()
+{
+ $('table.directory tr').
+ removeClass('even').filter(':visible:even').addClass('even');
+}
+function toggleLevel(level)
+{
+ $('table.directory tr').each(function(){
+ var l = this.id.split('_').length-1;
+ var i = $('#img'+this.id.substring(3));
+ var a = $('#arr'+this.id.substring(3));
+ if (l<level+1) {
+ i.attr('src','ftv2folderopen.png');
+ a.attr('src','ftv2mnode.png');
+ $(this).show();
+ } else if (l==level+1) {
+ i.attr('src','ftv2folderclosed.png');
+ a.attr('src','ftv2pnode.png');
+ $(this).show();
+ } else {
+ $(this).hide();
+ }
+ });
+ updateStripes();
+}
+
+function toggleFolder(id)
+{
+ //The clicked row
+ var currentRow = $('#row_'+id);
+ var currentRowImages = currentRow.find("img");
+
+ //All rows after the clicked row
+ var rows = currentRow.nextAll("tr");
+
+ //Only match elements AFTER this one (can't hide elements before)
+ var childRows = rows.filter(function() {
+ var re = new RegExp('^row_'+id+'\\d+_$', "i"); //only one sub
+ return this.id.match(re);
+ });
+
+ //First row is visible we are HIDING
+ if (childRows.filter(':first').is(':visible')===true) {
+ currentRowImages.filter("[id^=arr]").attr('src', 'ftv2pnode.png');
+ currentRowImages.filter("[id^=img]").attr('src', 'ftv2folderclosed.png');
+ rows.filter("[id^=row_"+id+"]").hide();
+ } else { //We are SHOWING
+ //All sub images
+ var childImages = childRows.find("img");
+ var childImg = childImages.filter("[id^=img]");
+ var childArr = childImages.filter("[id^=arr]");
+
+ currentRow.find("[id^=arr]").attr('src', 'ftv2mnode.png'); //open row
+ currentRow.find("[id^=img]").attr('src', 'ftv2folderopen.png'); //open row
+ childImg.attr('src','ftv2folderclosed.png'); //children closed
+ childArr.attr('src','ftv2pnode.png'); //children closed
+ childRows.show(); //show all children
+ }
+ updateStripes();
+}
+
+
+function toggleInherit(id)
+{
+ var rows = $('tr.inherit.'+id);
+ var img = $('tr.inherit_header.'+id+' img');
+ var src = $(img).attr('src');
+ if (rows.filter(':first').is(':visible')===true) {
+ rows.css('display','none');
+ $(img).attr('src',src.substring(0,src.length-8)+'closed.png');
+ } else {
+ rows.css('display','table-row'); // using show() causes jump in firefox
+ $(img).attr('src',src.substring(0,src.length-10)+'open.png');
+ }
+}
+
diff --git a/docs/RTOS/html/exampleRTX_Tutorial.html b/docs/RTOS/html/exampleRTX_Tutorial.html
new file mode 100644
index 0000000..6da8b92
--- /dev/null
+++ b/docs/RTOS/html/exampleRTX_Tutorial.html
@@ -0,0 +1,131 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>RTX Tutorial</title>
+<title>CMSIS-RTOS: RTX Tutorial</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('exampleRTX_Tutorial.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">RTX Tutorial </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The tutorial is an excerpt of Trevor Martin's book <a href="http://store.elsevier.com/product.jsp?isbn=9780080982960&amp;pagename=search" target="_blank">The Designer's Guide to the Cortex-M Processor Family</a>. It is accompanied by a Pack file that contains the example projects that are discussed in the tutorial.</p>
+<p>The tutorial is available as a Software Pack from <a href="http://www.keil.com/dd2/pack" target="_blank">http://www.keil.com/dd2/pack</a>. On the page, browse to <b>Hitex</b> and select the Pack described as "An Introduction to using CMSIS RTOS for Cortex-M Microcontrollers". Download and install the Pack which contains all example projects referenced in the <a href="CMSIS_RTOS_Tutorial.pdf" class="el">CMSIS_RTOS_Tutorial.pdf</a>. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="index.html">index</a></li><li class="navelem"><a class="el" href="rtxImplementation.html">RTX Implementation</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/files.html b/docs/RTOS/html/files.html
new file mode 100644
index 0000000..106fef9
--- /dev/null
+++ b/docs/RTOS/html/files.html
@@ -0,0 +1,135 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>File List</title>
+<title>CMSIS-RTOS: File List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('files.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">File List</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all files with brief descriptions:</div><div class="directory">
+<table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="cmsis__os_8h.html" target="_self">cmsis_os.h</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><img src="ftv2node.png" alt="o" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="cmsis__os__rtx__extensions_8h.html" target="_self">cmsis_os_rtx_extensions.h</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><img src="ftv2doc.png" alt="*" width="24" height="22" /><a class="el" href="RTX__Conf__CM_8c.html" target="_self">RTX_Conf_CM.c</a></td><td class="desc"></td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/ftv2blank.png b/docs/RTOS/html/ftv2blank.png
new file mode 100644
index 0000000..63c605b
--- /dev/null
+++ b/docs/RTOS/html/ftv2blank.png
Binary files differ
diff --git a/docs/RTOS/html/ftv2cl.png b/docs/RTOS/html/ftv2cl.png
new file mode 100644
index 0000000..132f657
--- /dev/null
+++ b/docs/RTOS/html/ftv2cl.png
Binary files differ
diff --git a/docs/RTOS/html/ftv2doc.png b/docs/RTOS/html/ftv2doc.png
new file mode 100644
index 0000000..17edabf
--- /dev/null
+++ b/docs/RTOS/html/ftv2doc.png
Binary files differ
diff --git a/docs/RTOS/html/ftv2folderclosed.png b/docs/RTOS/html/ftv2folderclosed.png
new file mode 100644
index 0000000..bb8ab35
--- /dev/null
+++ b/docs/RTOS/html/ftv2folderclosed.png
Binary files differ
diff --git a/docs/RTOS/html/ftv2folderopen.png b/docs/RTOS/html/ftv2folderopen.png
new file mode 100644
index 0000000..d6c7f67
--- /dev/null
+++ b/docs/RTOS/html/ftv2folderopen.png
Binary files differ
diff --git a/docs/RTOS/html/ftv2lastnode.png b/docs/RTOS/html/ftv2lastnode.png
new file mode 100644
index 0000000..63c605b
--- /dev/null
+++ b/docs/RTOS/html/ftv2lastnode.png
Binary files differ
diff --git a/docs/RTOS/html/ftv2link.png b/docs/RTOS/html/ftv2link.png
new file mode 100644
index 0000000..17edabf
--- /dev/null
+++ b/docs/RTOS/html/ftv2link.png
Binary files differ
diff --git a/docs/RTOS/html/ftv2mlastnode.png b/docs/RTOS/html/ftv2mlastnode.png
new file mode 100644
index 0000000..0b63f6d
--- /dev/null
+++ b/docs/RTOS/html/ftv2mlastnode.png
Binary files differ
diff --git a/docs/RTOS/html/ftv2mnode.png b/docs/RTOS/html/ftv2mnode.png
new file mode 100644
index 0000000..0b63f6d
--- /dev/null
+++ b/docs/RTOS/html/ftv2mnode.png
Binary files differ
diff --git a/docs/RTOS/html/ftv2mo.png b/docs/RTOS/html/ftv2mo.png
new file mode 100644
index 0000000..4bfb80f
--- /dev/null
+++ b/docs/RTOS/html/ftv2mo.png
Binary files differ
diff --git a/docs/RTOS/html/ftv2node.png b/docs/RTOS/html/ftv2node.png
new file mode 100644
index 0000000..63c605b
--- /dev/null
+++ b/docs/RTOS/html/ftv2node.png
Binary files differ
diff --git a/docs/RTOS/html/ftv2ns.png b/docs/RTOS/html/ftv2ns.png
new file mode 100644
index 0000000..72e3d71
--- /dev/null
+++ b/docs/RTOS/html/ftv2ns.png
Binary files differ
diff --git a/docs/RTOS/html/ftv2plastnode.png b/docs/RTOS/html/ftv2plastnode.png
new file mode 100644
index 0000000..c6ee22f
--- /dev/null
+++ b/docs/RTOS/html/ftv2plastnode.png
Binary files differ
diff --git a/docs/RTOS/html/ftv2pnode.png b/docs/RTOS/html/ftv2pnode.png
new file mode 100644
index 0000000..c6ee22f
--- /dev/null
+++ b/docs/RTOS/html/ftv2pnode.png
Binary files differ
diff --git a/docs/RTOS/html/ftv2splitbar.png b/docs/RTOS/html/ftv2splitbar.png
new file mode 100644
index 0000000..fe895f2
--- /dev/null
+++ b/docs/RTOS/html/ftv2splitbar.png
Binary files differ
diff --git a/docs/RTOS/html/ftv2vertline.png b/docs/RTOS/html/ftv2vertline.png
new file mode 100644
index 0000000..63c605b
--- /dev/null
+++ b/docs/RTOS/html/ftv2vertline.png
Binary files differ
diff --git a/docs/RTOS/html/functionOverview.html b/docs/RTOS/html/functionOverview.html
new file mode 100644
index 0000000..fb4f485
--- /dev/null
+++ b/docs/RTOS/html/functionOverview.html
@@ -0,0 +1,237 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Function Overview</title>
+<title>CMSIS-RTOS: Function Overview</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functionOverview.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Function Overview </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The following list provides a brief overview of all CMSIS-RTOS functions. Functions marked with $ are optional. A specific CMSIS-RTOS implementation may not provide all functions, but this is clearly indicated with <b>osFeatureXXXX</b> defines.</p>
+<dl class="section note"><dt>Note</dt><dd>Functions that are not supported by the <a class="el" href="rtxImplementation.html">RTX Implementation</a>, are marked with a (*).</dd></dl>
+<ul>
+<li><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html">Kernel Information and Control</a><ul>
+<li><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e">osKernelInitialize</a> : Initialize the RTOS kernel.</li>
+<li><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2">osKernelStart</a> : Start the RTOS kernel.</li>
+<li><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga3b571de44cd3094c643247a7397f86b5">osKernelRunning</a> : Query if the RTOS kernel is running.</li>
+<li><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gad0262e4688e95d1e9038afd9bcc16001">osKernelSysTick</a> : Get RTOS kernel system timer counter.</li>
+<li><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga9e0954d52722673e2031233a2ab99960">osKernelSysTickFrequency</a> : RTOS kernel system timer frequency in Hz.</li>
+<li><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gae12c190af42d7310d8006d64f4ed5a88">osKernelSysTickMicroSec</a> : Convert microseconds value to RTOS kernel system timer value.</li>
+</ul>
+</li>
+<li><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html">Thread Management</a><ul>
+<li><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> : Start execution of a thread function.</li>
+<li><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaea135bb90eb853eff39e0800b91bbeab">osThreadTerminate</a> : Stop execution of a thread function.</li>
+<li><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf13a667493c5d629a90c13e113b99233">osThreadYield</a> : Pass execution to next ready thread function.</li>
+<li><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7">osThreadGetId</a> : Get the thread identifier to reference this thread.</li>
+<li><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga0dfb90ccf1f6e4b54b9251b12d1cbc8b">osThreadSetPriority</a> : Change the execution priority of a thread function.</li>
+<li><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga4299d838978bc2aae5e4350754e6a4e9">osThreadGetPriority</a> : Obtain the current execution priority of a thread function.</li>
+</ul>
+</li>
+<li><a class="el" href="group__CMSIS__RTOS__Wait.html">Generic Wait Functions</a><ul>
+<li><a class="el" href="group__CMSIS__RTOS__Wait.html#ga02e19d5e723bfb06ba9324d625162255">osDelay</a> : Wait for a specified time.</li>
+<li><a class="el" href="technicalData.html#osWait">osWait</a> : Wait for any event of the type Signal, Message, or Mail.(*)</li>
+</ul>
+</li>
+<li><a class="el" href="group__CMSIS__RTOS__TimerMgmt.html">Timer Management</a><ul>
+<li><a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6">osTimerCreate</a> : Define attributes of the timer callback function.</li>
+<li><a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca">osTimerStart</a> : Start or restart the timer with a time value.</li>
+<li><a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga58f36b121a812936435cacc6e1e0e091">osTimerStop</a> : Stop the timer.</li>
+<li><a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga746b8043d906849bd65e3900fcb483cf">osTimerDelete</a> : Delete a timer.</li>
+</ul>
+</li>
+<li><a class="el" href="group__CMSIS__RTOS__SignalMgmt.html">Signal Events</a><ul>
+<li><a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga3de2730654589d6c3559c4b9e2825553">osSignalSet</a> : Set signal flags of a thread.</li>
+<li><a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga87283a6ebc31ce9ed42baf3ea7e4eab6">osSignalClear</a> : Reset signal flags of a thread.</li>
+<li><a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga38860acda96df47da6923348d96fc4c9">osSignalWait</a> : Suspend execution until specific signal flags are set.</li>
+</ul>
+</li>
+<li><a class="el" href="group__CMSIS__RTOS__MutexMgmt.html">Mutexes</a><ul>
+<li><a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga5c9de56e717016e39e788064e9a291cc">osMutexCreate</a> : Define and initialize a mutex.</li>
+<li><a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga5e1752b73f573ee015dbd9ef1edaba13">osMutexWait</a> : Obtain a mutex or Wait until it becomes available.</li>
+<li><a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga006e4744d741e8e132c3d5bbc295afe1">osMutexRelease</a> : Release a mutex.</li>
+<li><a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#gac27e24135185d51d18f3dabc20910219">osMutexDelete</a> : Delete a mutex.</li>
+</ul>
+</li>
+<li><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html">Semaphores</a><ul>
+<li><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb">osSemaphoreCreate</a> : Define and initialize a semaphore.</li>
+<li><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gacc15b0fc8ce1167fe43da33042e62098">osSemaphoreWait</a> : Obtain a semaphore token or Wait until it becomes available.</li>
+<li><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gab108914997c49e14d8ff1ae0d1988ca0">osSemaphoreRelease</a> : Release a semaphore token.</li>
+<li><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gabae2801ac2c096f6e8c69a264908f595">osSemaphoreDelete</a> : Delete a semaphore.</li>
+</ul>
+</li>
+<li><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html">Memory Pool</a><ul>
+<li><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a">osPoolCreate</a> : Define and initialize a fix-size memory pool.</li>
+<li><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#gaa0b2994f1a866c19e0d11e6e0d44f543">osPoolAlloc</a> : Allocate a memory block.</li>
+<li><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga9f129fcad4730fbd1048ad4fa262f36a">osPoolCAlloc</a> : Allocate a memory block and zero-set this block.</li>
+<li><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga4a861e9c469c9d0daf5721bf174f8e54">osPoolFree</a> : Return a memory block to the memory pool.</li>
+</ul>
+</li>
+<li><a class="el" href="group__CMSIS__RTOS__Message.html">Message Queue</a><ul>
+<li><a class="el" href="group__CMSIS__RTOS__Message.html#gaf3b9345cf426304d46565152bc26fb78">osMessageCreate</a> : Define and initialize a message queue.</li>
+<li><a class="el" href="group__CMSIS__RTOS__Message.html#gac0dcf462fc92de8ffaba6cc004514a6d">osMessagePut</a> : Put a message into a message queue.</li>
+<li><a class="el" href="group__CMSIS__RTOS__Message.html#ga6c6892b8f2296cca6becd57ca2d7e1ae">osMessageGet</a> : Get a message or suspend thread execution until message arrives.</li>
+</ul>
+</li>
+<li><a class="el" href="group__CMSIS__RTOS__Mail.html">Mail Queue</a><ul>
+<li><a class="el" href="group__CMSIS__RTOS__Mail.html#gaa177e7fe5820dd70d8c9e46ded131174">osMailCreate</a> : Define and initialize a mail queue with fix-size memory blocks.</li>
+<li><a class="el" href="group__CMSIS__RTOS__Mail.html#gadf5ce811bd6a56e617e902a1db6c2194">osMailAlloc</a> : Allocate a memory block.</li>
+<li><a class="el" href="group__CMSIS__RTOS__Mail.html#ga8fde74f6fe5b9e88f75cc5eb8f2124fd">osMailCAlloc</a> : Allocate a memory block and zero-set this block.</li>
+<li><a class="el" href="group__CMSIS__RTOS__Mail.html#ga485ef6f81854ebda8ffbce4832181e02">osMailPut</a> : Put a memory block into a mail queue.</li>
+<li><a class="el" href="group__CMSIS__RTOS__Mail.html#gac6ad7e6e7d6c4a80e60da22c57a42ccd">osMailGet</a> : Get a mail or suspend thread execution until mail arrives.</li>
+<li><a class="el" href="group__CMSIS__RTOS__Mail.html#ga27c1060cf21393f96b4fd1ed1c0167cc">osMailFree</a> : Return a memory block to the mail queue.</li>
+</ul>
+</li>
+<li><a class="el" href="group__RTX__Global__Functions.html">RTX Specific Functions</a><ul>
+<li><a class="el" href="group__RTX__Global__Functions.html#gafb4dc4d3dff8343a393726d2860282e4">os_idle_demon</a> : System thread running when no other thread is ready to run.</li>
+<li><a class="el" href="group__RTX__Global__Functions.html#ga3e9c57746ccbdfe90464ad50513c569e">os_suspend</a> : Suspend the RTX task scheduler.</li>
+<li><a class="el" href="group__RTX__Global__Functions.html#ga1b85a217d43e6b971ffcf24f8aae1c33">os_resume</a> : Resume the RTX task scheduler.</li>
+<li><a class="el" href="group__RTX__Global__Functions.html#ga145e7eafdd042bb522020cbb3b469d9c">os_tick_init</a> : Initialize an alternative hardware timer as RTX kernel timer.</li>
+<li><a class="el" href="group__RTX__Global__Functions.html#ga567543bf38239a91f09751686c23017b">os_tick_val</a> : Get alternative hardware timer's current value.</li>
+<li><a class="el" href="group__RTX__Global__Functions.html#gad5deddec3fea0fb31798f571afc3c692">os_tick_ovf</a> : Get alternative hardware timer's overflow flag.</li>
+<li><a class="el" href="group__RTX__Global__Functions.html#ga85dab8408f27236c7341a69feb6258c7">os_tick_irqack</a> : Acknowledge alternative hardware timer interrupt.</li>
+<li><a class="el" href="group__RTX__Global__Functions.html#ga651ae76b3acf45f80bf0e0487b51d6e6">os_error</a> : Called when a runtime error is detected.</li>
+</ul>
+</li>
+</ul>
+<h1><a class="anchor" id="CMSIS_RTOS_TimeOutValue"></a>
+Timout Value</h1>
+<p>The timeout value specifies the number of timer ticks until a timeout or time delay elapses. The value is an upper bound and depends on the actual time elapsed since the last timer tick.</p>
+<p>For a value of <b>1</b> the system waits until the next timer tick occurs. That means that the actual timeout value can be one timer tick less than the specified timeout value.</p>
+<div class="image">
+<img src="TimerValues.png" alt="TimerValues.png"/>
+<div class="caption">
+Timer Values</div></div>
+ <h1><a class="anchor" id="CMSIS_RTOS_ISR_Calls"></a>
+Calls from Interrupt Service Routines</h1>
+<p>The following CMSIS-RTOS functions can be called from threads and Interrupt Service Routines (ISR):</p>
+<ul>
+<li><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga3b571de44cd3094c643247a7397f86b5">osKernelRunning</a></li>
+<li><a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga3de2730654589d6c3559c4b9e2825553">osSignalSet</a></li>
+<li><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gab108914997c49e14d8ff1ae0d1988ca0">osSemaphoreRelease</a></li>
+<li><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#gaa0b2994f1a866c19e0d11e6e0d44f543">osPoolAlloc</a>, <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga9f129fcad4730fbd1048ad4fa262f36a">osPoolCAlloc</a>, <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga4a861e9c469c9d0daf5721bf174f8e54">osPoolFree</a></li>
+<li><a class="el" href="group__CMSIS__RTOS__Message.html#gac0dcf462fc92de8ffaba6cc004514a6d">osMessagePut</a>, <a class="el" href="group__CMSIS__RTOS__Message.html#ga6c6892b8f2296cca6becd57ca2d7e1ae">osMessageGet</a></li>
+<li><a class="el" href="group__CMSIS__RTOS__Mail.html#gadf5ce811bd6a56e617e902a1db6c2194">osMailAlloc</a>, <a class="el" href="group__CMSIS__RTOS__Mail.html#ga8fde74f6fe5b9e88f75cc5eb8f2124fd">osMailCAlloc</a>, <a class="el" href="group__CMSIS__RTOS__Mail.html#gac6ad7e6e7d6c4a80e60da22c57a42ccd">osMailGet</a>, <a class="el" href="group__CMSIS__RTOS__Mail.html#ga485ef6f81854ebda8ffbce4832181e02">osMailPut</a>, <a class="el" href="group__CMSIS__RTOS__Mail.html#ga27c1060cf21393f96b4fd1ed1c0167cc">osMailFree</a></li>
+</ul>
+<p>Functions that cannot be called from an ISR are verifying the interrupt status and return, in case they are called from an ISR context, the status code <b>osErrorISR</b>. In some implementations, this condition might be caught using the HARD FAULT vector.</p>
+<p>Some CMSIS-RTOS implementations support CMSIS-RTOS function calls from multiple ISRs at the same time. If this is impossible, the CMSIS-RTOS rejects calls by nested ISR functions with the status code <b>osErrorISRRecursive</b>. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="index.html">index</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/functions.html b/docs/RTOS/html/functions.html
new file mode 100644
index 0000000..d802f01
--- /dev/null
+++ b/docs/RTOS/html/functions.html
@@ -0,0 +1,184 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Data Fields</title>
+<title>CMSIS-RTOS: Data Fields</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+ <li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="functions.html"><span>All</span></a></li>
+ <li><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all struct and union fields with links to the structures/unions they belong to:</div><ul>
+<li>def
+: <a class="el" href="group__CMSIS__RTOS__Definitions.html#a596b6d55c3321db19239256bbe403df6">osEvent</a>
+</li>
+<li>dummy
+: <a class="el" href="cmsis__os_8h.html#a44b7a3baf02bac7ad707e8f2f5eca1ca">osMutexDef_t</a>
+, <a class="el" href="cmsis__os_8h.html#a44b7a3baf02bac7ad707e8f2f5eca1ca">osSemaphoreDef_t</a>
+</li>
+<li>instances
+: <a class="el" href="cmsis__os_8h.html#aa4c4115851a098c0b87358ab6c025603">osThreadDef_t</a>
+</li>
+<li>item_sz
+: <a class="el" href="cmsis__os_8h.html#a4c2a0c691de3365c00ecd22d8102811f">osMailQDef_t</a>
+, <a class="el" href="cmsis__os_8h.html#a4c2a0c691de3365c00ecd22d8102811f">osMessageQDef_t</a>
+, <a class="el" href="cmsis__os_8h.html#a4c2a0c691de3365c00ecd22d8102811f">osPoolDef_t</a>
+</li>
+<li>pool
+: <a class="el" href="cmsis__os_8h.html#a269c3935f8bc66db70bccdd02cb05e3c">osMailQDef_t</a>
+, <a class="el" href="cmsis__os_8h.html#a269c3935f8bc66db70bccdd02cb05e3c">osMessageQDef_t</a>
+, <a class="el" href="cmsis__os_8h.html#a269c3935f8bc66db70bccdd02cb05e3c">osPoolDef_t</a>
+</li>
+<li>pool_sz
+: <a class="el" href="cmsis__os_8h.html#ac112e786b2a234e0e45cb5bdbee53763">osPoolDef_t</a>
+</li>
+<li>pthread
+: <a class="el" href="cmsis__os_8h.html#ad3c9624ee214329fb34e71f544a6933e">osThreadDef_t</a>
+</li>
+<li>ptimer
+: <a class="el" href="cmsis__os_8h.html#a15773df83aba93f8e61f3737af5fae47">osTimerDef_t</a>
+</li>
+<li>queue_sz
+: <a class="el" href="cmsis__os_8h.html#a8a83a3a8c0aa8057b13807d2a54077e0">osMailQDef_t</a>
+, <a class="el" href="cmsis__os_8h.html#a8a83a3a8c0aa8057b13807d2a54077e0">osMessageQDef_t</a>
+</li>
+<li>stacksize
+: <a class="el" href="cmsis__os_8h.html#a950b7f81ad4711959517296e63bc79d1">osThreadDef_t</a>
+</li>
+<li>status
+: <a class="el" href="group__CMSIS__RTOS__Definitions.html#ad477a289f1f03ac45407b64268d707d3">osEvent</a>
+</li>
+<li>tpriority
+: <a class="el" href="cmsis__os_8h.html#a15da8f23c6fe684b70a73646ada685e7">osThreadDef_t</a>
+</li>
+<li>value
+: <a class="el" href="group__CMSIS__RTOS__Definitions.html#a0b9f8fd3645f01d8cb09cae82add2d7f">osEvent</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/functions_vars.html b/docs/RTOS/html/functions_vars.html
new file mode 100644
index 0000000..3bc4a26
--- /dev/null
+++ b/docs/RTOS/html/functions_vars.html
@@ -0,0 +1,184 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Data Fields - Variables</title>
+<title>CMSIS-RTOS: Data Fields - Variables</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+ <li class="current"><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="functions.html"><span>All</span></a></li>
+ <li class="current"><a href="functions_vars.html"><span>Variables</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_vars.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>def
+: <a class="el" href="group__CMSIS__RTOS__Definitions.html#a596b6d55c3321db19239256bbe403df6">osEvent</a>
+</li>
+<li>dummy
+: <a class="el" href="cmsis__os_8h.html#a44b7a3baf02bac7ad707e8f2f5eca1ca">osMutexDef_t</a>
+, <a class="el" href="cmsis__os_8h.html#a44b7a3baf02bac7ad707e8f2f5eca1ca">osSemaphoreDef_t</a>
+</li>
+<li>instances
+: <a class="el" href="cmsis__os_8h.html#aa4c4115851a098c0b87358ab6c025603">osThreadDef_t</a>
+</li>
+<li>item_sz
+: <a class="el" href="cmsis__os_8h.html#a4c2a0c691de3365c00ecd22d8102811f">osMailQDef_t</a>
+, <a class="el" href="cmsis__os_8h.html#a4c2a0c691de3365c00ecd22d8102811f">osMessageQDef_t</a>
+, <a class="el" href="cmsis__os_8h.html#a4c2a0c691de3365c00ecd22d8102811f">osPoolDef_t</a>
+</li>
+<li>pool
+: <a class="el" href="cmsis__os_8h.html#a269c3935f8bc66db70bccdd02cb05e3c">osMailQDef_t</a>
+, <a class="el" href="cmsis__os_8h.html#a269c3935f8bc66db70bccdd02cb05e3c">osMessageQDef_t</a>
+, <a class="el" href="cmsis__os_8h.html#a269c3935f8bc66db70bccdd02cb05e3c">osPoolDef_t</a>
+</li>
+<li>pool_sz
+: <a class="el" href="cmsis__os_8h.html#ac112e786b2a234e0e45cb5bdbee53763">osPoolDef_t</a>
+</li>
+<li>pthread
+: <a class="el" href="cmsis__os_8h.html#ad3c9624ee214329fb34e71f544a6933e">osThreadDef_t</a>
+</li>
+<li>ptimer
+: <a class="el" href="cmsis__os_8h.html#a15773df83aba93f8e61f3737af5fae47">osTimerDef_t</a>
+</li>
+<li>queue_sz
+: <a class="el" href="cmsis__os_8h.html#a8a83a3a8c0aa8057b13807d2a54077e0">osMailQDef_t</a>
+, <a class="el" href="cmsis__os_8h.html#a8a83a3a8c0aa8057b13807d2a54077e0">osMessageQDef_t</a>
+</li>
+<li>stacksize
+: <a class="el" href="cmsis__os_8h.html#a950b7f81ad4711959517296e63bc79d1">osThreadDef_t</a>
+</li>
+<li>status
+: <a class="el" href="group__CMSIS__RTOS__Definitions.html#ad477a289f1f03ac45407b64268d707d3">osEvent</a>
+</li>
+<li>tpriority
+: <a class="el" href="cmsis__os_8h.html#a15da8f23c6fe684b70a73646ada685e7">osThreadDef_t</a>
+</li>
+<li>value
+: <a class="el" href="group__CMSIS__RTOS__Definitions.html#a0b9f8fd3645f01d8cb09cae82add2d7f">osEvent</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/genRTOSIF.html b/docs/RTOS/html/genRTOSIF.html
new file mode 100644
index 0000000..be4fa94
--- /dev/null
+++ b/docs/RTOS/html/genRTOSIF.html
@@ -0,0 +1,175 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Generic RTOS Interface</title>
+<title>CMSIS-RTOS: Generic RTOS Interface</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('genRTOSIF.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Generic RTOS Interface </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The CMSIS-RTOS API is a generic RTOS interface for Arm&reg; Cortex&reg;-M processor-based devices. CMSIS-RTOS provides a standardized API for software components that require RTOS functionality and gives therefore serious benefits to the users and the software industry.</p>
+<ul>
+<li>CMSIS-RTOS provides basic features that are required in many applications or technologies such as UML or Java (JVM).</li>
+<li>The unified feature set of the CMSIS-RTOS API simplifies sharing of software components and reduces learning efforts.</li>
+<li>Middleware components that use the CMSIS-RTOS API are RTOS agnostic. CMSIS-RTOS compliant middleware is easier to adapt.</li>
+<li>Standard project templates (such as motor control) of the CMSIS-RTOS API may be shipped with freely available CMSIS-RTOS implementations.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>The CMSIS-RTOS API defines a minimum feature set. Implementations with extended features may be provided by RTOS vendors.</dd></dl>
+<div class="image">
+<img src="API_Structure.png" alt="API_Structure.png"/>
+<div class="caption">
+CMSIS-RTOS API Structure</div></div>
+<p> A typical CMSIS-RTOS API implementation interfaces to an existing real-time Kernel. The CMSIS-RTOS API provides the following attributes and functionalities:</p>
+<ul>
+<li>Function names, identifiers, and parameters are descriptive and easy to understand. The functions are powerful and flexible which reduces the number of functions exposed to the user.</li>
+<li><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html">Thread Management</a> allows you to define, create, and control threads.</li>
+<li>Interrupt Service Routines (ISR) can <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">call some CMSIS-RTOS functions</a>. When a CMSIS-RTOS function cannot be called from ISR context, it rejects the invocation.</li>
+<li>Three different thread event types support communication between multiple threads and/or ISR:<ul>
+<li><b>Signal:</b> is a flag that may be used to indicate specific conditions to a thread. Signals can be modified in an ISR or set from other threads.</li>
+<li><b>Message:</b> is a 32-bit value that can be sent to a thread or an ISR. Messages are buffered in a queue. The message type and queue size is defined in a descriptor.</li>
+<li><b>Mail:</b> is a fixed-size memory block that can be sent to a thread or an ISR. Mails are buffered in a queue and memory allocation is provided. The mail type and queue size is defined in a descriptor.</li>
+</ul>
+</li>
+<li><a class="el" href="group__CMSIS__RTOS__MutexMgmt.html">Mutexes</a> and <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html">Semaphores</a> are incorporated.</li>
+<li>CPU time can be schedule with the following functionalities:<ul>
+<li>A <em>timeout</em> parameter is incorporated in many CMSIS-RTOS functions to avoid system lockup. When a timeout is specified, the system waits until a resource is available or an event occurs. While waiting, other threads are scheduled.</li>
+<li>The <a class="el" href="group__CMSIS__RTOS__Wait.html#ga02e19d5e723bfb06ba9324d625162255">osDelay</a> function puts a thread into the state <b>WAITING</b> for a specified period of time.</li>
+<li>The generic <a class="el" href="technicalData.html#osWait">osWait</a> function waits for events that are assigned to a thread.</li>
+<li>The <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf13a667493c5d629a90c13e113b99233">osThreadYield</a> provides co-operative thread switching and passes execution to another thread of the same priority.</li>
+</ul>
+</li>
+</ul>
+<p>The CMSIS-RTOS API is designed to optionally incorporate multi-processor systems and/or access protection via the Cortex-M Memory Protection Unit (MPU).</p>
+<p>In some RTOS implementations threads may execute on different processors and <b>Mail</b> and <b>Message</b> queues can therefore reside in shared memory resources.</p>
+<p>The CMSIS-RTOS API encourages the software industry to evolve existing RTOS implementations. Kernel objects are defined and accessed using macros. This allows differentiation. RTOS implementations can be different and optimized in various aspects towards the Cortex-M processors. Optional features may be for example</p>
+<ul>
+<li>Generic <b>wait</b> function; i.e. with support of time intervals.</li>
+<li>Support of the Cortex-M Memory Protection Unit (MPU).</li>
+<li>Zero-copy mail queue.</li>
+<li>Support of multi-processor systems.</li>
+<li>Support of a DMA controller.</li>
+<li>Deterministic context switching.</li>
+<li>Round-robin context switching.</li>
+<li>Deadlock avoidance, for example with priority inversion.</li>
+<li>Zero interrupt latency by using the Cortex-M3/M4 instructions LDREX and STREX. </li>
+</ul>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="index.html">index</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/globals.html b/docs/RTOS/html/globals.html
new file mode 100644
index 0000000..d272808
--- /dev/null
+++ b/docs/RTOS/html/globals.html
@@ -0,0 +1,563 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Globals</title>
+<title>CMSIS-RTOS: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li class="current"><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="#index_o"><span>o</span></a></li>
+ <li class="current"><a href="#index_s"><span>s</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:</div>
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>OS_CLOCK
+: <a class="el" href="RTX__Conf__CM_8c.html#adff23afdf544a322a38314870f8848b9">RTX_Conf_CM.c</a>
+</li>
+<li>os_error()
+: <a class="el" href="group__RTX__Global__Functions.html#ga651ae76b3acf45f80bf0e0487b51d6e6">cmsis_os_rtx_extensions.h</a>
+, <a class="el" href="group__RTX__Global__Functions.html#ga651ae76b3acf45f80bf0e0487b51d6e6">RTX_Conf_CM.c</a>
+</li>
+<li>OS_ERROR_FIFO_OVF
+: <a class="el" href="RTX__Conf__CM_8c.html#a075d54df14c85a6afe32b7f5c99c9c29">RTX_Conf_CM.c</a>
+</li>
+<li>OS_ERROR_MBX_OVF
+: <a class="el" href="RTX__Conf__CM_8c.html#ab715d7d66c341c067ef0a97b55db8a10">RTX_Conf_CM.c</a>
+</li>
+<li>OS_ERROR_STACK_OVF
+: <a class="el" href="RTX__Conf__CM_8c.html#abf8311a7a239ec56c6d725f926ba766d">RTX_Conf_CM.c</a>
+</li>
+<li>OS_ERROR_TIMER_OVF
+: <a class="el" href="RTX__Conf__CM_8c.html#a79d7e388d951f11bd0dabd13f722cea8">RTX_Conf_CM.c</a>
+</li>
+<li>OS_FIFOSZ
+: <a class="el" href="RTX__Conf__CM_8c.html#a93c8e36d441750016f9f72e102f68d66">RTX_Conf_CM.c</a>
+</li>
+<li>os_idle_demon()
+: <a class="el" href="group__RTX__Global__Functions.html#gafb4dc4d3dff8343a393726d2860282e4">cmsis_os_rtx_extensions.h</a>
+, <a class="el" href="group__RTX__Global__Functions.html#gafb4dc4d3dff8343a393726d2860282e4">RTX_Conf_CM.c</a>
+</li>
+<li>OS_MAINSTKSIZE
+: <a class="el" href="RTX__Conf__CM_8c.html#a95362a96f44d4314f148ae24edd52f7c">RTX_Conf_CM.c</a>
+</li>
+<li>OS_MUTEXCNT
+: <a class="el" href="RTX__Conf__CM_8c.html#ad11cf133eea28b601f9a63cd9af9b786">RTX_Conf_CM.c</a>
+</li>
+<li>OS_PRIVCNT
+: <a class="el" href="RTX__Conf__CM_8c.html#a7cfcbf2c4f9d0a63424a2a48592955b1">RTX_Conf_CM.c</a>
+</li>
+<li>OS_PRIVSTKSIZE
+: <a class="el" href="RTX__Conf__CM_8c.html#a6e0d30986e4ae0df44f449a4b3b0fbec">RTX_Conf_CM.c</a>
+</li>
+<li>os_pthread
+: <a class="el" href="cmsis__os_8h.html#aee631e5ea1b700fc35695cc7bc574cf7">cmsis_os.h</a>
+</li>
+<li>os_ptimer
+: <a class="el" href="cmsis__os_8h.html#aa2d85e49bde9f6951ff3545cd323f065">cmsis_os.h</a>
+</li>
+<li>os_resume()
+: <a class="el" href="group__RTX__Global__Functions.html#ga1b85a217d43e6b971ffcf24f8aae1c33">cmsis_os_rtx_extensions.h</a>
+</li>
+<li>OS_ROBIN
+: <a class="el" href="RTX__Conf__CM_8c.html#ae34f3058383d9fa9280bbf595618ab0a">RTX_Conf_CM.c</a>
+</li>
+<li>OS_ROBINTOUT
+: <a class="el" href="RTX__Conf__CM_8c.html#ad89fdd7232cfba74d400080b6bcc0012">RTX_Conf_CM.c</a>
+</li>
+<li>OS_RUNPRIV
+: <a class="el" href="RTX__Conf__CM_8c.html#a786924d58be54e943a7e73458cebc51b">RTX_Conf_CM.c</a>
+</li>
+<li>os_status_reserved
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eac7a77f5fe18a15a357790c36a4aca1b1">cmsis_os.h</a>
+</li>
+<li>OS_STKCHECK
+: <a class="el" href="RTX__Conf__CM_8c.html#a6ef9e00396f881f0fa9ac877150e5962">RTX_Conf_CM.c</a>
+</li>
+<li>OS_STKINIT
+: <a class="el" href="RTX__Conf__CM_8c.html#ac820623da739e4219ee86f15bdcd9752">RTX_Conf_CM.c</a>
+</li>
+<li>OS_STKSIZE
+: <a class="el" href="RTX__Conf__CM_8c.html#a16495c133349f3e7c27ac933857c1a8c">RTX_Conf_CM.c</a>
+</li>
+<li>os_suspend()
+: <a class="el" href="group__RTX__Global__Functions.html#ga3e9c57746ccbdfe90464ad50513c569e">cmsis_os_rtx_extensions.h</a>
+</li>
+<li>OS_TASKCNT
+: <a class="el" href="RTX__Conf__CM_8c.html#a309353d912327b7f4a2300711ee1b349">RTX_Conf_CM.c</a>
+</li>
+<li>OS_TICK
+: <a class="el" href="RTX__Conf__CM_8c.html#ab6b10bd6d60e95ab28c775757f6bfbcc">RTX_Conf_CM.c</a>
+</li>
+<li>os_tick_init()
+: <a class="el" href="group__RTX__Global__Functions.html#ga145e7eafdd042bb522020cbb3b469d9c">RTX_Conf_CM.c</a>
+</li>
+<li>os_tick_irqack()
+: <a class="el" href="group__RTX__Global__Functions.html#ga85dab8408f27236c7341a69feb6258c7">RTX_Conf_CM.c</a>
+</li>
+<li>os_tick_ovf()
+: <a class="el" href="group__RTX__Global__Functions.html#gad5deddec3fea0fb31798f571afc3c692">RTX_Conf_CM.c</a>
+</li>
+<li>os_tick_val()
+: <a class="el" href="group__RTX__Global__Functions.html#ga567543bf38239a91f09751686c23017b">RTX_Conf_CM.c</a>
+</li>
+<li>os_timer_type
+: <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9">cmsis_os.txt</a>
+, <a class="el" href="cmsis__os_8h.html#adac860eb9e1b4b0619271e6595ed83d9">cmsis_os.h</a>
+</li>
+<li>OS_TIMERCBQS
+: <a class="el" href="RTX__Conf__CM_8c.html#a29701cff84a42494279367ad018f252d">RTX_Conf_CM.c</a>
+</li>
+<li>OS_TIMERPRIO
+: <a class="el" href="RTX__Conf__CM_8c.html#a90af874f1df4dfb0f8821cc2d860dae6">RTX_Conf_CM.c</a>
+</li>
+<li>OS_TIMERS
+: <a class="el" href="RTX__Conf__CM_8c.html#a23b0f1095632e58b5ac0d8f7dcfdfded">RTX_Conf_CM.c</a>
+</li>
+<li>OS_TIMERSTKSZ
+: <a class="el" href="RTX__Conf__CM_8c.html#a76d1b01799981a753fc528e600015627">RTX_Conf_CM.c</a>
+</li>
+<li>OS_TRV
+: <a class="el" href="RTX__Conf__CM_8c.html#a9d55a070ddb219165bd4287f08318d51">RTX_Conf_CM.c</a>
+</li>
+<li>osCMSIS
+: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga702196bacccbb978620c736b209387f1">cmsis_os.h</a>
+</li>
+<li>osCMSIS_KERNEL
+: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gab78dce646fabec479c5f34bc5175b7de">cmsis_os.h</a>
+</li>
+<li>osDelay()
+: <a class="el" href="group__CMSIS__RTOS__Wait.html#ga02e19d5e723bfb06ba9324d625162255">cmsis_os.h</a>
+</li>
+<li>osErrorISR
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea21635bdc492d3094fe83027fa4a30e2f">cmsis_os.h</a>
+</li>
+<li>osErrorISRRecursive
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eaf6552310a817452aedfcd453f2805d65">cmsis_os.h</a>
+</li>
+<li>osErrorNoMemory
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eaf1fac0240218e51eb30a13da2f8aae81">cmsis_os.h</a>
+</li>
+<li>osErrorOS
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea5fde24ff588ec5ab9cb8314bade26fbc">cmsis_os.h</a>
+</li>
+<li>osErrorParameter
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eac24adca6a5d072c9f01c32178ba0d109">cmsis_os.h</a>
+</li>
+<li>osErrorPriority
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eab7dda0ef504817659334cbfd650ae56f">cmsis_os.h</a>
+</li>
+<li>osErrorResource
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea8fc5801e8b0482bdf22ad63a77f0155d">cmsis_os.h</a>
+</li>
+<li>osErrorTimeoutResource
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea314d24a49003f09459035db0dd7c9467">cmsis_os.h</a>
+</li>
+<li>osErrorValue
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea4672c8a0c0f6bb1d7981da4602e8e9ee">cmsis_os.h</a>
+</li>
+<li>osEventMail
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea15b12e42b42b53f35fb8a2724ad02926">cmsis_os.h</a>
+</li>
+<li>osEventMessage
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ead604f3673359dd4ac643b16dc5a2c342">cmsis_os.h</a>
+</li>
+<li>osEventSignal
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea5df7e9643aa8a2f5f3a6f6ec59758518">cmsis_os.h</a>
+</li>
+<li>osEventTimeout
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea78f477732375c0e1fca814e369618177">cmsis_os.h</a>
+</li>
+<li>osFeature_MailQ
+: <a class="el" href="group__CMSIS__RTOS__Mail.html#gaceb2e0071ce160d153047f2eac1aca8e">cmsis_os.h</a>
+</li>
+<li>osFeature_MainThread
+: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga22f7d235bc9f783933bd5a981fd79696">cmsis_os.h</a>
+</li>
+<li>osFeature_MessageQ
+: <a class="el" href="group__CMSIS__RTOS__Message.html#ga479a6561f859e3d4818e25708593d203">cmsis_os.h</a>
+</li>
+<li>osFeature_Pool
+: <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#gadd84b683001de327894851b428587caa">cmsis_os.h</a>
+</li>
+<li>osFeature_Semaphore
+: <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga7da4c7bfb340779c9fc7b321f5ab3e3a">cmsis_os.h</a>
+</li>
+<li>osFeature_Signals
+: <a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga01edde265710d883b6e237d34a6ef4a6">cmsis_os.h</a>
+</li>
+<li>osFeature_SysTick
+: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gae554ec16c23c5b7d65affade2a351891">cmsis_os.h</a>
+</li>
+<li>osFeature_Wait
+: <a class="el" href="group__CMSIS__RTOS__Wait.html#ga6c97d38879ae86491628f6e647639bad">cmsis_os.h</a>
+</li>
+<li>osKernelInitialize()
+: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e">cmsis_os.h</a>
+</li>
+<li>osKernelRunning()
+: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga3b571de44cd3094c643247a7397f86b5">cmsis_os.h</a>
+</li>
+<li>osKernelStart()
+: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2">cmsis_os.h</a>
+</li>
+<li>osKernelSystemId
+: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga47cf03658f01cdffca688e9096b58289">cmsis_os.h</a>
+</li>
+<li>osKernelSysTick()
+: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gad0262e4688e95d1e9038afd9bcc16001">cmsis_os.h</a>
+</li>
+<li>osKernelSysTickFrequency
+: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga9e0954d52722673e2031233a2ab99960">cmsis_os.h</a>
+</li>
+<li>osKernelSysTickMicroSec
+: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gae12c190af42d7310d8006d64f4ed5a88">cmsis_os.h</a>
+</li>
+<li>osMailAlloc()
+: <a class="el" href="group__CMSIS__RTOS__Mail.html#gadf5ce811bd6a56e617e902a1db6c2194">cmsis_os.h</a>
+</li>
+<li>osMailCAlloc()
+: <a class="el" href="group__CMSIS__RTOS__Mail.html#ga8fde74f6fe5b9e88f75cc5eb8f2124fd">cmsis_os.h</a>
+</li>
+<li>osMailCreate()
+: <a class="el" href="group__CMSIS__RTOS__Mail.html#gaa177e7fe5820dd70d8c9e46ded131174">cmsis_os.h</a>
+</li>
+<li>osMailFree()
+: <a class="el" href="group__CMSIS__RTOS__Mail.html#ga27c1060cf21393f96b4fd1ed1c0167cc">cmsis_os.h</a>
+</li>
+<li>osMailGet()
+: <a class="el" href="group__CMSIS__RTOS__Mail.html#gac6ad7e6e7d6c4a80e60da22c57a42ccd">cmsis_os.h</a>
+</li>
+<li>osMailPut()
+: <a class="el" href="group__CMSIS__RTOS__Mail.html#ga485ef6f81854ebda8ffbce4832181e02">cmsis_os.h</a>
+</li>
+<li>osMailQ
+: <a class="el" href="group__CMSIS__RTOS__Mail.html#gad2deeb66d51ade54e63d8f87ff2ec9d2">cmsis_os.h</a>
+</li>
+<li>osMailQDef
+: <a class="el" href="group__CMSIS__RTOS__Mail.html#ga58d712b16c0c6668059f509386d1e55b">cmsis_os.h</a>
+</li>
+<li>osMailQId
+: <a class="el" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">cmsis_os.h</a>
+</li>
+<li>osMessageCreate()
+: <a class="el" href="group__CMSIS__RTOS__Message.html#gaf3b9345cf426304d46565152bc26fb78">cmsis_os.h</a>
+</li>
+<li>osMessageGet()
+: <a class="el" href="group__CMSIS__RTOS__Message.html#ga6c6892b8f2296cca6becd57ca2d7e1ae">cmsis_os.h</a>
+</li>
+<li>osMessagePut()
+: <a class="el" href="group__CMSIS__RTOS__Message.html#gac0dcf462fc92de8ffaba6cc004514a6d">cmsis_os.h</a>
+</li>
+<li>osMessageQ
+: <a class="el" href="group__CMSIS__RTOS__Message.html#ga2d446a0b4bb90bf05d6f92eedeaabc97">cmsis_os.h</a>
+</li>
+<li>osMessageQDef
+: <a class="el" href="group__CMSIS__RTOS__Message.html#gac9a6a6276c12609793e7701afcc82326">cmsis_os.h</a>
+</li>
+<li>osMessageQId
+: <a class="el" href="cmsis__os_8h.html#ad9ec70c32c6c521970636b521e12d17f">cmsis_os.h</a>
+</li>
+<li>osMutex
+: <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga1122a86faa64b4a0880c76cf68d0c934">cmsis_os.h</a>
+</li>
+<li>osMutexCreate()
+: <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga5c9de56e717016e39e788064e9a291cc">cmsis_os.h</a>
+</li>
+<li>osMutexDef
+: <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga9b522438489d7c402c95332b58bc94f3">cmsis_os.h</a>
+</li>
+<li>osMutexDelete()
+: <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#gac27e24135185d51d18f3dabc20910219">cmsis_os.h</a>
+</li>
+<li>osMutexId
+: <a class="el" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">cmsis_os.h</a>
+</li>
+<li>osMutexRelease()
+: <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga006e4744d741e8e132c3d5bbc295afe1">cmsis_os.h</a>
+</li>
+<li>osMutexWait()
+: <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga5e1752b73f573ee015dbd9ef1edaba13">cmsis_os.h</a>
+</li>
+<li>osOK
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f">cmsis_os.h</a>
+</li>
+<li>osPool
+: <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga5f0b204a82327533d420210125c90697">cmsis_os.h</a>
+</li>
+<li>osPoolAlloc()
+: <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#gaa0b2994f1a866c19e0d11e6e0d44f543">cmsis_os.h</a>
+</li>
+<li>osPoolCAlloc()
+: <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga9f129fcad4730fbd1048ad4fa262f36a">cmsis_os.h</a>
+</li>
+<li>osPoolCreate()
+: <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a">cmsis_os.h</a>
+</li>
+<li>osPoolDef
+: <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga87b471d4fe2d5dbd0040708edd52771b">cmsis_os.h</a>
+</li>
+<li>osPoolFree()
+: <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga4a861e9c469c9d0daf5721bf174f8e54">cmsis_os.h</a>
+</li>
+<li>osPoolId
+: <a class="el" href="cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686">cmsis_os.h</a>
+</li>
+<li>osPriority
+: <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a">cmsis_os.h</a>
+</li>
+<li>osPriorityAboveNormal
+: <a class="el" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa17b36cd9cd38652c2bc6d4803990674b">cmsis_os.h</a>
+</li>
+<li>osPriorityBelowNormal
+: <a class="el" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa193b650117c209b4a203954542bcc3e6">cmsis_os.h</a>
+</li>
+<li>osPriorityError
+: <a class="el" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aae35f5e2f9c64ad346822521b643bdea4">cmsis_os.h</a>
+</li>
+<li>osPriorityHigh
+: <a class="el" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa914433934143a9ba767e59577c56e6c2">cmsis_os.h</a>
+</li>
+<li>osPriorityIdle
+: <a class="el" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa549e79a43ff4f8b2b31afb613f5caa81">cmsis_os.h</a>
+</li>
+<li>osPriorityLow
+: <a class="el" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa61cb822239ac8f66dfbdc7291598a3d4">cmsis_os.h</a>
+</li>
+<li>osPriorityNormal
+: <a class="el" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1">cmsis_os.h</a>
+</li>
+<li>osPriorityRealtime
+: <a class="el" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa1485dec3702434a1ec3cb74c7a17a4af">cmsis_os.h</a>
+</li>
+<li>osSemaphore
+: <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga03761ee8d2c3cd4544e18364ab301dac">cmsis_os.h</a>
+</li>
+<li>osSemaphoreCreate()
+: <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb">cmsis_os.h</a>
+</li>
+<li>osSemaphoreDef
+: <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga9e66fe361749071e5ab87826c43c2f1b">cmsis_os.h</a>
+</li>
+<li>osSemaphoreDelete()
+: <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gabae2801ac2c096f6e8c69a264908f595">cmsis_os.h</a>
+</li>
+<li>osSemaphoreId
+: <a class="el" href="cmsis__os_8h.html#aa8968896c84094aa973683c84fa06f84">cmsis_os.h</a>
+</li>
+<li>osSemaphoreRelease()
+: <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gab108914997c49e14d8ff1ae0d1988ca0">cmsis_os.h</a>
+</li>
+<li>osSemaphoreWait()
+: <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gacc15b0fc8ce1167fe43da33042e62098">cmsis_os.h</a>
+</li>
+<li>osSignalClear()
+: <a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga87283a6ebc31ce9ed42baf3ea7e4eab6">cmsis_os.h</a>
+</li>
+<li>osSignalSet()
+: <a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga3de2730654589d6c3559c4b9e2825553">cmsis_os.h</a>
+</li>
+<li>osSignalWait()
+: <a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga38860acda96df47da6923348d96fc4c9">cmsis_os.h</a>
+</li>
+<li>osStatus
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">cmsis_os.txt</a>
+, <a class="el" href="cmsis__os_8h.html#ae2e091fefc4c767117727bd5aba4d99e">cmsis_os.h</a>
+</li>
+<li>osThread
+: <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">cmsis_os.h</a>
+</li>
+<li>osThreadCreate()
+: <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">cmsis_os.h</a>
+</li>
+<li>osThreadDef
+: <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">cmsis_os.h</a>
+</li>
+<li>osThreadGetId()
+: <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7">cmsis_os.h</a>
+</li>
+<li>osThreadGetPriority()
+: <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga4299d838978bc2aae5e4350754e6a4e9">cmsis_os.h</a>
+</li>
+<li>osThreadId
+: <a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">cmsis_os.h</a>
+</li>
+<li>osThreadSetPriority()
+: <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga0dfb90ccf1f6e4b54b9251b12d1cbc8b">cmsis_os.h</a>
+</li>
+<li>osThreadTerminate()
+: <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaea135bb90eb853eff39e0800b91bbeab">cmsis_os.h</a>
+</li>
+<li>osThreadYield()
+: <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf13a667493c5d629a90c13e113b99233">cmsis_os.h</a>
+</li>
+<li>osTimer
+: <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678">cmsis_os.h</a>
+</li>
+<li>osTimerCreate()
+: <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6">cmsis_os.h</a>
+</li>
+<li>osTimerDef
+: <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga1c720627e08d1cc1afcad44e799ed492">cmsis_os.h</a>
+</li>
+<li>osTimerDelete()
+: <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga746b8043d906849bd65e3900fcb483cf">cmsis_os.h</a>
+</li>
+<li>osTimerId
+: <a class="el" href="cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7">cmsis_os.h</a>
+</li>
+<li>osTimerOnce
+: <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ad21712f8df5f97069c82dc9eec37b951">cmsis_os.h</a>
+</li>
+<li>osTimerPeriodic
+: <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788">cmsis_os.h</a>
+</li>
+<li>osTimerStart()
+: <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca">cmsis_os.h</a>
+</li>
+<li>osTimerStop()
+: <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga58f36b121a812936435cacc6e1e0e091">cmsis_os.h</a>
+</li>
+<li>osWait()
+: <a class="el" href="group__CMSIS__RTOS__Wait.html#ga8470c8aaedfde524a44e22e5b2328285">cmsis_os.h</a>
+</li>
+<li>osWaitForever
+: <a class="el" href="cmsis__os_8h.html#a9eb9a7a797a42e4b55eb171ecc609ddb">cmsis_os.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>svcThreadGetId()
+: <a class="el" href="RTX__Conf__CM_8c.html#a395cca131b7746fc43c104a3485b77f7">RTX_Conf_CM.c</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/globals_defs.html b/docs/RTOS/html/globals_defs.html
new file mode 100644
index 0000000..495788a
--- /dev/null
+++ b/docs/RTOS/html/globals_defs.html
@@ -0,0 +1,296 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Globals</title>
+<title>CMSIS-RTOS: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li class="current"><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li class="current"><a href="#index_o"><span>o</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_defs.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>OS_CLOCK
+: <a class="el" href="RTX__Conf__CM_8c.html#adff23afdf544a322a38314870f8848b9">RTX_Conf_CM.c</a>
+</li>
+<li>OS_ERROR_FIFO_OVF
+: <a class="el" href="RTX__Conf__CM_8c.html#a075d54df14c85a6afe32b7f5c99c9c29">RTX_Conf_CM.c</a>
+</li>
+<li>OS_ERROR_MBX_OVF
+: <a class="el" href="RTX__Conf__CM_8c.html#ab715d7d66c341c067ef0a97b55db8a10">RTX_Conf_CM.c</a>
+</li>
+<li>OS_ERROR_STACK_OVF
+: <a class="el" href="RTX__Conf__CM_8c.html#abf8311a7a239ec56c6d725f926ba766d">RTX_Conf_CM.c</a>
+</li>
+<li>OS_ERROR_TIMER_OVF
+: <a class="el" href="RTX__Conf__CM_8c.html#a79d7e388d951f11bd0dabd13f722cea8">RTX_Conf_CM.c</a>
+</li>
+<li>OS_FIFOSZ
+: <a class="el" href="RTX__Conf__CM_8c.html#a93c8e36d441750016f9f72e102f68d66">RTX_Conf_CM.c</a>
+</li>
+<li>OS_MAINSTKSIZE
+: <a class="el" href="RTX__Conf__CM_8c.html#a95362a96f44d4314f148ae24edd52f7c">RTX_Conf_CM.c</a>
+</li>
+<li>OS_MUTEXCNT
+: <a class="el" href="RTX__Conf__CM_8c.html#ad11cf133eea28b601f9a63cd9af9b786">RTX_Conf_CM.c</a>
+</li>
+<li>OS_PRIVCNT
+: <a class="el" href="RTX__Conf__CM_8c.html#a7cfcbf2c4f9d0a63424a2a48592955b1">RTX_Conf_CM.c</a>
+</li>
+<li>OS_PRIVSTKSIZE
+: <a class="el" href="RTX__Conf__CM_8c.html#a6e0d30986e4ae0df44f449a4b3b0fbec">RTX_Conf_CM.c</a>
+</li>
+<li>OS_ROBIN
+: <a class="el" href="RTX__Conf__CM_8c.html#ae34f3058383d9fa9280bbf595618ab0a">RTX_Conf_CM.c</a>
+</li>
+<li>OS_ROBINTOUT
+: <a class="el" href="RTX__Conf__CM_8c.html#ad89fdd7232cfba74d400080b6bcc0012">RTX_Conf_CM.c</a>
+</li>
+<li>OS_RUNPRIV
+: <a class="el" href="RTX__Conf__CM_8c.html#a786924d58be54e943a7e73458cebc51b">RTX_Conf_CM.c</a>
+</li>
+<li>OS_STKCHECK
+: <a class="el" href="RTX__Conf__CM_8c.html#a6ef9e00396f881f0fa9ac877150e5962">RTX_Conf_CM.c</a>
+</li>
+<li>OS_STKINIT
+: <a class="el" href="RTX__Conf__CM_8c.html#ac820623da739e4219ee86f15bdcd9752">RTX_Conf_CM.c</a>
+</li>
+<li>OS_STKSIZE
+: <a class="el" href="RTX__Conf__CM_8c.html#a16495c133349f3e7c27ac933857c1a8c">RTX_Conf_CM.c</a>
+</li>
+<li>OS_TASKCNT
+: <a class="el" href="RTX__Conf__CM_8c.html#a309353d912327b7f4a2300711ee1b349">RTX_Conf_CM.c</a>
+</li>
+<li>OS_TICK
+: <a class="el" href="RTX__Conf__CM_8c.html#ab6b10bd6d60e95ab28c775757f6bfbcc">RTX_Conf_CM.c</a>
+</li>
+<li>OS_TIMERCBQS
+: <a class="el" href="RTX__Conf__CM_8c.html#a29701cff84a42494279367ad018f252d">RTX_Conf_CM.c</a>
+</li>
+<li>OS_TIMERPRIO
+: <a class="el" href="RTX__Conf__CM_8c.html#a90af874f1df4dfb0f8821cc2d860dae6">RTX_Conf_CM.c</a>
+</li>
+<li>OS_TIMERS
+: <a class="el" href="RTX__Conf__CM_8c.html#a23b0f1095632e58b5ac0d8f7dcfdfded">RTX_Conf_CM.c</a>
+</li>
+<li>OS_TIMERSTKSZ
+: <a class="el" href="RTX__Conf__CM_8c.html#a76d1b01799981a753fc528e600015627">RTX_Conf_CM.c</a>
+</li>
+<li>OS_TRV
+: <a class="el" href="RTX__Conf__CM_8c.html#a9d55a070ddb219165bd4287f08318d51">RTX_Conf_CM.c</a>
+</li>
+<li>osCMSIS
+: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga702196bacccbb978620c736b209387f1">cmsis_os.h</a>
+</li>
+<li>osCMSIS_KERNEL
+: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gab78dce646fabec479c5f34bc5175b7de">cmsis_os.h</a>
+</li>
+<li>osFeature_MailQ
+: <a class="el" href="group__CMSIS__RTOS__Mail.html#gaceb2e0071ce160d153047f2eac1aca8e">cmsis_os.h</a>
+</li>
+<li>osFeature_MainThread
+: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga22f7d235bc9f783933bd5a981fd79696">cmsis_os.h</a>
+</li>
+<li>osFeature_MessageQ
+: <a class="el" href="group__CMSIS__RTOS__Message.html#ga479a6561f859e3d4818e25708593d203">cmsis_os.h</a>
+</li>
+<li>osFeature_Pool
+: <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#gadd84b683001de327894851b428587caa">cmsis_os.h</a>
+</li>
+<li>osFeature_Semaphore
+: <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga7da4c7bfb340779c9fc7b321f5ab3e3a">cmsis_os.h</a>
+</li>
+<li>osFeature_Signals
+: <a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga01edde265710d883b6e237d34a6ef4a6">cmsis_os.h</a>
+</li>
+<li>osFeature_SysTick
+: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gae554ec16c23c5b7d65affade2a351891">cmsis_os.h</a>
+</li>
+<li>osFeature_Wait
+: <a class="el" href="group__CMSIS__RTOS__Wait.html#ga6c97d38879ae86491628f6e647639bad">cmsis_os.h</a>
+</li>
+<li>osKernelSystemId
+: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga47cf03658f01cdffca688e9096b58289">cmsis_os.h</a>
+</li>
+<li>osKernelSysTickFrequency
+: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga9e0954d52722673e2031233a2ab99960">cmsis_os.h</a>
+</li>
+<li>osKernelSysTickMicroSec
+: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gae12c190af42d7310d8006d64f4ed5a88">cmsis_os.h</a>
+</li>
+<li>osMailQ
+: <a class="el" href="group__CMSIS__RTOS__Mail.html#gad2deeb66d51ade54e63d8f87ff2ec9d2">cmsis_os.h</a>
+</li>
+<li>osMailQDef
+: <a class="el" href="group__CMSIS__RTOS__Mail.html#ga58d712b16c0c6668059f509386d1e55b">cmsis_os.h</a>
+</li>
+<li>osMessageQ
+: <a class="el" href="group__CMSIS__RTOS__Message.html#ga2d446a0b4bb90bf05d6f92eedeaabc97">cmsis_os.h</a>
+</li>
+<li>osMessageQDef
+: <a class="el" href="group__CMSIS__RTOS__Message.html#gac9a6a6276c12609793e7701afcc82326">cmsis_os.h</a>
+</li>
+<li>osMutex
+: <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga1122a86faa64b4a0880c76cf68d0c934">cmsis_os.h</a>
+</li>
+<li>osMutexDef
+: <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga9b522438489d7c402c95332b58bc94f3">cmsis_os.h</a>
+</li>
+<li>osPool
+: <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga5f0b204a82327533d420210125c90697">cmsis_os.h</a>
+</li>
+<li>osPoolDef
+: <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga87b471d4fe2d5dbd0040708edd52771b">cmsis_os.h</a>
+</li>
+<li>osSemaphore
+: <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga03761ee8d2c3cd4544e18364ab301dac">cmsis_os.h</a>
+</li>
+<li>osSemaphoreDef
+: <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga9e66fe361749071e5ab87826c43c2f1b">cmsis_os.h</a>
+</li>
+<li>osThread
+: <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">cmsis_os.h</a>
+</li>
+<li>osThreadDef
+: <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">cmsis_os.h</a>
+</li>
+<li>osTimer
+: <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678">cmsis_os.h</a>
+</li>
+<li>osTimerDef
+: <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga1c720627e08d1cc1afcad44e799ed492">cmsis_os.h</a>
+</li>
+<li>osWaitForever
+: <a class="el" href="cmsis__os_8h.html#a9eb9a7a797a42e4b55eb171ecc609ddb">cmsis_os.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/globals_enum.html b/docs/RTOS/html/globals_enum.html
new file mode 100644
index 0000000..d124fa3
--- /dev/null
+++ b/docs/RTOS/html/globals_enum.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Globals</title>
+<title>CMSIS-RTOS: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li class="current"><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_enum.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>os_timer_type
+: <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9">cmsis_os.txt</a>
+, <a class="el" href="cmsis__os_8h.html#adac860eb9e1b4b0619271e6595ed83d9">cmsis_os.h</a>
+</li>
+<li>osPriority
+: <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a">cmsis_os.h</a>
+</li>
+<li>osStatus
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">cmsis_os.txt</a>
+, <a class="el" href="cmsis__os_8h.html#ae2e091fefc4c767117727bd5aba4d99e">cmsis_os.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/globals_eval.html b/docs/RTOS/html/globals_eval.html
new file mode 100644
index 0000000..2db2328
--- /dev/null
+++ b/docs/RTOS/html/globals_eval.html
@@ -0,0 +1,211 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Globals</title>
+<title>CMSIS-RTOS: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li class="current"><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_eval.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>os_status_reserved
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eac7a77f5fe18a15a357790c36a4aca1b1">cmsis_os.h</a>
+</li>
+<li>osErrorISR
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea21635bdc492d3094fe83027fa4a30e2f">cmsis_os.h</a>
+</li>
+<li>osErrorISRRecursive
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eaf6552310a817452aedfcd453f2805d65">cmsis_os.h</a>
+</li>
+<li>osErrorNoMemory
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eaf1fac0240218e51eb30a13da2f8aae81">cmsis_os.h</a>
+</li>
+<li>osErrorOS
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea5fde24ff588ec5ab9cb8314bade26fbc">cmsis_os.h</a>
+</li>
+<li>osErrorParameter
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eac24adca6a5d072c9f01c32178ba0d109">cmsis_os.h</a>
+</li>
+<li>osErrorPriority
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eab7dda0ef504817659334cbfd650ae56f">cmsis_os.h</a>
+</li>
+<li>osErrorResource
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea8fc5801e8b0482bdf22ad63a77f0155d">cmsis_os.h</a>
+</li>
+<li>osErrorTimeoutResource
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea314d24a49003f09459035db0dd7c9467">cmsis_os.h</a>
+</li>
+<li>osErrorValue
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea4672c8a0c0f6bb1d7981da4602e8e9ee">cmsis_os.h</a>
+</li>
+<li>osEventMail
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea15b12e42b42b53f35fb8a2724ad02926">cmsis_os.h</a>
+</li>
+<li>osEventMessage
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ead604f3673359dd4ac643b16dc5a2c342">cmsis_os.h</a>
+</li>
+<li>osEventSignal
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea5df7e9643aa8a2f5f3a6f6ec59758518">cmsis_os.h</a>
+</li>
+<li>osEventTimeout
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea78f477732375c0e1fca814e369618177">cmsis_os.h</a>
+</li>
+<li>osOK
+: <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f">cmsis_os.h</a>
+</li>
+<li>osPriorityAboveNormal
+: <a class="el" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa17b36cd9cd38652c2bc6d4803990674b">cmsis_os.h</a>
+</li>
+<li>osPriorityBelowNormal
+: <a class="el" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa193b650117c209b4a203954542bcc3e6">cmsis_os.h</a>
+</li>
+<li>osPriorityError
+: <a class="el" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aae35f5e2f9c64ad346822521b643bdea4">cmsis_os.h</a>
+</li>
+<li>osPriorityHigh
+: <a class="el" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa914433934143a9ba767e59577c56e6c2">cmsis_os.h</a>
+</li>
+<li>osPriorityIdle
+: <a class="el" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa549e79a43ff4f8b2b31afb613f5caa81">cmsis_os.h</a>
+</li>
+<li>osPriorityLow
+: <a class="el" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa61cb822239ac8f66dfbdc7291598a3d4">cmsis_os.h</a>
+</li>
+<li>osPriorityNormal
+: <a class="el" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1">cmsis_os.h</a>
+</li>
+<li>osPriorityRealtime
+: <a class="el" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa1485dec3702434a1ec3cb74c7a17a4af">cmsis_os.h</a>
+</li>
+<li>osTimerOnce
+: <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ad21712f8df5f97069c82dc9eec37b951">cmsis_os.h</a>
+</li>
+<li>osTimerPeriodic
+: <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788">cmsis_os.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/globals_func.html b/docs/RTOS/html/globals_func.html
new file mode 100644
index 0000000..65a88be
--- /dev/null
+++ b/docs/RTOS/html/globals_func.html
@@ -0,0 +1,297 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Globals</title>
+<title>CMSIS-RTOS: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li class="current"><a href="globals_func.html"><span>Functions</span></a></li>
+ <li><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+ <div id="navrow4" class="tabs3">
+ <ul class="tablist">
+ <li><a href="#index_o"><span>o</span></a></li>
+ <li class="current"><a href="#index_s"><span>s</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_func.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;
+
+<h3><a class="anchor" id="index_o"></a>- o -</h3><ul>
+<li>os_error()
+: <a class="el" href="group__RTX__Global__Functions.html#ga651ae76b3acf45f80bf0e0487b51d6e6">cmsis_os_rtx_extensions.h</a>
+, <a class="el" href="group__RTX__Global__Functions.html#ga651ae76b3acf45f80bf0e0487b51d6e6">RTX_Conf_CM.c</a>
+</li>
+<li>os_idle_demon()
+: <a class="el" href="group__RTX__Global__Functions.html#gafb4dc4d3dff8343a393726d2860282e4">cmsis_os_rtx_extensions.h</a>
+, <a class="el" href="group__RTX__Global__Functions.html#gafb4dc4d3dff8343a393726d2860282e4">RTX_Conf_CM.c</a>
+</li>
+<li>os_resume()
+: <a class="el" href="group__RTX__Global__Functions.html#ga1b85a217d43e6b971ffcf24f8aae1c33">cmsis_os_rtx_extensions.h</a>
+</li>
+<li>os_suspend()
+: <a class="el" href="group__RTX__Global__Functions.html#ga3e9c57746ccbdfe90464ad50513c569e">cmsis_os_rtx_extensions.h</a>
+</li>
+<li>os_tick_init()
+: <a class="el" href="group__RTX__Global__Functions.html#ga145e7eafdd042bb522020cbb3b469d9c">RTX_Conf_CM.c</a>
+</li>
+<li>os_tick_irqack()
+: <a class="el" href="group__RTX__Global__Functions.html#ga85dab8408f27236c7341a69feb6258c7">RTX_Conf_CM.c</a>
+</li>
+<li>os_tick_ovf()
+: <a class="el" href="group__RTX__Global__Functions.html#gad5deddec3fea0fb31798f571afc3c692">RTX_Conf_CM.c</a>
+</li>
+<li>os_tick_val()
+: <a class="el" href="group__RTX__Global__Functions.html#ga567543bf38239a91f09751686c23017b">RTX_Conf_CM.c</a>
+</li>
+<li>osDelay()
+: <a class="el" href="group__CMSIS__RTOS__Wait.html#ga02e19d5e723bfb06ba9324d625162255">cmsis_os.h</a>
+</li>
+<li>osKernelInitialize()
+: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e">cmsis_os.h</a>
+</li>
+<li>osKernelRunning()
+: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga3b571de44cd3094c643247a7397f86b5">cmsis_os.h</a>
+</li>
+<li>osKernelStart()
+: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2">cmsis_os.h</a>
+</li>
+<li>osKernelSysTick()
+: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gad0262e4688e95d1e9038afd9bcc16001">cmsis_os.h</a>
+</li>
+<li>osMailAlloc()
+: <a class="el" href="group__CMSIS__RTOS__Mail.html#gadf5ce811bd6a56e617e902a1db6c2194">cmsis_os.h</a>
+</li>
+<li>osMailCAlloc()
+: <a class="el" href="group__CMSIS__RTOS__Mail.html#ga8fde74f6fe5b9e88f75cc5eb8f2124fd">cmsis_os.h</a>
+</li>
+<li>osMailCreate()
+: <a class="el" href="group__CMSIS__RTOS__Mail.html#gaa177e7fe5820dd70d8c9e46ded131174">cmsis_os.h</a>
+</li>
+<li>osMailFree()
+: <a class="el" href="group__CMSIS__RTOS__Mail.html#ga27c1060cf21393f96b4fd1ed1c0167cc">cmsis_os.h</a>
+</li>
+<li>osMailGet()
+: <a class="el" href="group__CMSIS__RTOS__Mail.html#gac6ad7e6e7d6c4a80e60da22c57a42ccd">cmsis_os.h</a>
+</li>
+<li>osMailPut()
+: <a class="el" href="group__CMSIS__RTOS__Mail.html#ga485ef6f81854ebda8ffbce4832181e02">cmsis_os.h</a>
+</li>
+<li>osMessageCreate()
+: <a class="el" href="group__CMSIS__RTOS__Message.html#gaf3b9345cf426304d46565152bc26fb78">cmsis_os.h</a>
+</li>
+<li>osMessageGet()
+: <a class="el" href="group__CMSIS__RTOS__Message.html#ga6c6892b8f2296cca6becd57ca2d7e1ae">cmsis_os.h</a>
+</li>
+<li>osMessagePut()
+: <a class="el" href="group__CMSIS__RTOS__Message.html#gac0dcf462fc92de8ffaba6cc004514a6d">cmsis_os.h</a>
+</li>
+<li>osMutexCreate()
+: <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga5c9de56e717016e39e788064e9a291cc">cmsis_os.h</a>
+</li>
+<li>osMutexDelete()
+: <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#gac27e24135185d51d18f3dabc20910219">cmsis_os.h</a>
+</li>
+<li>osMutexRelease()
+: <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga006e4744d741e8e132c3d5bbc295afe1">cmsis_os.h</a>
+</li>
+<li>osMutexWait()
+: <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga5e1752b73f573ee015dbd9ef1edaba13">cmsis_os.h</a>
+</li>
+<li>osPoolAlloc()
+: <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#gaa0b2994f1a866c19e0d11e6e0d44f543">cmsis_os.h</a>
+</li>
+<li>osPoolCAlloc()
+: <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga9f129fcad4730fbd1048ad4fa262f36a">cmsis_os.h</a>
+</li>
+<li>osPoolCreate()
+: <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a">cmsis_os.h</a>
+</li>
+<li>osPoolFree()
+: <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga4a861e9c469c9d0daf5721bf174f8e54">cmsis_os.h</a>
+</li>
+<li>osSemaphoreCreate()
+: <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb">cmsis_os.h</a>
+</li>
+<li>osSemaphoreDelete()
+: <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gabae2801ac2c096f6e8c69a264908f595">cmsis_os.h</a>
+</li>
+<li>osSemaphoreRelease()
+: <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gab108914997c49e14d8ff1ae0d1988ca0">cmsis_os.h</a>
+</li>
+<li>osSemaphoreWait()
+: <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gacc15b0fc8ce1167fe43da33042e62098">cmsis_os.h</a>
+</li>
+<li>osSignalClear()
+: <a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga87283a6ebc31ce9ed42baf3ea7e4eab6">cmsis_os.h</a>
+</li>
+<li>osSignalSet()
+: <a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga3de2730654589d6c3559c4b9e2825553">cmsis_os.h</a>
+</li>
+<li>osSignalWait()
+: <a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga38860acda96df47da6923348d96fc4c9">cmsis_os.h</a>
+</li>
+<li>osThreadCreate()
+: <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">cmsis_os.h</a>
+</li>
+<li>osThreadGetId()
+: <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7">cmsis_os.h</a>
+</li>
+<li>osThreadGetPriority()
+: <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga4299d838978bc2aae5e4350754e6a4e9">cmsis_os.h</a>
+</li>
+<li>osThreadSetPriority()
+: <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga0dfb90ccf1f6e4b54b9251b12d1cbc8b">cmsis_os.h</a>
+</li>
+<li>osThreadTerminate()
+: <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaea135bb90eb853eff39e0800b91bbeab">cmsis_os.h</a>
+</li>
+<li>osThreadYield()
+: <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf13a667493c5d629a90c13e113b99233">cmsis_os.h</a>
+</li>
+<li>osTimerCreate()
+: <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6">cmsis_os.h</a>
+</li>
+<li>osTimerDelete()
+: <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga746b8043d906849bd65e3900fcb483cf">cmsis_os.h</a>
+</li>
+<li>osTimerStart()
+: <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca">cmsis_os.h</a>
+</li>
+<li>osTimerStop()
+: <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga58f36b121a812936435cacc6e1e0e091">cmsis_os.h</a>
+</li>
+<li>osWait()
+: <a class="el" href="group__CMSIS__RTOS__Wait.html#ga8470c8aaedfde524a44e22e5b2328285">cmsis_os.h</a>
+</li>
+</ul>
+
+
+<h3><a class="anchor" id="index_s"></a>- s -</h3><ul>
+<li>svcThreadGetId()
+: <a class="el" href="RTX__Conf__CM_8c.html#a395cca131b7746fc43c104a3485b77f7">RTX_Conf_CM.c</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/globals_type.html b/docs/RTOS/html/globals_type.html
new file mode 100644
index 0000000..b724ae8
--- /dev/null
+++ b/docs/RTOS/html/globals_type.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Globals</title>
+<title>CMSIS-RTOS: Globals</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow3" class="tabs2">
+ <ul class="tablist">
+ <li><a href="globals.html"><span>All</span></a></li>
+ <li><a href="globals_func.html"><span>Functions</span></a></li>
+ <li class="current"><a href="globals_type.html"><span>Typedefs</span></a></li>
+ <li><a href="globals_enum.html"><span>Enumerations</span></a></li>
+ <li><a href="globals_eval.html"><span>Enumerator</span></a></li>
+ <li><a href="globals_defs.html"><span>Macros</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('globals_type.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+&#160;<ul>
+<li>os_pthread
+: <a class="el" href="cmsis__os_8h.html#aee631e5ea1b700fc35695cc7bc574cf7">cmsis_os.h</a>
+</li>
+<li>os_ptimer
+: <a class="el" href="cmsis__os_8h.html#aa2d85e49bde9f6951ff3545cd323f065">cmsis_os.h</a>
+</li>
+<li>osMailQId
+: <a class="el" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">cmsis_os.h</a>
+</li>
+<li>osMessageQId
+: <a class="el" href="cmsis__os_8h.html#ad9ec70c32c6c521970636b521e12d17f">cmsis_os.h</a>
+</li>
+<li>osMutexId
+: <a class="el" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">cmsis_os.h</a>
+</li>
+<li>osPoolId
+: <a class="el" href="cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686">cmsis_os.h</a>
+</li>
+<li>osSemaphoreId
+: <a class="el" href="cmsis__os_8h.html#aa8968896c84094aa973683c84fa06f84">cmsis_os.h</a>
+</li>
+<li>osThreadId
+: <a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">cmsis_os.h</a>
+</li>
+<li>osTimerId
+: <a class="el" href="cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7">cmsis_os.h</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/group__CMSIS__RTOS.html b/docs/RTOS/html/group__CMSIS__RTOS.html
new file mode 100644
index 0000000..0e9a6f4
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS.html
@@ -0,0 +1,160 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>CMSIS-RTOS API</title>
+<title>CMSIS-RTOS: CMSIS-RTOS API</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group__CMSIS__RTOS.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#groups">Content</a> </div>
+ <div class="headertitle">
+<div class="title">CMSIS-RTOS API</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This section describes the CMSIS-RTOS API.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Content</h2></td></tr>
+<tr class="memitem:group__CMSIS__RTOS__KernelCtrl"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html">Kernel Information and Control</a></td></tr>
+<tr class="memdesc:group__CMSIS__RTOS__KernelCtrl"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide version/system information and start the RTOS Kernel. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__CMSIS__RTOS__ThreadMgmt"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html">Thread Management</a></td></tr>
+<tr class="memdesc:group__CMSIS__RTOS__ThreadMgmt"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define, create, and control thread functions. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__CMSIS__RTOS__Wait"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Wait.html">Generic Wait Functions</a></td></tr>
+<tr class="memdesc:group__CMSIS__RTOS__Wait"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait for a time period or unspecified events. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__CMSIS__RTOS__TimerMgmt"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__TimerMgmt.html">Timer Management</a></td></tr>
+<tr class="memdesc:group__CMSIS__RTOS__TimerMgmt"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create and control timer and timer callback functions. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__CMSIS__RTOS__InterThread"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__InterThread.html">Inter-Thread Communication and Resource Sharing</a></td></tr>
+<tr class="memdesc:group__CMSIS__RTOS__InterThread"><td class="mdescLeft">&#160;</td><td class="mdescRight">Functions for inter-thread communication. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__CMSIS__RTOS__Definitions"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Definitions.html">Generic Data Types and Definitions</a></td></tr>
+<tr class="memdesc:group__CMSIS__RTOS__Definitions"><td class="mdescLeft">&#160;</td><td class="mdescRight">Data Type Definitions used by the CMSIS-RTOS API functions. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__CMSIS__RTOS__Status"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Status.html">Status and Error Codes</a></td></tr>
+<tr class="memdesc:group__CMSIS__RTOS__Status"><td class="mdescLeft">&#160;</td><td class="mdescRight">Status and Error Codes returned by CMSIS-RTOS API functions. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
+<p>The CMSIS-RTOS is a generic API layer that interfaces to an existing RTOS kernel. </p>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/group__CMSIS__RTOS.js b/docs/RTOS/html/group__CMSIS__RTOS.js
new file mode 100644
index 0000000..20c889a
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS.js
@@ -0,0 +1,10 @@
+var group__CMSIS__RTOS =
+[
+ [ "Kernel Information and Control", "group__CMSIS__RTOS__KernelCtrl.html", "group__CMSIS__RTOS__KernelCtrl" ],
+ [ "Thread Management", "group__CMSIS__RTOS__ThreadMgmt.html", "group__CMSIS__RTOS__ThreadMgmt" ],
+ [ "Generic Wait Functions", "group__CMSIS__RTOS__Wait.html", "group__CMSIS__RTOS__Wait" ],
+ [ "Timer Management", "group__CMSIS__RTOS__TimerMgmt.html", "group__CMSIS__RTOS__TimerMgmt" ],
+ [ "Inter-Thread Communication and Resource Sharing", "group__CMSIS__RTOS__InterThread.html", "group__CMSIS__RTOS__InterThread" ],
+ [ "Generic Data Types and Definitions", "group__CMSIS__RTOS__Definitions.html", "group__CMSIS__RTOS__Definitions" ],
+ [ "Status and Error Codes", "group__CMSIS__RTOS__Status.html", "group__CMSIS__RTOS__Status" ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__Definitions.html b/docs/RTOS/html/group__CMSIS__RTOS__Definitions.html
new file mode 100644
index 0000000..c5281f9
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__Definitions.html
@@ -0,0 +1,257 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Generic Data Types and Definitions</title>
+<title>CMSIS-RTOS: Generic Data Types and Definitions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group__CMSIS__RTOS__Definitions.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Data Structures</a> </div>
+ <div class="headertitle">
+<div class="title">Generic Data Types and Definitions<div class="ingroups"><a class="el" href="group__CMSIS__RTOS.html">CMSIS-RTOS API</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Data Type Definitions used by the CMSIS-RTOS API functions.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Data Structures</h2></td></tr>
+<tr class="memitem:structosEvent"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a></td></tr>
+<tr class="memdesc:structosEvent"><td class="mdescLeft">&#160;</td><td class="mdescRight">Event structure contains detailed information about an event. <a href="group__CMSIS__RTOS__Definitions.html#structosEvent">More...</a><br/></td></tr>
+<tr class="separator:structosEvent"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:unionosEvent_8value"><td class="memItemLeft" align="right" valign="top">union &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Definitions.html#unionosEvent_8value">osEvent.value</a></td></tr>
+<tr class="separator:unionosEvent_8value"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:unionosEvent_8def"><td class="memItemLeft" align="right" valign="top">union &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Definitions.html#unionosEvent_8def">osEvent.def</a></td></tr>
+<tr class="separator:unionosEvent_8def"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:structos__mailQ"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Definitions.html#structos__mailQ">os_mailQ</a></td></tr>
+<tr class="separator:structos__mailQ"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
+<p>The Data Type section lists all data types that are used to exchange information with CMSIS-RTOS functions. </p>
+<hr/><h2 class="groupheader">Data Structure Documentation</h2>
+<a name="structosEvent" id="structosEvent"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct osEvent</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<div class="textblock"><dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>os_event</b> shall be consistent in every CMSIS-RTOS. However the struct may be extended at the end.</dd></dl>
+<p>The <b><a class="el" href="group__CMSIS__RTOS__Definitions.html#structosEvent" title="Event structure contains detailed information about an event. ">osEvent</a></b> structure describes the events returned by CMSIS-RTOS functions. </p>
+</div><table class="fieldtable">
+<tr><th colspan="3">Data Fields</th></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a596b6d55c3321db19239256bbe403df6"></a>union <a class="el" href="group__CMSIS__RTOS__Definitions.html#unionosEvent_8def">osEvent</a></td>
+<td class="fieldname">
+def</td>
+<td class="fielddoc">
+event definition </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="ad477a289f1f03ac45407b64268d707d3"></a><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a></td>
+<td class="fieldname">
+status</td>
+<td class="fielddoc">
+status code: event or error information </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a0b9f8fd3645f01d8cb09cae82add2d7f"></a>union <a class="el" href="group__CMSIS__RTOS__Definitions.html#unionosEvent_8value">osEvent</a></td>
+<td class="fieldname">
+value</td>
+<td class="fielddoc">
+event value </td></tr>
+</table>
+
+</div>
+</div>
+<a name="unionosEvent_8value" id="unionosEvent_8value"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">union osEvent.value</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<div class="textblock"></div><table class="fieldtable">
+<tr><th colspan="3">Data Fields</th></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a83878c91171338902e0fe0fb97a8c47a"></a>void *</td>
+<td class="fieldname">
+p</td>
+<td class="fielddoc">
+message or mail as void pointer </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="aa8420f8bebd6d9578b405b6bbaa813d9"></a>int32_t</td>
+<td class="fieldname">
+signals</td>
+<td class="fielddoc">
+signal flags </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a9e3669d19b675bd57058fd4664205d2a"></a>uint32_t</td>
+<td class="fieldname">
+v</td>
+<td class="fielddoc">
+message as 32-bit value </td></tr>
+</table>
+
+</div>
+</div>
+<a name="unionosEvent_8def" id="unionosEvent_8def"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">union osEvent.def</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<div class="textblock"></div><table class="fieldtable">
+<tr><th colspan="3">Data Fields</th></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a57aa2b69577037fb2428bc48a9fb1038"></a><a class="el" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">osMailQId</a></td>
+<td class="fieldname">
+mail_id</td>
+<td class="fielddoc">
+mail id obtained by <a class="el" href="group__CMSIS__RTOS__Mail.html#gaa177e7fe5820dd70d8c9e46ded131174">osMailCreate</a> </td></tr>
+<tr><td class="fieldtype">
+<a class="anchor" id="a4ccaa172acbdcbf38fa0ea0ef0229c49"></a><a class="el" href="cmsis__os_8h.html#ad9ec70c32c6c521970636b521e12d17f">osMessageQId</a></td>
+<td class="fieldname">
+message_id</td>
+<td class="fielddoc">
+message id obtained by <a class="el" href="group__CMSIS__RTOS__Message.html#gaf3b9345cf426304d46565152bc26fb78">osMessageCreate</a> </td></tr>
+</table>
+
+</div>
+</div>
+<a name="structos__mailQ" id="structos__mailQ"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">struct os_mailQ</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<div class="textblock"><p>The <b><a class="el" href="group__CMSIS__RTOS__Definitions.html#structosEvent" title="Event structure contains detailed information about an event. ">osEvent</a></b> structure describes the events returned by CMSIS-RTOS functions. </p>
+</div>
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__Definitions.js b/docs/RTOS/html/group__CMSIS__RTOS__Definitions.js
new file mode 100644
index 0000000..6054858
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__Definitions.js
@@ -0,0 +1,18 @@
+var group__CMSIS__RTOS__Definitions =
+[
+ [ "osEvent", "group__CMSIS__RTOS__Definitions.html#structosEvent", [
+ [ "def", "group__CMSIS__RTOS__Definitions.html#a596b6d55c3321db19239256bbe403df6", null ],
+ [ "status", "group__CMSIS__RTOS__Definitions.html#ad477a289f1f03ac45407b64268d707d3", null ],
+ [ "value", "group__CMSIS__RTOS__Definitions.html#a0b9f8fd3645f01d8cb09cae82add2d7f", null ]
+ ] ],
+ [ "osEvent.value", "group__CMSIS__RTOS__Definitions.html#unionosEvent_8value", [
+ [ "p", "group__CMSIS__RTOS__Definitions.html#a83878c91171338902e0fe0fb97a8c47a", null ],
+ [ "signals", "group__CMSIS__RTOS__Definitions.html#aa8420f8bebd6d9578b405b6bbaa813d9", null ],
+ [ "v", "group__CMSIS__RTOS__Definitions.html#a9e3669d19b675bd57058fd4664205d2a", null ]
+ ] ],
+ [ "osEvent.def", "group__CMSIS__RTOS__Definitions.html#unionosEvent_8def", [
+ [ "mail_id", "group__CMSIS__RTOS__Definitions.html#a57aa2b69577037fb2428bc48a9fb1038", null ],
+ [ "message_id", "group__CMSIS__RTOS__Definitions.html#a4ccaa172acbdcbf38fa0ea0ef0229c49", null ]
+ ] ],
+ [ "os_mailQ", "group__CMSIS__RTOS__Definitions.html#structos__mailQ", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__Definitions_structosEvent.js b/docs/RTOS/html/group__CMSIS__RTOS__Definitions_structosEvent.js
new file mode 100644
index 0000000..1b6fd67
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__Definitions_structosEvent.js
@@ -0,0 +1,6 @@
+var group__CMSIS__RTOS__Definitions_structosEvent =
+[
+ [ "def", "group__CMSIS__RTOS__Definitions.html#a596b6d55c3321db19239256bbe403df6", null ],
+ [ "status", "group__CMSIS__RTOS__Definitions.html#ad477a289f1f03ac45407b64268d707d3", null ],
+ [ "value", "group__CMSIS__RTOS__Definitions.html#a0b9f8fd3645f01d8cb09cae82add2d7f", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__Definitions_unionosEvent_8def.js b/docs/RTOS/html/group__CMSIS__RTOS__Definitions_unionosEvent_8def.js
new file mode 100644
index 0000000..9ba3703
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__Definitions_unionosEvent_8def.js
@@ -0,0 +1,5 @@
+var group__CMSIS__RTOS__Definitions_unionosEvent_8def =
+[
+ [ "mail_id", "group__CMSIS__RTOS__Definitions.html#a57aa2b69577037fb2428bc48a9fb1038", null ],
+ [ "message_id", "group__CMSIS__RTOS__Definitions.html#a4ccaa172acbdcbf38fa0ea0ef0229c49", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__Definitions_unionosEvent_8value.js b/docs/RTOS/html/group__CMSIS__RTOS__Definitions_unionosEvent_8value.js
new file mode 100644
index 0000000..e49a04d
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__Definitions_unionosEvent_8value.js
@@ -0,0 +1,6 @@
+var group__CMSIS__RTOS__Definitions_unionosEvent_8value =
+[
+ [ "p", "group__CMSIS__RTOS__Definitions.html#a83878c91171338902e0fe0fb97a8c47a", null ],
+ [ "signals", "group__CMSIS__RTOS__Definitions.html#aa8420f8bebd6d9578b405b6bbaa813d9", null ],
+ [ "v", "group__CMSIS__RTOS__Definitions.html#a9e3669d19b675bd57058fd4664205d2a", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__InterThread.html b/docs/RTOS/html/group__CMSIS__RTOS__InterThread.html
new file mode 100644
index 0000000..a7c21d1
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__InterThread.html
@@ -0,0 +1,171 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Inter-Thread Communication and Resource Sharing</title>
+<title>CMSIS-RTOS: Inter-Thread Communication and Resource Sharing</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group__CMSIS__RTOS__InterThread.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#groups">Content</a> </div>
+ <div class="headertitle">
+<div class="title">Inter-Thread Communication and Resource Sharing<div class="ingroups"><a class="el" href="group__CMSIS__RTOS.html">CMSIS-RTOS API</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Functions for inter-thread communication.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="groups"></a>
+Content</h2></td></tr>
+<tr class="memitem:group__CMSIS__RTOS__SignalMgmt"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__SignalMgmt.html">Signal Events</a></td></tr>
+<tr class="memdesc:group__CMSIS__RTOS__SignalMgmt"><td class="mdescLeft">&#160;</td><td class="mdescRight">Synchronize threads using signals. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__CMSIS__RTOS__Message"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Message.html">Message Queue</a></td></tr>
+<tr class="memdesc:group__CMSIS__RTOS__Message"><td class="mdescLeft">&#160;</td><td class="mdescRight">Exchange messages between threads in a FIFO-like operation. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__CMSIS__RTOS__PoolMgmt"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html">Memory Pool</a></td></tr>
+<tr class="memdesc:group__CMSIS__RTOS__PoolMgmt"><td class="mdescLeft">&#160;</td><td class="mdescRight">Manage thread-safe fixed-size blocks of dynamic memory. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__CMSIS__RTOS__Mail"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Mail.html">Mail Queue</a></td></tr>
+<tr class="memdesc:group__CMSIS__RTOS__Mail"><td class="mdescLeft">&#160;</td><td class="mdescRight">Exchange data between threads using a queue of memory blocks. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__CMSIS__RTOS__MutexMgmt"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__MutexMgmt.html">Mutexes</a></td></tr>
+<tr class="memdesc:group__CMSIS__RTOS__MutexMgmt"><td class="mdescLeft">&#160;</td><td class="mdescRight">Synchronize resource access using Mutual Exclusion (Mutex). <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:group__CMSIS__RTOS__SemaphoreMgmt"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html">Semaphores</a></td></tr>
+<tr class="memdesc:group__CMSIS__RTOS__SemaphoreMgmt"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access shared resources simultaneously from different threads. <br/></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
+<p>In most applications, threads need to <b>communicate</b> <b>with</b> <b>each</b> <b>other</b> or <b>access</b> <b>shared</b> <b>resources</b> together. There are many ways to exchange data between threads, for example using shared data, polling loops and message passing.</p>
+<p>Many resources in a microcontroller can be considered as <b>serially-reusable</b>. This means that they can be used repeatedly by different threads, but only by <b>one</b> <b>thread</b> <b>at</b> <b>a</b> <b>time</b> (for example communication peripherals such as <b>UARTs</b>, <b>memory</b>, and <b>files</b> that need to be modified).</p>
+<p>The CMSIS-RTOS API provides different means to pass messages between threads to make inter-thread communication more efficient. Also, resource sharing is inherently supported. The following methods are available to the user: </p>
+<h2>Inter-Thread Communication </h2>
+<ul>
+<li><a class="el" href="group__CMSIS__RTOS__SignalMgmt.html">Signal Events</a></li>
+<li><a class="el" href="group__CMSIS__RTOS__Message.html">Message Queue</a></li>
+<li><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html">Memory Pool</a></li>
+<li><a class="el" href="group__CMSIS__RTOS__Mail.html">Mail Queue</a></li>
+</ul>
+<h2>Resource Sharing </h2>
+<ul>
+<li><a class="el" href="group__CMSIS__RTOS__MutexMgmt.html">Mutexes</a></li>
+<li><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html">Semaphores</a> </li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__InterThread.js b/docs/RTOS/html/group__CMSIS__RTOS__InterThread.js
new file mode 100644
index 0000000..47b9895
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__InterThread.js
@@ -0,0 +1,9 @@
+var group__CMSIS__RTOS__InterThread =
+[
+ [ "Signal Events", "group__CMSIS__RTOS__SignalMgmt.html", "group__CMSIS__RTOS__SignalMgmt" ],
+ [ "Message Queue", "group__CMSIS__RTOS__Message.html", "group__CMSIS__RTOS__Message" ],
+ [ "Memory Pool", "group__CMSIS__RTOS__PoolMgmt.html", "group__CMSIS__RTOS__PoolMgmt" ],
+ [ "Mail Queue", "group__CMSIS__RTOS__Mail.html", "group__CMSIS__RTOS__Mail" ],
+ [ "Mutexes", "group__CMSIS__RTOS__MutexMgmt.html", "group__CMSIS__RTOS__MutexMgmt" ],
+ [ "Semaphores", "group__CMSIS__RTOS__SemaphoreMgmt.html", "group__CMSIS__RTOS__SemaphoreMgmt" ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__KernelCtrl.html b/docs/RTOS/html/group__CMSIS__RTOS__KernelCtrl.html
new file mode 100644
index 0000000..482b0b4
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__KernelCtrl.html
@@ -0,0 +1,469 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Kernel Information and Control</title>
+<title>CMSIS-RTOS: Kernel Information and Control</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group__CMSIS__RTOS__KernelCtrl.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Kernel Information and Control<div class="ingroups"><a class="el" href="group__CMSIS__RTOS.html">CMSIS-RTOS API</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Provide version/system information and start the RTOS Kernel.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ga22f7d235bc9f783933bd5a981fd79696"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga22f7d235bc9f783933bd5a981fd79696">osFeature_MainThread</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:ga22f7d235bc9f783933bd5a981fd79696"><td class="mdescLeft">&#160;</td><td class="mdescRight">main thread 1=main can be thread, 0=not available <a href="#ga22f7d235bc9f783933bd5a981fd79696">More...</a><br/></td></tr>
+<tr class="separator:ga22f7d235bc9f783933bd5a981fd79696"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae554ec16c23c5b7d65affade2a351891"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gae554ec16c23c5b7d65affade2a351891">osFeature_SysTick</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:gae554ec16c23c5b7d65affade2a351891"><td class="mdescLeft">&#160;</td><td class="mdescRight">osKernelSysTick functions: 1=available, 0=not available <a href="#gae554ec16c23c5b7d65affade2a351891">More...</a><br/></td></tr>
+<tr class="separator:gae554ec16c23c5b7d65affade2a351891"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga702196bacccbb978620c736b209387f1"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga702196bacccbb978620c736b209387f1">osCMSIS</a>&#160;&#160;&#160;0x10002</td></tr>
+<tr class="memdesc:ga702196bacccbb978620c736b209387f1"><td class="mdescLeft">&#160;</td><td class="mdescRight">API version (main [31:16] .sub [15:0]) <a href="#ga702196bacccbb978620c736b209387f1">More...</a><br/></td></tr>
+<tr class="separator:ga702196bacccbb978620c736b209387f1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab78dce646fabec479c5f34bc5175b7de"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gab78dce646fabec479c5f34bc5175b7de">osCMSIS_KERNEL</a>&#160;&#160;&#160;0x10000</td></tr>
+<tr class="memdesc:gab78dce646fabec479c5f34bc5175b7de"><td class="mdescLeft">&#160;</td><td class="mdescRight">RTOS identification and version (main [31:16] .sub [15:0]) <a href="#gab78dce646fabec479c5f34bc5175b7de">More...</a><br/></td></tr>
+<tr class="separator:gab78dce646fabec479c5f34bc5175b7de"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga47cf03658f01cdffca688e9096b58289"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga47cf03658f01cdffca688e9096b58289">osKernelSystemId</a>&#160;&#160;&#160;&quot;KERNEL V1.00&quot;</td></tr>
+<tr class="memdesc:ga47cf03658f01cdffca688e9096b58289"><td class="mdescLeft">&#160;</td><td class="mdescRight">RTOS identification string. <a href="#ga47cf03658f01cdffca688e9096b58289">More...</a><br/></td></tr>
+<tr class="separator:ga47cf03658f01cdffca688e9096b58289"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9e0954d52722673e2031233a2ab99960"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga9e0954d52722673e2031233a2ab99960">osKernelSysTickFrequency</a>&#160;&#160;&#160;100000000</td></tr>
+<tr class="memdesc:ga9e0954d52722673e2031233a2ab99960"><td class="mdescLeft">&#160;</td><td class="mdescRight">The RTOS kernel system timer frequency in Hz. <a href="#ga9e0954d52722673e2031233a2ab99960">More...</a><br/></td></tr>
+<tr class="separator:ga9e0954d52722673e2031233a2ab99960"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gae12c190af42d7310d8006d64f4ed5a88"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gae12c190af42d7310d8006d64f4ed5a88">osKernelSysTickMicroSec</a>(microsec)&#160;&#160;&#160;(((uint64_t)microsec * (<a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga9e0954d52722673e2031233a2ab99960">osKernelSysTickFrequency</a>)) / 1000000)</td></tr>
+<tr class="memdesc:gae12c190af42d7310d8006d64f4ed5a88"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert a microseconds value to a RTOS kernel system timer value. <a href="#gae12c190af42d7310d8006d64f4ed5a88">More...</a><br/></td></tr>
+<tr class="separator:gae12c190af42d7310d8006d64f4ed5a88"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga53d078a801022e202e8115c083ece68e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e">osKernelInitialize</a> (void)</td></tr>
+<tr class="memdesc:ga53d078a801022e202e8115c083ece68e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the RTOS Kernel for creating objects. <a href="#ga53d078a801022e202e8115c083ece68e">More...</a><br/></td></tr>
+<tr class="separator:ga53d078a801022e202e8115c083ece68e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaab668ffd2ea76bb0a77ab0ab385eaef2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2">osKernelStart</a> (void)</td></tr>
+<tr class="memdesc:gaab668ffd2ea76bb0a77ab0ab385eaef2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start the RTOS Kernel. <a href="#gaab668ffd2ea76bb0a77ab0ab385eaef2">More...</a><br/></td></tr>
+<tr class="separator:gaab668ffd2ea76bb0a77ab0ab385eaef2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3b571de44cd3094c643247a7397f86b5"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga3b571de44cd3094c643247a7397f86b5">osKernelRunning</a> (void)</td></tr>
+<tr class="memdesc:ga3b571de44cd3094c643247a7397f86b5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Check if the RTOS kernel is already started. <a href="#ga3b571de44cd3094c643247a7397f86b5">More...</a><br/></td></tr>
+<tr class="separator:ga3b571de44cd3094c643247a7397f86b5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad0262e4688e95d1e9038afd9bcc16001"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gad0262e4688e95d1e9038afd9bcc16001">osKernelSysTick</a> (void)</td></tr>
+<tr class="memdesc:gad0262e4688e95d1e9038afd9bcc16001"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the RTOS kernel system timer counter. <a href="#gad0262e4688e95d1e9038afd9bcc16001">More...</a><br/></td></tr>
+<tr class="separator:gad0262e4688e95d1e9038afd9bcc16001"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
+<p>The Kernel Information and Control function group allows to:</p>
+<ul>
+<li>obtain information about the system and the underlying kernel.</li>
+<li>obtain version information about the CMSIS-RTOS API.</li>
+<li>initialize of the RTOS kernel for creating objects.</li>
+<li>start the RTOS kernel and thread switching.</li>
+<li>check the execution status of the RTOS kernel.</li>
+</ul>
+<p>The function <b>main</b> is a special thread function that may be started at system initialization. In this case it has the initial priority <em>osPriorityNormal</em>.</p>
+<p>When reaching <b>main</b>, it is necessary to:</p>
+<ol type="1">
+<li>Call <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e" title="Initialize the RTOS Kernel for creating objects. ">osKernelInitialize()</a> to initialize the CMSIS-RTOS Kernel</li>
+<li>Setup device peripherals and create other RTOS objects using the <b>os*Create</b> functions.</li>
+<li>Start the Kernel and begin thread switching by calling <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2" title="Start the RTOS Kernel. ">osKernelStart()</a>.</li>
+</ol>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="keywordtype">int</span> main (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e">osKernelInitialize</a> (); <span class="comment">// initialize CMSIS-RTOS</span></div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">// initialize peripherals here</span></div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">// create &#39;thread&#39; functions that start executing,</span></div>
+<div class="line"> <span class="comment">// example: tid_name = osThreadCreate (osThread(name), NULL);</span></div>
+<div class="line"> </div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2">osKernelStart</a> (); <span class="comment">// start thread execution </span></div>
+<div class="line">}</div>
+</div><!-- fragment --> <h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="ga702196bacccbb978620c736b209387f1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osCMSIS&#160;&#160;&#160;0x10002</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Version information of the CMSIS-RTOS API whereby major version is in bits [31:16] and sub version in bits [15:0]. The value 0x10000 represents version 1.00.</p>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osCMSIS</b> identifies the CMSIS-RTOS API version. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab78dce646fabec479c5f34bc5175b7de"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osCMSIS_KERNEL&#160;&#160;&#160;0x10000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Identifies the underlying RTOS kernel and version number. The actual name of that define depends on the RTOS Kernel used in the implementation. For example, <b>osCMSIS_FreeRTOS</b> identifies the FreeRTOS kernel and the value indicates the version number of that kernel whereby the major version is in bits [31:16] and sub version in bits [15:0]. The value 0x10000 represents version 1.00.</p>
+<dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: <b>osCMSIS_KERNEL</b> identifies the underlying RTOS kernel and version number. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga22f7d235bc9f783933bd5a981fd79696"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osFeature_MainThread&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>A CMSIS-RTOS implementation may support to start thread execution with the function 'main'.</p>
+<ul>
+<li>When <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga22f7d235bc9f783933bd5a981fd79696">osFeature_MainThread</a> is 1 the RTOS offers to start with 'main'. The RTOS kernel is in this case already started.</li>
+<li>When <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga22f7d235bc9f783933bd5a981fd79696">osFeature_MainThread</a> is 0 the RTOS requires explicit start with <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2">osKernelStart</a>.</li>
+</ul>
+<p><a class="el" href="rtxImplementation.html">CMSIS-RTOS RTX</a> Setting: <b>osFeature_MainThread</b> is 1</p>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osFeature_xxx</b> shall be consistent in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae554ec16c23c5b7d65affade2a351891"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osFeature_SysTick&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>A CMSIS-RTOS implementation may provide access to the RTOS kernel system timer.</p>
+<ul>
+<li>When <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gae554ec16c23c5b7d65affade2a351891">osFeature_SysTick</a> is 1 access to the RTOS kernel system timer is provided with <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gad0262e4688e95d1e9038afd9bcc16001">osKernelSysTick</a>, <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga9e0954d52722673e2031233a2ab99960">osKernelSysTickFrequency</a>, and <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gae12c190af42d7310d8006d64f4ed5a88">osKernelSysTickMicroSec</a>.</li>
+<li>When <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gae554ec16c23c5b7d65affade2a351891">osFeature_SysTick</a> is 0 access to the RTOS kernel system timer is not implemented.</li>
+</ul>
+<p><a class="el" href="rtxImplementation.html">CMSIS-RTOS RTX</a> Setting: <b>osFeature_SysTick</b> is 1 </p>
+
+</div>
+</div>
+<a class="anchor" id="ga47cf03658f01cdffca688e9096b58289"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osKernelSystemId&#160;&#160;&#160;&quot;KERNEL V1.00&quot;</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Defines a string that identifies the underlying RTOS Kernel and provides version information. The length of that string is limited to 21 bytes. A valid identification string is for example, <b>"FreeRTOS V1.00"</b>.</p>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osKernelSystemId</b> shall be consistent in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9e0954d52722673e2031233a2ab99960"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osKernelSysTickFrequency&#160;&#160;&#160;100000000</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Specifies the frequency of the Kernel SysTick timer in Hz. The value is typically use to scale a time value and is for example used in <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gae12c190af42d7310d8006d64f4ed5a88">osKernelSysTickMicroSec</a>.</p>
+<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gad0262e4688e95d1e9038afd9bcc16001" title="Get the RTOS kernel system timer counter. ">osKernelSysTick</a></dd></dl>
+<dl class="section note"><dt>Note</dt><dd>Reflects the system timer setting and is typically defined in a configuration file. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gae12c190af42d7310d8006d64f4ed5a88"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osKernelSysTickMicroSec</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">microsec</td><td>)</td>
+ <td>&#160;&#160;&#160;(((uint64_t)microsec * (<a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga9e0954d52722673e2031233a2ab99960">osKernelSysTickFrequency</a>)) / 1000000)</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Allows you to scale a microsecond value to the frequency of the Kernel SysTick timer. This macro is typically used to check for short timeouts in polling loops.</p>
+<dl class="section see"><dt>See Also</dt><dd><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gad0262e4688e95d1e9038afd9bcc16001" title="Get the RTOS kernel system timer counter. ">osKernelSysTick</a></dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">microsec</td><td>time value in microseconds. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>time value normalized to the <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga9e0954d52722673e2031233a2ab99960">osKernelSysTickFrequency</a> </dd></dl>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga53d078a801022e202e8115c083ece68e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> osKernelInitialize </td>
+ <td>(</td>
+ <td class="paramtype">void&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>status code that indicates the execution status of the function. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osKernelInitialize</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Initialize of the RTOS Kernel to allow peripheral setup and creation of other RTOS objects with the functions:</p>
+<ul>
+<li><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> : Create a thread function.</li>
+<li><a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6">osTimerCreate</a> : Define attributes of the timer callback function.</li>
+<li><a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga5c9de56e717016e39e788064e9a291cc">osMutexCreate</a> : Define and initialize a mutex.</li>
+<li><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb">osSemaphoreCreate</a> : Define and initialize a semaphore.</li>
+<li><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a">osPoolCreate</a> : Define and initialize a fix-size memory pool.</li>
+<li><a class="el" href="group__CMSIS__RTOS__Message.html#gaf3b9345cf426304d46565152bc26fb78">osMessageCreate</a> : Define and initialize a message queue.</li>
+<li><a class="el" href="group__CMSIS__RTOS__Mail.html#gaa177e7fe5820dd70d8c9e46ded131174">osMailCreate</a> : Define and initialize a mail queue with fix-size memory blocks.</li>
+</ul>
+<p>The RTOS kernel does not start thread switching until the function <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2">osKernelStart</a> is called.</p>
+<dl class="section note"><dt>Note</dt><dd>In case that the RTOS Kernel starts thread execution with the function <em>main</em> the function osKernelInitialize stops thread switching. This allows you to setup the system to a defined state before thread switching is resumed with <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2">osKernelStart</a>.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">int</span> main (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <span class="keywordflow">if</span> (!<a class="code" href="group__CMSIS__RTOS__KernelCtrl.html#ga3b571de44cd3094c643247a7397f86b5">osKernelRunning</a> ()) { <span class="comment">// if kernel is not running, initialize the kernel</span></div>
+<div class="line"> <span class="keywordflow">if</span> (<a class="code" href="group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e">osKernelInitialize</a> () != <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f">osOK</a>) { <span class="comment">// check osStatus for other possible valid values</span></div>
+<div class="line"> <span class="comment">// exit with an error message</span></div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line"> :</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ga3b571de44cd3094c643247a7397f86b5"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int32_t osKernelRunning </td>
+ <td>(</td>
+ <td class="paramtype">void&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osKernelRunning</b> shall be consistent in every CMSIS-RTOS. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>0 RTOS is not started, 1 RTOS is started.</dd></dl>
+<p>Identifies if the RTOS kernel is started. For systems with the option to start the <em>main</em> function as a thread this allows you to identify that the RTOS kernel is already running.</p>
+<dl class="section note"><dt>Note</dt><dd><a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a> can call this function.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">int</span> main (<span class="keywordtype">void</span>) { <span class="comment">// program execution starts here</span></div>
+<div class="line"> <span class="keywordflow">if</span> (<a class="code" href="group__CMSIS__RTOS__KernelCtrl.html#ga3b571de44cd3094c643247a7397f86b5">osKernelRunning</a> ()) { </div>
+<div class="line"> : <span class="comment">// main is already a thread function</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="gaab668ffd2ea76bb0a77ab0ab385eaef2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> osKernelStart </td>
+ <td>(</td>
+ <td class="paramtype">void&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>status code that indicates the execution status of the function. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osKernelStart</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Start the RTOS Kernel and begin thread switching.</p>
+<dl class="section note"><dt>Note</dt><dd>When the CMSIS-RTOS starts thread execution with the function <em>main</em> this function resumes thread switching. The <em>main</em> thread will continue executing after <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2">osKernelStart</a>.</dd></dl>
+<p><b><a class="el" href="group__CMSIS__RTOS__Status.html">Status and Error Codes</a></b><br/>
+</p>
+<ul>
+<li><em>osOK:</em> the RTOS kernel has been successfully started.</li>
+<li><em>osErrorISR:</em> <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2">osKernelStart</a> cannot be called from interrupt service routines.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">int</span> main (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <span class="keywordflow">if</span> (<a class="code" href="group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e">osKernelInitialize</a> () != <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f">osOK</a>) { <span class="comment">// check osStatus for other possible valid values</span></div>
+<div class="line"> <span class="comment">// exit with an error message</span></div>
+<div class="line"> }</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">if</span> (!<a class="code" href="group__CMSIS__RTOS__KernelCtrl.html#ga3b571de44cd3094c643247a7397f86b5">osKernelRunning</a> ()) { <span class="comment">// is the kernel running ?</span></div>
+<div class="line"> <span class="keywordflow">if</span> (<a class="code" href="group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2">osKernelStart</a> () != <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f">osOK</a>) { <span class="comment">// start the kernel</span></div>
+<div class="line"> <span class="comment">// kernel could not be started</span></div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="gad0262e4688e95d1e9038afd9bcc16001"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t osKernelSysTick </td>
+ <td>(</td>
+ <td class="paramtype">void&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osKernelSysTick</b> shall be consistent in every CMSIS-RTOS. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd>RTOS kernel system timer as 32-bit value</dd></dl>
+<p>Get the value of the Kernel SysTick timer for time comparison. The value is a rolling 32-bit counter that is typically composed of the kernel system interrupt timer value and an counter that counts these interrupts.</p>
+<p>This function allows the implementation of timeout checks. These are for example required when checking for a busy status in a device or peripheral initialization routine.</p>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"></div>
+<div class="line"><span class="keywordtype">void</span> SetupDevice (<span class="keywordtype">void</span>) {</div>
+<div class="line"> uint32_t tick;</div>
+<div class="line"> </div>
+<div class="line"> tick = <a class="code" href="group__CMSIS__RTOS__KernelCtrl.html#gad0262e4688e95d1e9038afd9bcc16001">osKernelSysTick</a>(); <span class="comment">// get start value of the Kernel system tick</span></div>
+<div class="line"> Device.Setup (); <span class="comment">// initialize a device or peripheral</span></div>
+<div class="line"> <span class="keywordflow">do</span> { <span class="comment">// poll device busy status for 100 microseconds</span></div>
+<div class="line"> <span class="keywordflow">if</span> (!Device.Busy) <span class="keywordflow">break</span>; <span class="comment">// check if device is correctly initialized</span></div>
+<div class="line"> } <span class="keywordflow">while</span> ((<a class="code" href="group__CMSIS__RTOS__KernelCtrl.html#gad0262e4688e95d1e9038afd9bcc16001">osKernelSysTick</a>() - tick) &lt; <a class="code" href="group__CMSIS__RTOS__KernelCtrl.html#gae12c190af42d7310d8006d64f4ed5a88">osKernelSysTickMicroSec</a>(100)); </div>
+<div class="line"> <span class="keywordflow">if</span> (Device.Busy) { </div>
+<div class="line"> ; <span class="comment">// in case device still busy, signal error</span></div>
+<div class="line"> }</div>
+<div class="line"> <span class="comment">// start interacting with device</span></div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__KernelCtrl.js b/docs/RTOS/html/group__CMSIS__RTOS__KernelCtrl.js
new file mode 100644
index 0000000..4780206
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__KernelCtrl.js
@@ -0,0 +1,14 @@
+var group__CMSIS__RTOS__KernelCtrl =
+[
+ [ "osCMSIS", "group__CMSIS__RTOS__KernelCtrl.html#ga702196bacccbb978620c736b209387f1", null ],
+ [ "osCMSIS_KERNEL", "group__CMSIS__RTOS__KernelCtrl.html#gab78dce646fabec479c5f34bc5175b7de", null ],
+ [ "osFeature_MainThread", "group__CMSIS__RTOS__KernelCtrl.html#ga22f7d235bc9f783933bd5a981fd79696", null ],
+ [ "osFeature_SysTick", "group__CMSIS__RTOS__KernelCtrl.html#gae554ec16c23c5b7d65affade2a351891", null ],
+ [ "osKernelSystemId", "group__CMSIS__RTOS__KernelCtrl.html#ga47cf03658f01cdffca688e9096b58289", null ],
+ [ "osKernelSysTickFrequency", "group__CMSIS__RTOS__KernelCtrl.html#ga9e0954d52722673e2031233a2ab99960", null ],
+ [ "osKernelSysTickMicroSec", "group__CMSIS__RTOS__KernelCtrl.html#gae12c190af42d7310d8006d64f4ed5a88", null ],
+ [ "osKernelInitialize", "group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e", null ],
+ [ "osKernelRunning", "group__CMSIS__RTOS__KernelCtrl.html#ga3b571de44cd3094c643247a7397f86b5", null ],
+ [ "osKernelStart", "group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2", null ],
+ [ "osKernelSysTick", "group__CMSIS__RTOS__KernelCtrl.html#gad0262e4688e95d1e9038afd9bcc16001", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__Mail.html b/docs/RTOS/html/group__CMSIS__RTOS__Mail.html
new file mode 100644
index 0000000..e744ff6
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__Mail.html
@@ -0,0 +1,634 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Mail Queue</title>
+<title>CMSIS-RTOS: Mail Queue</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group__CMSIS__RTOS__Mail.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Mail Queue<div class="ingroups"><a class="el" href="group__CMSIS__RTOS__InterThread.html">Inter-Thread Communication and Resource Sharing</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Exchange data between threads using a queue of memory blocks.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:gaceb2e0071ce160d153047f2eac1aca8e"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Mail.html#gaceb2e0071ce160d153047f2eac1aca8e">osFeature_MailQ</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:gaceb2e0071ce160d153047f2eac1aca8e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Mail Queues: 1=available, 0=not available. <a href="#gaceb2e0071ce160d153047f2eac1aca8e">More...</a><br/></td></tr>
+<tr class="separator:gaceb2e0071ce160d153047f2eac1aca8e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga58d712b16c0c6668059f509386d1e55b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Mail.html#ga58d712b16c0c6668059f509386d1e55b">osMailQDef</a>(name, queue_sz, type)</td></tr>
+<tr class="memdesc:ga58d712b16c0c6668059f509386d1e55b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a Mail Queue Definition. <a href="#ga58d712b16c0c6668059f509386d1e55b">More...</a><br/></td></tr>
+<tr class="separator:ga58d712b16c0c6668059f509386d1e55b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad2deeb66d51ade54e63d8f87ff2ec9d2"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Mail.html#gad2deeb66d51ade54e63d8f87ff2ec9d2">osMailQ</a>(name)&#160;&#160;&#160;&amp;os_mailQ_def_##name</td></tr>
+<tr class="memdesc:gad2deeb66d51ade54e63d8f87ff2ec9d2"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access a Mail Queue Definition. <a href="#gad2deeb66d51ade54e63d8f87ff2ec9d2">More...</a><br/></td></tr>
+<tr class="separator:gad2deeb66d51ade54e63d8f87ff2ec9d2"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaa177e7fe5820dd70d8c9e46ded131174"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">osMailQId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Mail.html#gaa177e7fe5820dd70d8c9e46ded131174">osMailCreate</a> (const <a class="el" href="cmsis__os_8h.html#structosMailQDef__t">osMailQDef_t</a> *queue_def, <a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> thread_id)</td></tr>
+<tr class="memdesc:gaa177e7fe5820dd70d8c9e46ded131174"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create and Initialize mail queue. <a href="#gaa177e7fe5820dd70d8c9e46ded131174">More...</a><br/></td></tr>
+<tr class="separator:gaa177e7fe5820dd70d8c9e46ded131174"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gadf5ce811bd6a56e617e902a1db6c2194"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Mail.html#gadf5ce811bd6a56e617e902a1db6c2194">osMailAlloc</a> (<a class="el" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">osMailQId</a> queue_id, uint32_t millisec)</td></tr>
+<tr class="memdesc:gadf5ce811bd6a56e617e902a1db6c2194"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a memory block from a mail. <a href="#gadf5ce811bd6a56e617e902a1db6c2194">More...</a><br/></td></tr>
+<tr class="separator:gadf5ce811bd6a56e617e902a1db6c2194"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8fde74f6fe5b9e88f75cc5eb8f2124fd"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Mail.html#ga8fde74f6fe5b9e88f75cc5eb8f2124fd">osMailCAlloc</a> (<a class="el" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">osMailQId</a> queue_id, uint32_t millisec)</td></tr>
+<tr class="memdesc:ga8fde74f6fe5b9e88f75cc5eb8f2124fd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a memory block from a mail and set memory block to zero. <a href="#ga8fde74f6fe5b9e88f75cc5eb8f2124fd">More...</a><br/></td></tr>
+<tr class="separator:ga8fde74f6fe5b9e88f75cc5eb8f2124fd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga485ef6f81854ebda8ffbce4832181e02"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Mail.html#ga485ef6f81854ebda8ffbce4832181e02">osMailPut</a> (<a class="el" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">osMailQId</a> queue_id, void *mail)</td></tr>
+<tr class="memdesc:ga485ef6f81854ebda8ffbce4832181e02"><td class="mdescLeft">&#160;</td><td class="mdescRight">Put a mail to a queue. <a href="#ga485ef6f81854ebda8ffbce4832181e02">More...</a><br/></td></tr>
+<tr class="separator:ga485ef6f81854ebda8ffbce4832181e02"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac6ad7e6e7d6c4a80e60da22c57a42ccd"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Mail.html#gac6ad7e6e7d6c4a80e60da22c57a42ccd">osMailGet</a> (<a class="el" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">osMailQId</a> queue_id, uint32_t millisec)</td></tr>
+<tr class="memdesc:gac6ad7e6e7d6c4a80e60da22c57a42ccd"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a mail from a queue. <a href="#gac6ad7e6e7d6c4a80e60da22c57a42ccd">More...</a><br/></td></tr>
+<tr class="separator:gac6ad7e6e7d6c4a80e60da22c57a42ccd"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga27c1060cf21393f96b4fd1ed1c0167cc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Mail.html#ga27c1060cf21393f96b4fd1ed1c0167cc">osMailFree</a> (<a class="el" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">osMailQId</a> queue_id, void *mail)</td></tr>
+<tr class="memdesc:ga27c1060cf21393f96b4fd1ed1c0167cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Free a memory block from a mail. <a href="#ga27c1060cf21393f96b4fd1ed1c0167cc">More...</a><br/></td></tr>
+<tr class="separator:ga27c1060cf21393f96b4fd1ed1c0167cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
+<p>A <b>mail</b> <b>queue</b> resembles a <a class="el" href="group__CMSIS__RTOS__Message.html">Message Queue</a>, but the data that is being transferred consists of memory blocks that need to be allocated (before putting data in) and freed (after taking data out). The mail queue uses a <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html">Memory Pool</a> to create formatted memory blocks and passes pointers to these blocks in a message queue. This allows the data to stay in an allocated memory block while only a pointer is moved between the separate threads. This is an advantage over <a class="el" href="group__CMSIS__RTOS__Message.html">messages</a> that can transfer only a 32-bit value or a pointer. Using the mail queue functions, you can control, send, receive, or wait for mail.</p>
+<div class="image">
+<img src="MailQueue.png" alt="MailQueue.png"/>
+<div class="caption">
+CMSIS-RTOS Mail Queue</div></div>
+ <h2>Working with Mail Queues </h2>
+<p>Follow these steps to create and use a mail queue:</p>
+<ol type="1">
+<li>Declare a data structure that combines a number of elements: <div class="fragment"><div class="line"><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"> uint32_t length;</div>
+<div class="line"> uint32_t width;</div>
+<div class="line"> uint32_t height;</div>
+<div class="line"> uint32_t weight;</div>
+<div class="line">} properties_t;</div>
+</div><!-- fragment --></li>
+<li>Declare a mail queue made up of these objects: <div class="fragment"><div class="line"><a class="code" href="group__CMSIS__RTOS__Mail.html#ga58d712b16c0c6668059f509386d1e55b">osMailQDef</a> (object_pool_q, 10, properties_t); <span class="comment">// Declare mail queue</span></div>
+<div class="line"><a class="code" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">osMailQId</a> (object_pool_q_id); <span class="comment">// Mail queue ID</span></div>
+</div><!-- fragment --></li>
+<li>Then, create the mail pool in a thread: <div class="fragment"><div class="line">object_pool_q_id = <a class="code" href="group__CMSIS__RTOS__Mail.html#gaa177e7fe5820dd70d8c9e46ded131174">osMailCreate</a>(<a class="code" href="group__CMSIS__RTOS__Mail.html#gad2deeb66d51ade54e63d8f87ff2ec9d2">osMailQ</a>(object_pool_q), NULL);</div>
+</div><!-- fragment --></li>
+<li>Allocate the mail queue within a thread and fill it with data: <div class="fragment"><div class="line">properties_t *object_data;</div>
+<div class="line"> object_data = (properties_t *) <a class="code" href="group__CMSIS__RTOS__Mail.html#gadf5ce811bd6a56e617e902a1db6c2194">osMailAlloc</a>(object_pool_q_id, <a class="code" href="cmsis__os_8h.html#a9eb9a7a797a42e4b55eb171ecc609ddb">osWaitForever</a>);</div>
+<div class="line"> </div>
+<div class="line">object_data-&gt;length = 100;</div>
+<div class="line">object_data-&gt;width = 10;</div>
+<div class="line">object_data-&gt;height = 23;</div>
+<div class="line">object_data-&gt;weight = 1000;</div>
+</div><!-- fragment --></li>
+<li>Pass the pointer to the mail queue to another thread: <div class="fragment"><div class="line"><a class="code" href="group__CMSIS__RTOS__Mail.html#ga485ef6f81854ebda8ffbce4832181e02">osMailPut</a>(object_pool_q_id, object_data);</div>
+</div><!-- fragment --></li>
+<li>Access the data in another thread: <div class="fragment"><div class="line"><a class="code" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a> <span class="keyword">event</span> = <a class="code" href="group__CMSIS__RTOS__Mail.html#gac6ad7e6e7d6c4a80e60da22c57a42ccd">osMailGet</a>(properties_q_id, <a class="code" href="cmsis__os_8h.html#a9eb9a7a797a42e4b55eb171ecc609ddb">osWaitForever</a>);</div>
+<div class="line">properties_t *received = (properties_t *)event.value.p; <span class="comment">// &quot;.p&quot; indicates that the message is a pointer</span></div>
+<div class="line">my_length(received-&gt;length);</div>
+</div><!-- fragment --></li>
+<li>Once the data has been used, the memory block must be freed so that the memory pool can be reused <div class="fragment"><div class="line"><a class="code" href="group__CMSIS__RTOS__Mail.html#ga27c1060cf21393f96b4fd1ed1c0167cc">osMailFree</a>(object_pool_q_id, received);</div>
+</div><!-- fragment --> </li>
+</ol>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="gaceb2e0071ce160d153047f2eac1aca8e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osFeature_MailQ&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>A CMSIS-RTOS implementation may support mail queues.</p>
+<ul>
+<li>When <a class="el" href="group__CMSIS__RTOS__Mail.html#gaceb2e0071ce160d153047f2eac1aca8e">osFeature_MailQ</a> is 1 mail queues are supported.</li>
+<li>When <a class="el" href="group__CMSIS__RTOS__Mail.html#gaceb2e0071ce160d153047f2eac1aca8e">osFeature_MailQ</a> is 0 no mail queues are supported.</li>
+</ul>
+<p><a class="el" href="rtxImplementation.html">CMSIS-RTOS RTX</a> Setting: <b>osFeature_MailQ</b> is 1 </p>
+
+</div>
+</div>
+<a class="anchor" id="gad2deeb66d51ade54e63d8f87ff2ec9d2"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osMailQ</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">name</td><td>)</td>
+ <td>&#160;&#160;&#160;&amp;os_mailQ_def_##name</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Access to the mail queue definition for the function <a class="el" href="group__CMSIS__RTOS__Mail.html#gaa177e7fe5820dd70d8c9e46ded131174">osMailCreate</a>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">name</td><td>name of the queue </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: The parameter to <b>osMailQ</b> shall be consistent but the macro body is implementation specific in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga58d712b16c0c6668059f509386d1e55b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osMailQDef</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">name, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">queue_sz, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">type&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Define the attributes of a mail queue that can by the function <a class="el" href="group__CMSIS__RTOS__Mail.html#gaa177e7fe5820dd70d8c9e46ded131174">osMailCreate</a> using <a class="el" href="group__CMSIS__RTOS__Mail.html#gad2deeb66d51ade54e63d8f87ff2ec9d2">osMailQ</a>.</p>
+<dl class="section note"><dt>Note</dt><dd>The parameter <em>thread</em> registers the receiving thread for a mail and is needed for the general <a class="el" href="technicalData.html#osWait">osWait</a> function to deliver the mail.</dd></dl>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">name</td><td>name of the queue </td></tr>
+ <tr><td class="paramname">queue_sz</td><td>maximum number of messages in queue </td></tr>
+ <tr><td class="paramname">type</td><td>data type of a single message element </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: The parameter to <b>osMailQDef</b> shall be consistent but the macro body is implementation specific in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gadf5ce811bd6a56e617e902a1db6c2194"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void * osMailAlloc </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">osMailQId</a>&#160;</td>
+ <td class="paramname"><em>queue_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>millisec</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">queue_id</td><td>mail queue ID obtained with <a class="el" href="group__CMSIS__RTOS__Mail.html#gaa177e7fe5820dd70d8c9e46ded131174">osMailCreate</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">millisec</td><td><a class="el" href="functionOverview.html#CMSIS_RTOS_TimeOutValue">Timout Value</a> or 0 in case of no time-out </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>pointer to memory block that can be filled with mail or NULL in case of error. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osMailAlloc</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Allocate a memory block from the mail queue that is filled with the mail information.</p>
+<p>The argument <em>queue_id</em> specifies a mail queue identifier that is obtain with <a class="el" href="group__CMSIS__RTOS__Mail.html#gaa177e7fe5820dd70d8c9e46ded131174">osMailCreate</a>.</p>
+<p>The argument <em>millisec</em> specifies how long the system waits for a mail slot to become available. While the system waits the thread calling this function is put into the state <b>WAITING</b>. The <em>millisec</em> timeout can have the following values:</p>
+<ul>
+<li>when <em>millisec</em> is 0, the function returns instantly.</li>
+<li>when <em>millisec</em> is set to <b>osWaitForever</b> the function will wait for an infinite time until a mail slot can be allocated.</li>
+<li>all other values specify a time in millisecond for a timeout.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>The parameter <em>millisec</em> must be 0 for using this function in an ISR. </dd>
+<dd>
+<a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a> can call this function.</dd></dl>
+<p>A NULL pointer is returned when no memory slot can be obtained or <em>queue</em> specifies an illegal parameter. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga8fde74f6fe5b9e88f75cc5eb8f2124fd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void * osMailCAlloc </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">osMailQId</a>&#160;</td>
+ <td class="paramname"><em>queue_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>millisec</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">queue_id</td><td>mail queue ID obtained with <a class="el" href="group__CMSIS__RTOS__Mail.html#gaa177e7fe5820dd70d8c9e46ded131174">osMailCreate</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">millisec</td><td><a class="el" href="functionOverview.html#CMSIS_RTOS_TimeOutValue">Timout Value</a> or 0 in case of no time-out </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>pointer to memory block that can be filled with mail or NULL in case of error. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osMailCAlloc</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Allocate a memory block from the mail queue that is filled with the mail information. The memory block returned is cleared.</p>
+<p>The argument <em>queue_id</em> specifies a mail queue identifier that is obtain with <a class="el" href="group__CMSIS__RTOS__Mail.html#gaa177e7fe5820dd70d8c9e46ded131174">osMailCreate</a>.</p>
+<p>The argument <em>millisec</em> specifies how long the system waits for a mail slot to become available. While the system waits the thread that is calling this function is put into the state <b>WAITING</b>. The <em>millisec</em> timeout can have the following values:</p>
+<ul>
+<li>when <em>millisec</em> is 0, the function returns instantly.</li>
+<li>when <em>millisec</em> is set to <b>osWaitForever</b> the function will wait for an infinite time until a mail slot can be allocated.</li>
+<li>all other values specify a time in millisecond for a timeout.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>The parameter <em>millisec</em> must be 0 for using this function in an ISR. </dd>
+<dd>
+<a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a> can call this function.</dd></dl>
+<p>A NULL pointer is returned when no memory block can be obtained or <em>queue</em> specifies an illegal parameter. </p>
+
+</div>
+</div>
+<a class="anchor" id="gaa177e7fe5820dd70d8c9e46ded131174"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">osMailQId</a> osMailCreate </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="cmsis__os_8h.html#structosMailQDef__t">osMailQDef_t</a> *&#160;</td>
+ <td class="paramname"><em>queue_def</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a>&#160;</td>
+ <td class="paramname"><em>thread_id</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">queue_def</td><td>reference to the mail queue definition obtain with <a class="el" href="group__CMSIS__RTOS__Mail.html#gad2deeb66d51ade54e63d8f87ff2ec9d2">osMailQ</a> </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">thread_id</td><td>thread ID (obtained by <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> or <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7">osThreadGetId</a>) or NULL. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>mail queue ID for reference by other functions or NULL in case of error. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osMailCreate</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Initialize and create a mail queue.</p>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> tid_thread1; <span class="comment">// ID for thread 1</span></div>
+<div class="line"><a class="code" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> tid_thread2; <span class="comment">// ID for thread 2</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keyword">typedef</span> <span class="keyword">struct </span>{ <span class="comment">// Mail object structure</span></div>
+<div class="line"> <span class="keywordtype">float</span> voltage; <span class="comment">// AD result of measured voltage</span></div>
+<div class="line"> <span class="keywordtype">float</span> current; <span class="comment">// AD result of measured current</span></div>
+<div class="line"> <span class="keywordtype">int</span> counter; <span class="comment">// A counter value</span></div>
+<div class="line">} T_MEAS;</div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__Mail.html#ga58d712b16c0c6668059f509386d1e55b">osMailQDef</a>(mail, 16, T_MEAS); <span class="comment">// Define mail queue</span></div>
+<div class="line"><a class="code" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">osMailQId</a> mail;</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> send_thread (<span class="keywordtype">void</span> <span class="keyword">const</span> *argument); <span class="comment">// forward reference</span></div>
+<div class="line"><span class="keywordtype">void</span> recv_thread (<span class="keywordtype">void</span> <span class="keyword">const</span> *argument);</div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a>(send_thread, <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1">osPriorityNormal</a>, 1, 0); <span class="comment">// thread definitions</span></div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a>(recv_thread, <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1">osPriorityNormal</a>, 1, 2000);</div>
+<div class="line"> </div>
+<div class="line"><span class="comment">//</span></div>
+<div class="line"><span class="comment">// Thread 1: Send thread</span></div>
+<div class="line"><span class="comment">//</span></div>
+<div class="line"><span class="keywordtype">void</span> send_thread (<span class="keywordtype">void</span> <span class="keyword">const</span> *argument) {</div>
+<div class="line"> T_MEAS *mptr;</div>
+<div class="line"> </div>
+<div class="line"> mptr = <a class="code" href="group__CMSIS__RTOS__Mail.html#gadf5ce811bd6a56e617e902a1db6c2194">osMailAlloc</a>(mail, <a class="code" href="cmsis__os_8h.html#a9eb9a7a797a42e4b55eb171ecc609ddb">osWaitForever</a>); <span class="comment">// Allocate memory</span></div>
+<div class="line"> mptr-&gt;voltage = 223.72; <span class="comment">// Set the mail content</span></div>
+<div class="line"> mptr-&gt;current = 17.54;</div>
+<div class="line"> mptr-&gt;counter = 120786;</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__Mail.html#ga485ef6f81854ebda8ffbce4832181e02">osMailPut</a>(mail, mptr); <span class="comment">// Send Mail</span></div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__Wait.html#ga02e19d5e723bfb06ba9324d625162255">osDelay</a>(100);</div>
+<div class="line"> </div>
+<div class="line"> mptr = <a class="code" href="group__CMSIS__RTOS__Mail.html#gadf5ce811bd6a56e617e902a1db6c2194">osMailAlloc</a>(mail, <a class="code" href="cmsis__os_8h.html#a9eb9a7a797a42e4b55eb171ecc609ddb">osWaitForever</a>); <span class="comment">// Allocate memory</span></div>
+<div class="line"> mptr-&gt;voltage = 227.23; <span class="comment">// Prepare 2nd mail</span></div>
+<div class="line"> mptr-&gt;current = 12.41;</div>
+<div class="line"> mptr-&gt;counter = 170823;</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__Mail.html#ga485ef6f81854ebda8ffbce4832181e02">osMailPut</a>(mail, mptr); <span class="comment">// Send Mail</span></div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf13a667493c5d629a90c13e113b99233">osThreadYield</a>(); <span class="comment">// Cooperative multitasking</span></div>
+<div class="line"> <span class="comment">// We are done here, exit this thread</span></div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"><span class="comment">//</span></div>
+<div class="line"><span class="comment">// Thread 2: Receive thread</span></div>
+<div class="line"><span class="comment">//</span></div>
+<div class="line"><span class="keywordtype">void</span> recv_thread (<span class="keywordtype">void</span> <span class="keyword">const</span> *argument) {</div>
+<div class="line"> T_MEAS *rptr;</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a> evt;</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">for</span> (;;) {</div>
+<div class="line"> evt = <a class="code" href="group__CMSIS__RTOS__Mail.html#gac6ad7e6e7d6c4a80e60da22c57a42ccd">osMailGet</a>(mail, <a class="code" href="cmsis__os_8h.html#a9eb9a7a797a42e4b55eb171ecc609ddb">osWaitForever</a>); <span class="comment">// wait for mail</span></div>
+<div class="line"> <span class="keywordflow">if</span> (evt.<a class="code" href="group__CMSIS__RTOS__Definitions.html#ad477a289f1f03ac45407b64268d707d3">status</a> == <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea15b12e42b42b53f35fb8a2724ad02926">osEventMail</a>) {</div>
+<div class="line"> rptr = evt.<a class="code" href="group__CMSIS__RTOS__Definitions.html#a0b9f8fd3645f01d8cb09cae82add2d7f">value</a>.p;</div>
+<div class="line"> printf (<span class="stringliteral">&quot;\nVoltage: %.2f V\n&quot;</span>, rptr-&gt;voltage);</div>
+<div class="line"> printf (<span class="stringliteral">&quot;Current: %.2f A\n&quot;</span>, rptr-&gt;current);</div>
+<div class="line"> printf (<span class="stringliteral">&quot;Number of cycles: %d\n&quot;</span>, rptr-&gt;counter);</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__Mail.html#ga27c1060cf21393f96b4fd1ed1c0167cc">osMailFree</a>(mail, rptr); <span class="comment">// free memory allocated for mail</span></div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> StartApplication (<span class="keywordtype">void</span>) {</div>
+<div class="line"> mail = <a class="code" href="group__CMSIS__RTOS__Mail.html#gaa177e7fe5820dd70d8c9e46ded131174">osMailCreate</a>(<a class="code" href="group__CMSIS__RTOS__Mail.html#gad2deeb66d51ade54e63d8f87ff2ec9d2">osMailQ</a>(mail), NULL); <span class="comment">// create mail queue</span></div>
+<div class="line"> </div>
+<div class="line"> tid_thread1 = <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a>(<a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">osThread</a>(send_thread), NULL);</div>
+<div class="line"> tid_thread2 = <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a>(<a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">osThread</a>(recv_thread), NULL);</div>
+<div class="line"> :</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ga27c1060cf21393f96b4fd1ed1c0167cc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> osMailFree </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">osMailQId</a>&#160;</td>
+ <td class="paramname"><em>queue_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>mail</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">queue_id</td><td>mail queue ID obtained with <a class="el" href="group__CMSIS__RTOS__Mail.html#gaa177e7fe5820dd70d8c9e46ded131174">osMailCreate</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">mail</td><td>pointer to the memory block that was obtained with <a class="el" href="group__CMSIS__RTOS__Mail.html#gac6ad7e6e7d6c4a80e60da22c57a42ccd">osMailGet</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>status code that indicates the execution status of the function. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osMailFree</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Free the memory block specified by <em>mail</em> and return it to the mail queue.</p>
+<dl class="section note"><dt>Note</dt><dd><a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a> can call this function.</dd></dl>
+<p><b><a class="el" href="group__CMSIS__RTOS__Status.html">Status and Error Codes</a></b><br/>
+</p>
+<ul>
+<li><em>osOK:</em> the <em>mail</em> block is released.</li>
+<li><em>osErrorValue:</em> <em>mail</em> block does not belong to the mail queue pool.</li>
+<li><em>osErrorParameter:</em> the value to the parameter <em>queue_id</em> is incorrect. </li>
+</ul>
+
+</div>
+</div>
+<a class="anchor" id="gac6ad7e6e7d6c4a80e60da22c57a42ccd"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a> osMailGet </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">osMailQId</a>&#160;</td>
+ <td class="paramname"><em>queue_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>millisec</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">queue_id</td><td>mail queue ID obtained with <a class="el" href="group__CMSIS__RTOS__Mail.html#gaa177e7fe5820dd70d8c9e46ded131174">osMailCreate</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">millisec</td><td><a class="el" href="functionOverview.html#CMSIS_RTOS_TimeOutValue">Timout Value</a> or 0 in case of no time-out </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>event that contains mail information or error code. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osMailGet</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Suspend the execution of the current <b>RUNNING</b> thread until a mail arrives. When a mail is already in the queue, the function returns instantly with the mail information.</p>
+<p>The argument <em>millisec</em> specifies how long the system waits for a mail to arrive. While the system waits the thread that is calling this function is put into the state <b>WAITING</b>. The <em>millisec</em> timeout can have the following values:</p>
+<ul>
+<li>when <em>millisec</em> is 0, the function returns instantly.</li>
+<li>when <em>millisec</em> is set to <b>osWaitForever</b> the function will wait for an infinite time until a mail arrives.</li>
+<li>all other values specify a time in millisecond for a timeout.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>The parameter <em>millisec</em> must be 0 for using this function in an ISR. </dd>
+<dd>
+<a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a> can call this function.</dd></dl>
+<p><b><a class="el" href="group__CMSIS__RTOS__Status.html">Status and Error Codes</a></b><br/>
+</p>
+<ul>
+<li><em>osOK:</em> no mail is available in the queue and no timeout was specified</li>
+<li><em>osEventTimeout:</em> no mail has arrived during the given timeout period.</li>
+<li><em>osEventMail:</em> mail received, <em>value.p</em> contains the pointer to mail content.</li>
+<li><em>osErrorParameter:</em> a parameter is invalid or outside of a permitted range. </li>
+</ul>
+
+</div>
+</div>
+<a class="anchor" id="ga485ef6f81854ebda8ffbce4832181e02"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> osMailPut </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">osMailQId</a>&#160;</td>
+ <td class="paramname"><em>queue_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>mail</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">queue_id</td><td>mail queue ID obtained with <a class="el" href="group__CMSIS__RTOS__Mail.html#gaa177e7fe5820dd70d8c9e46ded131174">osMailCreate</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">mail</td><td>memory block previously allocated with <a class="el" href="group__CMSIS__RTOS__Mail.html#gadf5ce811bd6a56e617e902a1db6c2194">osMailAlloc</a> or <a class="el" href="group__CMSIS__RTOS__Mail.html#ga8fde74f6fe5b9e88f75cc5eb8f2124fd">osMailCAlloc</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>status code that indicates the execution status of the function. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osMailPut</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Put the memory block specified with <em>mail</em> into the mail queue specified by <em>queue</em>.</p>
+<p><b><a class="el" href="group__CMSIS__RTOS__Status.html">Status and Error Codes</a></b><br/>
+</p>
+<ul>
+<li><em>osOK:</em> the message is put into the queue.</li>
+<li><em>osErrorValue:</em> <em>mail</em> was previously not allocated as memory slot.</li>
+<li><em>osErrorParameter:</em> a parameter is invalid or outside of a permitted range.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd><a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a> can call this function. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__Mail.js b/docs/RTOS/html/group__CMSIS__RTOS__Mail.js
new file mode 100644
index 0000000..a29f50e
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__Mail.js
@@ -0,0 +1,12 @@
+var group__CMSIS__RTOS__Mail =
+[
+ [ "osFeature_MailQ", "group__CMSIS__RTOS__Mail.html#gaceb2e0071ce160d153047f2eac1aca8e", null ],
+ [ "osMailQ", "group__CMSIS__RTOS__Mail.html#gad2deeb66d51ade54e63d8f87ff2ec9d2", null ],
+ [ "osMailQDef", "group__CMSIS__RTOS__Mail.html#ga58d712b16c0c6668059f509386d1e55b", null ],
+ [ "osMailAlloc", "group__CMSIS__RTOS__Mail.html#gadf5ce811bd6a56e617e902a1db6c2194", null ],
+ [ "osMailCAlloc", "group__CMSIS__RTOS__Mail.html#ga8fde74f6fe5b9e88f75cc5eb8f2124fd", null ],
+ [ "osMailCreate", "group__CMSIS__RTOS__Mail.html#gaa177e7fe5820dd70d8c9e46ded131174", null ],
+ [ "osMailFree", "group__CMSIS__RTOS__Mail.html#ga27c1060cf21393f96b4fd1ed1c0167cc", null ],
+ [ "osMailGet", "group__CMSIS__RTOS__Mail.html#gac6ad7e6e7d6c4a80e60da22c57a42ccd", null ],
+ [ "osMailPut", "group__CMSIS__RTOS__Mail.html#ga485ef6f81854ebda8ffbce4832181e02", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__Message.html b/docs/RTOS/html/group__CMSIS__RTOS__Message.html
new file mode 100644
index 0000000..083aeae
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__Message.html
@@ -0,0 +1,489 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Message Queue</title>
+<title>CMSIS-RTOS: Message Queue</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group__CMSIS__RTOS__Message.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Message Queue<div class="ingroups"><a class="el" href="group__CMSIS__RTOS__InterThread.html">Inter-Thread Communication and Resource Sharing</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Exchange messages between threads in a FIFO-like operation.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ga479a6561f859e3d4818e25708593d203"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Message.html#ga479a6561f859e3d4818e25708593d203">osFeature_MessageQ</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:ga479a6561f859e3d4818e25708593d203"><td class="mdescLeft">&#160;</td><td class="mdescRight">Message Queues: 1=available, 0=not available. <a href="#ga479a6561f859e3d4818e25708593d203">More...</a><br/></td></tr>
+<tr class="separator:ga479a6561f859e3d4818e25708593d203"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac9a6a6276c12609793e7701afcc82326"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Message.html#gac9a6a6276c12609793e7701afcc82326">osMessageQDef</a>(name, queue_sz, type)</td></tr>
+<tr class="memdesc:gac9a6a6276c12609793e7701afcc82326"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a Message Queue Definition. <a href="#gac9a6a6276c12609793e7701afcc82326">More...</a><br/></td></tr>
+<tr class="separator:gac9a6a6276c12609793e7701afcc82326"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga2d446a0b4bb90bf05d6f92eedeaabc97"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Message.html#ga2d446a0b4bb90bf05d6f92eedeaabc97">osMessageQ</a>(name)&#160;&#160;&#160;&amp;os_messageQ_def_##name</td></tr>
+<tr class="memdesc:ga2d446a0b4bb90bf05d6f92eedeaabc97"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access a Message Queue Definition. <a href="#ga2d446a0b4bb90bf05d6f92eedeaabc97">More...</a><br/></td></tr>
+<tr class="separator:ga2d446a0b4bb90bf05d6f92eedeaabc97"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaf3b9345cf426304d46565152bc26fb78"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cmsis__os_8h.html#ad9ec70c32c6c521970636b521e12d17f">osMessageQId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Message.html#gaf3b9345cf426304d46565152bc26fb78">osMessageCreate</a> (const <a class="el" href="cmsis__os_8h.html#structosMessageQDef__t">osMessageQDef_t</a> *queue_def, <a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> thread_id)</td></tr>
+<tr class="memdesc:gaf3b9345cf426304d46565152bc26fb78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create and Initialize a Message Queue. <a href="#gaf3b9345cf426304d46565152bc26fb78">More...</a><br/></td></tr>
+<tr class="separator:gaf3b9345cf426304d46565152bc26fb78"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac0dcf462fc92de8ffaba6cc004514a6d"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Message.html#gac0dcf462fc92de8ffaba6cc004514a6d">osMessagePut</a> (<a class="el" href="cmsis__os_8h.html#ad9ec70c32c6c521970636b521e12d17f">osMessageQId</a> queue_id, uint32_t info, uint32_t millisec)</td></tr>
+<tr class="memdesc:gac0dcf462fc92de8ffaba6cc004514a6d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Put a Message to a Queue. <a href="#gac0dcf462fc92de8ffaba6cc004514a6d">More...</a><br/></td></tr>
+<tr class="separator:gac0dcf462fc92de8ffaba6cc004514a6d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga6c6892b8f2296cca6becd57ca2d7e1ae"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Message.html#ga6c6892b8f2296cca6becd57ca2d7e1ae">osMessageGet</a> (<a class="el" href="cmsis__os_8h.html#ad9ec70c32c6c521970636b521e12d17f">osMessageQId</a> queue_id, uint32_t millisec)</td></tr>
+<tr class="memdesc:ga6c6892b8f2296cca6becd57ca2d7e1ae"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a Message or Wait for a Message from a Queue. <a href="#ga6c6892b8f2296cca6becd57ca2d7e1ae">More...</a><br/></td></tr>
+<tr class="separator:ga6c6892b8f2296cca6becd57ca2d7e1ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
+<p><b>Message</b> <b>passing</b> is another basic communication model between threads. In the message passing model, one thread sends data explicitly, while another thread receives it. The operation is more like some kind of I/O rather than a direct access to information to be shared. In CMSIS-RTOS, this mechanism is called s <b>message</b> <b>queue</b>. The data is passed from one thread to another in a FIFO-like operation. Using message queue functions, you can control, send, receive, or wait for messages. The data to be passed can be of integer or pointer type:</p>
+<div class="image">
+<img src="MessageQueue.png" alt="MessageQueue.png"/>
+<div class="caption">
+CMSIS-RTOS Message Queue</div></div>
+<p> Compared to a <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html">Memory Pool</a>, message queues are less efficient in general, but solve a broader range of problems. Sometimes, threads do not have a common address space or the use of shared memory raises problems, such as mutual exclusion.</p>
+<h2>Working with Message Queues </h2>
+<p>Follow these steps to create and use a message queue:</p>
+<ol type="1">
+<li>Setup the message queue: <div class="fragment"><div class="line"><a class="code" href="group__CMSIS__RTOS__Message.html#gac9a6a6276c12609793e7701afcc82326">osMessageQDef</a>(message_q, 5, uint32_t); <span class="comment">// Declare a message queue</span></div>
+<div class="line"><a class="code" href="cmsis__os_8h.html#ad9ec70c32c6c521970636b521e12d17f">osMessageQId</a> (message_q_id); <span class="comment">// Declare an ID for the message queue</span></div>
+</div><!-- fragment --></li>
+<li>Then, create the message queue in a thread: <div class="fragment"><div class="line">message_q_id = <a class="code" href="group__CMSIS__RTOS__Message.html#gaf3b9345cf426304d46565152bc26fb78">osMessageCreate</a>(<a class="code" href="group__CMSIS__RTOS__Message.html#ga2d446a0b4bb90bf05d6f92eedeaabc97">osMessageQ</a>(message_q), NULL);</div>
+</div><!-- fragment --></li>
+<li>Fill the message queue with data: <div class="fragment"><div class="line">uint32_t data = 512;</div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__Mail.html#ga485ef6f81854ebda8ffbce4832181e02">osMailPut</a>(message_q_id, data, <a class="code" href="cmsis__os_8h.html#a9eb9a7a797a42e4b55eb171ecc609ddb">osWaitForever</a>);</div>
+</div><!-- fragment --></li>
+<li>From the receiving thread access the data using: <div class="fragment"><div class="line"><a class="code" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a> <span class="keyword">event</span> = <a class="code" href="group__CMSIS__RTOS__Message.html#ga6c6892b8f2296cca6becd57ca2d7e1ae">osMessageGet</a>(message_q_id, <a class="code" href="cmsis__os_8h.html#a9eb9a7a797a42e4b55eb171ecc609ddb">osWaitForever</a>);</div>
+</div><!-- fragment --> </li>
+</ol>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="ga479a6561f859e3d4818e25708593d203"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osFeature_MessageQ&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>A CMSIS-RTOS implementation may support message queues.</p>
+<ul>
+<li>When <a class="el" href="group__CMSIS__RTOS__Mail.html#gaceb2e0071ce160d153047f2eac1aca8e">osFeature_MailQ</a> is 1 message queues are supported.</li>
+<li>When <a class="el" href="group__CMSIS__RTOS__Mail.html#gaceb2e0071ce160d153047f2eac1aca8e">osFeature_MailQ</a> is 0 no message queues are supported.</li>
+</ul>
+<p><a class="el" href="rtxImplementation.html">CMSIS-RTOS RTX</a> Setting: <b>osFeature_MessageQ</b> is 1 </p>
+
+</div>
+</div>
+<a class="anchor" id="ga2d446a0b4bb90bf05d6f92eedeaabc97"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osMessageQ</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">name</td><td>)</td>
+ <td>&#160;&#160;&#160;&amp;os_messageQ_def_##name</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Access to the message queue definition for the function <a class="el" href="group__CMSIS__RTOS__Message.html#gaf3b9345cf426304d46565152bc26fb78">osMessageCreate</a>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">name</td><td>name of the queue </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: The parameter to <b>osMessageQ</b> shall be consistent but the macro body is implementation specific in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gac9a6a6276c12609793e7701afcc82326"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osMessageQDef</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">name, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">queue_sz, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">type&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Define the attributes of a message queue created by the function <a class="el" href="group__CMSIS__RTOS__Message.html#gaf3b9345cf426304d46565152bc26fb78">osMessageCreate</a> using <a class="el" href="group__CMSIS__RTOS__Message.html#ga2d446a0b4bb90bf05d6f92eedeaabc97">osMessageQ</a>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">name</td><td>name of the queue. </td></tr>
+ <tr><td class="paramname">queue_sz</td><td>maximum number of messages in the queue. </td></tr>
+ <tr><td class="paramname">type</td><td>data type of a single message element (for debugger). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: The parameter to <b>osMessageQDef</b> shall be consistent but the macro body is implementation specific in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gaf3b9345cf426304d46565152bc26fb78"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="cmsis__os_8h.html#ad9ec70c32c6c521970636b521e12d17f">osMessageQId</a> osMessageCreate </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="cmsis__os_8h.html#structosMessageQDef__t">osMessageQDef_t</a> *&#160;</td>
+ <td class="paramname"><em>queue_def</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a>&#160;</td>
+ <td class="paramname"><em>thread_id</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">queue_def</td><td>queue definition referenced with <a class="el" href="group__CMSIS__RTOS__Message.html#ga2d446a0b4bb90bf05d6f92eedeaabc97">osMessageQ</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">thread_id</td><td>thread ID (obtained by <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> or <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7">osThreadGetId</a>) or NULL. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>message queue ID for reference by other functions or NULL in case of error. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osMessageCreate</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Create and initialize a message queue. The parameter <em>thread_id</em> registers the receiving thread for a message and is needed for the general <a class="el" href="technicalData.html#osWait">osWait</a> function to deliver the message.</p>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> tid_thread1; <span class="comment">// ID for thread 1</span></div>
+<div class="line"><a class="code" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> tid_thread2; <span class="comment">// for thread 2</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keyword">typedef</span> <span class="keyword">struct </span>{ <span class="comment">// Message object structure</span></div>
+<div class="line"> <span class="keywordtype">float</span> voltage; <span class="comment">// AD result of measured voltage</span></div>
+<div class="line"> <span class="keywordtype">float</span> current; <span class="comment">// AD result of measured current</span></div>
+<div class="line"> <span class="keywordtype">int</span> counter; <span class="comment">// A counter value</span></div>
+<div class="line">} T_MEAS;</div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga87b471d4fe2d5dbd0040708edd52771b">osPoolDef</a>(mpool, 16, T_MEAS); <span class="comment">// Define memory pool</span></div>
+<div class="line"><a class="code" href="cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686">osPoolId</a> mpool;</div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__Message.html#gac9a6a6276c12609793e7701afcc82326">osMessageQDef</a>(MsgBox, 16, &amp;T_MEAS); <span class="comment">// Define message queue</span></div>
+<div class="line"><a class="code" href="cmsis__os_8h.html#ad9ec70c32c6c521970636b521e12d17f">osMessageQId</a> MsgBox;</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> send_thread (<span class="keywordtype">void</span> <span class="keyword">const</span> *argument); <span class="comment">// forward reference</span></div>
+<div class="line"><span class="keywordtype">void</span> recv_thread (<span class="keywordtype">void</span> <span class="keyword">const</span> *argument); <span class="comment">// forward reference</span></div>
+<div class="line"> <span class="comment">// Thread definitions</span></div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a>(send_thread, <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1">osPriorityNormal</a>, 1, 0);</div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a>(recv_thread, <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1">osPriorityNormal</a>, 1, 2000);</div>
+<div class="line"> </div>
+<div class="line"><span class="comment">//</span></div>
+<div class="line"><span class="comment">// Thread 1: Send thread</span></div>
+<div class="line"><span class="comment">//</span></div>
+<div class="line"><span class="keywordtype">void</span> send_thread (<span class="keywordtype">void</span> <span class="keyword">const</span> *argument) {</div>
+<div class="line"> T_MEAS *mptr;</div>
+<div class="line"> </div>
+<div class="line"> mptr = <a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#gaa0b2994f1a866c19e0d11e6e0d44f543">osPoolAlloc</a>(mpool); <span class="comment">// Allocate memory for the message</span></div>
+<div class="line"> mptr-&gt;voltage = 223.72; <span class="comment">// Set the message content</span></div>
+<div class="line"> mptr-&gt;current = 17.54;</div>
+<div class="line"> mptr-&gt;counter = 120786;</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__Message.html#gac0dcf462fc92de8ffaba6cc004514a6d">osMessagePut</a>(MsgBox, (uint32_t)mptr, <a class="code" href="cmsis__os_8h.html#a9eb9a7a797a42e4b55eb171ecc609ddb">osWaitForever</a>); <span class="comment">// Send Message</span></div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__Wait.html#ga02e19d5e723bfb06ba9324d625162255">osDelay</a>(100);</div>
+<div class="line"> </div>
+<div class="line"> mptr = <a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#gaa0b2994f1a866c19e0d11e6e0d44f543">osPoolAlloc</a>(mpool); <span class="comment">// Allocate memory for the message</span></div>
+<div class="line"> mptr-&gt;voltage = 227.23; <span class="comment">// Prepare a 2nd message</span></div>
+<div class="line"> mptr-&gt;current = 12.41;</div>
+<div class="line"> mptr-&gt;counter = 170823;</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__Message.html#gac0dcf462fc92de8ffaba6cc004514a6d">osMessagePut</a>(MsgBox, (uint32_t)mptr, <a class="code" href="cmsis__os_8h.html#a9eb9a7a797a42e4b55eb171ecc609ddb">osWaitForever</a>); <span class="comment">// Send Message</span></div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf13a667493c5d629a90c13e113b99233">osThreadYield</a>(); <span class="comment">// Cooperative multitasking</span></div>
+<div class="line"> <span class="comment">// We are done here, exit this thread</span></div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"><span class="comment">//</span></div>
+<div class="line"><span class="comment">// Thread 2: Receive thread</span></div>
+<div class="line"><span class="comment">//</span></div>
+<div class="line"><span class="keywordtype">void</span> recv_thread (<span class="keywordtype">void</span> <span class="keyword">const</span> *argument) {</div>
+<div class="line"> T_MEAS *rptr;</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a> evt;</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">for</span> (;;) {</div>
+<div class="line"> evt = <a class="code" href="group__CMSIS__RTOS__Message.html#ga6c6892b8f2296cca6becd57ca2d7e1ae">osMessageGet</a>(MsgBox, <a class="code" href="cmsis__os_8h.html#a9eb9a7a797a42e4b55eb171ecc609ddb">osWaitForever</a>); <span class="comment">// wait for message</span></div>
+<div class="line"> <span class="keywordflow">if</span> (evt.<a class="code" href="group__CMSIS__RTOS__Definitions.html#ad477a289f1f03ac45407b64268d707d3">status</a> == <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ead604f3673359dd4ac643b16dc5a2c342">osEventMessage</a>) {</div>
+<div class="line"> rptr = evt.<a class="code" href="group__CMSIS__RTOS__Definitions.html#a0b9f8fd3645f01d8cb09cae82add2d7f">value</a>.p;</div>
+<div class="line"> printf (<span class="stringliteral">&quot;\nVoltage: %.2f V\n&quot;</span>, rptr-&gt;voltage);</div>
+<div class="line"> printf (<span class="stringliteral">&quot;Current: %.2f A\n&quot;</span>, rptr-&gt;current);</div>
+<div class="line"> printf (<span class="stringliteral">&quot;Number of cycles: %d\n&quot;</span>, rptr-&gt;counter);</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga4a861e9c469c9d0daf5721bf174f8e54">osPoolFree</a>(mpool, rptr); <span class="comment">// free memory allocated for message</span></div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> StartApplication (<span class="keywordtype">void</span>) {</div>
+<div class="line"> mpool = <a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a">osPoolCreate</a>(<a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga5f0b204a82327533d420210125c90697">osPool</a>(mpool)); <span class="comment">// create memory pool</span></div>
+<div class="line"> MsgBox = <a class="code" href="group__CMSIS__RTOS__Message.html#gaf3b9345cf426304d46565152bc26fb78">osMessageCreate</a>(<a class="code" href="group__CMSIS__RTOS__Message.html#ga2d446a0b4bb90bf05d6f92eedeaabc97">osMessageQ</a>(MsgBox), NULL); <span class="comment">// create msg queue</span></div>
+<div class="line"> </div>
+<div class="line"> tid_thread1 = <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a>(<a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">osThread</a>(send_thread), NULL);</div>
+<div class="line"> tid_thread2 = <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a>(<a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">osThread</a>(recv_thread), NULL);</div>
+<div class="line"> :</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ga6c6892b8f2296cca6becd57ca2d7e1ae"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a> osMessageGet </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#ad9ec70c32c6c521970636b521e12d17f">osMessageQId</a>&#160;</td>
+ <td class="paramname"><em>queue_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>millisec</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">queue_id</td><td>message queue ID obtained with <a class="el" href="group__CMSIS__RTOS__Message.html#gaf3b9345cf426304d46565152bc26fb78">osMessageCreate</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">millisec</td><td><a class="el" href="functionOverview.html#CMSIS_RTOS_TimeOutValue">Timout Value</a> or 0 in case of no time-out. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>event information that includes status code. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osMessageGet</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Suspend the execution of the current <b>RUNNING</b> thread until a message arrives. When a message is already in the queue, the function returns instantly with the message information.</p>
+<p>The argument <em>millisec</em> specifies how long the system waits for a message to become available. While the system waits the thread that is calling this function is put into the state <b>WAITING</b>. The <em>millisec</em> timeout value can have the following values:</p>
+<ul>
+<li>when <em>millisec</em> is 0, the function returns instantly.</li>
+<li>when <em>millisec</em> is set to <b>osWaitForever</b> the function will wait for an infinite time until a message arrives.</li>
+<li>all other values specify a time in millisecond for a timeout.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>The parameter <em>millisec</em> must be 0 for using this function in an ISR. </dd>
+<dd>
+<a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a> can call this function.</dd></dl>
+<p><b><a class="el" href="group__CMSIS__RTOS__Status.html">Status and Error Codes</a></b><br/>
+</p>
+<ul>
+<li><em>osOK:</em> no message is available in the queue and no timeout was specified.</li>
+<li><em>osEventTimeout:</em> no message has arrived during the given timeout period.</li>
+<li><em>osEventMessage:</em> message received, <em>value.p</em> contains the pointer to message.</li>
+<li><em>osErrorParameter:</em> a parameter is invalid or outside of a permitted range. </li>
+</ul>
+
+</div>
+</div>
+<a class="anchor" id="gac0dcf462fc92de8ffaba6cc004514a6d"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> osMessagePut </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#ad9ec70c32c6c521970636b521e12d17f">osMessageQId</a>&#160;</td>
+ <td class="paramname"><em>queue_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>info</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>millisec</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">queue_id</td><td>message queue ID obtained with <a class="el" href="group__CMSIS__RTOS__Message.html#gaf3b9345cf426304d46565152bc26fb78">osMessageCreate</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">info</td><td>message information. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">millisec</td><td><a class="el" href="functionOverview.html#CMSIS_RTOS_TimeOutValue">Timout Value</a> or 0 in case of no time-out. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>status code that indicates the execution status of the function. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osMessagePut</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Put the message <em>info</em> in a message queue specified by <em>queue_id</em>.</p>
+<p>When the message queue is full, the system retries for a specified time with <em>millisec</em>. While the system retries the thread that is calling this function is put into the state <b>WAITING</b>. The <em>millisec</em> timeout can have the following values:</p>
+<ul>
+<li>when <em>millisec</em> is 0, the function returns instantly.</li>
+<li>when <em>millisec</em> is set to <b>osWaitForever</b> the function will wait for an infinite time until a message queue slot becomes available.</li>
+<li>all other values specify a time in millisecond for a timeout.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>The parameter <em>millisec</em> must be 0 for using this function in an ISR. </dd>
+<dd>
+<a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a> can call this function.</dd></dl>
+<p><b><a class="el" href="group__CMSIS__RTOS__Status.html">Status and Error Codes</a></b><br/>
+</p>
+<ul>
+<li><em>osOK:</em> the message is put into the queue.</li>
+<li><em>osErrorResource:</em> no memory in the queue was available.</li>
+<li><em>osErrorTimeoutResource:</em> no memory in the queue was available during the given time limit.</li>
+<li><em>osErrorParameter:</em> a parameter is invalid or outside of a permitted range. </li>
+</ul>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__Message.js b/docs/RTOS/html/group__CMSIS__RTOS__Message.js
new file mode 100644
index 0000000..9806a11
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__Message.js
@@ -0,0 +1,9 @@
+var group__CMSIS__RTOS__Message =
+[
+ [ "osFeature_MessageQ", "group__CMSIS__RTOS__Message.html#ga479a6561f859e3d4818e25708593d203", null ],
+ [ "osMessageQ", "group__CMSIS__RTOS__Message.html#ga2d446a0b4bb90bf05d6f92eedeaabc97", null ],
+ [ "osMessageQDef", "group__CMSIS__RTOS__Message.html#gac9a6a6276c12609793e7701afcc82326", null ],
+ [ "osMessageCreate", "group__CMSIS__RTOS__Message.html#gaf3b9345cf426304d46565152bc26fb78", null ],
+ [ "osMessageGet", "group__CMSIS__RTOS__Message.html#ga6c6892b8f2296cca6becd57ca2d7e1ae", null ],
+ [ "osMessagePut", "group__CMSIS__RTOS__Message.html#gac0dcf462fc92de8ffaba6cc004514a6d", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__MutexMgmt.html b/docs/RTOS/html/group__CMSIS__RTOS__MutexMgmt.html
new file mode 100644
index 0000000..ad64a6a
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__MutexMgmt.html
@@ -0,0 +1,444 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Mutexes</title>
+<title>CMSIS-RTOS: Mutexes</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group__CMSIS__RTOS__MutexMgmt.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Mutexes<div class="ingroups"><a class="el" href="group__CMSIS__RTOS__InterThread.html">Inter-Thread Communication and Resource Sharing</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Synchronize resource access using Mutual Exclusion (Mutex).
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ga9b522438489d7c402c95332b58bc94f3"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga9b522438489d7c402c95332b58bc94f3">osMutexDef</a>(name)&#160;&#160;&#160;const <a class="el" href="cmsis__os_8h.html#structosMutexDef__t">osMutexDef_t</a> os_mutex_def_##name = { 0 }</td></tr>
+<tr class="memdesc:ga9b522438489d7c402c95332b58bc94f3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define a Mutex. <a href="#ga9b522438489d7c402c95332b58bc94f3">More...</a><br/></td></tr>
+<tr class="separator:ga9b522438489d7c402c95332b58bc94f3"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1122a86faa64b4a0880c76cf68d0c934"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga1122a86faa64b4a0880c76cf68d0c934">osMutex</a>(name)&#160;&#160;&#160;&amp;os_mutex_def_##name</td></tr>
+<tr class="memdesc:ga1122a86faa64b4a0880c76cf68d0c934"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access a Mutex definition. <a href="#ga1122a86faa64b4a0880c76cf68d0c934">More...</a><br/></td></tr>
+<tr class="separator:ga1122a86faa64b4a0880c76cf68d0c934"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga5c9de56e717016e39e788064e9a291cc"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">osMutexId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga5c9de56e717016e39e788064e9a291cc">osMutexCreate</a> (const <a class="el" href="cmsis__os_8h.html#structosMutexDef__t">osMutexDef_t</a> *mutex_def)</td></tr>
+<tr class="memdesc:ga5c9de56e717016e39e788064e9a291cc"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create and Initialize a Mutex object. <a href="#ga5c9de56e717016e39e788064e9a291cc">More...</a><br/></td></tr>
+<tr class="separator:ga5c9de56e717016e39e788064e9a291cc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5e1752b73f573ee015dbd9ef1edaba13"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga5e1752b73f573ee015dbd9ef1edaba13">osMutexWait</a> (<a class="el" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">osMutexId</a> mutex_id, uint32_t millisec)</td></tr>
+<tr class="memdesc:ga5e1752b73f573ee015dbd9ef1edaba13"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait until a Mutex becomes available. <a href="#ga5e1752b73f573ee015dbd9ef1edaba13">More...</a><br/></td></tr>
+<tr class="separator:ga5e1752b73f573ee015dbd9ef1edaba13"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga006e4744d741e8e132c3d5bbc295afe1"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga006e4744d741e8e132c3d5bbc295afe1">osMutexRelease</a> (<a class="el" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">osMutexId</a> mutex_id)</td></tr>
+<tr class="memdesc:ga006e4744d741e8e132c3d5bbc295afe1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release a Mutex that was obtained by <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga5e1752b73f573ee015dbd9ef1edaba13">osMutexWait</a>. <a href="#ga006e4744d741e8e132c3d5bbc295afe1">More...</a><br/></td></tr>
+<tr class="separator:ga006e4744d741e8e132c3d5bbc295afe1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gac27e24135185d51d18f3dabc20910219"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#gac27e24135185d51d18f3dabc20910219">osMutexDelete</a> (<a class="el" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">osMutexId</a> mutex_id)</td></tr>
+<tr class="memdesc:gac27e24135185d51d18f3dabc20910219"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a Mutex that was created by <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga5c9de56e717016e39e788064e9a291cc">osMutexCreate</a>. <a href="#gac27e24135185d51d18f3dabc20910219">More...</a><br/></td></tr>
+<tr class="separator:gac27e24135185d51d18f3dabc20910219"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
+<p><b>Mutual exclusion</b> (widely known as <b>Mutex</b>) is used in various operating systems for resource management. Many resources in a microcontroller device can be used repeatedly, but only by one thread at a time (for example communication channels, memory, and files). Mutexes are used to protect access to a shared resource. A mutex is created and then passed between the threads (they can acquire and release the mutex).</p>
+<div class="image">
+<img src="Mutex.png" alt="Mutex.png"/>
+<div class="caption">
+CMSIS-RTOS Mutex</div></div>
+<p> A mutex is a special version of a <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html">semaphore</a>. Like the semaphore, it is a container for tokens. But instead of being able to have multiple tokens, a mutex can only carry one (representing the resource). Thus, a mutex token is binary and bounded. The advantage of a mutex is that it introduces thread ownership. When a thread acquires a mutex and becomes its owner, subsequent mutex acquires from that thread will succeed immediately without any latency. Thus, mutex acquires/releases can be nested.</p>
+<dl class="section note"><dt>Note</dt><dd><ul>
+<li>Mutex management functions cannot be called from interrupt service routines (ISR), unlike a binary semaphore that can be released from an ISR.</li>
+<li>CMSIS-RTOS uses <a href="https://en.wikipedia.org/wiki/Reentrant_mutex" target="_blank">reentrant/recursive mutexes</a> only.</li>
+</ul>
+</dd></dl>
+<h2>Working with Mutexes </h2>
+<p>To use mutexes, you need to follow these steps for creating and using them:</p>
+<ol type="1">
+<li>Declare the mutex container and initialize the mutex: <div class="fragment"><div class="line"><a class="code" href="group__CMSIS__RTOS__MutexMgmt.html#ga9b522438489d7c402c95332b58bc94f3">osMutexDef</a> (uart_mutex); <span class="comment">// Declare mutex</span></div>
+<div class="line"><a class="code" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">osMutexId</a> (uart_mutex_id); <span class="comment">// Mutex ID</span></div>
+</div><!-- fragment --></li>
+<li>Create the mutex in a thread: <div class="fragment"><div class="line">uart_mutex_id = <a class="code" href="group__CMSIS__RTOS__MutexMgmt.html#ga5c9de56e717016e39e788064e9a291cc">osMutexCreate</a>(<a class="code" href="group__CMSIS__RTOS__MutexMgmt.html#ga1122a86faa64b4a0880c76cf68d0c934">osMutex</a>(uart_mutex));</div>
+</div><!-- fragment --></li>
+<li>Acquire the mutex when peripheral access is required: <div class="fragment"><div class="line"><a class="code" href="group__CMSIS__RTOS__MutexMgmt.html#ga5e1752b73f573ee015dbd9ef1edaba13">osMutexWait</a>(uart_mutex_id, <a class="code" href="cmsis__os_8h.html#a9eb9a7a797a42e4b55eb171ecc609ddb">osWaitForever</a>);</div>
+</div><!-- fragment --></li>
+<li>When finished with the peripheral access, release the mutex: <div class="fragment"><div class="line"><a class="code" href="group__CMSIS__RTOS__MutexMgmt.html#ga006e4744d741e8e132c3d5bbc295afe1">osMutexRelease</a>(uart_mutex_id);</div>
+</div><!-- fragment --> </li>
+</ol>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="ga1122a86faa64b4a0880c76cf68d0c934"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osMutex</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">name</td><td>)</td>
+ <td>&#160;&#160;&#160;&amp;os_mutex_def_##name</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Access to mutex object for the functions <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga5c9de56e717016e39e788064e9a291cc">osMutexCreate</a>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">name</td><td>name of the mutex object. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: The parameter to <b>osMutex</b> shall be consistent but the macro body is implementation specific in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9b522438489d7c402c95332b58bc94f3"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osMutexDef</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">name</td><td>)</td>
+ <td>&#160;&#160;&#160;const <a class="el" href="cmsis__os_8h.html#structosMutexDef__t">osMutexDef_t</a> os_mutex_def_##name = { 0 }</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Define a mutex object that is referenced by <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga1122a86faa64b4a0880c76cf68d0c934">osMutex</a>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">name</td><td>name of the mutex object. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: The parameter to <b>osMutexDef</b> shall be consistent but the macro body is implementation specific in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga5c9de56e717016e39e788064e9a291cc"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">osMutexId</a> osMutexCreate </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="cmsis__os_8h.html#structosMutexDef__t">osMutexDef_t</a> *&#160;</td>
+ <td class="paramname"><em>mutex_def</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">mutex_def</td><td>mutex definition referenced with <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga1122a86faa64b4a0880c76cf68d0c934">osMutex</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>mutex ID for reference by other functions or NULL in case of error. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osMutexCreate</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Create and initialize a Mutex object.</p>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__MutexMgmt.html#ga9b522438489d7c402c95332b58bc94f3">osMutexDef</a> (MutexIsr); <span class="comment">// Mutex name definition</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> CreateMutex (<span class="keywordtype">void</span>) {</div>
+<div class="line"><a class="code" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">osMutexId</a> mutex_id; </div>
+<div class="line"> </div>
+<div class="line"> mutex_id = <a class="code" href="group__CMSIS__RTOS__MutexMgmt.html#ga5c9de56e717016e39e788064e9a291cc">osMutexCreate</a> (<a class="code" href="group__CMSIS__RTOS__MutexMgmt.html#ga1122a86faa64b4a0880c76cf68d0c934">osMutex</a> (MutexIsr));</div>
+<div class="line"> <span class="keywordflow">if</span> (mutex_id != NULL) {</div>
+<div class="line"> <span class="comment">// Mutex object created</span></div>
+<div class="line"> } </div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="gac27e24135185d51d18f3dabc20910219"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> osMutexDelete </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">osMutexId</a>&#160;</td>
+ <td class="paramname"><em>mutex_id</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">mutex_id</td><td>mutex ID obtained by <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga5c9de56e717016e39e788064e9a291cc">osMutexCreate</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>status code that indicates the execution status of the function. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osMutexDelete</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Delete a Mutex object. The function releases internal memory obtained for Mutex handling. After this call the <em>mutex_id</em> is no longer valid and cannot be used. The Mutex may be created again using the function <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga5c9de56e717016e39e788064e9a291cc">osMutexCreate</a>.</p>
+<p><b><a class="el" href="group__CMSIS__RTOS__Status.html">Status and Error Codes</a></b><br/>
+</p>
+<ul>
+<li><em>osOK:</em> the mutex object has been deleted.</li>
+<li><em>osErrorISR:</em> <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#gac27e24135185d51d18f3dabc20910219">osMutexDelete</a> cannot be called from interrupt service routines.</li>
+<li><em>osErrorResource:</em> all tokens have already been released.</li>
+<li><em>osErrorParameter:</em> the parameter <em>mutex_id</em> is incorrect.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__MutexMgmt.html#ga9b522438489d7c402c95332b58bc94f3">osMutexDef</a> (MutexIsr); <span class="comment">// Mutex name definition </span></div>
+<div class="line"><a class="code" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">osMutexId</a> mutex_id; <span class="comment">// Mutex id populated by the function CreateMutex()</span></div>
+<div class="line"><a class="code" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">osMutexId</a> CreateMutex (<span class="keywordtype">void</span>); <span class="comment">// function prototype that creates the Mutex</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> DeleteMutex (<a class="code" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">osMutexId</a> mutex_id) {</div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> status;</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">if</span> (mutex_id != NULL) {</div>
+<div class="line"> status = <a class="code" href="group__CMSIS__RTOS__MutexMgmt.html#gac27e24135185d51d18f3dabc20910219">osMutexDelete</a>(mutex_id);</div>
+<div class="line"> <span class="keywordflow">if</span> (status != <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f">osOK</a>) {</div>
+<div class="line"> <span class="comment">// handle failure code</span></div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ga006e4744d741e8e132c3d5bbc295afe1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> osMutexRelease </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">osMutexId</a>&#160;</td>
+ <td class="paramname"><em>mutex_id</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">mutex_id</td><td>mutex ID obtained by <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga5c9de56e717016e39e788064e9a291cc">osMutexCreate</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>status code that indicates the execution status of the function. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osMutexRelease</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Release a Mutex that was obtained with <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga5e1752b73f573ee015dbd9ef1edaba13">osMutexWait</a>. Other threads that currently wait for the same mutex will be now put into the state <b>READY</b>.</p>
+<p><b><a class="el" href="group__CMSIS__RTOS__Status.html">Status and Error Codes</a></b><br/>
+</p>
+<ul>
+<li><em>osOK:</em> the mutex has been correctly released.</li>
+<li><em>osErrorResource:</em> the mutex was not obtained before.</li>
+<li><em>osErrorParameter:</em> the parameter <em>mutex_id</em> is incorrect.</li>
+<li><em>osErrorISR:</em> <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga006e4744d741e8e132c3d5bbc295afe1">osMutexRelease</a> cannot be called from interrupt service routines.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__MutexMgmt.html#ga9b522438489d7c402c95332b58bc94f3">osMutexDef</a> (MutexIsr); <span class="comment">// Mutex name definition </span></div>
+<div class="line"><a class="code" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">osMutexId</a> mutex_id; <span class="comment">// Mutex id populated by the function CreateMutex()</span></div>
+<div class="line"><a class="code" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">osMutexId</a> CreateMutex (<span class="keywordtype">void</span>); <span class="comment">// function prototype that creates the Mutex</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> ReleaseMutex (<a class="code" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">osMutexId</a> mutex_id) {</div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> status;</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">if</span> (mutex_id != NULL) {</div>
+<div class="line"> status = <a class="code" href="group__CMSIS__RTOS__MutexMgmt.html#ga006e4744d741e8e132c3d5bbc295afe1">osMutexRelease</a>(mutex_id);</div>
+<div class="line"> <span class="keywordflow">if</span> (status != <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f">osOK</a>) {</div>
+<div class="line"> <span class="comment">// handle failure code</span></div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ga5e1752b73f573ee015dbd9ef1edaba13"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> osMutexWait </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">osMutexId</a>&#160;</td>
+ <td class="paramname"><em>mutex_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>millisec</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">mutex_id</td><td>mutex ID obtained by <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga5c9de56e717016e39e788064e9a291cc">osMutexCreate</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">millisec</td><td><a class="el" href="functionOverview.html#CMSIS_RTOS_TimeOutValue">Timout Value</a> or 0 in case of no time-out. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>status code that indicates the execution status of the function. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osMutexWait</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Wait until a Mutex becomes available. If no other thread has obtained the Mutex, the function instantly returns and blocks the mutex object.</p>
+<p>The argument <em>millisec</em> specifies how long the system waits for a mutex. While the system waits the thread that is calling this function is put into the state <b>WAITING</b>. The <em>millisec</em> timeout can have the following values:</p>
+<ul>
+<li>when <em>millisec</em> is 0, the function returns instantly.</li>
+<li>when <em>millisec</em> is set to <b>osWaitForever</b> the function will wait for an infinite time until the mutex becomes available.</li>
+<li>all other values specify a time in millisecond for a timeout.</li>
+</ul>
+<p><b><a class="el" href="group__CMSIS__RTOS__Status.html">Status and Error Codes</a></b><br/>
+</p>
+<ul>
+<li><em>osOK:</em> the mutex has been obtained.</li>
+<li><em>osErrorTimeoutResource:</em> the mutex could not be obtained in the given time.</li>
+<li><em>osErrorResource:</em> the mutex could not be obtained when no timeout was specified.</li>
+<li><em>osErrorParameter:</em> the parameter <em>mutex_id</em> is incorrect.</li>
+<li><em>osErrorISR:</em> <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga5e1752b73f573ee015dbd9ef1edaba13">osMutexWait</a> cannot be called from interrupt service routines.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__MutexMgmt.html#ga9b522438489d7c402c95332b58bc94f3">osMutexDef</a> (MutexIsr);</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> WaitMutex (<span class="keywordtype">void</span>) {</div>
+<div class="line"><a class="code" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">osMutexId</a> mutex_id; </div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> status;</div>
+<div class="line"> </div>
+<div class="line"> mutex_id = <a class="code" href="group__CMSIS__RTOS__MutexMgmt.html#ga5c9de56e717016e39e788064e9a291cc">osMutexCreate</a> (<a class="code" href="group__CMSIS__RTOS__MutexMgmt.html#ga1122a86faa64b4a0880c76cf68d0c934">osMutex</a> (MutexIsr));</div>
+<div class="line"> <span class="keywordflow">if</span> (mutex_id != NULL) {</div>
+<div class="line"> status = <a class="code" href="group__CMSIS__RTOS__MutexMgmt.html#ga5e1752b73f573ee015dbd9ef1edaba13">osMutexWait</a> (mutex_id, 0);</div>
+<div class="line"> <span class="keywordflow">if</span> (status != <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f">osOK</a>) {</div>
+<div class="line"> <span class="comment">// handle failure code</span></div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__MutexMgmt.js b/docs/RTOS/html/group__CMSIS__RTOS__MutexMgmt.js
new file mode 100644
index 0000000..cc1212e
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__MutexMgmt.js
@@ -0,0 +1,9 @@
+var group__CMSIS__RTOS__MutexMgmt =
+[
+ [ "osMutex", "group__CMSIS__RTOS__MutexMgmt.html#ga1122a86faa64b4a0880c76cf68d0c934", null ],
+ [ "osMutexDef", "group__CMSIS__RTOS__MutexMgmt.html#ga9b522438489d7c402c95332b58bc94f3", null ],
+ [ "osMutexCreate", "group__CMSIS__RTOS__MutexMgmt.html#ga5c9de56e717016e39e788064e9a291cc", null ],
+ [ "osMutexDelete", "group__CMSIS__RTOS__MutexMgmt.html#gac27e24135185d51d18f3dabc20910219", null ],
+ [ "osMutexRelease", "group__CMSIS__RTOS__MutexMgmt.html#ga006e4744d741e8e132c3d5bbc295afe1", null ],
+ [ "osMutexWait", "group__CMSIS__RTOS__MutexMgmt.html#ga5e1752b73f573ee015dbd9ef1edaba13", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__PoolMgmt.html b/docs/RTOS/html/group__CMSIS__RTOS__PoolMgmt.html
new file mode 100644
index 0000000..91e0af7
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__PoolMgmt.html
@@ -0,0 +1,495 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Memory Pool</title>
+<title>CMSIS-RTOS: Memory Pool</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group__CMSIS__RTOS__PoolMgmt.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Memory Pool<div class="ingroups"><a class="el" href="group__CMSIS__RTOS__InterThread.html">Inter-Thread Communication and Resource Sharing</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Manage thread-safe fixed-size blocks of dynamic memory.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:gadd84b683001de327894851b428587caa"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#gadd84b683001de327894851b428587caa">osFeature_Pool</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:gadd84b683001de327894851b428587caa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Memory Pools: 1=available, 0=not available. <a href="#gadd84b683001de327894851b428587caa">More...</a><br/></td></tr>
+<tr class="separator:gadd84b683001de327894851b428587caa"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga87b471d4fe2d5dbd0040708edd52771b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga87b471d4fe2d5dbd0040708edd52771b">osPoolDef</a>(name, no, type)</td></tr>
+<tr class="memdesc:ga87b471d4fe2d5dbd0040708edd52771b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define a Memory Pool. <a href="#ga87b471d4fe2d5dbd0040708edd52771b">More...</a><br/></td></tr>
+<tr class="separator:ga87b471d4fe2d5dbd0040708edd52771b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga5f0b204a82327533d420210125c90697"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga5f0b204a82327533d420210125c90697">osPool</a>(name)&#160;&#160;&#160;&amp;os_pool_def_##name</td></tr>
+<tr class="memdesc:ga5f0b204a82327533d420210125c90697"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access a Memory Pool definition. <a href="#ga5f0b204a82327533d420210125c90697">More...</a><br/></td></tr>
+<tr class="separator:ga5f0b204a82327533d420210125c90697"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga34af5c4f4ab38f4138ea7f1f9ece3a1a"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686">osPoolId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a">osPoolCreate</a> (const <a class="el" href="cmsis__os_8h.html#structosPoolDef__t">osPoolDef_t</a> *pool_def)</td></tr>
+<tr class="memdesc:ga34af5c4f4ab38f4138ea7f1f9ece3a1a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create and Initialize a memory pool. <a href="#ga34af5c4f4ab38f4138ea7f1f9ece3a1a">More...</a><br/></td></tr>
+<tr class="separator:ga34af5c4f4ab38f4138ea7f1f9ece3a1a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaa0b2994f1a866c19e0d11e6e0d44f543"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#gaa0b2994f1a866c19e0d11e6e0d44f543">osPoolAlloc</a> (<a class="el" href="cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686">osPoolId</a> pool_id)</td></tr>
+<tr class="memdesc:gaa0b2994f1a866c19e0d11e6e0d44f543"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a memory block from a memory pool. <a href="#gaa0b2994f1a866c19e0d11e6e0d44f543">More...</a><br/></td></tr>
+<tr class="separator:gaa0b2994f1a866c19e0d11e6e0d44f543"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9f129fcad4730fbd1048ad4fa262f36a"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga9f129fcad4730fbd1048ad4fa262f36a">osPoolCAlloc</a> (<a class="el" href="cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686">osPoolId</a> pool_id)</td></tr>
+<tr class="memdesc:ga9f129fcad4730fbd1048ad4fa262f36a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Allocate a memory block from a memory pool and set memory block to zero. <a href="#ga9f129fcad4730fbd1048ad4fa262f36a">More...</a><br/></td></tr>
+<tr class="separator:ga9f129fcad4730fbd1048ad4fa262f36a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4a861e9c469c9d0daf5721bf174f8e54"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga4a861e9c469c9d0daf5721bf174f8e54">osPoolFree</a> (<a class="el" href="cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686">osPoolId</a> pool_id, void *block)</td></tr>
+<tr class="memdesc:ga4a861e9c469c9d0daf5721bf174f8e54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return an allocated memory block back to a specific memory pool. <a href="#ga4a861e9c469c9d0daf5721bf174f8e54">More...</a><br/></td></tr>
+<tr class="separator:ga4a861e9c469c9d0daf5721bf174f8e54"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
+<p><b>Memory</b> <b>pools</b> are fixed-size blocks of memory that are thread-safe. They operate much faster than the dynamically allocated heap and do not suffer from fragmentation. Being thread-safe, they can be accessed from threads and ISRs alike.</p>
+<p><b>Shared</b> <b>memory</b> is one of the basic models to exchange information between threads. Using memory pools for exchanging data, you can share more complex objects between threads if compared to a <a class="el" href="group__CMSIS__RTOS__Message.html">Message Queue</a>. Memory pool management functions are used to define and manage such fixed-sized memory pools.</p>
+<h2>Working with Memory Pools </h2>
+<p>Follow these steps to create and use a memory pool:</p>
+<ol type="1">
+<li>Declare a data structure that combines a number of elements: <div class="fragment"><div class="line"><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"> uint32_t length;</div>
+<div class="line"> uint32_t width;</div>
+<div class="line"> uint32_t height;</div>
+<div class="line"> uint32_t weight;</div>
+<div class="line">} properties_t;</div>
+</div><!-- fragment --></li>
+<li>Declare a memory pool of these objects as a block of memory: <div class="fragment"><div class="line"><a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga87b471d4fe2d5dbd0040708edd52771b">osPoolDef</a> (object_pool, 10, properties_t); <span class="comment">// Declare memory pool</span></div>
+<div class="line"><a class="code" href="cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686">osPoolId</a> (object_pool_id); <span class="comment">// Memory pool ID</span></div>
+</div><!-- fragment --></li>
+<li>Then, create the memory pool in a thread: <div class="fragment"><div class="line">object_pool_id = <a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a">osPoolCreate</a>(<a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga5f0b204a82327533d420210125c90697">osPool</a>(object_pool));</div>
+</div><!-- fragment --></li>
+<li>Allocate the pool within a thread and fill it with data: <div class="fragment"><div class="line">properties_t *object_data;</div>
+<div class="line"> object_data = (properties_t *) <a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#gaa0b2994f1a866c19e0d11e6e0d44f543">osPoolAlloc</a>(object_pool_id);</div>
+<div class="line"> </div>
+<div class="line">object_data-&gt;length = 100;</div>
+<div class="line">object_data-&gt;width = 10;</div>
+<div class="line">object_data-&gt;height = 23;</div>
+<div class="line">object_data-&gt;weight = 1000;</div>
+</div><!-- fragment --> </li>
+</ol>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="gadd84b683001de327894851b428587caa"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osFeature_Pool&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>A CMSIS-RTOS implementation may support fixed-size memory pools.</p>
+<ul>
+<li>When <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#gadd84b683001de327894851b428587caa">osFeature_Pool</a> is 1 memory pools are supported.</li>
+<li>When <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#gadd84b683001de327894851b428587caa">osFeature_Pool</a> is 0 no memory pools are supported.</li>
+</ul>
+<p><a class="el" href="rtxImplementation.html">CMSIS-RTOS RTX</a> Setting: <b>osFeature_Pool</b> is 1 </p>
+
+</div>
+</div>
+<a class="anchor" id="ga5f0b204a82327533d420210125c90697"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osPool</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">name</td><td>)</td>
+ <td>&#160;&#160;&#160;&amp;os_pool_def_##name</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Access a memory pool for the functions <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a">osPoolCreate</a>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">name</td><td>name of the memory pool </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: The parameter to <b>osPool</b> shall be consistent but the macro body is implementation specific in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga87b471d4fe2d5dbd0040708edd52771b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osPoolDef</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">name, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">no, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">type&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Define a memory pool that is referenced by <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga5f0b204a82327533d420210125c90697">osPool</a>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">name</td><td>name of the memory pool. </td></tr>
+ <tr><td class="paramname">no</td><td>maximum number of blocks (objects) in the memory pool. </td></tr>
+ <tr><td class="paramname">type</td><td>data type of a single block (object). </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: The parameter to <b>osPoolDef</b> shall be consistent but the macro body is implementation specific in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gaa0b2994f1a866c19e0d11e6e0d44f543"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void * osPoolAlloc </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686">osPoolId</a>&#160;</td>
+ <td class="paramname"><em>pool_id</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">pool_id</td><td>memory pool ID obtain referenced with <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a">osPoolCreate</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>address of the allocated memory block or NULL in case of no memory available. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osPoolAlloc</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Allocate a memory block from the memory pool.</p>
+<dl class="section note"><dt>Note</dt><dd><a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a> can call this function.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"> uint8_t Buf[32];</div>
+<div class="line"> uint8_t Idx;</div>
+<div class="line">} MEM_BLOCK;</div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga87b471d4fe2d5dbd0040708edd52771b">osPoolDef</a> (MemPool, 8, MEM_BLOCK);</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> AlocMemoryPoolBlock (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <a class="code" href="cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686">osPoolId</a> MemPool_Id;</div>
+<div class="line"> MEM_BLOCK *addr;</div>
+<div class="line"> </div>
+<div class="line"> MemPool_Id = <a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a">osPoolCreate</a> (<a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga5f0b204a82327533d420210125c90697">osPool</a> (MemPool));</div>
+<div class="line"> <span class="keywordflow">if</span> (MemPool_Id != NULL) {</div>
+<div class="line"> :</div>
+<div class="line"> <span class="comment">// allocate a memory block</span></div>
+<div class="line"> addr = (MEM_BLOCK *)<a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#gaa0b2994f1a866c19e0d11e6e0d44f543">osPoolAlloc</a> (MemPool_Id);</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">if</span> (addr != NULL) {</div>
+<div class="line"> <span class="comment">// memory block was allocated</span></div>
+<div class="line"> :</div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ga9f129fcad4730fbd1048ad4fa262f36a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void * osPoolCAlloc </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686">osPoolId</a>&#160;</td>
+ <td class="paramname"><em>pool_id</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">pool_id</td><td>memory pool ID obtain referenced with <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a">osPoolCreate</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>address of the allocated memory block or NULL in case of no memory available. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osPoolCAlloc</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Allocate a memory block from the memory pool. The block is initialized to zero.</p>
+<dl class="section note"><dt>Note</dt><dd><a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a> can call this function.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"> uint8_t Buf[32];</div>
+<div class="line"> uint8_t Idx;</div>
+<div class="line">} MEM_BLOCK;</div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga87b471d4fe2d5dbd0040708edd52771b">osPoolDef</a> (MemPool, 8, MEM_BLOCK);</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> CAlocMemoryPoolBlock (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <a class="code" href="cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686">osPoolId</a> MemPool_Id;</div>
+<div class="line"> MEM_BLOCK *addr;</div>
+<div class="line"> </div>
+<div class="line"> MemPool_Id = <a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a">osPoolCreate</a> (<a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga5f0b204a82327533d420210125c90697">osPool</a> (MemPool));</div>
+<div class="line"> <span class="keywordflow">if</span> (MemPool_Id != NULL) {</div>
+<div class="line"> :</div>
+<div class="line"> <span class="comment">// allocate a memory block</span></div>
+<div class="line"> addr = (MEM_BLOCK *)<a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga9f129fcad4730fbd1048ad4fa262f36a">osPoolCAlloc</a> (MemPool_Id);</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">if</span> (addr != NULL) {</div>
+<div class="line"> <span class="comment">// memory block was allocated</span></div>
+<div class="line"> :</div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ga34af5c4f4ab38f4138ea7f1f9ece3a1a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686">osPoolId</a> osPoolCreate </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="cmsis__os_8h.html#structosPoolDef__t">osPoolDef_t</a> *&#160;</td>
+ <td class="paramname"><em>pool_def</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">pool_def</td><td>memory pool definition referenced with <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga5f0b204a82327533d420210125c90697">osPool</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>memory pool ID for reference by other functions or NULL in case of error. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osPoolCreate</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Create and initialize a memory pool.</p>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"> uint8_t Buf[32];</div>
+<div class="line"> uint8_t Idx;</div>
+<div class="line">} MEM_BLOCK;</div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga87b471d4fe2d5dbd0040708edd52771b">osPoolDef</a> (MemPool, 8, MEM_BLOCK);</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> CreateMemoryPool (<span class="keywordtype">void</span>) {</div>
+<div class="line"><a class="code" href="cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686">osPoolId</a> MemPool_Id;</div>
+<div class="line"> </div>
+<div class="line"> MemPool_Id = <a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a">osPoolCreate</a> (<a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga5f0b204a82327533d420210125c90697">osPool</a> (MemPool));</div>
+<div class="line"> <span class="keywordflow">if</span> (MemPool_Id != NULL) {</div>
+<div class="line"> <span class="comment">// memory pool created</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ga4a861e9c469c9d0daf5721bf174f8e54"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> osPoolFree </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686">osPoolId</a>&#160;</td>
+ <td class="paramname"><em>pool_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>block</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">pool_id</td><td>memory pool ID obtain referenced with <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a">osPoolCreate</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">block</td><td>address of the allocated memory block that is returned to the memory pool. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>status code that indicates the execution status of the function. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osPoolFree</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Return a memory block to a memory pool.</p>
+<p><b><a class="el" href="group__CMSIS__RTOS__Status.html">Status and Error Codes</a></b><br/>
+</p>
+<ul>
+<li><em>osOK:</em> the memory block is released.</li>
+<li><em>osErrorValue:</em> <em>block</em> does not belong to the memory pool.</li>
+<li><em>osErrorParameter:</em> a parameter is invalid or outside of a permitted range.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd><a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a> can call this function.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"> uint8_t Buf[32];</div>
+<div class="line"> uint8_t Idx;</div>
+<div class="line">} MEM_BLOCK;</div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga87b471d4fe2d5dbd0040708edd52771b">osPoolDef</a> (MemPool, 8, MEM_BLOCK);</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> CAlocMemoryPoolBlock (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <a class="code" href="cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686">osPoolId</a> MemPool_Id;</div>
+<div class="line"> MEM_BLOCK *addr;</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> status;</div>
+<div class="line"> </div>
+<div class="line"> MemPool_Id = <a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a">osPoolCreate</a> (<a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga5f0b204a82327533d420210125c90697">osPool</a> (MemPool));</div>
+<div class="line"> <span class="keywordflow">if</span> (MemPool_Id != NULL) {</div>
+<div class="line"> addr = (MEM_BLOCK *)<a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga9f129fcad4730fbd1048ad4fa262f36a">osPoolCAlloc</a> (MemPool_Id);</div>
+<div class="line"> <span class="keywordflow">if</span> (addr != NULL) {</div>
+<div class="line"> :</div>
+<div class="line"> <span class="comment">// return a memory block back to pool</span></div>
+<div class="line"> status = <a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga4a861e9c469c9d0daf5721bf174f8e54">osPoolFree</a> (MemPool_Id, addr);</div>
+<div class="line"> <span class="keywordflow">if</span> (status==<a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f">osOK</a>) {</div>
+<div class="line"> <span class="comment">// handle status code</span></div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__PoolMgmt.js b/docs/RTOS/html/group__CMSIS__RTOS__PoolMgmt.js
new file mode 100644
index 0000000..60460d4
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__PoolMgmt.js
@@ -0,0 +1,10 @@
+var group__CMSIS__RTOS__PoolMgmt =
+[
+ [ "osFeature_Pool", "group__CMSIS__RTOS__PoolMgmt.html#gadd84b683001de327894851b428587caa", null ],
+ [ "osPool", "group__CMSIS__RTOS__PoolMgmt.html#ga5f0b204a82327533d420210125c90697", null ],
+ [ "osPoolDef", "group__CMSIS__RTOS__PoolMgmt.html#ga87b471d4fe2d5dbd0040708edd52771b", null ],
+ [ "osPoolAlloc", "group__CMSIS__RTOS__PoolMgmt.html#gaa0b2994f1a866c19e0d11e6e0d44f543", null ],
+ [ "osPoolCAlloc", "group__CMSIS__RTOS__PoolMgmt.html#ga9f129fcad4730fbd1048ad4fa262f36a", null ],
+ [ "osPoolCreate", "group__CMSIS__RTOS__PoolMgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a", null ],
+ [ "osPoolFree", "group__CMSIS__RTOS__PoolMgmt.html#ga4a861e9c469c9d0daf5721bf174f8e54", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__SemaphoreMgmt.html b/docs/RTOS/html/group__CMSIS__RTOS__SemaphoreMgmt.html
new file mode 100644
index 0000000..7977dcd
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__SemaphoreMgmt.html
@@ -0,0 +1,463 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Semaphores</title>
+<title>CMSIS-RTOS: Semaphores</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group__CMSIS__RTOS__SemaphoreMgmt.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Semaphores<div class="ingroups"><a class="el" href="group__CMSIS__RTOS__InterThread.html">Inter-Thread Communication and Resource Sharing</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Access shared resources simultaneously from different threads.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ga7da4c7bfb340779c9fc7b321f5ab3e3a"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga7da4c7bfb340779c9fc7b321f5ab3e3a">osFeature_Semaphore</a>&#160;&#160;&#160;30</td></tr>
+<tr class="memdesc:ga7da4c7bfb340779c9fc7b321f5ab3e3a"><td class="mdescLeft">&#160;</td><td class="mdescRight">maximum count for <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb">osSemaphoreCreate</a> function <a href="#ga7da4c7bfb340779c9fc7b321f5ab3e3a">More...</a><br/></td></tr>
+<tr class="separator:ga7da4c7bfb340779c9fc7b321f5ab3e3a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga9e66fe361749071e5ab87826c43c2f1b"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga9e66fe361749071e5ab87826c43c2f1b">osSemaphoreDef</a>(name)&#160;&#160;&#160;const <a class="el" href="cmsis__os_8h.html#structosSemaphoreDef__t">osSemaphoreDef_t</a> os_semaphore_def_##name = { 0 }</td></tr>
+<tr class="memdesc:ga9e66fe361749071e5ab87826c43c2f1b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define a Semaphore object. <a href="#ga9e66fe361749071e5ab87826c43c2f1b">More...</a><br/></td></tr>
+<tr class="separator:ga9e66fe361749071e5ab87826c43c2f1b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga03761ee8d2c3cd4544e18364ab301dac"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga03761ee8d2c3cd4544e18364ab301dac">osSemaphore</a>(name)&#160;&#160;&#160;&amp;os_semaphore_def_##name</td></tr>
+<tr class="memdesc:ga03761ee8d2c3cd4544e18364ab301dac"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access a Semaphore definition. <a href="#ga03761ee8d2c3cd4544e18364ab301dac">More...</a><br/></td></tr>
+<tr class="separator:ga03761ee8d2c3cd4544e18364ab301dac"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga97381e8e55cd47cec390bf57c96d6edb"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cmsis__os_8h.html#aa8968896c84094aa973683c84fa06f84">osSemaphoreId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb">osSemaphoreCreate</a> (const <a class="el" href="cmsis__os_8h.html#structosSemaphoreDef__t">osSemaphoreDef_t</a> *semaphore_def, int32_t count)</td></tr>
+<tr class="memdesc:ga97381e8e55cd47cec390bf57c96d6edb"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create and Initialize a Semaphore object used for managing resources. <a href="#ga97381e8e55cd47cec390bf57c96d6edb">More...</a><br/></td></tr>
+<tr class="separator:ga97381e8e55cd47cec390bf57c96d6edb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gacc15b0fc8ce1167fe43da33042e62098"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gacc15b0fc8ce1167fe43da33042e62098">osSemaphoreWait</a> (<a class="el" href="cmsis__os_8h.html#aa8968896c84094aa973683c84fa06f84">osSemaphoreId</a> semaphore_id, uint32_t millisec)</td></tr>
+<tr class="memdesc:gacc15b0fc8ce1167fe43da33042e62098"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait until a Semaphore token becomes available. <a href="#gacc15b0fc8ce1167fe43da33042e62098">More...</a><br/></td></tr>
+<tr class="separator:gacc15b0fc8ce1167fe43da33042e62098"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab108914997c49e14d8ff1ae0d1988ca0"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gab108914997c49e14d8ff1ae0d1988ca0">osSemaphoreRelease</a> (<a class="el" href="cmsis__os_8h.html#aa8968896c84094aa973683c84fa06f84">osSemaphoreId</a> semaphore_id)</td></tr>
+<tr class="memdesc:gab108914997c49e14d8ff1ae0d1988ca0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Release a Semaphore token. <a href="#gab108914997c49e14d8ff1ae0d1988ca0">More...</a><br/></td></tr>
+<tr class="separator:gab108914997c49e14d8ff1ae0d1988ca0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gabae2801ac2c096f6e8c69a264908f595"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gabae2801ac2c096f6e8c69a264908f595">osSemaphoreDelete</a> (<a class="el" href="cmsis__os_8h.html#aa8968896c84094aa973683c84fa06f84">osSemaphoreId</a> semaphore_id)</td></tr>
+<tr class="memdesc:gabae2801ac2c096f6e8c69a264908f595"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a Semaphore that was created by <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb">osSemaphoreCreate</a>. <a href="#gabae2801ac2c096f6e8c69a264908f595">More...</a><br/></td></tr>
+<tr class="separator:gabae2801ac2c096f6e8c69a264908f595"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
+<p>Semaphores are used to manage and protect access to shared resources. Semaphores are very similar to <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html">Mutexes</a>. Whereas a Mutex permits just one thread to access a shared resource at a time, a semaphore can be used to permit a fixed number of threads to access a pool of shared resources. Using semaphores, access to a group of identical peripherals can be managed (for example multiple DMA channels).</p>
+<div class="image">
+<img src="Semaphore.png" alt="Semaphore.png"/>
+<div class="caption">
+CMSIS-RTOS Semaphore</div></div>
+<p> A semaphore object should be initialized to the maximum number of available tokens. This number of available resources is specified as parameter of the <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb">osSemaphoreCreate</a> function. Each time a semaphore token is obtained with <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gacc15b0fc8ce1167fe43da33042e62098">osSemaphoreWait</a>, the semaphore count is decremented. When the semaphore count is 0, no semaphore token can be obtained. The thread that tries to obtain the semaphore token needs to wait until the next token is free. Semaphores are released with <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gab108914997c49e14d8ff1ae0d1988ca0">osSemaphoreRelease</a> incrementing the semaphore count.</p>
+<dl class="section note"><dt>Note</dt><dd>Semaphore tokens can be acquired from threads and released from threads and ISRs.</dd></dl>
+<h2>Working with Semaphores </h2>
+<p>Follow these steps to create and use a semaphore:</p>
+<ol type="1">
+<li>Declare the semaphore container and initialize the semaphore: <div class="fragment"><div class="line"><a class="code" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga9e66fe361749071e5ab87826c43c2f1b">osSemaphoreDef</a> (my_semaphore); <span class="comment">// Declare semaphore</span></div>
+<div class="line"><a class="code" href="cmsis__os_8h.html#aa8968896c84094aa973683c84fa06f84">osSemaphoreId</a> (my_semaphore_id); <span class="comment">// Semaphore ID</span></div>
+</div><!-- fragment --></li>
+<li>Initialize the semaphore container with a number of tokens within a thread: <div class="fragment"><div class="line">my_semaphore_id = <a class="code" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb">osSemaphoreCreate</a>(<a class="code" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga03761ee8d2c3cd4544e18364ab301dac">osSemaphore</a>(my_semaphore), 4); <span class="comment">// Create semaphore with 4 tokens</span></div>
+</div><!-- fragment --> <b>Important:</b> semaphore tokens can be created and destroyed as threads run. This means that can initialize a semaphore with zero tokens and then use one thread to add/create tokens to the semaphore while a second thread removes them. In this way you can distinguish between producer and consumer threads.</li>
+<li>Acquire a token from the semaphore container: <div class="fragment"><div class="line"><a class="code" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gacc15b0fc8ce1167fe43da33042e62098">osSemaphoreWait</a>(my_semaphore_id, <a class="code" href="cmsis__os_8h.html#a9eb9a7a797a42e4b55eb171ecc609ddb">osWaitForever</a>);</div>
+</div><!-- fragment --></li>
+<li>When finished using the semaphore resource, send the token back to the semaphore container: <div class="fragment"><div class="line"><a class="code" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gab108914997c49e14d8ff1ae0d1988ca0">osSemaphoreRelease</a>(my_semaphore_id);</div>
+</div><!-- fragment --></li>
+</ol>
+<h2>Semaphore Use Cases </h2>
+<p>Due to their flexibility, semaphores cover a wide range of synchronizing applications. At the same time, they are perhaps the most challenging RTOS object to understand. The following explains a use case for semaphores, taken from the book <a href="http://www.greenteapress.com/semaphores/" target="_blank">The Little Book Of Semaphores</a> by Allen B. Downey which is available for free download.</p>
+<p><b>Non-binary Semaphore (Multiplex)</b></p>
+<p>A multiplex limits the number of threads that can access a critical section of code. For example, this could be a function accessing DMA resources which can only support a limited number of calls.</p>
+<p>To allow multiple threads to run the function, initialize a semaphore to the maximum number of threads that can be allowed. The number of tokens in the semaphore represents the number of additional threads that may enter. If this number is zero, then the next thread trying to access the function will have to wait until one of the other threads exits and releases its token. When all threads have exited the token number is back to n. Ths following example shows the code for one of the threads that might access the resource:</p>
+<div class="fragment"><div class="line"><a class="code" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga9e66fe361749071e5ab87826c43c2f1b">osSemaphoreDef</a>(multiplex);</div>
+<div class="line"><a class="code" href="cmsis__os_8h.html#aa8968896c84094aa973683c84fa06f84">osSemaphoreId</a> (multiplex_id);</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> thread_n (<span class="keywordtype">void</span>)</div>
+<div class="line"> {</div>
+<div class="line"> multiplex_id = <a class="code" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb">osSemaphoreCreate</a>(<a class="code" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga03761ee8d2c3cd4544e18364ab301dac">osSemaphore</a>(multiplex), 3);</div>
+<div class="line"> <span class="keywordflow">while</span>(1)</div>
+<div class="line"> {</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gacc15b0fc8ce1167fe43da33042e62098">osSemaphoreWait</a>(multiplex_id, <a class="code" href="cmsis__os_8h.html#a9eb9a7a797a42e4b55eb171ecc609ddb">osWaitForever</a>);</div>
+<div class="line"> <span class="comment">// do something</span></div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gab108914997c49e14d8ff1ae0d1988ca0">osSemaphoreRelease</a>(multiplex_id);</div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+</div><!-- fragment --> <h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="ga7da4c7bfb340779c9fc7b321f5ab3e3a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osFeature_Semaphore&#160;&#160;&#160;30</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>A CMSIS-RTOS implementation may support semaphores. The value <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga7da4c7bfb340779c9fc7b321f5ab3e3a">osFeature_Semaphore</a> indicates the maximum index count for a semaphore.</p>
+<p><a class="el" href="rtxImplementation.html">CMSIS-RTOS RTX</a> Setting: <b>osFeature_Semaphore</b> is 65535 </p>
+
+</div>
+</div>
+<a class="anchor" id="ga03761ee8d2c3cd4544e18364ab301dac"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osSemaphore</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">name</td><td>)</td>
+ <td>&#160;&#160;&#160;&amp;os_semaphore_def_##name</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Access to semaphore object for the functions <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb">osSemaphoreCreate</a>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">name</td><td>name of the semaphore object. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: The parameter to <b>osSemaphore</b> shall be consistent but the macro body is implementation specific in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga9e66fe361749071e5ab87826c43c2f1b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osSemaphoreDef</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">name</td><td>)</td>
+ <td>&#160;&#160;&#160;const <a class="el" href="cmsis__os_8h.html#structosSemaphoreDef__t">osSemaphoreDef_t</a> os_semaphore_def_##name = { 0 }</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Define a semaphore object that is referenced by <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga03761ee8d2c3cd4544e18364ab301dac">osSemaphore</a>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">name</td><td>name of the semaphore object. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: The parameter to <b>osSemaphoreDef</b> shall be consistent but the macro body is implementation specific in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga97381e8e55cd47cec390bf57c96d6edb"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="cmsis__os_8h.html#aa8968896c84094aa973683c84fa06f84">osSemaphoreId</a> osSemaphoreCreate </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="cmsis__os_8h.html#structosSemaphoreDef__t">osSemaphoreDef_t</a> *&#160;</td>
+ <td class="paramname"><em>semaphore_def</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int32_t&#160;</td>
+ <td class="paramname"><em>count</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">semaphore_def</td><td>semaphore definition referenced with <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga03761ee8d2c3cd4544e18364ab301dac">osSemaphore</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">count</td><td>number of available resources. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>semaphore ID for reference by other functions or NULL in case of error. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osSemaphoreCreate</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Create and initialize a Semaphore object that is used to manage access to shared resources. The parameter <em>count</em> specifies the number of available resources. The <em>count</em> value 1 creates a binary semaphore.</p>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> tid_thread1; <span class="comment">// ID for thread 1</span></div>
+<div class="line"><a class="code" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> tid_thread2; <span class="comment">// ID for thread 2</span></div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="cmsis__os_8h.html#aa8968896c84094aa973683c84fa06f84">osSemaphoreId</a> semaphore; <span class="comment">// Semaphore ID</span></div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga9e66fe361749071e5ab87826c43c2f1b">osSemaphoreDef</a>(semaphore); <span class="comment">// Semaphore definition</span></div>
+<div class="line"> </div>
+<div class="line"><span class="comment">//</span></div>
+<div class="line"><span class="comment">// Thread 1 - High Priority - Active every 3ms</span></div>
+<div class="line"><span class="comment">//</span></div>
+<div class="line"><span class="keywordtype">void</span> thread1 (<span class="keywordtype">void</span> <span class="keyword">const</span> *argument) {</div>
+<div class="line"> int32_t value;</div>
+<div class="line"></div>
+<div class="line"> <span class="keywordflow">while</span> (1) {</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__Wait.html#ga02e19d5e723bfb06ba9324d625162255">osDelay</a>(3); <span class="comment">// Pass control to other tasks for 3ms</span></div>
+<div class="line"> val = <a class="code" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gacc15b0fc8ce1167fe43da33042e62098">osSemaphoreWait</a> (semaphore, 1); <span class="comment">// Wait 1ms for the free semaphore</span></div>
+<div class="line"> <span class="keywordflow">if</span> (val &gt; 0) {</div>
+<div class="line"> <span class="comment">// If there was no time-out the semaphore was acquired</span></div>
+<div class="line"> : <span class="comment">// OK, the interface is free now, use it.</span></div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gab108914997c49e14d8ff1ae0d1988ca0">osSemaphoreRelease</a> (semaphore); <span class="comment">// Return a token back to a semaphore</span></div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"><span class="comment">//</span></div>
+<div class="line"><span class="comment">// Thread 2 - Normal Priority - looks for a free semaphore and uses</span></div>
+<div class="line"><span class="comment">// the resource whenever it is available</span></div>
+<div class="line"><span class="comment">//</span></div>
+<div class="line"><span class="keywordtype">void</span> thread2 (<span class="keywordtype">void</span> <span class="keyword">const</span> *argument) {</div>
+<div class="line"> <span class="keywordflow">while</span> (1) {</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gacc15b0fc8ce1167fe43da33042e62098">osSemaphoreWait</a> (semaphore, <a class="code" href="cmsis__os_8h.html#a9eb9a7a797a42e4b55eb171ecc609ddb">osWaitForever</a>); <span class="comment">// Wait indefinitely for a free semaphore</span></div>
+<div class="line"> <span class="comment">// OK, the interface is free now, use it.</span></div>
+<div class="line"> :</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gab108914997c49e14d8ff1ae0d1988ca0">osSemaphoreRelease</a> (semaphore); <span class="comment">// Return a token back to a semaphore.</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"><span class="comment">// Thread definitions </span></div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a>(thread1, <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa914433934143a9ba767e59577c56e6c2">osPriorityHigh</a>, 1, 0);</div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a>(thread2, <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1">osPriorityNormal</a>, 1, 0);</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> StartApplication (<span class="keywordtype">void</span>) {</div>
+<div class="line"> semaphore = <a class="code" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb">osSemaphoreCreate</a>(<a class="code" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga03761ee8d2c3cd4544e18364ab301dac">osSemaphore</a>(semaphore), 1);</div>
+<div class="line"></div>
+<div class="line"> tid_thread1 = <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a>(<a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">osThread</a>(thread1), NULL);</div>
+<div class="line"> tid_thread2 = <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a>(<a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">osThread</a>(thread2), NULL);</div>
+<div class="line"> :</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="gabae2801ac2c096f6e8c69a264908f595"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> osSemaphoreDelete </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#aa8968896c84094aa973683c84fa06f84">osSemaphoreId</a>&#160;</td>
+ <td class="paramname"><em>semaphore_id</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">semaphore_id</td><td>semaphore object referenced with <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb">osSemaphoreCreate</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>status code that indicates the execution status of the function. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osSemaphoreDelete</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Delete a Semaphore object. The function releases internal memory obtained for Semaphore handling. After this call the <em>semaphore_id</em> is no longer valid and cannot be used. The Semaphore may be created again using the function <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb">osSemaphoreCreate</a>.</p>
+<p><b><a class="el" href="group__CMSIS__RTOS__Status.html">Status and Error Codes</a></b><br/>
+</p>
+<ul>
+<li><em>osOK:</em> the semaphore object has been deleted.</li>
+<li><em>osErrorISR:</em> <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gabae2801ac2c096f6e8c69a264908f595">osSemaphoreDelete</a> cannot be called from interrupt service routines.</li>
+<li><em>osErrorResource:</em> the semaphore object could not be deleted.</li>
+<li><em>osErrorParameter:</em> the parameter <em>semaphore_id</em> is incorrect.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gab108914997c49e14d8ff1ae0d1988ca0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> osSemaphoreRelease </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#aa8968896c84094aa973683c84fa06f84">osSemaphoreId</a>&#160;</td>
+ <td class="paramname"><em>semaphore_id</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">semaphore_id</td><td>semaphore object referenced with <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb">osSemaphoreCreate</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>status code that indicates the execution status of the function. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osSemaphoreRelease</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Release a Semaphore token. This increments the count of available semaphore tokens.</p>
+<dl class="section note"><dt>Note</dt><dd><a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a> can call this function.</dd></dl>
+<p><b><a class="el" href="group__CMSIS__RTOS__Status.html">Status and Error Codes</a></b><br/>
+</p>
+<ul>
+<li><em>osOK:</em> the semaphore has been released.</li>
+<li><em>osErrorResource:</em> all tokens have already been released.</li>
+<li><em>osErrorParameter:</em> the parameter <em>semaphore_id</em> is incorrect. </li>
+</ul>
+
+</div>
+</div>
+<a class="anchor" id="gacc15b0fc8ce1167fe43da33042e62098"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int32_t osSemaphoreWait </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#aa8968896c84094aa973683c84fa06f84">osSemaphoreId</a>&#160;</td>
+ <td class="paramname"><em>semaphore_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>millisec</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">semaphore_id</td><td>semaphore object referenced with <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb">osSemaphoreCreate</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">millisec</td><td><a class="el" href="functionOverview.html#CMSIS_RTOS_TimeOutValue">Timout Value</a> or 0 in case of no time-out. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>number of available tokens, or -1 in case of incorrect parameters. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osSemaphoreWait</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Wait until a Semaphore token becomes available. When no Semaphore token is available, the function waits for the time specified with the parameter <em>millisec</em>.</p>
+<p>The argument <em>millisec</em> specifies how long the system waits for a Semaphore token to become available. While the system waits the thread that is calling this function is put into the state <b>WAITING</b>. The <em>millisec</em> timeout can have the following values:</p>
+<ul>
+<li>when <em>millisec</em> is 0, the function returns instantly.</li>
+<li>when <em>millisec</em> is set to <b>osWaitForever</b> the function will wait for an infinite time until the Semaphore token becomes available.</li>
+<li>all other values specify a time in millisecond for a timeout.</li>
+</ul>
+<p>The return value indicates the number of available tokens (the semaphore count value). If 0 is returned, then no semaphore was available.</p>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>. </dd></dl>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__SemaphoreMgmt.js b/docs/RTOS/html/group__CMSIS__RTOS__SemaphoreMgmt.js
new file mode 100644
index 0000000..463e14f
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__SemaphoreMgmt.js
@@ -0,0 +1,10 @@
+var group__CMSIS__RTOS__SemaphoreMgmt =
+[
+ [ "osFeature_Semaphore", "group__CMSIS__RTOS__SemaphoreMgmt.html#ga7da4c7bfb340779c9fc7b321f5ab3e3a", null ],
+ [ "osSemaphore", "group__CMSIS__RTOS__SemaphoreMgmt.html#ga03761ee8d2c3cd4544e18364ab301dac", null ],
+ [ "osSemaphoreDef", "group__CMSIS__RTOS__SemaphoreMgmt.html#ga9e66fe361749071e5ab87826c43c2f1b", null ],
+ [ "osSemaphoreCreate", "group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb", null ],
+ [ "osSemaphoreDelete", "group__CMSIS__RTOS__SemaphoreMgmt.html#gabae2801ac2c096f6e8c69a264908f595", null ],
+ [ "osSemaphoreRelease", "group__CMSIS__RTOS__SemaphoreMgmt.html#gab108914997c49e14d8ff1ae0d1988ca0", null ],
+ [ "osSemaphoreWait", "group__CMSIS__RTOS__SemaphoreMgmt.html#gacc15b0fc8ce1167fe43da33042e62098", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__SignalMgmt.html b/docs/RTOS/html/group__CMSIS__RTOS__SignalMgmt.html
new file mode 100644
index 0000000..e8797f4
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__SignalMgmt.html
@@ -0,0 +1,376 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Signal Events</title>
+<title>CMSIS-RTOS: Signal Events</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group__CMSIS__RTOS__SignalMgmt.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Signal Events<div class="ingroups"><a class="el" href="group__CMSIS__RTOS__InterThread.html">Inter-Thread Communication and Resource Sharing</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Synchronize threads using signals.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ga01edde265710d883b6e237d34a6ef4a6"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga01edde265710d883b6e237d34a6ef4a6">osFeature_Signals</a>&#160;&#160;&#160;8</td></tr>
+<tr class="memdesc:ga01edde265710d883b6e237d34a6ef4a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">maximum number of Signal Flags available per thread <a href="#ga01edde265710d883b6e237d34a6ef4a6">More...</a><br/></td></tr>
+<tr class="separator:ga01edde265710d883b6e237d34a6ef4a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga3de2730654589d6c3559c4b9e2825553"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga3de2730654589d6c3559c4b9e2825553">osSignalSet</a> (<a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> thread_id, int32_t signals)</td></tr>
+<tr class="memdesc:ga3de2730654589d6c3559c4b9e2825553"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the specified Signal Flags of an active thread. <a href="#ga3de2730654589d6c3559c4b9e2825553">More...</a><br/></td></tr>
+<tr class="separator:ga3de2730654589d6c3559c4b9e2825553"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga87283a6ebc31ce9ed42baf3ea7e4eab6"><td class="memItemLeft" align="right" valign="top">int32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga87283a6ebc31ce9ed42baf3ea7e4eab6">osSignalClear</a> (<a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> thread_id, int32_t signals)</td></tr>
+<tr class="memdesc:ga87283a6ebc31ce9ed42baf3ea7e4eab6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear the specified Signal Flags of an active thread. <a href="#ga87283a6ebc31ce9ed42baf3ea7e4eab6">More...</a><br/></td></tr>
+<tr class="separator:ga87283a6ebc31ce9ed42baf3ea7e4eab6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga38860acda96df47da6923348d96fc4c9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga38860acda96df47da6923348d96fc4c9">osSignalWait</a> (int32_t signals, uint32_t millisec)</td></tr>
+<tr class="memdesc:ga38860acda96df47da6923348d96fc4c9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait for one or more Signal Flags to become signaled for the current <b>RUNNING</b> thread. <a href="#ga38860acda96df47da6923348d96fc4c9">More...</a><br/></td></tr>
+<tr class="separator:ga38860acda96df47da6923348d96fc4c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
+<p>Signals are used to trigger execution states between threads. The signal management functions in CMSIS-RTOS allow you to control or wait for signal flags. Each thread has up to 31 assigned signal flags. The maximum number of signal flags is defined in the <a class="el" href="cmsis__os_8h.html">cmsis_os.h</a> file (<b>#define osFeature_Signals</b>).</p>
+<p>A thread</p>
+<ul>
+<li>can wait for signals to be set (using <a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga38860acda96df47da6923348d96fc4c9">osSignalWait</a>). Using this function, it enters the <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ThreadStates">WAITING</a> state. The <a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga38860acda96df47da6923348d96fc4c9">osSignalWait</a> parameter <em>signals</em> defines the signals that are required to put the thread back into <b>READY</b> state.</li>
+<li>may set one or more flags in any other given thread (using <a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga3de2730654589d6c3559c4b9e2825553">osSignalSet</a>).</li>
+<li>may clear its own signals or the signals of other threads (using <a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga87283a6ebc31ce9ed42baf3ea7e4eab6">osSignalClear</a>).</li>
+</ul>
+<p>When a thread wakes up and resumes execution, its signal flags are automatically cleared.</p>
+<h2>Working with Signals </h2>
+<p>Here is a simple example that shows how two thread can communicate with each others using signals:</p>
+<div class="image">
+<img src="simple_signal.png" alt="simple_signal.png"/>
+<div class="caption">
+Simple signal event communication</div></div>
+<p> The following steps are required to use signals:</p>
+<ol type="1">
+<li>In the thread (for example thread ID <code>tid_thread1</code>) that is supposed to wait for a signal, call the wait function: <div class="fragment"><div class="line"><a class="code" href="group__CMSIS__RTOS__SignalMgmt.html#ga38860acda96df47da6923348d96fc4c9">osSignalWait</a> (0x0001, <a class="code" href="cmsis__os_8h.html#a9eb9a7a797a42e4b55eb171ecc609ddb">osWaitForever</a>); <span class="comment">// wait forever for the signal 0x0001</span></div>
+</div><!-- fragment --></li>
+<li>In another thread (or threads) that are supposed to wake the waiting thread up call: <div class="fragment"><div class="line"><a class="code" href="group__CMSIS__RTOS__SignalMgmt.html#ga3de2730654589d6c3559c4b9e2825553">osSignalSet</a> (tid_thread1, 0x0001); <span class="comment">// set the signal 0x0001 for thread tid_thread1</span></div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__Wait.html#ga02e19d5e723bfb06ba9324d625162255">osDelay</a> (1000); <span class="comment">// wait for 1 second</span></div>
+</div><!-- fragment --> </li>
+</ol>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="ga01edde265710d883b6e237d34a6ef4a6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osFeature_Signals&#160;&#160;&#160;8</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>The CMSIS-RTOS API may support a variable number of signal flags. This define specifies the number of signal flags available per thread. The maximum value is 32 signal flags per thread.</p>
+<p><a class="el" href="rtxImplementation.html">CMSIS-RTOS RTX</a> Setting: <b>osFeature_Signals</b> is 16 </p>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga87283a6ebc31ce9ed42baf3ea7e4eab6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int32_t osSignalClear </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a>&#160;</td>
+ <td class="paramname"><em>thread_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int32_t&#160;</td>
+ <td class="paramname"><em>signals</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">thread_id</td><td>thread ID obtained by <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> or <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7">osThreadGetId</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">signals</td><td>specifies the signal flags of the thread that shall be cleared. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>previous signal flags of the specified thread or 0x80000000 in case of incorrect parameters or call from ISR. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osSignalClear</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Clear the signal flags of an active thread.</p>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> Thread_2 (<span class="keywordtype">void</span> <span class="keyword">const</span> *arg);</div>
+<div class="line"></div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a> (Thread_2, <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa914433934143a9ba767e59577c56e6c2">osPriorityHigh</a>, 1, 0);</div>
+<div class="line"> </div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> EX_Signal_1 (<span class="keywordtype">void</span>) {</div>
+<div class="line"> int32_t signals;</div>
+<div class="line"> <a class="code" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> thread_id;</div>
+<div class="line"> </div>
+<div class="line"> thread_id = <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> (<a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">osThread</a>(Thread_2), NULL);</div>
+<div class="line"> <span class="keywordflow">if</span> (thread_id == NULL) {</div>
+<div class="line"> <span class="comment">// Failed to create a thread.</span></div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">else</span> {</div>
+<div class="line">f :</div>
+<div class="line"> signals = <a class="code" href="group__CMSIS__RTOS__SignalMgmt.html#ga87283a6ebc31ce9ed42baf3ea7e4eab6">osSignalClear</a> (thread_id, 0x01);</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ga3de2730654589d6c3559c4b9e2825553"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int32_t osSignalSet </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a>&#160;</td>
+ <td class="paramname"><em>thread_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">int32_t&#160;</td>
+ <td class="paramname"><em>signals</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">thread_id</td><td>thread ID obtained by <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> or <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7">osThreadGetId</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">signals</td><td>specifies the signal flags of the thread that should be set. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>previous signal flags of the specified thread or 0x80000000 in case of incorrect parameters. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osSignalSet</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Set the signal flags of an active thread. This function may be used also within interrupt service routines.</p>
+<dl class="section note"><dt>Note</dt><dd><a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a> can call this function.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> Thread_2 (<span class="keywordtype">void</span> <span class="keyword">const</span> *arg);</div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a> (Thread_2, <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa914433934143a9ba767e59577c56e6c2">osPriorityHigh</a>, 1, 0);</div>
+<div class="line"> </div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> EX_Signal_1 (<span class="keywordtype">void</span>) {</div>
+<div class="line"> int32_t signals;</div>
+<div class="line"> uint32_t exec;</div>
+<div class="line"> <a class="code" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> thread_id;</div>
+<div class="line"> </div>
+<div class="line"> thread_id = <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> (<a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">osThread</a>(Thread_2), NULL);</div>
+<div class="line"> <span class="keywordflow">if</span> (thread_id == NULL) {</div>
+<div class="line"> <span class="comment">// Failed to create a thread.</span></div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">else</span> {</div>
+<div class="line"> signals = <a class="code" href="group__CMSIS__RTOS__SignalMgmt.html#ga3de2730654589d6c3559c4b9e2825553">osSignalSet</a> (thread_id, 0x00000005); <span class="comment">// Send signals to the created thread</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ga38860acda96df47da6923348d96fc4c9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a> osSignalWait </td>
+ <td>(</td>
+ <td class="paramtype">int32_t&#160;</td>
+ <td class="paramname"><em>signals</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>millisec</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">signals</td><td>wait until all specified signal flags set or 0 for any single signal flag. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">millisec</td><td><a class="el" href="functionOverview.html#CMSIS_RTOS_TimeOutValue">Timout Value</a> or 0 in case of no time-out. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>event flag information or error code. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osSignalWait</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Suspend the execution of the current <b>RUNNING</b> thread until all specified signal flags with the parameter <em>signals</em> are set. When the parameter <em>signals</em> is 0 the current <b>RUNNING</b> thread is suspended until any signal is set. When these signal flags are already set, the function returns instantly. Otherwise the thread is put into the state <b>WAITING</b>. Signal flags that are reported as event are automatically cleared.</p>
+<p>The argument <em>millisec</em> specifies how long the system waits for the specified signal flags. While the system waits the thread calling this function is put into the state <b>WAITING</b>. The timeout value can have the following values:</p>
+<ul>
+<li>when <em>millisec</em> is 0, the function returns instantly.</li>
+<li>when <em>millisec</em> is set to <b>osWaitForever</b> the function will wait for an infinite time until a specified signal is set.</li>
+<li>all other values specify a time in millisecond for a timeout.</li>
+</ul>
+<p><b><a class="el" href="group__CMSIS__RTOS__Status.html">Status and Error Codes</a></b><br/>
+</p>
+<ul>
+<li><em>osOK:</em> no signal received when the timeout value <em>millisec</em> was 0.</li>
+<li><em>osEventTimeout:</em> signal not occurred within timeout</li>
+<li><em>osEventSignal:</em> signal occurred, <em>value.signals</em> contains the signal flags; these signal flags are cleared.</li>
+<li><em>osErrorValue:</em> the value <em>signals</em> is outside of the permitted range.</li>
+<li><em>osErrorISR:</em> <a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga38860acda96df47da6923348d96fc4c9">osSignalWait</a> cannot be called from interrupt service routines.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> Thread_2 (<span class="keywordtype">void</span> <span class="keyword">const</span> *arg);</div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a> (Thread_2, <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa914433934143a9ba767e59577c56e6c2">osPriorityHigh</a>, 1, 0);</div>
+<div class="line"> </div>
+<div class="line"><span class="keyword">static</span> <span class="keywordtype">void</span> EX_Signal_1 (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <a class="code" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> thread_id;</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a> evt;</div>
+<div class="line"> </div>
+<div class="line"> thread_id = <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> (<a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">osThread</a>(Thread_2), NULL);</div>
+<div class="line"> <span class="keywordflow">if</span> (thread_id == NULL) {</div>
+<div class="line"> <span class="comment">// Failed to create a thread.</span></div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">else</span> {</div>
+<div class="line"> :</div>
+<div class="line"> <span class="comment">// wait for a signal</span></div>
+<div class="line"> evt = <a class="code" href="group__CMSIS__RTOS__SignalMgmt.html#ga38860acda96df47da6923348d96fc4c9">osSignalWait</a> (0x01, 100);</div>
+<div class="line"> <span class="keywordflow">if</span> (evt.<a class="code" href="group__CMSIS__RTOS__Definitions.html#ad477a289f1f03ac45407b64268d707d3">status</a> == <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea5df7e9643aa8a2f5f3a6f6ec59758518">osEventSignal</a>) {</div>
+<div class="line"> <span class="comment">// handle event status</span></div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__SignalMgmt.js b/docs/RTOS/html/group__CMSIS__RTOS__SignalMgmt.js
new file mode 100644
index 0000000..23a0448
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__SignalMgmt.js
@@ -0,0 +1,7 @@
+var group__CMSIS__RTOS__SignalMgmt =
+[
+ [ "osFeature_Signals", "group__CMSIS__RTOS__SignalMgmt.html#ga01edde265710d883b6e237d34a6ef4a6", null ],
+ [ "osSignalClear", "group__CMSIS__RTOS__SignalMgmt.html#ga87283a6ebc31ce9ed42baf3ea7e4eab6", null ],
+ [ "osSignalSet", "group__CMSIS__RTOS__SignalMgmt.html#ga3de2730654589d6c3559c4b9e2825553", null ],
+ [ "osSignalWait", "group__CMSIS__RTOS__SignalMgmt.html#ga38860acda96df47da6923348d96fc4c9", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__Status.html b/docs/RTOS/html/group__CMSIS__RTOS__Status.html
new file mode 100644
index 0000000..49b4213
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__Status.html
@@ -0,0 +1,234 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Status and Error Codes</title>
+<title>CMSIS-RTOS: Status and Error Codes</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group__CMSIS__RTOS__Status.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">Status and Error Codes<div class="ingroups"><a class="el" href="group__CMSIS__RTOS.html">CMSIS-RTOS API</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Status and Error Codes returned by CMSIS-RTOS API functions.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:gae2e091fefc4c767117727bd5aba4d99e"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> { <br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f">osOK</a> = 0,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea5df7e9643aa8a2f5f3a6f6ec59758518">osEventSignal</a> = 0x08,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ead604f3673359dd4ac643b16dc5a2c342">osEventMessage</a> = 0x10,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea15b12e42b42b53f35fb8a2724ad02926">osEventMail</a> = 0x20,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea78f477732375c0e1fca814e369618177">osEventTimeout</a> = 0x40,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eac24adca6a5d072c9f01c32178ba0d109">osErrorParameter</a> = 0x80,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea8fc5801e8b0482bdf22ad63a77f0155d">osErrorResource</a> = 0x81,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea314d24a49003f09459035db0dd7c9467">osErrorTimeoutResource</a> = 0xC1,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea21635bdc492d3094fe83027fa4a30e2f">osErrorISR</a> = 0x82,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eaf6552310a817452aedfcd453f2805d65">osErrorISRRecursive</a> = 0x83,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eab7dda0ef504817659334cbfd650ae56f">osErrorPriority</a> = 0x84,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eaf1fac0240218e51eb30a13da2f8aae81">osErrorNoMemory</a> = 0x85,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea4672c8a0c0f6bb1d7981da4602e8e9ee">osErrorValue</a> = 0x86,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea5fde24ff588ec5ab9cb8314bade26fbc">osErrorOS</a> = 0xFF,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eac7a77f5fe18a15a357790c36a4aca1b1">os_status_reserved</a> = 0x7FFFFFFF
+<br/>
+ }</td></tr>
+<tr class="separator:gae2e091fefc4c767117727bd5aba4d99e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
+<p>The Status and Error Codes section lists all the return values that the CMSIS-RTOS functions will return. </p>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osStatus</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>The <a class="el" href="cmsis__os_8h.html#ae2e091fefc4c767117727bd5aba4d99e">osStatus</a> enumeration defines the event status and error codes that are returned by the CMSIS-RTOS functions. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f"></a>osOK</em>&#160;</td><td class="fielddoc">
+<p>function completed; no error or event occurred. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99ea5df7e9643aa8a2f5f3a6f6ec59758518"></a>osEventSignal</em>&#160;</td><td class="fielddoc">
+<p>function completed; signal event occurred. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99ead604f3673359dd4ac643b16dc5a2c342"></a>osEventMessage</em>&#160;</td><td class="fielddoc">
+<p>function completed; message event occurred. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99ea15b12e42b42b53f35fb8a2724ad02926"></a>osEventMail</em>&#160;</td><td class="fielddoc">
+<p>function completed; mail event occurred. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99ea78f477732375c0e1fca814e369618177"></a>osEventTimeout</em>&#160;</td><td class="fielddoc">
+<p>function completed; timeout occurred. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99eac24adca6a5d072c9f01c32178ba0d109"></a>osErrorParameter</em>&#160;</td><td class="fielddoc">
+<p>parameter error: a mandatory parameter was missing or specified an incorrect object. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99ea8fc5801e8b0482bdf22ad63a77f0155d"></a>osErrorResource</em>&#160;</td><td class="fielddoc">
+<p>resource not available: a specified resource was not available. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99ea314d24a49003f09459035db0dd7c9467"></a>osErrorTimeoutResource</em>&#160;</td><td class="fielddoc">
+<p>resource not available within given time: a specified resource was not available within the timeout period. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99ea21635bdc492d3094fe83027fa4a30e2f"></a>osErrorISR</em>&#160;</td><td class="fielddoc">
+<p>not allowed in ISR context: the function cannot be called from interrupt service routines. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99eaf6552310a817452aedfcd453f2805d65"></a>osErrorISRRecursive</em>&#160;</td><td class="fielddoc">
+<p>function called multiple times from ISR with same object. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99eab7dda0ef504817659334cbfd650ae56f"></a>osErrorPriority</em>&#160;</td><td class="fielddoc">
+<p>system cannot determine priority or thread has illegal priority. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99eaf1fac0240218e51eb30a13da2f8aae81"></a>osErrorNoMemory</em>&#160;</td><td class="fielddoc">
+<p>system is out of memory: it was impossible to allocate or reserve memory for the operation. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99ea4672c8a0c0f6bb1d7981da4602e8e9ee"></a>osErrorValue</em>&#160;</td><td class="fielddoc">
+<p>value of a parameter is out of range. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99ea5fde24ff588ec5ab9cb8314bade26fbc"></a>osErrorOS</em>&#160;</td><td class="fielddoc">
+<p>unspecified RTOS error: run-time error but no other error message fits. </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gae2e091fefc4c767117727bd5aba4d99eac7a77f5fe18a15a357790c36a4aca1b1"></a>os_status_reserved</em>&#160;</td><td class="fielddoc">
+<p>prevent from enum down-size compiler optimization. </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__Status.js b/docs/RTOS/html/group__CMSIS__RTOS__Status.js
new file mode 100644
index 0000000..24d2d2b
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__Status.js
@@ -0,0 +1,20 @@
+var group__CMSIS__RTOS__Status =
+[
+ [ "osStatus", "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e", [
+ [ "osOK", "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f", null ],
+ [ "osEventSignal", "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea5df7e9643aa8a2f5f3a6f6ec59758518", null ],
+ [ "osEventMessage", "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ead604f3673359dd4ac643b16dc5a2c342", null ],
+ [ "osEventMail", "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea15b12e42b42b53f35fb8a2724ad02926", null ],
+ [ "osEventTimeout", "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea78f477732375c0e1fca814e369618177", null ],
+ [ "osErrorParameter", "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eac24adca6a5d072c9f01c32178ba0d109", null ],
+ [ "osErrorResource", "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea8fc5801e8b0482bdf22ad63a77f0155d", null ],
+ [ "osErrorTimeoutResource", "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea314d24a49003f09459035db0dd7c9467", null ],
+ [ "osErrorISR", "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea21635bdc492d3094fe83027fa4a30e2f", null ],
+ [ "osErrorISRRecursive", "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eaf6552310a817452aedfcd453f2805d65", null ],
+ [ "osErrorPriority", "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eab7dda0ef504817659334cbfd650ae56f", null ],
+ [ "osErrorNoMemory", "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eaf1fac0240218e51eb30a13da2f8aae81", null ],
+ [ "osErrorValue", "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea4672c8a0c0f6bb1d7981da4602e8e9ee", null ],
+ [ "osErrorOS", "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea5fde24ff588ec5ab9cb8314bade26fbc", null ],
+ [ "os_status_reserved", "group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eac7a77f5fe18a15a357790c36a4aca1b1", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__ThreadMgmt.html b/docs/RTOS/html/group__CMSIS__RTOS__ThreadMgmt.html
new file mode 100644
index 0000000..2f0d2dd
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__ThreadMgmt.html
@@ -0,0 +1,647 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Thread Management</title>
+<title>CMSIS-RTOS: Thread Management</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group__CMSIS__RTOS__ThreadMgmt.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Thread Management<div class="ingroups"><a class="el" href="group__CMSIS__RTOS.html">CMSIS-RTOS API</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Define, create, and control thread functions.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:gaee93d929beb350f16e5cc7fa602e229f"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a>(name, priority, instances, stacksz)</td></tr>
+<tr class="memdesc:gaee93d929beb350f16e5cc7fa602e229f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a Thread Definition with function, priority, and stack requirements. <a href="#gaee93d929beb350f16e5cc7fa602e229f">More...</a><br/></td></tr>
+<tr class="separator:gaee93d929beb350f16e5cc7fa602e229f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf0c7c6b5e09f8be198312144b5c9e453"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">osThread</a>(name)&#160;&#160;&#160;&amp;os_thread_def_##name</td></tr>
+<tr class="memdesc:gaf0c7c6b5e09f8be198312144b5c9e453"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access a Thread definition. <a href="#gaf0c7c6b5e09f8be198312144b5c9e453">More...</a><br/></td></tr>
+<tr class="separator:gaf0c7c6b5e09f8be198312144b5c9e453"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ga7f2b42f1983b9107775ec2a1c69a849a"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a">osPriority</a> { <br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa549e79a43ff4f8b2b31afb613f5caa81">osPriorityIdle</a> = -3,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa61cb822239ac8f66dfbdc7291598a3d4">osPriorityLow</a> = -2,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa193b650117c209b4a203954542bcc3e6">osPriorityBelowNormal</a> = -1,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1">osPriorityNormal</a> = 0,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa17b36cd9cd38652c2bc6d4803990674b">osPriorityAboveNormal</a> = +1,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa914433934143a9ba767e59577c56e6c2">osPriorityHigh</a> = +2,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aa1485dec3702434a1ec3cb74c7a17a4af">osPriorityRealtime</a> = +3,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849aae35f5e2f9c64ad346822521b643bdea4">osPriorityError</a> = 0x84
+<br/>
+ }</td></tr>
+<tr class="memdesc:ga7f2b42f1983b9107775ec2a1c69a849a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Priority used for thread control. <a href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a">More...</a><br/></td></tr>
+<tr class="separator:ga7f2b42f1983b9107775ec2a1c69a849a"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gac59b5713cb083702dce759c73fd90dff"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> (const <a class="el" href="cmsis__os_8h.html#structosThreadDef__t">osThreadDef_t</a> *thread_def, void *argument)</td></tr>
+<tr class="memdesc:gac59b5713cb083702dce759c73fd90dff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a thread and add it to Active Threads and set it to state READY. <a href="#gac59b5713cb083702dce759c73fd90dff">More...</a><br/></td></tr>
+<tr class="separator:gac59b5713cb083702dce759c73fd90dff"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gab1df2a28925862ef8f9cf4e1c995c5a7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7">osThreadGetId</a> (void)</td></tr>
+<tr class="memdesc:gab1df2a28925862ef8f9cf4e1c995c5a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Return the thread ID of the current running thread. <a href="#gab1df2a28925862ef8f9cf4e1c995c5a7">More...</a><br/></td></tr>
+<tr class="separator:gab1df2a28925862ef8f9cf4e1c995c5a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaea135bb90eb853eff39e0800b91bbeab"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaea135bb90eb853eff39e0800b91bbeab">osThreadTerminate</a> (<a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> thread_id)</td></tr>
+<tr class="memdesc:gaea135bb90eb853eff39e0800b91bbeab"><td class="mdescLeft">&#160;</td><td class="mdescRight">Terminate execution of a thread and remove it from Active Threads. <a href="#gaea135bb90eb853eff39e0800b91bbeab">More...</a><br/></td></tr>
+<tr class="separator:gaea135bb90eb853eff39e0800b91bbeab"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga0dfb90ccf1f6e4b54b9251b12d1cbc8b"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga0dfb90ccf1f6e4b54b9251b12d1cbc8b">osThreadSetPriority</a> (<a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> thread_id, <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a">osPriority</a> priority)</td></tr>
+<tr class="memdesc:ga0dfb90ccf1f6e4b54b9251b12d1cbc8b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Change priority of an active thread. <a href="#ga0dfb90ccf1f6e4b54b9251b12d1cbc8b">More...</a><br/></td></tr>
+<tr class="separator:ga0dfb90ccf1f6e4b54b9251b12d1cbc8b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga4299d838978bc2aae5e4350754e6a4e9"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a">osPriority</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga4299d838978bc2aae5e4350754e6a4e9">osThreadGetPriority</a> (<a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> thread_id)</td></tr>
+<tr class="memdesc:ga4299d838978bc2aae5e4350754e6a4e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get current priority of an active thread. <a href="#ga4299d838978bc2aae5e4350754e6a4e9">More...</a><br/></td></tr>
+<tr class="separator:ga4299d838978bc2aae5e4350754e6a4e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gaf13a667493c5d629a90c13e113b99233"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf13a667493c5d629a90c13e113b99233">osThreadYield</a> (void)</td></tr>
+<tr class="memdesc:gaf13a667493c5d629a90c13e113b99233"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pass control to next thread that is in state <b>READY</b>. <a href="#gaf13a667493c5d629a90c13e113b99233">More...</a><br/></td></tr>
+<tr class="separator:gaf13a667493c5d629a90c13e113b99233"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
+<p>The Thread Management function group allows defining, creating, and controlling thread functions in the system. The function <b>main</b> is a special thread function that is started at system initialization and has the initial priority <em>osPriorityNormal</em>.</p>
+<p><a class="anchor" id="ThreadStates"></a>Threads can be in the following states:</p>
+<ul>
+<li><b>RUNNING:</b> The thread that is currently running is in the <b>RUNNING</b> state. Only one thread at a time can be in this state.</li>
+<li><b>READY:</b> Threads which are ready to run are in the <b>READY</b> state. Once the <b>RUNNING</b> thread has terminated or is <b>WAITING</b>, the next <b>READY</b> thread with the highest priority becomes the <b>RUNNING</b> thread.</li>
+<li><b>WAITING:</b> Threads that are waiting for an event to occur are in the <b>WAITING</b> state.</li>
+<li><b>INACTIVE:</b> Threads that are not created or terminated are in the <b>INACTIVE</b> state. These threads typically consume no system resources.</li>
+</ul>
+<div class="image">
+<img src="ThreadStatus.png" alt="ThreadStatus.png"/>
+<div class="caption">
+Thread State and State Transitions</div></div>
+<p> A CMSIS-RTOS assumes that threads are scheduled as shown in the figure <b>Thread State and State Transitions</b>. The thread states change as follows:</p>
+<ul>
+<li>A thread is created using the function <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a>. This puts the thread into the <b>READY</b> or <b>RUNNING</b> state (depending on the thread priority).</li>
+<li>CMSIS-RTOS is pre-emptive. The active thread with the highest priority becomes the <b>RUNNING</b> thread provided it does not wait for any event. The initial priority of a thread is defined with the <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a> but may be changed during execution using the function <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga0dfb90ccf1f6e4b54b9251b12d1cbc8b">osThreadSetPriority</a>.</li>
+<li>The <b>RUNNING</b> thread transfers into the <b>WAITING</b> state when it is waiting for an event.</li>
+<li>Active threads can be terminated any time using the function <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaea135bb90eb853eff39e0800b91bbeab">osThreadTerminate</a>. Threads can terminate also by just returning from the thread function. Threads that are terminated are in the <b>INACTIVE</b> state and typically do not consume any dynamic memory resources. </li>
+</ul>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="gaf0c7c6b5e09f8be198312144b5c9e453"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osThread</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">name</td><td>)</td>
+ <td>&#160;&#160;&#160;&amp;os_thread_def_##name</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Access to the thread definition for the function <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">name</td><td>name of the thread definition object. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: The parameter to <b>osThread</b> shall be consistent but the macro body is implementation specific in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="gaee93d929beb350f16e5cc7fa602e229f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osThreadDef</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">name, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">priority, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">instances, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">stacksz&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Define the attributes of a thread functions that can be created by the function <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> using <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">osThread</a>. The argument <em>instances</em> defines the number of times that <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> can be called for the same <b>osThreadDef</b>.</p>
+<p><b>Code</b> <b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> Thread (<span class="keywordtype">void</span> <span class="keyword">const</span> *arg); <span class="comment">// function prototype for a Thread</span></div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a> (Thread, <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1">osPriorityNormal</a>, 3, 0); <span class="comment">// define Thread and specify to allow three instances</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> ThreadCreate_example (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <a class="code" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> id1, id2, id3;</div>
+<div class="line"> </div>
+<div class="line"> id1 = <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> (<a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">osThread</a> (Thread), NULL); <span class="comment">// create the thread with id1</span></div>
+<div class="line"> id2 = <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> (<a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">osThread</a> (Thread), NULL); <span class="comment">// create the thread with id2</span></div>
+<div class="line"> id3 = <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> (<a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">osThread</a> (Thread), NULL); <span class="comment">// create the thread with id3</span></div>
+<div class="line"> <span class="keywordflow">if</span> (id1 == NULL) { <span class="comment">// handle thread creation for id1</span></div>
+<div class="line"> <span class="comment">// Failed to create the thread with id1</span></div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">if</span> (id2 == NULL) { <span class="comment">// handle thread creation for id2</span></div>
+<div class="line"> <span class="comment">// Failed to create the thread with id2</span></div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">if</span> (id3 == NULL) { <span class="comment">// handle thread creation for id3</span></div>
+<div class="line"> <span class="comment">// Failed to create the thread with id3</span></div>
+<div class="line"> }</div>
+<div class="line"> :</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaea135bb90eb853eff39e0800b91bbeab">osThreadTerminate</a> (id1); <span class="comment">// stop the thread with id1</span></div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaea135bb90eb853eff39e0800b91bbeab">osThreadTerminate</a> (id2); <span class="comment">// stop the thread with id2</span></div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaea135bb90eb853eff39e0800b91bbeab">osThreadTerminate</a> (id3); <span class="comment">// stop the thread with id3</span></div>
+<div class="line">}</div>
+</div><!-- fragment --><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">name</td><td>name of the thread function. </td></tr>
+ <tr><td class="paramname">priority</td><td>initial priority of the thread function. </td></tr>
+ <tr><td class="paramname">instances</td><td>number of possible thread instances. </td></tr>
+ <tr><td class="paramname">stacksz</td><td>stack size (in bytes) requirements for the thread function. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: The parameters to <b>osThreadDef</b> shall be consistent but the macro body is implementation specific in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="ga7f2b42f1983b9107775ec2a1c69a849a"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a">osPriority</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osPriority</b> shall be consistent in every CMSIS-RTOS.</dd>
+<dd>
+Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p>The <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a">osPriority</a> value specifies the priority for a thread. The default thread priority should be <em>osPriorityNormal</em>. If a Thread is active that has a higher priority than the currently executing thread, then a thread switch occurs immediately to execute the new task.</p>
+<p>To prevent from a priority inversion, a CMSIS-RTOS compliant OS may optionally implement a <b>priority inheritance</b> method. A priority inversion occurs when a high priority thread is waiting for a resource or event that is controlled by a thread with a lower priority. </p>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="ga7f2b42f1983b9107775ec2a1c69a849aa549e79a43ff4f8b2b31afb613f5caa81"></a>osPriorityIdle</em>&#160;</td><td class="fielddoc">
+<p>priority: idle (lowest) </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ga7f2b42f1983b9107775ec2a1c69a849aa61cb822239ac8f66dfbdc7291598a3d4"></a>osPriorityLow</em>&#160;</td><td class="fielddoc">
+<p>priority: low </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ga7f2b42f1983b9107775ec2a1c69a849aa193b650117c209b4a203954542bcc3e6"></a>osPriorityBelowNormal</em>&#160;</td><td class="fielddoc">
+<p>priority: below normal </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1"></a>osPriorityNormal</em>&#160;</td><td class="fielddoc">
+<p>priority: normal (default) </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ga7f2b42f1983b9107775ec2a1c69a849aa17b36cd9cd38652c2bc6d4803990674b"></a>osPriorityAboveNormal</em>&#160;</td><td class="fielddoc">
+<p>priority: above normal </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ga7f2b42f1983b9107775ec2a1c69a849aa914433934143a9ba767e59577c56e6c2"></a>osPriorityHigh</em>&#160;</td><td class="fielddoc">
+<p>priority: high </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ga7f2b42f1983b9107775ec2a1c69a849aa1485dec3702434a1ec3cb74c7a17a4af"></a>osPriorityRealtime</em>&#160;</td><td class="fielddoc">
+<p>priority: realtime (highest) </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="ga7f2b42f1983b9107775ec2a1c69a849aae35f5e2f9c64ad346822521b643bdea4"></a>osPriorityError</em>&#160;</td><td class="fielddoc">
+<p>system cannot determine priority or thread has illegal priority </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gac59b5713cb083702dce759c73fd90dff"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> osThreadCreate </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="cmsis__os_8h.html#structosThreadDef__t">osThreadDef_t</a> *&#160;</td>
+ <td class="paramname"><em>thread_def</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>argument</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">thread_def</td><td>thread definition referenced with <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">osThread</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">argument</td><td>pointer that is passed to the thread function as start argument. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>thread ID for reference by other functions or NULL in case of error. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osThreadCreate</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Start a thread function by adding it to the Active Threads list and set it to state <b>READY</b>. The thread function receives the <em>argument</em> pointer as function argument when the function is started. When the priority of the created thread function is higher than the current <b>RUNNING</b> thread, the created thread function starts instantly and becomes the new <b>RUNNING</b> thread.</p>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> Thread_1 (<span class="keywordtype">void</span> <span class="keyword">const</span> *arg); <span class="comment">// function prototype for Thread_1</span></div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a> (Thread_1, <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1">osPriorityNormal</a>, 1, 0); <span class="comment">// define Thread_1</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> ThreadCreate_example (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <a class="code" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> id;</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordtype">id</span> = <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> (<a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">osThread</a> (Thread_1), NULL); <span class="comment">// create the thread</span></div>
+<div class="line"> <span class="keywordflow">if</span> (<span class="keywordtype">id</span> == NULL) { <span class="comment">// handle thread creation</span></div>
+<div class="line"> <span class="comment">// Failed to create a thread</span></div>
+<div class="line"> }</div>
+<div class="line"> :</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaea135bb90eb853eff39e0800b91bbeab">osThreadTerminate</a> (<span class="keywordtype">id</span>); <span class="comment">// stop the thread</span></div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="gab1df2a28925862ef8f9cf4e1c995c5a7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> osThreadGetId </td>
+ <td>(</td>
+ <td class="paramtype">void&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>thread ID for reference by other functions or NULL in case of error. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osThreadGetId</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Get the thread ID of the current running thread.</p>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>. </dd>
+<dd>
+Must not be used inside the idle daemon. This would lead to undefined behavior.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> ThreadGetId_example (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <a class="code" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> id; <span class="comment">// id for the currently running thread</span></div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordtype">id</span> = <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7">osThreadGetId</a> ();</div>
+<div class="line"> <span class="keywordflow">if</span> (<span class="keywordtype">id</span> == NULL) {</div>
+<div class="line"> <span class="comment">// Failed to get the id; not in a thread</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ga4299d838978bc2aae5e4350754e6a4e9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a">osPriority</a> osThreadGetPriority </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a>&#160;</td>
+ <td class="paramname"><em>thread_id</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">thread_id</td><td>thread ID obtained by <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> or <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7">osThreadGetId</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>current priority value of the thread function. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osThreadGetPriority</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Get the priority of an active thread. In case of a failure the value <b>osPriorityError</b> is returned.</p>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> Thread_1 (<span class="keywordtype">void</span> <span class="keyword">const</span> *arg) { <span class="comment">// Thread function</span></div>
+<div class="line"> <a class="code" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> id; <span class="comment">// id for the currently running thread</span></div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a">osPriority</a> priority; <span class="comment">// thread priority</span></div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordtype">id</span> = <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7">osThreadGetId</a> (); <span class="comment">// Obtain ID of current running thread</span></div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">if</span> (<span class="keywordtype">id</span> != NULL) {</div>
+<div class="line"> priority = <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#ga4299d838978bc2aae5e4350754e6a4e9">osThreadGetPriority</a> (<span class="keywordtype">id</span>);</div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">else</span> {</div>
+<div class="line"> <span class="comment">// Failed to get the id</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ga0dfb90ccf1f6e4b54b9251b12d1cbc8b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> osThreadSetPriority </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a>&#160;</td>
+ <td class="paramname"><em>thread_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a">osPriority</a>&#160;</td>
+ <td class="paramname"><em>priority</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">thread_id</td><td>thread ID obtained by <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> or <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7">osThreadGetId</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">priority</td><td>new priority value for the thread function. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>status code that indicates the execution status of the function. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osThreadSetPriority</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Change the priority of an active thread.</p>
+<p><b><a class="el" href="group__CMSIS__RTOS__Status.html">Status and Error Codes</a></b><br/>
+</p>
+<ul>
+<li><em>osOK:</em> the priority of the specified thread has been successfully changed.</li>
+<li><em>osErrorParameter:</em> thread_id is incorrect.</li>
+<li><em>osErrorValue:</em> incorrect priority value.</li>
+<li><em>osErrorResource:</em> thread_id refers to a thread that is not an active thread.</li>
+<li><em>osErrorISR:</em> <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga0dfb90ccf1f6e4b54b9251b12d1cbc8b">osThreadSetPriority</a> cannot be called from interrupt service routines.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> Thread_1 (<span class="keywordtype">void</span> <span class="keyword">const</span> *arg) { <span class="comment">// Thread function</span></div>
+<div class="line"> <a class="code" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> id; <span class="comment">// id for the currently running thread</span></div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a">osPriority</a> pr; <span class="comment">// thread priority</span></div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> status; <span class="comment">// status of the executed function</span></div>
+<div class="line"> </div>
+<div class="line"> : </div>
+<div class="line"> <span class="keywordtype">id</span> = <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7">osThreadGetId</a> (); <span class="comment">// Obtain ID of current running thread</span></div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">if</span> (<span class="keywordtype">id</span> != NULL) {</div>
+<div class="line"> status = <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#ga0dfb90ccf1f6e4b54b9251b12d1cbc8b">osThreadSetPriority</a> (<span class="keywordtype">id</span>, <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa193b650117c209b4a203954542bcc3e6">osPriorityBelowNormal</a>);</div>
+<div class="line"> <span class="keywordflow">if</span> (status == <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f">osOK</a>) {</div>
+<div class="line"> <span class="comment">// Thread priority changed to BelowNormal</span></div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">else</span> {</div>
+<div class="line"> <span class="comment">// Failed to set the priority</span></div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">else</span> {</div>
+<div class="line"> <span class="comment">// Failed to get the id</span></div>
+<div class="line"> }</div>
+<div class="line"> : </div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="gaea135bb90eb853eff39e0800b91bbeab"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> osThreadTerminate </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a>&#160;</td>
+ <td class="paramname"><em>thread_id</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">thread_id</td><td>thread ID obtained by <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> or <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7">osThreadGetId</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>status code that indicates the execution status of the function. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osThreadTerminate</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Remove the thread function from the active thread list. If the thread is currently RUNNING the execution will stop.</p>
+<dl class="section note"><dt>Note</dt><dd>In case that <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaea135bb90eb853eff39e0800b91bbeab">osThreadTerminate</a> terminates the currently running task, the function never returns and other threads that are in the READY state are started.</dd></dl>
+<p><b><a class="el" href="group__CMSIS__RTOS__Status.html">Status and Error Codes</a></b><br/>
+</p>
+<ul>
+<li><em>osOK:</em> the specified thread has been successfully terminated.</li>
+<li><em>osErrorParameter:</em> thread_id is incorrect.</li>
+<li><em>osErrorResource:</em> thread_id refers to a thread that is not an active thread.</li>
+<li><em>osErrorISR:</em> <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaea135bb90eb853eff39e0800b91bbeab">osThreadTerminate</a> cannot be called from interrupt service routines.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>. </dd>
+<dd>
+Avoid calling the function with a <em>thread_id</em> that does not exist or has been terminated already.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> Thread_1 (<span class="keywordtype">void</span> <span class="keyword">const</span> *arg); <span class="comment">// function prototype for Thread_1</span></div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a> (Thread_1, <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1">osPriorityNormal</a>, 1, 0); <span class="comment">// define Thread_1</span></div>
+<div class="line"></div>
+<div class="line"><span class="keywordtype">void</span> ThreadTerminate_example (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> status;</div>
+<div class="line"> <a class="code" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a> id;</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordtype">id</span> = <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> (<a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">osThread</a> (Thread_1), NULL); <span class="comment">// create the thread</span></div>
+<div class="line"> : </div>
+<div class="line"> status = <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaea135bb90eb853eff39e0800b91bbeab">osThreadTerminate</a> (<span class="keywordtype">id</span>); <span class="comment">// stop the thread</span></div>
+<div class="line"> <span class="keywordflow">if</span> (status == <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f">osOK</a>) {</div>
+<div class="line"> <span class="comment">// Thread was terminated successfully</span></div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">else</span> {</div>
+<div class="line"> <span class="comment">// Failed to terminate a thread</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="gaf13a667493c5d629a90c13e113b99233"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> osThreadYield </td>
+ <td>(</td>
+ <td class="paramtype">void&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>status code that indicates the execution status of the function. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osThreadYield</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Pass control to the next thread that is in state <b>READY</b>. If there is no other thread in the state <b>READY</b>, the current thread continues execution and no thread switching occurs.</p>
+<p><b><a class="el" href="group__CMSIS__RTOS__Status.html">Status and Error Codes</a></b><br/>
+</p>
+<ul>
+<li><em>osOK:</em> the function has been correctly executed.</li>
+<li><em>osErrorISR:</em> <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf13a667493c5d629a90c13e113b99233">osThreadYield</a> cannot be called from interrupt service routines.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> Thread_1 (<span class="keywordtype">void</span> <span class="keyword">const</span> *arg) { <span class="comment">// Thread function</span></div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> status; <span class="comment">// status of the executed function</span></div>
+<div class="line"> :</div>
+<div class="line"> <span class="keywordflow">while</span> (1) {</div>
+<div class="line"> status = <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf13a667493c5d629a90c13e113b99233">osThreadYield</a>(); <span class="comment">// </span></div>
+<div class="line"> <span class="keywordflow">if</span> (status != <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f">osOK</a>) {</div>
+<div class="line"> <span class="comment">// thread switch not occurred, not in a thread function</span></div>
+<div class="line"> }</div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__ThreadMgmt.js b/docs/RTOS/html/group__CMSIS__RTOS__ThreadMgmt.js
new file mode 100644
index 0000000..ba6111f
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__ThreadMgmt.js
@@ -0,0 +1,21 @@
+var group__CMSIS__RTOS__ThreadMgmt =
+[
+ [ "osThread", "group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453", null ],
+ [ "osThreadDef", "group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f", null ],
+ [ "osPriority", "group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a", [
+ [ "osPriorityIdle", "cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa549e79a43ff4f8b2b31afb613f5caa81", null ],
+ [ "osPriorityLow", "cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa61cb822239ac8f66dfbdc7291598a3d4", null ],
+ [ "osPriorityBelowNormal", "cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa193b650117c209b4a203954542bcc3e6", null ],
+ [ "osPriorityNormal", "cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1", null ],
+ [ "osPriorityAboveNormal", "cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa17b36cd9cd38652c2bc6d4803990674b", null ],
+ [ "osPriorityHigh", "cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa914433934143a9ba767e59577c56e6c2", null ],
+ [ "osPriorityRealtime", "cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa1485dec3702434a1ec3cb74c7a17a4af", null ],
+ [ "osPriorityError", "cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aae35f5e2f9c64ad346822521b643bdea4", null ]
+ ] ],
+ [ "osThreadCreate", "group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff", null ],
+ [ "osThreadGetId", "group__CMSIS__RTOS__ThreadMgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7", null ],
+ [ "osThreadGetPriority", "group__CMSIS__RTOS__ThreadMgmt.html#ga4299d838978bc2aae5e4350754e6a4e9", null ],
+ [ "osThreadSetPriority", "group__CMSIS__RTOS__ThreadMgmt.html#ga0dfb90ccf1f6e4b54b9251b12d1cbc8b", null ],
+ [ "osThreadTerminate", "group__CMSIS__RTOS__ThreadMgmt.html#gaea135bb90eb853eff39e0800b91bbeab", null ],
+ [ "osThreadYield", "group__CMSIS__RTOS__ThreadMgmt.html#gaf13a667493c5d629a90c13e113b99233", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__TimerMgmt.html b/docs/RTOS/html/group__CMSIS__RTOS__TimerMgmt.html
new file mode 100644
index 0000000..944b5b6
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__TimerMgmt.html
@@ -0,0 +1,534 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Timer Management</title>
+<title>CMSIS-RTOS: Timer Management</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group__CMSIS__RTOS__TimerMgmt.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#enum-members">Enumerations</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Timer Management<div class="ingroups"><a class="el" href="group__CMSIS__RTOS.html">CMSIS-RTOS API</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Create and control timer and timer callback functions.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ga1c720627e08d1cc1afcad44e799ed492"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga1c720627e08d1cc1afcad44e799ed492">osTimerDef</a>(name, function)</td></tr>
+<tr class="memdesc:ga1c720627e08d1cc1afcad44e799ed492"><td class="mdescLeft">&#160;</td><td class="mdescRight">Define a Timer object. <a href="#ga1c720627e08d1cc1afcad44e799ed492">More...</a><br/></td></tr>
+<tr class="separator:ga1c720627e08d1cc1afcad44e799ed492"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1b8d670eaf964b2910fa06885e650678"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678">osTimer</a>(name)&#160;&#160;&#160;&amp;os_timer_def_##name</td></tr>
+<tr class="memdesc:ga1b8d670eaf964b2910fa06885e650678"><td class="mdescLeft">&#160;</td><td class="mdescRight">Access a Timer definition. <a href="#ga1b8d670eaf964b2910fa06885e650678">More...</a><br/></td></tr>
+<tr class="separator:ga1b8d670eaf964b2910fa06885e650678"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:gadac860eb9e1b4b0619271e6595ed83d9"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9">os_timer_type</a> { <br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ad21712f8df5f97069c82dc9eec37b951">osTimerOnce</a> = 0,
+<br/>
+&#160;&#160;<a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788">osTimerPeriodic</a> = 1
+<br/>
+ }</td></tr>
+<tr class="separator:gadac860eb9e1b4b0619271e6595ed83d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gaedd312bfdca04e0b8162b666e09a1ae6"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7">osTimerId</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6">osTimerCreate</a> (const <a class="el" href="cmsis__os_8h.html#structosTimerDef__t">osTimerDef_t</a> *timer_def, <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9">os_timer_type</a> type, void *argument)</td></tr>
+<tr class="memdesc:gaedd312bfdca04e0b8162b666e09a1ae6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a timer. <a href="#gaedd312bfdca04e0b8162b666e09a1ae6">More...</a><br/></td></tr>
+<tr class="separator:gaedd312bfdca04e0b8162b666e09a1ae6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga27a797a401b068e2644d1125f22a07ca"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca">osTimerStart</a> (<a class="el" href="cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7">osTimerId</a> timer_id, uint32_t millisec)</td></tr>
+<tr class="memdesc:ga27a797a401b068e2644d1125f22a07ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">Start or restart a timer. <a href="#ga27a797a401b068e2644d1125f22a07ca">More...</a><br/></td></tr>
+<tr class="separator:ga27a797a401b068e2644d1125f22a07ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga58f36b121a812936435cacc6e1e0e091"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga58f36b121a812936435cacc6e1e0e091">osTimerStop</a> (<a class="el" href="cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7">osTimerId</a> timer_id)</td></tr>
+<tr class="memdesc:ga58f36b121a812936435cacc6e1e0e091"><td class="mdescLeft">&#160;</td><td class="mdescRight">Stop the timer. <a href="#ga58f36b121a812936435cacc6e1e0e091">More...</a><br/></td></tr>
+<tr class="separator:ga58f36b121a812936435cacc6e1e0e091"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga746b8043d906849bd65e3900fcb483cf"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga746b8043d906849bd65e3900fcb483cf">osTimerDelete</a> (<a class="el" href="cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7">osTimerId</a> timer_id)</td></tr>
+<tr class="memdesc:ga746b8043d906849bd65e3900fcb483cf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Delete a timer that was created by <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6">osTimerCreate</a>. <a href="#ga746b8043d906849bd65e3900fcb483cf">More...</a><br/></td></tr>
+<tr class="separator:ga746b8043d906849bd65e3900fcb483cf"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
+<p>In addition to the <a class="el" href="group__CMSIS__RTOS__Wait.html">Generic Wait Functions</a> CMSIS-RTOS also supports virtual timer objects. These timer objects can trigger the execution of a function (not threads). When a timer expires, a callback function is executed to run associated code with the timer. The timer number is passed as a parameter to the callback function. Each timer can be configured as a one-shot or a periodic timer. A periodic timer repeats its operation until it is <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga746b8043d906849bd65e3900fcb483cf">deleted</a> or <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga58f36b121a812936435cacc6e1e0e091">stopped</a>. All timers can be <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca">started, restarted</a>, or <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga58f36b121a812936435cacc6e1e0e091">stopped</a>.</p>
+<p>Timers are handled in the thread <b>osTimerThread</b>. Callback functions run under control of this thread and may use other CMSIS-RTOS API calls.</p>
+<p>The figure below shows the behavior of a periodic timer. For one-shot timers, the timer stops after execution of the callback function.</p>
+<div class="image">
+<img src="Timer.png" alt="Timer.png"/>
+<div class="caption">
+Behavior of a Periodic Timer</div></div>
+ <h2>Working with Timers </h2>
+<p>The following steps are required to use a timer:</p>
+<ol type="1">
+<li>Define the timers: <div class="fragment"><div class="line"><a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga1c720627e08d1cc1afcad44e799ed492">osTimerDef</a>(one_shot, start_machine); <span class="comment">// when the timer expires, the function start_machine is called</span></div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga1c720627e08d1cc1afcad44e799ed492">osTimerDef</a>(periodic, toggle_power); <span class="comment">// when the timer expires, the function toggle_power is called</span></div>
+<div class="line"><a class="code" href="cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7">osTimerId</a> one_shot_id, periodic_id;</div>
+</div><!-- fragment --></li>
+<li>Instantiate and start the timers in an RTOS thread: <div class="fragment"><div class="line">one_shot_id = <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6">osTimerCreate</a>(<a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678">osTimer</a>(one_shot), <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ad21712f8df5f97069c82dc9eec37b951">osTimerOnce</a>, (<span class="keywordtype">void</span> *)0); <span class="comment">// creates a one-shot timer;</span></div>
+<div class="line"> <span class="comment">// (void*)0 is passed as an argument to the callback function</span></div>
+<div class="line">periodic_id = <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6">osTimerCreate</a>(<a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678">osTimer</a>(periodic), <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788">osTimerPeriodic</a>, (<span class="keywordtype">void</span> *)5); <span class="comment">// creates a periodic timer;</span></div>
+<div class="line"> <span class="comment">// (void*)5 is passed as an argument to the callback function</span></div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca">osTimerStart</a>(one_shot_id, 500);</div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca">osTimerStart</a>(periodic, 1500);</div>
+</div><!-- fragment --> </li>
+</ol>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="ga1b8d670eaf964b2910fa06885e650678"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osTimer</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">name</td><td>)</td>
+ <td>&#160;&#160;&#160;&amp;os_timer_def_##name</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Access to the timer definition for the function <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6">osTimerCreate</a>.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">name</td><td>name of the timer object. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: The parameter to <b>osTimer</b> shall be consistent but the macro body is implementation specific in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<a class="anchor" id="ga1c720627e08d1cc1afcad44e799ed492"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osTimerDef</td>
+ <td>(</td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">name, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">&#160;</td>
+ <td class="paramname">function&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Define the attributes of a timer.</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">name</td><td>name of the timer object. </td></tr>
+ <tr><td class="paramname">function</td><td>name of the timer call back function. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: The parameter to <b>osTimerDef</b> shall be consistent but the macro body is implementation specific in every CMSIS-RTOS. </dd></dl>
+
+</div>
+</div>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
+<a class="anchor" id="gadac860eb9e1b4b0619271e6595ed83d9"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">enum <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9">os_timer_type</a></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>os_timer_type</b> shall be consistent in every CMSIS-RTOS. The <a class="el" href="cmsis__os_8h.html#adac860eb9e1b4b0619271e6595ed83d9">os_timer_type</a> specifies the a repeating (periodic) or one-shot timer for the function <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6">osTimerCreate</a>. </dd></dl>
+<table class="fieldtable">
+<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><em><a class="anchor" id="gadac860eb9e1b4b0619271e6595ed83d9ad21712f8df5f97069c82dc9eec37b951"></a>osTimerOnce</em>&#160;</td><td class="fielddoc">
+<p>one-shot timer </p>
+</td></tr>
+<tr><td class="fieldname"><em><a class="anchor" id="gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788"></a>osTimerPeriodic</em>&#160;</td><td class="fielddoc">
+<p>repeating timer </p>
+</td></tr>
+</table>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="gaedd312bfdca04e0b8162b666e09a1ae6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7">osTimerId</a> osTimerCreate </td>
+ <td>(</td>
+ <td class="paramtype">const <a class="el" href="cmsis__os_8h.html#structosTimerDef__t">osTimerDef_t</a> *&#160;</td>
+ <td class="paramname"><em>timer_def</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9">os_timer_type</a>&#160;</td>
+ <td class="paramname"><em>type</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">void *&#160;</td>
+ <td class="paramname"><em>argument</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">timer_def</td><td>timer object referenced with <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678">osTimer</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">type</td><td>osTimerOnce for one-shot or osTimerPeriodic for periodic behavior. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">argument</td><td>argument to the timer call back function. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>timer ID for reference by other functions or NULL in case of error. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osTimerCreate</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Create a one-shot or periodic timer and associate it with a callback function argument. The timer is in stopped until it is started with <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca">osTimerStart</a>.</p>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> Timer1_Callback (<span class="keywordtype">void</span> <span class="keyword">const</span> *arg); <span class="comment">// prototypes for timer callback function</span></div>
+<div class="line"><span class="keywordtype">void</span> Timer2_Callback (<span class="keywordtype">void</span> <span class="keyword">const</span> *arg); </div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga1c720627e08d1cc1afcad44e799ed492">osTimerDef</a> (Timer1, Timer1_Callback); <span class="comment">// define timers</span></div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga1c720627e08d1cc1afcad44e799ed492">osTimerDef</a> (Timer2, Timer2_Callback);</div>
+<div class="line"> </div>
+<div class="line">uint32_t exec1; <span class="comment">// argument for the timer call back function</span></div>
+<div class="line">uint32_t exec2; <span class="comment">// argument for the timer call back function</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> TimerCreate_example (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <a class="code" href="cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7">osTimerId</a> id1; <span class="comment">// timer id</span></div>
+<div class="line"> <a class="code" href="cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7">osTimerId</a> id2; <span class="comment">// timer id</span></div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">// Create one-shoot timer</span></div>
+<div class="line"> exec1 = 1;</div>
+<div class="line"> id1 = <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6">osTimerCreate</a> (<a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678">osTimer</a>(Timer1), <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ad21712f8df5f97069c82dc9eec37b951">osTimerOnce</a>, &amp;exec1);</div>
+<div class="line"> <span class="keywordflow">if</span> (id1 != NULL) {</div>
+<div class="line"> <span class="comment">// One-shoot timer created</span></div>
+<div class="line"> }</div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">// Create periodic timer</span></div>
+<div class="line"> exec2 = 2;</div>
+<div class="line"> id2 = <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6">osTimerCreate</a> (<a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678">osTimer</a>(Timer2), <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788">osTimerPeriodic</a>, &amp;exec2);</div>
+<div class="line"> <span class="keywordflow">if</span> (id2 != NULL) {</div>
+<div class="line"> <span class="comment">// Periodic timer created</span></div>
+<div class="line"> }</div>
+<div class="line"> :</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ga746b8043d906849bd65e3900fcb483cf"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> osTimerDelete </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7">osTimerId</a>&#160;</td>
+ <td class="paramname"><em>timer_id</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">timer_id</td><td>timer ID obtained by <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6">osTimerCreate</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>status code that indicates the execution status of the function. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osTimerDelete</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Delete the timer object.</p>
+<p><b><a class="el" href="group__CMSIS__RTOS__Status.html">Status and Error Codes</a></b><br/>
+</p>
+<ul>
+<li><em>osOK:</em> the specified timer has been deleted.</li>
+<li><em>osErrorISR:</em> <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga746b8043d906849bd65e3900fcb483cf">osTimerDelete</a> cannot be called from interrupt service routines.</li>
+<li><em>osErrorParameter:</em> <em>timer_id</em> is incorrect.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"></div>
+<div class="line"><span class="keywordtype">void</span> Timer_Callback (<span class="keywordtype">void</span> <span class="keyword">const</span> *arg); <span class="comment">// prototype for timer callback function</span></div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga1c720627e08d1cc1afcad44e799ed492">osTimerDef</a> (Timer, Timer_Callback); <span class="comment">// define timer</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> TimerDelete_example (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <a class="code" href="cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7">osTimerId</a> id; <span class="comment">// timer id</span></div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> status; <span class="comment">// function return status </span></div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">// Create periodic timer</span></div>
+<div class="line"> exec = 1;</div>
+<div class="line"> <span class="keywordtype">id</span> = <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6">osTimerCreate</a> (<a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678">osTimer</a>(Timer2), <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788">osTimerPeriodic</a>, NULL);</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca">osTimerStart</a> (<span class="keywordtype">id</span>, 1000UL); <span class="comment">// start timer</span></div>
+<div class="line"> :</div>
+<div class="line"> status = <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga746b8043d906849bd65e3900fcb483cf">osTimerDelete</a> (<span class="keywordtype">id</span>); <span class="comment">// stop and delete timer</span></div>
+<div class="line"> <span class="keywordflow">if</span> (status != <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f">osOK</a>) {</div>
+<div class="line"> <span class="comment">// Timer could not be deleted</span></div>
+<div class="line"> } </div>
+<div class="line"> :</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ga27a797a401b068e2644d1125f22a07ca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> osTimerStart </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7">osTimerId</a>&#160;</td>
+ <td class="paramname"><em>timer_id</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>millisec</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">timer_id</td><td>timer ID obtained by <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6">osTimerCreate</a>. </td></tr>
+ <tr><td class="paramdir">[in]</td><td class="paramname">millisec</td><td><a class="el" href="functionOverview.html#CMSIS_RTOS_TimeOutValue">time delay</a> value of the timer. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>status code that indicates the execution status of the function. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osTimerStart</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Start or restart the timer.</p>
+<p><b><a class="el" href="group__CMSIS__RTOS__Status.html">Status and Error Codes</a></b><br/>
+</p>
+<ul>
+<li><em>osOK:</em> the specified timer has been started or restarted.</li>
+<li><em>osErrorISR:</em> <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca">osTimerStart</a> cannot be called from interrupt service routines.</li>
+<li><em>osErrorParameter:</em> <em>timer_id</em> is incorrect.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> Time_Callback (<span class="keywordtype">void</span> <span class="keyword">const</span> *arg) { <span class="comment">// timer callback function</span></div>
+<div class="line"> <span class="comment">// arg contains &amp;exec</span></div>
+<div class="line"> <span class="comment">// called every second after osTimerStart</span></div>
+<div class="line">} </div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga1c720627e08d1cc1afcad44e799ed492">osTimerDef</a> (Timer, Time_Callback); <span class="comment">// define timer</span></div>
+<div class="line">uint32_t exec; <span class="comment">// argument for the timer call back function</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> TimerStart_example (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <a class="code" href="cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7">osTimerId</a> id; <span class="comment">// timer id</span></div>
+<div class="line"> uint32_t timerDelay; <span class="comment">// timer value</span></div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> status; <span class="comment">// function return status</span></div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">// Create periodic timer</span></div>
+<div class="line"> exec = 1;</div>
+<div class="line"> <span class="keywordtype">id</span> = <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6">osTimerCreate</a> (<a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678">osTimer</a>(Timer), <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788">osTimerPeriodic</a>, &amp;exec);</div>
+<div class="line"> <span class="keywordflow">if</span> (<span class="keywordtype">id</span>) {</div>
+<div class="line"> timerDelay = 1000;</div>
+<div class="line"> status = <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca">osTimerStart</a> (<span class="keywordtype">id</span>, timerDelay); <span class="comment">// start timer</span></div>
+<div class="line"> <span class="keywordflow">if</span> (status != <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f">osOK</a>) {</div>
+<div class="line"> <span class="comment">// Timer could not be started</span></div>
+<div class="line"> } </div>
+<div class="line"> }</div>
+<div class="line"> :</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ga58f36b121a812936435cacc6e1e0e091"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> osTimerStop </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7">osTimerId</a>&#160;</td>
+ <td class="paramname"><em>timer_id</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">timer_id</td><td>timer ID obtained by <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6">osTimerCreate</a>. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>status code that indicates the execution status of the function. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osTimerStop</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Stop the timer.</p>
+<p><b><a class="el" href="group__CMSIS__RTOS__Status.html">Status and Error Codes</a></b><br/>
+</p>
+<ul>
+<li><em>osOK:</em> the specified timer has been stopped.</li>
+<li><em>osErrorISR:</em> <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga58f36b121a812936435cacc6e1e0e091">osTimerStop</a> cannot be called from interrupt service routines.</li>
+<li><em>osErrorParameter:</em> <em>timer_id</em> is incorrect.</li>
+<li><em>osErrorResource:</em> the timer is not started.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> Timer_Callback (<span class="keywordtype">void</span> <span class="keyword">const</span> *arg); <span class="comment">// prototype for timer callback function</span></div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga1c720627e08d1cc1afcad44e799ed492">osTimerDef</a> (Timer, Timer_Callback); <span class="comment">// define timer</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> TimerStop_example (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <a class="code" href="cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7">osTimerId</a> id; <span class="comment">// timer id</span></div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> status; <span class="comment">// function return status</span></div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">// Create periodic timer</span></div>
+<div class="line"> exec = 1;</div>
+<div class="line"> <span class="keywordtype">id</span> = <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6">osTimerCreate</a> (<a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678">osTimer</a>(Timer2), <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788">osTimerPeriodic</a>, NULL);</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca">osTimerStart</a> (<span class="keywordtype">id</span>, 1000); <span class="comment">// start timer</span></div>
+<div class="line"> :</div>
+<div class="line"> status = <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga58f36b121a812936435cacc6e1e0e091">osTimerStop</a> (<span class="keywordtype">id</span>); <span class="comment">// stop timer</span></div>
+<div class="line"> <span class="keywordflow">if</span> (status != <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f">osOK</a>) {</div>
+<div class="line"> <span class="comment">// Timer could not be stopped</span></div>
+<div class="line"> } </div>
+<div class="line"> :</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca">osTimerStart</a> (<span class="keywordtype">id</span>, 1000); <span class="comment">// start timer again</span></div>
+<div class="line"> :</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__TimerMgmt.js b/docs/RTOS/html/group__CMSIS__RTOS__TimerMgmt.js
new file mode 100644
index 0000000..b671c0e
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__TimerMgmt.js
@@ -0,0 +1,13 @@
+var group__CMSIS__RTOS__TimerMgmt =
+[
+ [ "osTimer", "group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678", null ],
+ [ "osTimerDef", "group__CMSIS__RTOS__TimerMgmt.html#ga1c720627e08d1cc1afcad44e799ed492", null ],
+ [ "os_timer_type", "group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9", [
+ [ "osTimerOnce", "group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ad21712f8df5f97069c82dc9eec37b951", null ],
+ [ "osTimerPeriodic", "group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788", null ]
+ ] ],
+ [ "osTimerCreate", "group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6", null ],
+ [ "osTimerDelete", "group__CMSIS__RTOS__TimerMgmt.html#ga746b8043d906849bd65e3900fcb483cf", null ],
+ [ "osTimerStart", "group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca", null ],
+ [ "osTimerStop", "group__CMSIS__RTOS__TimerMgmt.html#ga58f36b121a812936435cacc6e1e0e091", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__Wait.html b/docs/RTOS/html/group__CMSIS__RTOS__Wait.html
new file mode 100644
index 0000000..76a772d
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__Wait.html
@@ -0,0 +1,293 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Generic Wait Functions</title>
+<title>CMSIS-RTOS: Generic Wait Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group__CMSIS__RTOS__Wait.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#define-members">Macros</a> &#124;
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">Generic Wait Functions<div class="ingroups"><a class="el" href="group__CMSIS__RTOS.html">CMSIS-RTOS API</a></div></div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Wait for a time period or unspecified events.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
+Macros</h2></td></tr>
+<tr class="memitem:ga6c97d38879ae86491628f6e647639bad"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Wait.html#ga6c97d38879ae86491628f6e647639bad">osFeature_Wait</a>&#160;&#160;&#160;1</td></tr>
+<tr class="memdesc:ga6c97d38879ae86491628f6e647639bad"><td class="mdescLeft">&#160;</td><td class="mdescRight">osWait function: 1=available, 0=not available <a href="#ga6c97d38879ae86491628f6e647639bad">More...</a><br/></td></tr>
+<tr class="separator:ga6c97d38879ae86491628f6e647639bad"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:ga02e19d5e723bfb06ba9324d625162255"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Wait.html#ga02e19d5e723bfb06ba9324d625162255">osDelay</a> (uint32_t millisec)</td></tr>
+<tr class="memdesc:ga02e19d5e723bfb06ba9324d625162255"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait for Timeout (Time Delay). <a href="#ga02e19d5e723bfb06ba9324d625162255">More...</a><br/></td></tr>
+<tr class="separator:ga02e19d5e723bfb06ba9324d625162255"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga8470c8aaedfde524a44e22e5b2328285"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__CMSIS__RTOS__Wait.html#ga8470c8aaedfde524a44e22e5b2328285">osWait</a> (uint32_t millisec)</td></tr>
+<tr class="memdesc:ga8470c8aaedfde524a44e22e5b2328285"><td class="mdescLeft">&#160;</td><td class="mdescRight">Wait for Signal, Message, Mail, or Timeout. <a href="#ga8470c8aaedfde524a44e22e5b2328285">More...</a><br/></td></tr>
+<tr class="separator:ga8470c8aaedfde524a44e22e5b2328285"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
+<p>The Generic Wait function group provides means for a time delay and allow to wait for unspecified events. </p>
+<h2 class="groupheader">Macro Definition Documentation</h2>
+<a class="anchor" id="ga6c97d38879ae86491628f6e647639bad"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">#define osFeature_Wait&#160;&#160;&#160;1</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>A CMSIS-RTOS implementation may support the generic wait function <a class="el" href="technicalData.html#osWait">osWait</a>.</p>
+<ul>
+<li>When <a class="el" href="group__CMSIS__RTOS__Wait.html#ga6c97d38879ae86491628f6e647639bad">osFeature_Wait</a> is 1 a generic wait function <a class="el" href="technicalData.html#osWait">osWait</a> is available.</li>
+<li>When <a class="el" href="group__CMSIS__RTOS__Wait.html#ga6c97d38879ae86491628f6e647639bad">osFeature_Wait</a> is 0 no generic wait function <a class="el" href="technicalData.html#osWait">osWait</a> is available.</li>
+</ul>
+<p><a class="el" href="rtxImplementation.html">CMSIS-RTOS RTX</a> Setting: <b>osFeature_Wait</b> is 0 </p>
+
+</div>
+</div>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga02e19d5e723bfb06ba9324d625162255"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> osDelay </td>
+ <td>(</td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>millisec</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">millisec</td><td><a class="el" href="functionOverview.html#CMSIS_RTOS_TimeOutValue">time delay</a> value </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>status code that indicates the execution status of the function.</dd></dl>
+<p>Wait for a specified time period in <em>millisec</em>.</p>
+<p>The <a class="el" href="functionOverview.html#CMSIS_RTOS_TimeOutValue">millisec</a> value specifies the number of timer ticks and is therefore an upper bound. The exact time delay depends on the actual time elapsed since the last timer tick.</p>
+<p>For a value of <b>1</b>, the system waits until the next timer tick occurs. That means that the actual time delay may be up to one timer tick less.</p>
+<p><b><a class="el" href="group__CMSIS__RTOS__Status.html">Status and Error Codes</a></b><br/>
+</p>
+<ul>
+<li><em>osEventTimeout:</em> the time delay is executed.</li>
+<li><em>osErrorISR:</em> <a class="el" href="group__CMSIS__RTOS__Wait.html#ga02e19d5e723bfb06ba9324d625162255">osDelay</a> cannot be called from interrupt service routines.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> Thread_1 (<span class="keywordtype">void</span> <span class="keyword">const</span> *arg) { <span class="comment">// Thread function</span></div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> status; <span class="comment">// capture the return status</span></div>
+<div class="line"> uint32_t delayTime; <span class="comment">// delay time in milliseconds</span></div>
+<div class="line"> </div>
+<div class="line"> delayTime = 1000; <span class="comment">// delay 1 second</span></div>
+<div class="line"> :</div>
+<div class="line"> status = <a class="code" href="group__CMSIS__RTOS__Wait.html#ga02e19d5e723bfb06ba9324d625162255">osDelay</a> (delayTime); <span class="comment">// suspend thread execution</span></div>
+<div class="line"> <span class="comment">// handle error code</span></div>
+<div class="line"> : </div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ga8470c8aaedfde524a44e22e5b2328285"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a> osWait </td>
+ <td>(</td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>millisec</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">millisec</td><td><a class="el" href="functionOverview.html#CMSIS_RTOS_TimeOutValue">Timout Value</a> or 0 in case of no time-out </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>event that contains signal, message, or mail information or error code. </dd></dl>
+<dl class="section note"><dt>Note</dt><dd>MUST REMAIN UNCHANGED: <b>osWait</b> shall be consistent in every CMSIS-RTOS.</dd></dl>
+<p>Wait for any event of the type Signal, Message, Mail for a specified time period in <em>millisec</em>. While the system waits, the thread that is calling this function is put into the state <b>WAITING</b>. When <em>millisec</em> is set to <b>osWaitForever</b>, the function will wait for an infinite time until an event occurs.</p>
+<p>The osWait function puts a thread into the state <b>WAITING</b> and waits for any of the following events:</p>
+<ul>
+<li>A <b>signal</b> sent to that thread explicitly</li>
+<li>A <b>message</b> from a message object that is registered to that thread</li>
+<li>A <b>mail</b> from a mail object that is registered to that thread</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>This function is optional and may not be provided by all CMSIS-RTOS implementations.</dd></dl>
+<p><b><a class="el" href="group__CMSIS__RTOS__Status.html">Status and Error Codes</a></b><br/>
+</p>
+<ul>
+<li><em>osEventSignal:</em> a signal event occurred and is returned.</li>
+<li><em>osEventMessage:</em> a message event occurred and is returned.</li>
+<li><em>osEventMail:</em> a mail event occurred and is returned.</li>
+<li><em>osEventTimeout:</em> the time delay is executed.</li>
+<li><em>osErrorISR:</em> <a class="el" href="group__CMSIS__RTOS__Wait.html#ga02e19d5e723bfb06ba9324d625162255">osDelay</a> cannot be called from interrupt service routines.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> Thread_1 (<span class="keywordtype">void</span> <span class="keyword">const</span> *arg) { <span class="comment">// Thread function</span></div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a> Event; <span class="comment">// capture the event</span></div>
+<div class="line"> uint32_t waitTime; <span class="comment">// wait time in milliseconds</span></div>
+<div class="line"> </div>
+<div class="line"> :</div>
+<div class="line"> waitTime = <a class="code" href="cmsis__os_8h.html#a9eb9a7a797a42e4b55eb171ecc609ddb">osWaitForever</a>; <span class="comment">// special &quot;wait&quot; value</span></div>
+<div class="line"> Event = <a class="code" href="group__CMSIS__RTOS__Wait.html#ga8470c8aaedfde524a44e22e5b2328285">osWait</a> (waitTime); <span class="comment">// wait forever and until an event occurred</span></div>
+<div class="line"> <span class="keywordflow">switch</span> (Event.<a class="code" href="group__CMSIS__RTOS__Definitions.html#ad477a289f1f03ac45407b64268d707d3">status</a>) {</div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea5df7e9643aa8a2f5f3a6f6ec59758518">osEventSignal</a>: <span class="comment">// Signal arrived</span></div>
+<div class="line"> : <span class="comment">// Event.value.signals contains the signal flags</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ead604f3673359dd4ac643b16dc5a2c342">osEventMessage</a>: <span class="comment">// Message arrived</span></div>
+<div class="line"> : <span class="comment">// Event.value.p contains the message pointer</span></div>
+<div class="line"> : <span class="comment">// Event.def.message_id contains the message Id</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea15b12e42b42b53f35fb8a2724ad02926">osEventMail</a>: <span class="comment">// Mail arrived</span></div>
+<div class="line"> : <span class="comment">// Event.value.p contains the mail pointer</span></div>
+<div class="line"> : <span class="comment">// Event.def.mail_id contains the mail Id</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea78f477732375c0e1fca814e369618177">osEventTimeout</a>: <span class="comment">// Timeout occurred</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">default</span>: <span class="comment">// Error occurred</span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> }</div>
+<div class="line"> :</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/group__CMSIS__RTOS__Wait.js b/docs/RTOS/html/group__CMSIS__RTOS__Wait.js
new file mode 100644
index 0000000..f597494
--- /dev/null
+++ b/docs/RTOS/html/group__CMSIS__RTOS__Wait.js
@@ -0,0 +1,6 @@
+var group__CMSIS__RTOS__Wait =
+[
+ [ "osFeature_Wait", "group__CMSIS__RTOS__Wait.html#ga6c97d38879ae86491628f6e647639bad", null ],
+ [ "osDelay", "group__CMSIS__RTOS__Wait.html#ga02e19d5e723bfb06ba9324d625162255", null ],
+ [ "osWait", "group__CMSIS__RTOS__Wait.html#ga8470c8aaedfde524a44e22e5b2328285", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/group__RTX__Global__Functions.html b/docs/RTOS/html/group__RTX__Global__Functions.html
new file mode 100644
index 0000000..88deadd
--- /dev/null
+++ b/docs/RTOS/html/group__RTX__Global__Functions.html
@@ -0,0 +1,468 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>RTX Specific Functions</title>
+<title>CMSIS-RTOS: RTX Specific Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('group__RTX__Global__Functions.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#func-members">Functions</a> </div>
+ <div class="headertitle">
+<div class="title">RTX Specific Functions</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This section describes the functions that are specific to CMSIS-RTOS RTX.
+<a href="#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
+Functions</h2></td></tr>
+<tr class="memitem:gafb4dc4d3dff8343a393726d2860282e4"><td class="memItemLeft" align="right" valign="top">__NO_RETURN void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__RTX__Global__Functions.html#gafb4dc4d3dff8343a393726d2860282e4">os_idle_demon</a> (void)</td></tr>
+<tr class="memdesc:gafb4dc4d3dff8343a393726d2860282e4"><td class="mdescLeft">&#160;</td><td class="mdescRight">OS idle demon (running when no other thread is ready to run). <a href="#gafb4dc4d3dff8343a393726d2860282e4">More...</a><br/></td></tr>
+<tr class="separator:gafb4dc4d3dff8343a393726d2860282e4"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga145e7eafdd042bb522020cbb3b469d9c"><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__RTX__Global__Functions.html#ga145e7eafdd042bb522020cbb3b469d9c">os_tick_init</a> (void)</td></tr>
+<tr class="memdesc:ga145e7eafdd042bb522020cbb3b469d9c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes an alternative hardware timer as RTX kernel timer. <a href="#ga145e7eafdd042bb522020cbb3b469d9c">More...</a><br/></td></tr>
+<tr class="separator:ga145e7eafdd042bb522020cbb3b469d9c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga567543bf38239a91f09751686c23017b"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__RTX__Global__Functions.html#ga567543bf38239a91f09751686c23017b">os_tick_val</a> (void)</td></tr>
+<tr class="memdesc:ga567543bf38239a91f09751686c23017b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get alternative hardware timer's current value (0 .. OS_TRV) <a href="#ga567543bf38239a91f09751686c23017b">More...</a><br/></td></tr>
+<tr class="separator:ga567543bf38239a91f09751686c23017b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:gad5deddec3fea0fb31798f571afc3c692"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__RTX__Global__Functions.html#gad5deddec3fea0fb31798f571afc3c692">os_tick_ovf</a> (void)</td></tr>
+<tr class="memdesc:gad5deddec3fea0fb31798f571afc3c692"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get alternative hardware timer's overflow flag. <a href="#gad5deddec3fea0fb31798f571afc3c692">More...</a><br/></td></tr>
+<tr class="separator:gad5deddec3fea0fb31798f571afc3c692"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga85dab8408f27236c7341a69feb6258c7"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__RTX__Global__Functions.html#ga85dab8408f27236c7341a69feb6258c7">os_tick_irqack</a> (void)</td></tr>
+<tr class="memdesc:ga85dab8408f27236c7341a69feb6258c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Acknowledge alternative hardware timer interrupt. <a href="#ga85dab8408f27236c7341a69feb6258c7">More...</a><br/></td></tr>
+<tr class="separator:ga85dab8408f27236c7341a69feb6258c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga651ae76b3acf45f80bf0e0487b51d6e6"><td class="memItemLeft" align="right" valign="top">__NO_RETURN void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__RTX__Global__Functions.html#ga651ae76b3acf45f80bf0e0487b51d6e6">os_error</a> (uint32_t error_code)</td></tr>
+<tr class="memdesc:ga651ae76b3acf45f80bf0e0487b51d6e6"><td class="mdescLeft">&#160;</td><td class="mdescRight">OS error callback (called when a runtime error is detected). <a href="#ga651ae76b3acf45f80bf0e0487b51d6e6">More...</a><br/></td></tr>
+<tr class="separator:ga651ae76b3acf45f80bf0e0487b51d6e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga3e9c57746ccbdfe90464ad50513c569e"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__RTX__Global__Functions.html#ga3e9c57746ccbdfe90464ad50513c569e">os_suspend</a> (void)</td></tr>
+<tr class="memdesc:ga3e9c57746ccbdfe90464ad50513c569e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Suspend the RTX task scheduler. <a href="#ga3e9c57746ccbdfe90464ad50513c569e">More...</a><br/></td></tr>
+<tr class="separator:ga3e9c57746ccbdfe90464ad50513c569e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ga1b85a217d43e6b971ffcf24f8aae1c33"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__RTX__Global__Functions.html#ga1b85a217d43e6b971ffcf24f8aae1c33">os_resume</a> (uint32_t sleep_time)</td></tr>
+<tr class="memdesc:ga1b85a217d43e6b971ffcf24f8aae1c33"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resume the RTX task scheduler. <a href="#ga1b85a217d43e6b971ffcf24f8aae1c33">More...</a><br/></td></tr>
+<tr class="separator:ga1b85a217d43e6b971ffcf24f8aae1c33"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
+<p>The RTX kernel can be customized for different application requirements:</p>
+<ul>
+<li>If you are depending on the <a class="el" href="lowPower.html">lowest power consumption</a> possible, you need to adapt the function <a class="el" href="group__RTX__Global__Functions.html#gafb4dc4d3dff8343a393726d2860282e4">os_idle_demon</a> to send the system to sleep mode as often as possible. In addition, use the <a class="el" href="lowPower.html#TickLess">low power RTX extensions</a> <a class="el" href="group__RTX__Global__Functions.html#ga3e9c57746ccbdfe90464ad50513c569e">os_suspend</a> and <a class="el" href="group__RTX__Global__Functions.html#ga1b85a217d43e6b971ffcf24f8aae1c33">os_resume</a> to suspend the RTX scheduler and to stop the SysTick timer.</li>
+<li>If you need to specify an <a class="el" href="timerTick.html#AltTimer">alternate hardware timer</a> as the system tick timer, you need to<ol type="1">
+<li>implement the functions <a class="el" href="group__RTX__Global__Functions.html#ga145e7eafdd042bb522020cbb3b469d9c">os_tick_init</a>, <a class="el" href="group__RTX__Global__Functions.html#gad5deddec3fea0fb31798f571afc3c692">os_tick_ovf</a>, <a class="el" href="group__RTX__Global__Functions.html#ga567543bf38239a91f09751686c23017b">os_tick_val</a>, and optionally the function <a class="el" href="group__RTX__Global__Functions.html#ga85dab8408f27236c7341a69feb6258c7">os_tick_irqack</a>.</li>
+<li>replace the alternate timer interrupt vector with the <a class="el" href="timerTick.html#OS_Tick_Handler">OS_Tick_Handler</a> in the Interrupt Vector Table in startup file.</li>
+</ol>
+</li>
+<li>If you try to find a <b>runtime</b> <b>error</b>, use the function <a class="el" href="group__RTX__Global__Functions.html#ga651ae76b3acf45f80bf0e0487b51d6e6">os_error</a> to debug the error. </li>
+</ul>
+<h2 class="groupheader">Function Documentation</h2>
+<a class="anchor" id="ga651ae76b3acf45f80bf0e0487b51d6e6"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void os_error </td>
+ <td>(</td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>error_code</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">error_code</td><td>actual error code that has been detected.</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>Some system error conditions can be detected during runtime. If the RTX kernel detects a runtime error, it calls the runtime error function <b>os_error</b>.</p>
+<p>The argument <em>error_code</em> passes the actual error code to this function:</p>
+<table class="doxtable">
+<tr>
+<th>Error Code </th><th>Description </th></tr>
+<tr>
+<td>OS_ERROR_STACK_OVF</td><td>The stack checking has detected a stack overflow for the currently running thread. </td></tr>
+<tr>
+<td>OS_ERROR_FIFO_OVF </td><td>The ISR FIFO Queue buffer overflow is detected. </td></tr>
+<tr>
+<td>OS_ERROR_MBX_OVF </td><td>A mailbox overflow is detected for the function <a class="el" href="group__CMSIS__RTOS__Message.html#gac0dcf462fc92de8ffaba6cc004514a6d">osMessagePut</a> or <a class="el" href="group__CMSIS__RTOS__Mail.html#ga485ef6f81854ebda8ffbce4832181e02">osMailPut</a>. </td></tr>
+<tr>
+<td>OS_ERROR_TIMER_OVF</td><td>The User Timer Callback Queue overflow is detected. </td></tr>
+</table>
+<p>The function <b>os_error</b> must contain an infinite loop to prevent further program execution. You can use an emulator to step over infinite loop and trace into the code introducing a runtime error. For the overflow errors this means you need to increase the size of the object causing an overflow.</p>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code</b> <b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> <a class="code" href="group__RTX__Global__Functions.html#ga651ae76b3acf45f80bf0e0487b51d6e6">os_error</a> (uint32_t error_code) {</div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">// HERE: include optional code to be executed on runtime error. </span></div>
+<div class="line"> <span class="keywordflow">switch</span> (error_code) {</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="RTX__Conf__CM_8c.html#abf8311a7a239ec56c6d725f926ba766d">OS_ERROR_STACK_OVF</a>:</div>
+<div class="line"> <span class="comment">// Stack overflow detected for the currently running task. </span></div>
+<div class="line"> <span class="comment">// Thread can be identified by calling svcThreadGetId(). </span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="RTX__Conf__CM_8c.html#a075d54df14c85a6afe32b7f5c99c9c29">OS_ERROR_FIFO_OVF</a>:</div>
+<div class="line"> <span class="comment">// ISR FIFO Queue buffer overflow detected. </span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="RTX__Conf__CM_8c.html#ab715d7d66c341c067ef0a97b55db8a10">OS_ERROR_MBX_OVF</a>:</div>
+<div class="line"> <span class="comment">// Mailbox overflow detected. </span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">case</span> <a class="code" href="RTX__Conf__CM_8c.html#a79d7e388d951f11bd0dabd13f722cea8">OS_ERROR_TIMER_OVF</a>:</div>
+<div class="line"> <span class="comment">// User Timer Callback Queue overflow detected. </span></div>
+<div class="line"> <span class="keywordflow">break</span>;</div>
+<div class="line"> }</div>
+<div class="line"> <span class="keywordflow">for</span> (;;);</div>
+<div class="line">}</div>
+</div><!-- fragment --><p>OS error callback (called when a runtime error is detected).</p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">error_code</td><td>actual error code that has been detected </td></tr>
+ </table>
+ </dd>
+</dl>
+
+</div>
+</div>
+<a class="anchor" id="gafb4dc4d3dff8343a393726d2860282e4"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void os_idle_demon </td>
+ <td>(</td>
+ <td class="paramtype">void&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>The function <b>os_idle_demon</b> is executed by the RTX kernel, when no other threads are ready to run. By default, this task is an empty end-less loop that does nothing. It only waits until another task becomes ready to run. You may change the code of the <b>os_idle_demon</b> function to put the CPU into a power-saving or idle mode.</p>
+<p>The default stack size for this task is defined in the file <b>#<a class="el" href="RTX__Conf__CM_8c.html">RTX_Conf_CM.c</a></b>. Refer to <a class="el" href="threadConfig.html">Thread Configuration</a> entry <b>Default Thread stack size [bytes]</b>.</p>
+<dl class="section note"><dt>Note</dt><dd>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code</b> <b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="keywordtype">void</span> <a class="code" href="group__RTX__Global__Functions.html#gafb4dc4d3dff8343a393726d2860282e4">os_idle_demon</a> (<span class="keywordtype">void</span>) {</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">for</span> (;;) {</div>
+<div class="line"> __WFI(); <span class="comment">// wait for interrupt</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment --><p>OS idle demon (running when no other thread is ready to run). </p>
+
+</div>
+</div>
+<a class="anchor" id="ga1b85a217d43e6b971ffcf24f8aae1c33"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void os_resume </td>
+ <td>(</td>
+ <td class="paramtype">uint32_t&#160;</td>
+ <td class="paramname"><em>sleep_time</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramdir">[in]</td><td class="paramname">sleep_time</td><td>specifies how long the system was in sleep or power-down mode.</td></tr>
+ </table>
+ </dd>
+</dl>
+<p>The function <b>os_resume</b> resumes the RTX task scheduler. You must call this function after you have called <a class="el" href="group__RTX__Global__Functions.html#ga3e9c57746ccbdfe90464ad50513c569e">os_suspend</a> to re-enable the task scheduler.</p>
+<p>The argument <em>sleep_time</em> specifies how long the system was in sleep or power-down mode. It is measured in number of system intervals.</p>
+<dl class="section note"><dt>Note</dt><dd><ul>
+<li>You can call this function from the idle task only.</li>
+<li>When the system is in power-down, the system tick timer is not running.</li>
+<li>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</li>
+</ul>
+</dd></dl>
+<p>See <a class="el" href="group__RTX__Global__Functions.html#ga3e9c57746ccbdfe90464ad50513c569e">os_suspend</a> for a <b>Code</b> <b>Example</b>. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga3e9c57746ccbdfe90464ad50513c569e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t os_suspend </td>
+ <td>(</td>
+ <td class="paramtype">void&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>number of ticks, for how long the system can sleep or power-down.</dd></dl>
+<p>The function <b>os_suspend</b> suspends the RTX task scheduler. The function calculates the time, for how long the system is allowed to power-down, and locks the task scheduler. When the function returns, the task switches are disabled. For normal RTX operation, after calling <b>os_suspend</b>, you must call the <a class="el" href="group__RTX__Global__Functions.html#ga1b85a217d43e6b971ffcf24f8aae1c33">os_resume</a> function to re-enable the OS task scheduler.</p>
+<dl class="section note"><dt>Note</dt><dd><ul>
+<li>You can call this function from the idle task only.</li>
+<li>When the system is in power-down, the system tick timer is not running.</li>
+<li>Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</li>
+</ul>
+</dd></dl>
+<p><b>Code</b> <b>Example</b> </p>
+<p>The low power RTX is controlled from the <a class="el" href="group__RTX__Global__Functions.html#gafb4dc4d3dff8343a393726d2860282e4">os_idle_demon</a>. The peripheral wake-up timer must be initialized before the system enters an endless loop. <b>os_suspend</b> calculates the timeout until the first suspended task becomes ready, and returns the timeout to the user:</p>
+<div class="fragment"><div class="line"><span class="keywordflow">for</span> (;;) {</div>
+<div class="line">sleep = <a class="code" href="group__RTX__Global__Functions.html#ga3e9c57746ccbdfe90464ad50513c569e">os_suspend</a>();</div>
+</div><!-- fragment --><p>The user sets-up a peripheral timer to sleep timeout and starts the timer. The timeout is measured in system ticks.</p>
+<div class="fragment"><div class="line"><span class="keywordflow">if</span> (sleep) {</div>
+<div class="line"> <span class="comment">// Setup the wake-up timer ... </span></div>
+</div><!-- fragment --><p>When the wake-up timer is set-up and running, the user puts the system in power-down mode. The wake-up timer must run also in power-down mode. All other peripherals and the CPU may power-down to reduce power.</p>
+<div class="fragment"><div class="line"><span class="comment">// Power-down the system ... </span></div>
+<div class="line">SCB-&gt;SCR |= SCB_SCR_SLEEPDEEP_Msk;</div>
+<div class="line">__WFE();</div>
+</div><!-- fragment --><p>The wake-up timer, when expired, generates the interrupt and wakes-up the system. Hence, it must run also in power-down mode. The system resumes operation and needs to call the function <a class="el" href="group__RTX__Global__Functions.html#ga1b85a217d43e6b971ffcf24f8aae1c33">os_resume</a>. This function restores the RTX and re-enables the scheduler.</p>
+<div class="fragment"><div class="line"> <span class="comment">// After Wake-up </span></div>
+<div class="line"> sleep = (tc - LPC_WWDT-&gt;TV) / 250;</div>
+<div class="line">}</div>
+<div class="line"><a class="code" href="group__RTX__Global__Functions.html#ga1b85a217d43e6b971ffcf24f8aae1c33">os_resume</a>(sleep);</div>
+</div><!-- fragment --><p>If, for any reason, the system does not wake up immediately after the wake-up interrupt, the actual sleep time is checked and adjusted. </p>
+
+</div>
+</div>
+<a class="anchor" id="ga145e7eafdd042bb522020cbb3b469d9c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">int os_tick_init </td>
+ <td>(</td>
+ <td class="paramtype">void&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>IRQ number of the alternative hardware timer</dd></dl>
+<p>The function <b>os_tick_init</b> initializes an alternate hardware timer as the system tick timer and starts it. If you setup OS_SYSTICK to 0, this function will be available for adding the alternate timer. It returns the interrupt number of the alternative hardware timer.</p>
+<dl class="section note"><dt>Note</dt><dd>- When using an alternate timer, you must enter the <a class="el" href="timerTick.html#OS_Tick_Handler">OS_Tick_Handler</a> in the interrupt vector table in the startup file.</dd>
+<dd>
+- Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code</b> <b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;LPC43xx.h&quot;</span> <span class="comment">// Device header</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">int</span> <a class="code" href="group__RTX__Global__Functions.html#ga145e7eafdd042bb522020cbb3b469d9c">os_tick_init</a> (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <span class="comment">// Initialize hardware timer as system tick timer. </span></div>
+<div class="line"> </div>
+<div class="line"> LPC_CCU1-&gt;CLK_M4_RITIMER_CFG = (1UL &lt;&lt; 0);</div>
+<div class="line"> </div>
+<div class="line"> LPC_RITIMER-&gt;COMPVAL = <a class="code" href="RTX__Conf__CM_8c.html#a9d55a070ddb219165bd4287f08318d51">OS_TRV</a>; <span class="comment">// Set match value</span></div>
+<div class="line"> LPC_RITIMER-&gt;COUNTER = 0; <span class="comment">// Set count value to 0</span></div>
+<div class="line"> LPC_RITIMER-&gt;CTRL = (1UL &lt;&lt; 3) | <span class="comment">// Timer enable</span></div>
+<div class="line"> (1UL &lt;&lt; 2) | <span class="comment">// Timer enable for debug</span></div>
+<div class="line"> (1UL &lt;&lt; 1) | <span class="comment">// Timer enable clear on match</span></div>
+<div class="line"> (1UL &lt;&lt; 0); <span class="comment">// Clear interrupt flag</span></div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">return</span> (M0_RITIMER_OR_WWDT_IRQn); <span class="comment">// Return IRQ number of timer (0..239) </span></div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ga85dab8408f27236c7341a69feb6258c7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void os_tick_irqack </td>
+ <td>(</td>
+ <td class="paramtype">void&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>The function <b>os_tick_irqack</b> acknowledges the peripheral timer interrupt.</p>
+<dl class="section note"><dt>Note</dt><dd>- When using an alternate timer, you must enter the <a class="el" href="timerTick.html#OS_Tick_Handler">OS_Tick_Handler</a> in the interrupt vector table in the startup file. </dd>
+<dd>
+- Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code</b> <b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;LPC43xx.h&quot;</span> <span class="comment">// Device header</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> <a class="code" href="group__RTX__Global__Functions.html#ga85dab8408f27236c7341a69feb6258c7">os_tick_irqack</a> (<span class="keywordtype">void</span>) {</div>
+<div class="line"> </div>
+<div class="line"> LPC_RITIMER-&gt;CTRL |= (1UL &lt;&lt; 0); <span class="comment">// Clear interrupt flag</span></div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="gad5deddec3fea0fb31798f571afc3c692"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t os_tick_ovf </td>
+ <td>(</td>
+ <td class="paramtype">void&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>Overflow flag<br/>
+<ul>
+<li>1 : overflow</li>
+<li>0 : no overflow</li>
+</ul>
+</dd></dl>
+<p>The function <b>os_tick_ovf</b> returns the overflow flag of the alternate hardware timer specified by os_tick_init.</p>
+<dl class="section note"><dt>Note</dt><dd>- When using an alternate timer, you must enter the <a class="el" href="timerTick.html#OS_Tick_Handler">OS_Tick_Handler</a> in the interrupt vector table in the startup file. </dd>
+<dd>
+- Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code</b> <b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;LPC43xx.h&quot;</span> <span class="comment">// Device header</span></div>
+<div class="line"> </div>
+<div class="line">uint32_t <a class="code" href="group__RTX__Global__Functions.html#gad5deddec3fea0fb31798f571afc3c692">os_tick_ovf</a> (<span class="keywordtype">void</span>) {</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">return</span> (LPC_RITIMER-&gt;CTRL);</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+<a class="anchor" id="ga567543bf38239a91f09751686c23017b"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t os_tick_val </td>
+ <td>(</td>
+ <td class="paramtype">void&#160;</td>
+ <td class="paramname"></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>Current value of the alternative hardware timer</dd></dl>
+<p>The function <b>os_tick_val</b> returns the current value of the alternate hardware timer specified by os_tick_init.</p>
+<dl class="section note"><dt>Note</dt><dd>- When using an alternate timer, you must enter the <a class="el" href="timerTick.html#OS_Tick_Handler">OS_Tick_Handler</a> in the interrupt vector table in the startup file. </dd>
+<dd>
+- Cannot be called from <a class="el" href="functionOverview.html#CMSIS_RTOS_ISR_Calls">Interrupt Service Routines</a>.</dd></dl>
+<p><b>Code</b> <b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;LPC43xx.h&quot;</span> <span class="comment">// Device header</span></div>
+<div class="line"> </div>
+<div class="line">uint32_t <a class="code" href="group__RTX__Global__Functions.html#ga567543bf38239a91f09751686c23017b">os_tick_val</a> (<span class="keywordtype">void</span>) {</div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">return</span> (LPC_RITIMER-&gt;COUNTER);</div>
+<div class="line">}</div>
+</div><!-- fragment -->
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/group__RTX__Global__Functions.js b/docs/RTOS/html/group__RTX__Global__Functions.js
new file mode 100644
index 0000000..b7eba00
--- /dev/null
+++ b/docs/RTOS/html/group__RTX__Global__Functions.js
@@ -0,0 +1,11 @@
+var group__RTX__Global__Functions =
+[
+ [ "os_error", "group__RTX__Global__Functions.html#ga651ae76b3acf45f80bf0e0487b51d6e6", null ],
+ [ "os_idle_demon", "group__RTX__Global__Functions.html#gafb4dc4d3dff8343a393726d2860282e4", null ],
+ [ "os_resume", "group__RTX__Global__Functions.html#ga1b85a217d43e6b971ffcf24f8aae1c33", null ],
+ [ "os_suspend", "group__RTX__Global__Functions.html#ga3e9c57746ccbdfe90464ad50513c569e", null ],
+ [ "os_tick_init", "group__RTX__Global__Functions.html#ga145e7eafdd042bb522020cbb3b469d9c", null ],
+ [ "os_tick_irqack", "group__RTX__Global__Functions.html#ga85dab8408f27236c7341a69feb6258c7", null ],
+ [ "os_tick_ovf", "group__RTX__Global__Functions.html#gad5deddec3fea0fb31798f571afc3c692", null ],
+ [ "os_tick_val", "group__RTX__Global__Functions.html#ga567543bf38239a91f09751686c23017b", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/index.html b/docs/RTOS/html/index.html
new file mode 100644
index 0000000..a26b6a4
--- /dev/null
+++ b/docs/RTOS/html/index.html
@@ -0,0 +1,154 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Main Page</title>
+<title>CMSIS-RTOS: Main Page</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li class="current"><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('index.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">CMSIS-RTOS Documentation</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>This manual describes the <b>CMSIS-RTOS</b> <b>API</b> <b>Version</b> <b>1</b> and the reference implementation <a class="el" href="rtxImplementation.html">CMSIS-RTOS RTX</a> which is designed for Cortex-M processor-based devices. The RTOS kernel can be used for creating applications that perform multiple tasks simultaneously. These tasks are executed by threads that operate in a quasi-parallel fashion.</p>
+<p>While it is certainly possible to create real-time applications without an RTOS (by executing one or more tasks in a loop), there are numerous scheduling, maintenance, and timing issues that can be solved better with an RTOS. For example, an RTOS enables flexible scheduling of system resources like CPU and memory, and offers methods to communicate between threads.</p>
+<p>CMSIS-RTOS API programs are written using standard C/C++ constructs and are compiled with the ARMCC, GCC, or IAR Compiler. The <a class="el" href="usingOS.html#cmsis_os_h">cmsis_os.h header file</a> defines functions and macros that allow declaring tasks and accessing all RTOS features easily.</p>
+<p>This manual contains the following sections:</p>
+<ul>
+<li><a class="el" href="rtos_revisionHistory.html">Revision History</a> : Documents changes made in each version for CMSIS-RTOS API and RTX.</li>
+<li><a class="el" href="genRTOSIF.html">Generic RTOS Interface</a> : Provides an overview about the CMSIS-RTOS API.</li>
+<li><a class="el" href="usingOS.html">Using a CMSIS-RTOS Implementation</a> : Provides generic instructions for using a CMSIS-RTOS API compliant implementation.</li>
+<li><a class="el" href="functionOverview.html">Function Overview</a> : Lists the CMSIS-RTOS API functions including RTX-specific extensions.</li>
+<li><a class="el" href="rtosValidation.html">RTOS Validation</a> : Describes the Software Pack that can be used to validate a CMSIS-RTOS implementation.</li>
+<li><a class="el" href="rtxImplementation.html">RTX Implementation</a> : Documents the open-source implementation CMSIS-RTOS RTX.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd>An extended version of the CMSIS-RTOS API is available in <a href="../../RTOS2/html/index.html" class="el">CMSIS-RTOS v2</a>.</dd></dl>
+<hr/>
+<h2>CMSIS-RTOS in ARM::CMSIS Pack </h2>
+<p>The following files relevant to CMSIS-RTOS are present in the <b>ARM::CMSIS</b> Pack directories: </p>
+<table class="doxtable">
+<tr>
+<th>File/Folder </th><th>Content </th></tr>
+<tr>
+<td><b>CMSIS/Documentation/RTOS</b> </td><td>This documentation </td></tr>
+<tr>
+<td><b>CMSIS/Documentation/RTOS2</b> </td><td>CMSIS-RTOS API Version 2 documentation </td></tr>
+<tr>
+<td><b>CMSIS/RTOS/Template</b> </td><td><a class="el" href="usingOS.html#cmsis_os_h">Header File Template: cmsis_os.h</a> </td></tr>
+</table>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/jquery.js b/docs/RTOS/html/jquery.js
new file mode 100644
index 0000000..3db33e6
--- /dev/null
+++ b/docs/RTOS/html/jquery.js
@@ -0,0 +1,72 @@
+/*!
+ * jQuery JavaScript Library v1.7.1
+ * http://jquery.com/
+ *
+ * Copyright 2011, John Resig
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * Includes Sizzle.js
+ * http://sizzlejs.com/
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ *
+ * Date: Mon Nov 21 21:11:03 2011 -0500
+ */
+(function(bb,L){var av=bb.document,bu=bb.navigator,bl=bb.location;var b=(function(){var bF=function(b0,b1){return new bF.fn.init(b0,b1,bD)},bU=bb.jQuery,bH=bb.$,bD,bY=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,bM=/\S/,bI=/^\s+/,bE=/\s+$/,bA=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,bN=/^[\],:{}\s]*$/,bW=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,bP=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,bJ=/(?:^|:|,)(?:\s*\[)+/g,by=/(webkit)[ \/]([\w.]+)/,bR=/(opera)(?:.*version)?[ \/]([\w.]+)/,bQ=/(msie) ([\w.]+)/,bS=/(mozilla)(?:.*? rv:([\w.]+))?/,bB=/-([a-z]|[0-9])/ig,bZ=/^-ms-/,bT=function(b0,b1){return(b1+"").toUpperCase()},bX=bu.userAgent,bV,bC,e,bL=Object.prototype.toString,bG=Object.prototype.hasOwnProperty,bz=Array.prototype.push,bK=Array.prototype.slice,bO=String.prototype.trim,bv=Array.prototype.indexOf,bx={};bF.fn=bF.prototype={constructor:bF,init:function(b0,b4,b3){var b2,b5,b1,b6;if(!b0){return this}if(b0.nodeType){this.context=this[0]=b0;this.length=1;return this}if(b0==="body"&&!b4&&av.body){this.context=av;this[0]=av.body;this.selector=b0;this.length=1;return this}if(typeof b0==="string"){if(b0.charAt(0)==="<"&&b0.charAt(b0.length-1)===">"&&b0.length>=3){b2=[null,b0,null]}else{b2=bY.exec(b0)}if(b2&&(b2[1]||!b4)){if(b2[1]){b4=b4 instanceof bF?b4[0]:b4;b6=(b4?b4.ownerDocument||b4:av);b1=bA.exec(b0);if(b1){if(bF.isPlainObject(b4)){b0=[av.createElement(b1[1])];bF.fn.attr.call(b0,b4,true)}else{b0=[b6.createElement(b1[1])]}}else{b1=bF.buildFragment([b2[1]],[b6]);b0=(b1.cacheable?bF.clone(b1.fragment):b1.fragment).childNodes}return bF.merge(this,b0)}else{b5=av.getElementById(b2[2]);if(b5&&b5.parentNode){if(b5.id!==b2[2]){return b3.find(b0)}this.length=1;this[0]=b5}this.context=av;this.selector=b0;return this}}else{if(!b4||b4.jquery){return(b4||b3).find(b0)}else{return this.constructor(b4).find(b0)}}}else{if(bF.isFunction(b0)){return b3.ready(b0)}}if(b0.selector!==L){this.selector=b0.selector;this.context=b0.context}return bF.makeArray(b0,this)},selector:"",jquery:"1.7.1",length:0,size:function(){return this.length},toArray:function(){return bK.call(this,0)},get:function(b0){return b0==null?this.toArray():(b0<0?this[this.length+b0]:this[b0])},pushStack:function(b1,b3,b0){var b2=this.constructor();if(bF.isArray(b1)){bz.apply(b2,b1)}else{bF.merge(b2,b1)}b2.prevObject=this;b2.context=this.context;if(b3==="find"){b2.selector=this.selector+(this.selector?" ":"")+b0}else{if(b3){b2.selector=this.selector+"."+b3+"("+b0+")"}}return b2},each:function(b1,b0){return bF.each(this,b1,b0)},ready:function(b0){bF.bindReady();bC.add(b0);return this},eq:function(b0){b0=+b0;return b0===-1?this.slice(b0):this.slice(b0,b0+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(bK.apply(this,arguments),"slice",bK.call(arguments).join(","))},map:function(b0){return this.pushStack(bF.map(this,function(b2,b1){return b0.call(b2,b1,b2)}))},end:function(){return this.prevObject||this.constructor(null)},push:bz,sort:[].sort,splice:[].splice};bF.fn.init.prototype=bF.fn;bF.extend=bF.fn.extend=function(){var b9,b2,b0,b1,b6,b7,b5=arguments[0]||{},b4=1,b3=arguments.length,b8=false;if(typeof b5==="boolean"){b8=b5;b5=arguments[1]||{};b4=2}if(typeof b5!=="object"&&!bF.isFunction(b5)){b5={}}if(b3===b4){b5=this;--b4}for(;b4<b3;b4++){if((b9=arguments[b4])!=null){for(b2 in b9){b0=b5[b2];b1=b9[b2];if(b5===b1){continue}if(b8&&b1&&(bF.isPlainObject(b1)||(b6=bF.isArray(b1)))){if(b6){b6=false;b7=b0&&bF.isArray(b0)?b0:[]}else{b7=b0&&bF.isPlainObject(b0)?b0:{}}b5[b2]=bF.extend(b8,b7,b1)}else{if(b1!==L){b5[b2]=b1}}}}}return b5};bF.extend({noConflict:function(b0){if(bb.$===bF){bb.$=bH}if(b0&&bb.jQuery===bF){bb.jQuery=bU}return bF},isReady:false,readyWait:1,holdReady:function(b0){if(b0){bF.readyWait++}else{bF.ready(true)}},ready:function(b0){if((b0===true&&!--bF.readyWait)||(b0!==true&&!bF.isReady)){if(!av.body){return setTimeout(bF.ready,1)}bF.isReady=true;if(b0!==true&&--bF.readyWait>0){return}bC.fireWith(av,[bF]);if(bF.fn.trigger){bF(av).trigger("ready").off("ready")}}},bindReady:function(){if(bC){return}bC=bF.Callbacks("once memory");if(av.readyState==="complete"){return setTimeout(bF.ready,1)}if(av.addEventListener){av.addEventListener("DOMContentLoaded",e,false);bb.addEventListener("load",bF.ready,false)}else{if(av.attachEvent){av.attachEvent("onreadystatechange",e);bb.attachEvent("onload",bF.ready);var b0=false;try{b0=bb.frameElement==null}catch(b1){}if(av.documentElement.doScroll&&b0){bw()}}}},isFunction:function(b0){return bF.type(b0)==="function"},isArray:Array.isArray||function(b0){return bF.type(b0)==="array"},isWindow:function(b0){return b0&&typeof b0==="object"&&"setInterval" in b0},isNumeric:function(b0){return !isNaN(parseFloat(b0))&&isFinite(b0)},type:function(b0){return b0==null?String(b0):bx[bL.call(b0)]||"object"},isPlainObject:function(b2){if(!b2||bF.type(b2)!=="object"||b2.nodeType||bF.isWindow(b2)){return false}try{if(b2.constructor&&!bG.call(b2,"constructor")&&!bG.call(b2.constructor.prototype,"isPrototypeOf")){return false}}catch(b1){return false}var b0;for(b0 in b2){}return b0===L||bG.call(b2,b0)},isEmptyObject:function(b1){for(var b0 in b1){return false}return true},error:function(b0){throw new Error(b0)},parseJSON:function(b0){if(typeof b0!=="string"||!b0){return null}b0=bF.trim(b0);if(bb.JSON&&bb.JSON.parse){return bb.JSON.parse(b0)}if(bN.test(b0.replace(bW,"@").replace(bP,"]").replace(bJ,""))){return(new Function("return "+b0))()}bF.error("Invalid JSON: "+b0)},parseXML:function(b2){var b0,b1;try{if(bb.DOMParser){b1=new DOMParser();b0=b1.parseFromString(b2,"text/xml")}else{b0=new ActiveXObject("Microsoft.XMLDOM");b0.async="false";b0.loadXML(b2)}}catch(b3){b0=L}if(!b0||!b0.documentElement||b0.getElementsByTagName("parsererror").length){bF.error("Invalid XML: "+b2)}return b0},noop:function(){},globalEval:function(b0){if(b0&&bM.test(b0)){(bb.execScript||function(b1){bb["eval"].call(bb,b1)})(b0)}},camelCase:function(b0){return b0.replace(bZ,"ms-").replace(bB,bT)},nodeName:function(b1,b0){return b1.nodeName&&b1.nodeName.toUpperCase()===b0.toUpperCase()},each:function(b3,b6,b2){var b1,b4=0,b5=b3.length,b0=b5===L||bF.isFunction(b3);if(b2){if(b0){for(b1 in b3){if(b6.apply(b3[b1],b2)===false){break}}}else{for(;b4<b5;){if(b6.apply(b3[b4++],b2)===false){break}}}}else{if(b0){for(b1 in b3){if(b6.call(b3[b1],b1,b3[b1])===false){break}}}else{for(;b4<b5;){if(b6.call(b3[b4],b4,b3[b4++])===false){break}}}}return b3},trim:bO?function(b0){return b0==null?"":bO.call(b0)}:function(b0){return b0==null?"":b0.toString().replace(bI,"").replace(bE,"")},makeArray:function(b3,b1){var b0=b1||[];if(b3!=null){var b2=bF.type(b3);if(b3.length==null||b2==="string"||b2==="function"||b2==="regexp"||bF.isWindow(b3)){bz.call(b0,b3)}else{bF.merge(b0,b3)}}return b0},inArray:function(b2,b3,b1){var b0;if(b3){if(bv){return bv.call(b3,b2,b1)}b0=b3.length;b1=b1?b1<0?Math.max(0,b0+b1):b1:0;for(;b1<b0;b1++){if(b1 in b3&&b3[b1]===b2){return b1}}}return -1},merge:function(b4,b2){var b3=b4.length,b1=0;if(typeof b2.length==="number"){for(var b0=b2.length;b1<b0;b1++){b4[b3++]=b2[b1]}}else{while(b2[b1]!==L){b4[b3++]=b2[b1++]}}b4.length=b3;return b4},grep:function(b1,b6,b0){var b2=[],b5;b0=!!b0;for(var b3=0,b4=b1.length;b3<b4;b3++){b5=!!b6(b1[b3],b3);if(b0!==b5){b2.push(b1[b3])}}return b2},map:function(b0,b7,b8){var b5,b6,b4=[],b2=0,b1=b0.length,b3=b0 instanceof bF||b1!==L&&typeof b1==="number"&&((b1>0&&b0[0]&&b0[b1-1])||b1===0||bF.isArray(b0));if(b3){for(;b2<b1;b2++){b5=b7(b0[b2],b2,b8);if(b5!=null){b4[b4.length]=b5}}}else{for(b6 in b0){b5=b7(b0[b6],b6,b8);if(b5!=null){b4[b4.length]=b5}}}return b4.concat.apply([],b4)},guid:1,proxy:function(b4,b3){if(typeof b3==="string"){var b2=b4[b3];b3=b4;b4=b2}if(!bF.isFunction(b4)){return L}var b0=bK.call(arguments,2),b1=function(){return b4.apply(b3,b0.concat(bK.call(arguments)))};b1.guid=b4.guid=b4.guid||b1.guid||bF.guid++;return b1},access:function(b0,b8,b6,b2,b5,b7){var b1=b0.length;if(typeof b8==="object"){for(var b3 in b8){bF.access(b0,b3,b8[b3],b2,b5,b6)}return b0}if(b6!==L){b2=!b7&&b2&&bF.isFunction(b6);for(var b4=0;b4<b1;b4++){b5(b0[b4],b8,b2?b6.call(b0[b4],b4,b5(b0[b4],b8)):b6,b7)}return b0}return b1?b5(b0[0],b8):L},now:function(){return(new Date()).getTime()},uaMatch:function(b1){b1=b1.toLowerCase();var b0=by.exec(b1)||bR.exec(b1)||bQ.exec(b1)||b1.indexOf("compatible")<0&&bS.exec(b1)||[];return{browser:b0[1]||"",version:b0[2]||"0"}},sub:function(){function b0(b3,b4){return new b0.fn.init(b3,b4)}bF.extend(true,b0,this);b0.superclass=this;b0.fn=b0.prototype=this();b0.fn.constructor=b0;b0.sub=this.sub;b0.fn.init=function b2(b3,b4){if(b4&&b4 instanceof bF&&!(b4 instanceof b0)){b4=b0(b4)}return bF.fn.init.call(this,b3,b4,b1)};b0.fn.init.prototype=b0.fn;var b1=b0(av);return b0},browser:{}});bF.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(b1,b0){bx["[object "+b0+"]"]=b0.toLowerCase()});bV=bF.uaMatch(bX);if(bV.browser){bF.browser[bV.browser]=true;bF.browser.version=bV.version}if(bF.browser.webkit){bF.browser.safari=true}if(bM.test("\xA0")){bI=/^[\s\xA0]+/;bE=/[\s\xA0]+$/}bD=bF(av);if(av.addEventListener){e=function(){av.removeEventListener("DOMContentLoaded",e,false);bF.ready()}}else{if(av.attachEvent){e=function(){if(av.readyState==="complete"){av.detachEvent("onreadystatechange",e);bF.ready()}}}}function bw(){if(bF.isReady){return}try{av.documentElement.doScroll("left")}catch(b0){setTimeout(bw,1);return}bF.ready()}return bF})();var a2={};function X(e){var bv=a2[e]={},bw,bx;e=e.split(/\s+/);for(bw=0,bx=e.length;bw<bx;bw++){bv[e[bw]]=true}return bv}b.Callbacks=function(bw){bw=bw?(a2[bw]||X(bw)):{};var bB=[],bC=[],bx,by,bv,bz,bA,bE=function(bF){var bG,bJ,bI,bH,bK;for(bG=0,bJ=bF.length;bG<bJ;bG++){bI=bF[bG];bH=b.type(bI);if(bH==="array"){bE(bI)}else{if(bH==="function"){if(!bw.unique||!bD.has(bI)){bB.push(bI)}}}}},e=function(bG,bF){bF=bF||[];bx=!bw.memory||[bG,bF];by=true;bA=bv||0;bv=0;bz=bB.length;for(;bB&&bA<bz;bA++){if(bB[bA].apply(bG,bF)===false&&bw.stopOnFalse){bx=true;break}}by=false;if(bB){if(!bw.once){if(bC&&bC.length){bx=bC.shift();bD.fireWith(bx[0],bx[1])}}else{if(bx===true){bD.disable()}else{bB=[]}}}},bD={add:function(){if(bB){var bF=bB.length;bE(arguments);if(by){bz=bB.length}else{if(bx&&bx!==true){bv=bF;e(bx[0],bx[1])}}}return this},remove:function(){if(bB){var bF=arguments,bH=0,bI=bF.length;for(;bH<bI;bH++){for(var bG=0;bG<bB.length;bG++){if(bF[bH]===bB[bG]){if(by){if(bG<=bz){bz--;if(bG<=bA){bA--}}}bB.splice(bG--,1);if(bw.unique){break}}}}}return this},has:function(bG){if(bB){var bF=0,bH=bB.length;for(;bF<bH;bF++){if(bG===bB[bF]){return true}}}return false},empty:function(){bB=[];return this},disable:function(){bB=bC=bx=L;return this},disabled:function(){return !bB},lock:function(){bC=L;if(!bx||bx===true){bD.disable()}return this},locked:function(){return !bC},fireWith:function(bG,bF){if(bC){if(by){if(!bw.once){bC.push([bG,bF])}}else{if(!(bw.once&&bx)){e(bG,bF)}}}return this},fire:function(){bD.fireWith(this,arguments);return this},fired:function(){return !!bx}};return bD};var aJ=[].slice;b.extend({Deferred:function(by){var bx=b.Callbacks("once memory"),bw=b.Callbacks("once memory"),bv=b.Callbacks("memory"),e="pending",bA={resolve:bx,reject:bw,notify:bv},bC={done:bx.add,fail:bw.add,progress:bv.add,state:function(){return e},isResolved:bx.fired,isRejected:bw.fired,then:function(bE,bD,bF){bB.done(bE).fail(bD).progress(bF);return this},always:function(){bB.done.apply(bB,arguments).fail.apply(bB,arguments);return this},pipe:function(bF,bE,bD){return b.Deferred(function(bG){b.each({done:[bF,"resolve"],fail:[bE,"reject"],progress:[bD,"notify"]},function(bI,bL){var bH=bL[0],bK=bL[1],bJ;if(b.isFunction(bH)){bB[bI](function(){bJ=bH.apply(this,arguments);if(bJ&&b.isFunction(bJ.promise)){bJ.promise().then(bG.resolve,bG.reject,bG.notify)}else{bG[bK+"With"](this===bB?bG:this,[bJ])}})}else{bB[bI](bG[bK])}})}).promise()},promise:function(bE){if(bE==null){bE=bC}else{for(var bD in bC){bE[bD]=bC[bD]}}return bE}},bB=bC.promise({}),bz;for(bz in bA){bB[bz]=bA[bz].fire;bB[bz+"With"]=bA[bz].fireWith}bB.done(function(){e="resolved"},bw.disable,bv.lock).fail(function(){e="rejected"},bx.disable,bv.lock);if(by){by.call(bB,bB)}return bB},when:function(bA){var bx=aJ.call(arguments,0),bv=0,e=bx.length,bB=new Array(e),bw=e,by=e,bC=e<=1&&bA&&b.isFunction(bA.promise)?bA:b.Deferred(),bE=bC.promise();function bD(bF){return function(bG){bx[bF]=arguments.length>1?aJ.call(arguments,0):bG;if(!(--bw)){bC.resolveWith(bC,bx)}}}function bz(bF){return function(bG){bB[bF]=arguments.length>1?aJ.call(arguments,0):bG;bC.notifyWith(bE,bB)}}if(e>1){for(;bv<e;bv++){if(bx[bv]&&bx[bv].promise&&b.isFunction(bx[bv].promise)){bx[bv].promise().then(bD(bv),bC.reject,bz(bv))
+}else{--bw}}if(!bw){bC.resolveWith(bC,bx)}}else{if(bC!==bA){bC.resolveWith(bC,e?[bA]:[])}}return bE}});b.support=(function(){var bJ,bI,bF,bG,bx,bE,bA,bD,bz,bK,bB,by,bw,bv=av.createElement("div"),bH=av.documentElement;bv.setAttribute("className","t");bv.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>";bI=bv.getElementsByTagName("*");bF=bv.getElementsByTagName("a")[0];if(!bI||!bI.length||!bF){return{}}bG=av.createElement("select");bx=bG.appendChild(av.createElement("option"));bE=bv.getElementsByTagName("input")[0];bJ={leadingWhitespace:(bv.firstChild.nodeType===3),tbody:!bv.getElementsByTagName("tbody").length,htmlSerialize:!!bv.getElementsByTagName("link").length,style:/top/.test(bF.getAttribute("style")),hrefNormalized:(bF.getAttribute("href")==="/a"),opacity:/^0.55/.test(bF.style.opacity),cssFloat:!!bF.style.cssFloat,checkOn:(bE.value==="on"),optSelected:bx.selected,getSetAttribute:bv.className!=="t",enctype:!!av.createElement("form").enctype,html5Clone:av.createElement("nav").cloneNode(true).outerHTML!=="<:nav></:nav>",submitBubbles:true,changeBubbles:true,focusinBubbles:false,deleteExpando:true,noCloneEvent:true,inlineBlockNeedsLayout:false,shrinkWrapBlocks:false,reliableMarginRight:true};bE.checked=true;bJ.noCloneChecked=bE.cloneNode(true).checked;bG.disabled=true;bJ.optDisabled=!bx.disabled;try{delete bv.test}catch(bC){bJ.deleteExpando=false}if(!bv.addEventListener&&bv.attachEvent&&bv.fireEvent){bv.attachEvent("onclick",function(){bJ.noCloneEvent=false});bv.cloneNode(true).fireEvent("onclick")}bE=av.createElement("input");bE.value="t";bE.setAttribute("type","radio");bJ.radioValue=bE.value==="t";bE.setAttribute("checked","checked");bv.appendChild(bE);bD=av.createDocumentFragment();bD.appendChild(bv.lastChild);bJ.checkClone=bD.cloneNode(true).cloneNode(true).lastChild.checked;bJ.appendChecked=bE.checked;bD.removeChild(bE);bD.appendChild(bv);bv.innerHTML="";if(bb.getComputedStyle){bA=av.createElement("div");bA.style.width="0";bA.style.marginRight="0";bv.style.width="2px";bv.appendChild(bA);bJ.reliableMarginRight=(parseInt((bb.getComputedStyle(bA,null)||{marginRight:0}).marginRight,10)||0)===0}if(bv.attachEvent){for(by in {submit:1,change:1,focusin:1}){bB="on"+by;bw=(bB in bv);if(!bw){bv.setAttribute(bB,"return;");bw=(typeof bv[bB]==="function")}bJ[by+"Bubbles"]=bw}}bD.removeChild(bv);bD=bG=bx=bA=bv=bE=null;b(function(){var bM,bU,bV,bT,bN,bO,bL,bS,bR,e,bP,bQ=av.getElementsByTagName("body")[0];if(!bQ){return}bL=1;bS="position:absolute;top:0;left:0;width:1px;height:1px;margin:0;";bR="visibility:hidden;border:0;";e="style='"+bS+"border:5px solid #000;padding:0;'";bP="<div "+e+"><div></div></div><table "+e+" cellpadding='0' cellspacing='0'><tr><td></td></tr></table>";bM=av.createElement("div");bM.style.cssText=bR+"width:0;height:0;position:static;top:0;margin-top:"+bL+"px";bQ.insertBefore(bM,bQ.firstChild);bv=av.createElement("div");bM.appendChild(bv);bv.innerHTML="<table><tr><td style='padding:0;border:0;display:none'></td><td>t</td></tr></table>";bz=bv.getElementsByTagName("td");bw=(bz[0].offsetHeight===0);bz[0].style.display="";bz[1].style.display="none";bJ.reliableHiddenOffsets=bw&&(bz[0].offsetHeight===0);bv.innerHTML="";bv.style.width=bv.style.paddingLeft="1px";b.boxModel=bJ.boxModel=bv.offsetWidth===2;if(typeof bv.style.zoom!=="undefined"){bv.style.display="inline";bv.style.zoom=1;bJ.inlineBlockNeedsLayout=(bv.offsetWidth===2);bv.style.display="";bv.innerHTML="<div style='width:4px;'></div>";bJ.shrinkWrapBlocks=(bv.offsetWidth!==2)}bv.style.cssText=bS+bR;bv.innerHTML=bP;bU=bv.firstChild;bV=bU.firstChild;bN=bU.nextSibling.firstChild.firstChild;bO={doesNotAddBorder:(bV.offsetTop!==5),doesAddBorderForTableAndCells:(bN.offsetTop===5)};bV.style.position="fixed";bV.style.top="20px";bO.fixedPosition=(bV.offsetTop===20||bV.offsetTop===15);bV.style.position=bV.style.top="";bU.style.overflow="hidden";bU.style.position="relative";bO.subtractsBorderForOverflowNotVisible=(bV.offsetTop===-5);bO.doesNotIncludeMarginInBodyOffset=(bQ.offsetTop!==bL);bQ.removeChild(bM);bv=bM=null;b.extend(bJ,bO)});return bJ})();var aS=/^(?:\{.*\}|\[.*\])$/,aA=/([A-Z])/g;b.extend({cache:{},uuid:0,expando:"jQuery"+(b.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:true,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:true},hasData:function(e){e=e.nodeType?b.cache[e[b.expando]]:e[b.expando];return !!e&&!S(e)},data:function(bx,bv,bz,by){if(!b.acceptData(bx)){return}var bG,bA,bD,bE=b.expando,bC=typeof bv==="string",bF=bx.nodeType,e=bF?b.cache:bx,bw=bF?bx[bE]:bx[bE]&&bE,bB=bv==="events";if((!bw||!e[bw]||(!bB&&!by&&!e[bw].data))&&bC&&bz===L){return}if(!bw){if(bF){bx[bE]=bw=++b.uuid}else{bw=bE}}if(!e[bw]){e[bw]={};if(!bF){e[bw].toJSON=b.noop}}if(typeof bv==="object"||typeof bv==="function"){if(by){e[bw]=b.extend(e[bw],bv)}else{e[bw].data=b.extend(e[bw].data,bv)}}bG=bA=e[bw];if(!by){if(!bA.data){bA.data={}}bA=bA.data}if(bz!==L){bA[b.camelCase(bv)]=bz}if(bB&&!bA[bv]){return bG.events}if(bC){bD=bA[bv];if(bD==null){bD=bA[b.camelCase(bv)]}}else{bD=bA}return bD},removeData:function(bx,bv,by){if(!b.acceptData(bx)){return}var bB,bA,bz,bC=b.expando,bD=bx.nodeType,e=bD?b.cache:bx,bw=bD?bx[bC]:bC;if(!e[bw]){return}if(bv){bB=by?e[bw]:e[bw].data;if(bB){if(!b.isArray(bv)){if(bv in bB){bv=[bv]}else{bv=b.camelCase(bv);if(bv in bB){bv=[bv]}else{bv=bv.split(" ")}}}for(bA=0,bz=bv.length;bA<bz;bA++){delete bB[bv[bA]]}if(!(by?S:b.isEmptyObject)(bB)){return}}}if(!by){delete e[bw].data;if(!S(e[bw])){return}}if(b.support.deleteExpando||!e.setInterval){delete e[bw]}else{e[bw]=null}if(bD){if(b.support.deleteExpando){delete bx[bC]}else{if(bx.removeAttribute){bx.removeAttribute(bC)}else{bx[bC]=null}}}},_data:function(bv,e,bw){return b.data(bv,e,bw,true)},acceptData:function(bv){if(bv.nodeName){var e=b.noData[bv.nodeName.toLowerCase()];if(e){return !(e===true||bv.getAttribute("classid")!==e)}}return true}});b.fn.extend({data:function(by,bA){var bB,e,bw,bz=null;if(typeof by==="undefined"){if(this.length){bz=b.data(this[0]);if(this[0].nodeType===1&&!b._data(this[0],"parsedAttrs")){e=this[0].attributes;for(var bx=0,bv=e.length;bx<bv;bx++){bw=e[bx].name;if(bw.indexOf("data-")===0){bw=b.camelCase(bw.substring(5));a5(this[0],bw,bz[bw])}}b._data(this[0],"parsedAttrs",true)}}return bz}else{if(typeof by==="object"){return this.each(function(){b.data(this,by)})}}bB=by.split(".");bB[1]=bB[1]?"."+bB[1]:"";if(bA===L){bz=this.triggerHandler("getData"+bB[1]+"!",[bB[0]]);if(bz===L&&this.length){bz=b.data(this[0],by);bz=a5(this[0],by,bz)}return bz===L&&bB[1]?this.data(bB[0]):bz}else{return this.each(function(){var bC=b(this),bD=[bB[0],bA];bC.triggerHandler("setData"+bB[1]+"!",bD);b.data(this,by,bA);bC.triggerHandler("changeData"+bB[1]+"!",bD)})}},removeData:function(e){return this.each(function(){b.removeData(this,e)})}});function a5(bx,bw,by){if(by===L&&bx.nodeType===1){var bv="data-"+bw.replace(aA,"-$1").toLowerCase();by=bx.getAttribute(bv);if(typeof by==="string"){try{by=by==="true"?true:by==="false"?false:by==="null"?null:b.isNumeric(by)?parseFloat(by):aS.test(by)?b.parseJSON(by):by}catch(bz){}b.data(bx,bw,by)}else{by=L}}return by}function S(bv){for(var e in bv){if(e==="data"&&b.isEmptyObject(bv[e])){continue}if(e!=="toJSON"){return false}}return true}function bi(by,bx,bA){var bw=bx+"defer",bv=bx+"queue",e=bx+"mark",bz=b._data(by,bw);if(bz&&(bA==="queue"||!b._data(by,bv))&&(bA==="mark"||!b._data(by,e))){setTimeout(function(){if(!b._data(by,bv)&&!b._data(by,e)){b.removeData(by,bw,true);bz.fire()}},0)}}b.extend({_mark:function(bv,e){if(bv){e=(e||"fx")+"mark";b._data(bv,e,(b._data(bv,e)||0)+1)}},_unmark:function(by,bx,bv){if(by!==true){bv=bx;bx=by;by=false}if(bx){bv=bv||"fx";var e=bv+"mark",bw=by?0:((b._data(bx,e)||1)-1);if(bw){b._data(bx,e,bw)}else{b.removeData(bx,e,true);bi(bx,bv,"mark")}}},queue:function(bv,e,bx){var bw;if(bv){e=(e||"fx")+"queue";bw=b._data(bv,e);if(bx){if(!bw||b.isArray(bx)){bw=b._data(bv,e,b.makeArray(bx))}else{bw.push(bx)}}return bw||[]}},dequeue:function(by,bx){bx=bx||"fx";var bv=b.queue(by,bx),bw=bv.shift(),e={};if(bw==="inprogress"){bw=bv.shift()}if(bw){if(bx==="fx"){bv.unshift("inprogress")}b._data(by,bx+".run",e);bw.call(by,function(){b.dequeue(by,bx)},e)}if(!bv.length){b.removeData(by,bx+"queue "+bx+".run",true);bi(by,bx,"queue")}}});b.fn.extend({queue:function(e,bv){if(typeof e!=="string"){bv=e;e="fx"}if(bv===L){return b.queue(this[0],e)}return this.each(function(){var bw=b.queue(this,e,bv);if(e==="fx"&&bw[0]!=="inprogress"){b.dequeue(this,e)}})},dequeue:function(e){return this.each(function(){b.dequeue(this,e)})},delay:function(bv,e){bv=b.fx?b.fx.speeds[bv]||bv:bv;e=e||"fx";return this.queue(e,function(bx,bw){var by=setTimeout(bx,bv);bw.stop=function(){clearTimeout(by)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(bD,bw){if(typeof bD!=="string"){bw=bD;bD=L}bD=bD||"fx";var e=b.Deferred(),bv=this,by=bv.length,bB=1,bz=bD+"defer",bA=bD+"queue",bC=bD+"mark",bx;function bE(){if(!(--bB)){e.resolveWith(bv,[bv])}}while(by--){if((bx=b.data(bv[by],bz,L,true)||(b.data(bv[by],bA,L,true)||b.data(bv[by],bC,L,true))&&b.data(bv[by],bz,b.Callbacks("once memory"),true))){bB++;bx.add(bE)}}bE();return e.promise()}});var aP=/[\n\t\r]/g,af=/\s+/,aU=/\r/g,g=/^(?:button|input)$/i,D=/^(?:button|input|object|select|textarea)$/i,l=/^a(?:rea)?$/i,ao=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,F=b.support.getSetAttribute,be,aY,aF;b.fn.extend({attr:function(e,bv){return b.access(this,e,bv,true,b.attr)},removeAttr:function(e){return this.each(function(){b.removeAttr(this,e)})},prop:function(e,bv){return b.access(this,e,bv,true,b.prop)},removeProp:function(e){e=b.propFix[e]||e;return this.each(function(){try{this[e]=L;delete this[e]}catch(bv){}})},addClass:function(by){var bA,bw,bv,bx,bz,bB,e;if(b.isFunction(by)){return this.each(function(bC){b(this).addClass(by.call(this,bC,this.className))})}if(by&&typeof by==="string"){bA=by.split(af);for(bw=0,bv=this.length;bw<bv;bw++){bx=this[bw];if(bx.nodeType===1){if(!bx.className&&bA.length===1){bx.className=by}else{bz=" "+bx.className+" ";for(bB=0,e=bA.length;bB<e;bB++){if(!~bz.indexOf(" "+bA[bB]+" ")){bz+=bA[bB]+" "}}bx.className=b.trim(bz)}}}}return this},removeClass:function(bz){var bA,bw,bv,by,bx,bB,e;if(b.isFunction(bz)){return this.each(function(bC){b(this).removeClass(bz.call(this,bC,this.className))})}if((bz&&typeof bz==="string")||bz===L){bA=(bz||"").split(af);for(bw=0,bv=this.length;bw<bv;bw++){by=this[bw];if(by.nodeType===1&&by.className){if(bz){bx=(" "+by.className+" ").replace(aP," ");for(bB=0,e=bA.length;bB<e;bB++){bx=bx.replace(" "+bA[bB]+" "," ")}by.className=b.trim(bx)}else{by.className=""}}}}return this},toggleClass:function(bx,bv){var bw=typeof bx,e=typeof bv==="boolean";if(b.isFunction(bx)){return this.each(function(by){b(this).toggleClass(bx.call(this,by,this.className,bv),bv)})}return this.each(function(){if(bw==="string"){var bA,bz=0,by=b(this),bB=bv,bC=bx.split(af);while((bA=bC[bz++])){bB=e?bB:!by.hasClass(bA);by[bB?"addClass":"removeClass"](bA)}}else{if(bw==="undefined"||bw==="boolean"){if(this.className){b._data(this,"__className__",this.className)}this.className=this.className||bx===false?"":b._data(this,"__className__")||""}}})},hasClass:function(e){var bx=" "+e+" ",bw=0,bv=this.length;for(;bw<bv;bw++){if(this[bw].nodeType===1&&(" "+this[bw].className+" ").replace(aP," ").indexOf(bx)>-1){return true}}return false},val:function(bx){var e,bv,by,bw=this[0];if(!arguments.length){if(bw){e=b.valHooks[bw.nodeName.toLowerCase()]||b.valHooks[bw.type];if(e&&"get" in e&&(bv=e.get(bw,"value"))!==L){return bv}bv=bw.value;return typeof bv==="string"?bv.replace(aU,""):bv==null?"":bv}return}by=b.isFunction(bx);return this.each(function(bA){var bz=b(this),bB;if(this.nodeType!==1){return}if(by){bB=bx.call(this,bA,bz.val())}else{bB=bx}if(bB==null){bB=""}else{if(typeof bB==="number"){bB+=""}else{if(b.isArray(bB)){bB=b.map(bB,function(bC){return bC==null?"":bC+""})}}}e=b.valHooks[this.nodeName.toLowerCase()]||b.valHooks[this.type];if(!e||!("set" in e)||e.set(this,bB,"value")===L){this.value=bB}})}});b.extend({valHooks:{option:{get:function(e){var bv=e.attributes.value;return !bv||bv.specified?e.value:e.text}},select:{get:function(e){var bA,bv,bz,bx,by=e.selectedIndex,bB=[],bC=e.options,bw=e.type==="select-one";if(by<0){return null}bv=bw?by:0;bz=bw?by+1:bC.length;for(;bv<bz;bv++){bx=bC[bv];if(bx.selected&&(b.support.optDisabled?!bx.disabled:bx.getAttribute("disabled")===null)&&(!bx.parentNode.disabled||!b.nodeName(bx.parentNode,"optgroup"))){bA=b(bx).val();if(bw){return bA}bB.push(bA)}}if(bw&&!bB.length&&bC.length){return b(bC[by]).val()}return bB},set:function(bv,bw){var e=b.makeArray(bw);b(bv).find("option").each(function(){this.selected=b.inArray(b(this).val(),e)>=0});if(!e.length){bv.selectedIndex=-1}return e}}},attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(bA,bx,bB,bz){var bw,e,by,bv=bA.nodeType;
+if(!bA||bv===3||bv===8||bv===2){return}if(bz&&bx in b.attrFn){return b(bA)[bx](bB)}if(typeof bA.getAttribute==="undefined"){return b.prop(bA,bx,bB)}by=bv!==1||!b.isXMLDoc(bA);if(by){bx=bx.toLowerCase();e=b.attrHooks[bx]||(ao.test(bx)?aY:be)}if(bB!==L){if(bB===null){b.removeAttr(bA,bx);return}else{if(e&&"set" in e&&by&&(bw=e.set(bA,bB,bx))!==L){return bw}else{bA.setAttribute(bx,""+bB);return bB}}}else{if(e&&"get" in e&&by&&(bw=e.get(bA,bx))!==null){return bw}else{bw=bA.getAttribute(bx);return bw===null?L:bw}}},removeAttr:function(bx,bz){var by,bA,bv,e,bw=0;if(bz&&bx.nodeType===1){bA=bz.toLowerCase().split(af);e=bA.length;for(;bw<e;bw++){bv=bA[bw];if(bv){by=b.propFix[bv]||bv;b.attr(bx,bv,"");bx.removeAttribute(F?bv:by);if(ao.test(bv)&&by in bx){bx[by]=false}}}}},attrHooks:{type:{set:function(e,bv){if(g.test(e.nodeName)&&e.parentNode){b.error("type property can't be changed")}else{if(!b.support.radioValue&&bv==="radio"&&b.nodeName(e,"input")){var bw=e.value;e.setAttribute("type",bv);if(bw){e.value=bw}return bv}}}},value:{get:function(bv,e){if(be&&b.nodeName(bv,"button")){return be.get(bv,e)}return e in bv?bv.value:null},set:function(bv,bw,e){if(be&&b.nodeName(bv,"button")){return be.set(bv,bw,e)}bv.value=bw}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(bz,bx,bA){var bw,e,by,bv=bz.nodeType;if(!bz||bv===3||bv===8||bv===2){return}by=bv!==1||!b.isXMLDoc(bz);if(by){bx=b.propFix[bx]||bx;e=b.propHooks[bx]}if(bA!==L){if(e&&"set" in e&&(bw=e.set(bz,bA,bx))!==L){return bw}else{return(bz[bx]=bA)}}else{if(e&&"get" in e&&(bw=e.get(bz,bx))!==null){return bw}else{return bz[bx]}}},propHooks:{tabIndex:{get:function(bv){var e=bv.getAttributeNode("tabindex");return e&&e.specified?parseInt(e.value,10):D.test(bv.nodeName)||l.test(bv.nodeName)&&bv.href?0:L}}}});b.attrHooks.tabindex=b.propHooks.tabIndex;aY={get:function(bv,e){var bx,bw=b.prop(bv,e);return bw===true||typeof bw!=="boolean"&&(bx=bv.getAttributeNode(e))&&bx.nodeValue!==false?e.toLowerCase():L},set:function(bv,bx,e){var bw;if(bx===false){b.removeAttr(bv,e)}else{bw=b.propFix[e]||e;if(bw in bv){bv[bw]=true}bv.setAttribute(e,e.toLowerCase())}return e}};if(!F){aF={name:true,id:true};be=b.valHooks.button={get:function(bw,bv){var e;e=bw.getAttributeNode(bv);return e&&(aF[bv]?e.nodeValue!=="":e.specified)?e.nodeValue:L},set:function(bw,bx,bv){var e=bw.getAttributeNode(bv);if(!e){e=av.createAttribute(bv);bw.setAttributeNode(e)}return(e.nodeValue=bx+"")}};b.attrHooks.tabindex.set=be.set;b.each(["width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{set:function(bw,bx){if(bx===""){bw.setAttribute(e,"auto");return bx}}})});b.attrHooks.contenteditable={get:be.get,set:function(bv,bw,e){if(bw===""){bw="false"}be.set(bv,bw,e)}}}if(!b.support.hrefNormalized){b.each(["href","src","width","height"],function(bv,e){b.attrHooks[e]=b.extend(b.attrHooks[e],{get:function(bx){var bw=bx.getAttribute(e,2);return bw===null?L:bw}})})}if(!b.support.style){b.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||L},set:function(e,bv){return(e.style.cssText=""+bv)}}}if(!b.support.optSelected){b.propHooks.selected=b.extend(b.propHooks.selected,{get:function(bv){var e=bv.parentNode;if(e){e.selectedIndex;if(e.parentNode){e.parentNode.selectedIndex}}return null}})}if(!b.support.enctype){b.propFix.enctype="encoding"}if(!b.support.checkOn){b.each(["radio","checkbox"],function(){b.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}})}b.each(["radio","checkbox"],function(){b.valHooks[this]=b.extend(b.valHooks[this],{set:function(e,bv){if(b.isArray(bv)){return(e.checked=b.inArray(b(e).val(),bv)>=0)}}})});var bd=/^(?:textarea|input|select)$/i,n=/^([^\.]*)?(?:\.(.+))?$/,J=/\bhover(\.\S+)?\b/,aO=/^key/,bf=/^(?:mouse|contextmenu)|click/,T=/^(?:focusinfocus|focusoutblur)$/,U=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,Y=function(e){var bv=U.exec(e);if(bv){bv[1]=(bv[1]||"").toLowerCase();bv[3]=bv[3]&&new RegExp("(?:^|\\s)"+bv[3]+"(?:\\s|$)")}return bv},j=function(bw,e){var bv=bw.attributes||{};return((!e[1]||bw.nodeName.toLowerCase()===e[1])&&(!e[2]||(bv.id||{}).value===e[2])&&(!e[3]||e[3].test((bv["class"]||{}).value)))},bt=function(e){return b.event.special.hover?e:e.replace(J,"mouseenter$1 mouseleave$1")};b.event={add:function(bx,bC,bJ,bA,by){var bD,bB,bK,bI,bH,bF,e,bG,bv,bz,bw,bE;if(bx.nodeType===3||bx.nodeType===8||!bC||!bJ||!(bD=b._data(bx))){return}if(bJ.handler){bv=bJ;bJ=bv.handler}if(!bJ.guid){bJ.guid=b.guid++}bK=bD.events;if(!bK){bD.events=bK={}}bB=bD.handle;if(!bB){bD.handle=bB=function(bL){return typeof b!=="undefined"&&(!bL||b.event.triggered!==bL.type)?b.event.dispatch.apply(bB.elem,arguments):L};bB.elem=bx}bC=b.trim(bt(bC)).split(" ");for(bI=0;bI<bC.length;bI++){bH=n.exec(bC[bI])||[];bF=bH[1];e=(bH[2]||"").split(".").sort();bE=b.event.special[bF]||{};bF=(by?bE.delegateType:bE.bindType)||bF;bE=b.event.special[bF]||{};bG=b.extend({type:bF,origType:bH[1],data:bA,handler:bJ,guid:bJ.guid,selector:by,quick:Y(by),namespace:e.join(".")},bv);bw=bK[bF];if(!bw){bw=bK[bF]=[];bw.delegateCount=0;if(!bE.setup||bE.setup.call(bx,bA,e,bB)===false){if(bx.addEventListener){bx.addEventListener(bF,bB,false)}else{if(bx.attachEvent){bx.attachEvent("on"+bF,bB)}}}}if(bE.add){bE.add.call(bx,bG);if(!bG.handler.guid){bG.handler.guid=bJ.guid}}if(by){bw.splice(bw.delegateCount++,0,bG)}else{bw.push(bG)}b.event.global[bF]=true}bx=null},global:{},remove:function(bJ,bE,bv,bH,bB){var bI=b.hasData(bJ)&&b._data(bJ),bF,bx,bz,bL,bC,bA,bG,bw,by,bK,bD,e;if(!bI||!(bw=bI.events)){return}bE=b.trim(bt(bE||"")).split(" ");for(bF=0;bF<bE.length;bF++){bx=n.exec(bE[bF])||[];bz=bL=bx[1];bC=bx[2];if(!bz){for(bz in bw){b.event.remove(bJ,bz+bE[bF],bv,bH,true)}continue}by=b.event.special[bz]||{};bz=(bH?by.delegateType:by.bindType)||bz;bD=bw[bz]||[];bA=bD.length;bC=bC?new RegExp("(^|\\.)"+bC.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(bG=0;bG<bD.length;bG++){e=bD[bG];if((bB||bL===e.origType)&&(!bv||bv.guid===e.guid)&&(!bC||bC.test(e.namespace))&&(!bH||bH===e.selector||bH==="**"&&e.selector)){bD.splice(bG--,1);if(e.selector){bD.delegateCount--}if(by.remove){by.remove.call(bJ,e)}}}if(bD.length===0&&bA!==bD.length){if(!by.teardown||by.teardown.call(bJ,bC)===false){b.removeEvent(bJ,bz,bI.handle)}delete bw[bz]}}if(b.isEmptyObject(bw)){bK=bI.handle;if(bK){bK.elem=null}b.removeData(bJ,["events","handle"],true)}},customEvent:{getData:true,setData:true,changeData:true},trigger:function(bv,bD,bA,bJ){if(bA&&(bA.nodeType===3||bA.nodeType===8)){return}var bG=bv.type||bv,bx=[],e,bw,bC,bH,bz,by,bF,bE,bB,bI;if(T.test(bG+b.event.triggered)){return}if(bG.indexOf("!")>=0){bG=bG.slice(0,-1);bw=true}if(bG.indexOf(".")>=0){bx=bG.split(".");bG=bx.shift();bx.sort()}if((!bA||b.event.customEvent[bG])&&!b.event.global[bG]){return}bv=typeof bv==="object"?bv[b.expando]?bv:new b.Event(bG,bv):new b.Event(bG);bv.type=bG;bv.isTrigger=true;bv.exclusive=bw;bv.namespace=bx.join(".");bv.namespace_re=bv.namespace?new RegExp("(^|\\.)"+bx.join("\\.(?:.*\\.)?")+"(\\.|$)"):null;by=bG.indexOf(":")<0?"on"+bG:"";if(!bA){e=b.cache;for(bC in e){if(e[bC].events&&e[bC].events[bG]){b.event.trigger(bv,bD,e[bC].handle.elem,true)}}return}bv.result=L;if(!bv.target){bv.target=bA}bD=bD!=null?b.makeArray(bD):[];bD.unshift(bv);bF=b.event.special[bG]||{};if(bF.trigger&&bF.trigger.apply(bA,bD)===false){return}bB=[[bA,bF.bindType||bG]];if(!bJ&&!bF.noBubble&&!b.isWindow(bA)){bI=bF.delegateType||bG;bH=T.test(bI+bG)?bA:bA.parentNode;bz=null;for(;bH;bH=bH.parentNode){bB.push([bH,bI]);bz=bH}if(bz&&bz===bA.ownerDocument){bB.push([bz.defaultView||bz.parentWindow||bb,bI])}}for(bC=0;bC<bB.length&&!bv.isPropagationStopped();bC++){bH=bB[bC][0];bv.type=bB[bC][1];bE=(b._data(bH,"events")||{})[bv.type]&&b._data(bH,"handle");if(bE){bE.apply(bH,bD)}bE=by&&bH[by];if(bE&&b.acceptData(bH)&&bE.apply(bH,bD)===false){bv.preventDefault()}}bv.type=bG;if(!bJ&&!bv.isDefaultPrevented()){if((!bF._default||bF._default.apply(bA.ownerDocument,bD)===false)&&!(bG==="click"&&b.nodeName(bA,"a"))&&b.acceptData(bA)){if(by&&bA[bG]&&((bG!=="focus"&&bG!=="blur")||bv.target.offsetWidth!==0)&&!b.isWindow(bA)){bz=bA[by];if(bz){bA[by]=null}b.event.triggered=bG;bA[bG]();b.event.triggered=L;if(bz){bA[by]=bz}}}}return bv.result},dispatch:function(e){e=b.event.fix(e||bb.event);var bz=((b._data(this,"events")||{})[e.type]||[]),bA=bz.delegateCount,bG=[].slice.call(arguments,0),by=!e.exclusive&&!e.namespace,bH=[],bC,bB,bK,bx,bF,bE,bv,bD,bI,bw,bJ;bG[0]=e;e.delegateTarget=this;if(bA&&!e.target.disabled&&!(e.button&&e.type==="click")){bx=b(this);bx.context=this.ownerDocument||this;for(bK=e.target;bK!=this;bK=bK.parentNode||this){bE={};bD=[];bx[0]=bK;for(bC=0;bC<bA;bC++){bI=bz[bC];bw=bI.selector;if(bE[bw]===L){bE[bw]=(bI.quick?j(bK,bI.quick):bx.is(bw))}if(bE[bw]){bD.push(bI)}}if(bD.length){bH.push({elem:bK,matches:bD})}}}if(bz.length>bA){bH.push({elem:this,matches:bz.slice(bA)})}for(bC=0;bC<bH.length&&!e.isPropagationStopped();bC++){bv=bH[bC];e.currentTarget=bv.elem;for(bB=0;bB<bv.matches.length&&!e.isImmediatePropagationStopped();bB++){bI=bv.matches[bB];if(by||(!e.namespace&&!bI.namespace)||e.namespace_re&&e.namespace_re.test(bI.namespace)){e.data=bI.data;e.handleObj=bI;bF=((b.event.special[bI.origType]||{}).handle||bI.handler).apply(bv.elem,bG);if(bF!==L){e.result=bF;if(bF===false){e.preventDefault();e.stopPropagation()}}}}}return e.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(bv,e){if(bv.which==null){bv.which=e.charCode!=null?e.charCode:e.keyCode}return bv}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(bx,bw){var by,bz,e,bv=bw.button,bA=bw.fromElement;if(bx.pageX==null&&bw.clientX!=null){by=bx.target.ownerDocument||av;bz=by.documentElement;e=by.body;bx.pageX=bw.clientX+(bz&&bz.scrollLeft||e&&e.scrollLeft||0)-(bz&&bz.clientLeft||e&&e.clientLeft||0);bx.pageY=bw.clientY+(bz&&bz.scrollTop||e&&e.scrollTop||0)-(bz&&bz.clientTop||e&&e.clientTop||0)}if(!bx.relatedTarget&&bA){bx.relatedTarget=bA===bx.target?bw.toElement:bA}if(!bx.which&&bv!==L){bx.which=(bv&1?1:(bv&2?3:(bv&4?2:0)))}return bx}},fix:function(bw){if(bw[b.expando]){return bw}var bv,bz,e=bw,bx=b.event.fixHooks[bw.type]||{},by=bx.props?this.props.concat(bx.props):this.props;bw=b.Event(e);for(bv=by.length;bv;){bz=by[--bv];bw[bz]=e[bz]}if(!bw.target){bw.target=e.srcElement||av}if(bw.target.nodeType===3){bw.target=bw.target.parentNode}if(bw.metaKey===L){bw.metaKey=bw.ctrlKey}return bx.filter?bx.filter(bw,e):bw},special:{ready:{setup:b.bindReady},load:{noBubble:true},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(bw,bv,e){if(b.isWindow(this)){this.onbeforeunload=e}},teardown:function(bv,e){if(this.onbeforeunload===e){this.onbeforeunload=null}}}},simulate:function(bw,by,bx,bv){var bz=b.extend(new b.Event(),bx,{type:bw,isSimulated:true,originalEvent:{}});if(bv){b.event.trigger(bz,null,by)}else{b.event.dispatch.call(by,bz)}if(bz.isDefaultPrevented()){bx.preventDefault()}}};b.event.handle=b.event.dispatch;b.removeEvent=av.removeEventListener?function(bv,e,bw){if(bv.removeEventListener){bv.removeEventListener(e,bw,false)}}:function(bv,e,bw){if(bv.detachEvent){bv.detachEvent("on"+e,bw)}};b.Event=function(bv,e){if(!(this instanceof b.Event)){return new b.Event(bv,e)}if(bv&&bv.type){this.originalEvent=bv;this.type=bv.type;this.isDefaultPrevented=(bv.defaultPrevented||bv.returnValue===false||bv.getPreventDefault&&bv.getPreventDefault())?i:bk}else{this.type=bv}if(e){b.extend(this,e)}this.timeStamp=bv&&bv.timeStamp||b.now();this[b.expando]=true};function bk(){return false}function i(){return true}b.Event.prototype={preventDefault:function(){this.isDefaultPrevented=i;var bv=this.originalEvent;if(!bv){return}if(bv.preventDefault){bv.preventDefault()}else{bv.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=i;var bv=this.originalEvent;if(!bv){return}if(bv.stopPropagation){bv.stopPropagation()}bv.cancelBubble=true},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=i;this.stopPropagation()},isDefaultPrevented:bk,isPropagationStopped:bk,isImmediatePropagationStopped:bk};b.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(bv,e){b.event.special[bv]={delegateType:e,bindType:e,handle:function(bz){var bB=this,bA=bz.relatedTarget,by=bz.handleObj,bw=by.selector,bx;if(!bA||(bA!==bB&&!b.contains(bB,bA))){bz.type=by.origType;bx=by.handler.apply(this,arguments);bz.type=e}return bx}}});if(!b.support.submitBubbles){b.event.special.submit={setup:function(){if(b.nodeName(this,"form")){return false
+}b.event.add(this,"click._submit keypress._submit",function(bx){var bw=bx.target,bv=b.nodeName(bw,"input")||b.nodeName(bw,"button")?bw.form:L;if(bv&&!bv._submit_attached){b.event.add(bv,"submit._submit",function(e){if(this.parentNode&&!e.isTrigger){b.event.simulate("submit",this.parentNode,e,true)}});bv._submit_attached=true}})},teardown:function(){if(b.nodeName(this,"form")){return false}b.event.remove(this,"._submit")}}}if(!b.support.changeBubbles){b.event.special.change={setup:function(){if(bd.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio"){b.event.add(this,"propertychange._change",function(e){if(e.originalEvent.propertyName==="checked"){this._just_changed=true}});b.event.add(this,"click._change",function(e){if(this._just_changed&&!e.isTrigger){this._just_changed=false;b.event.simulate("change",this,e,true)}})}return false}b.event.add(this,"beforeactivate._change",function(bw){var bv=bw.target;if(bd.test(bv.nodeName)&&!bv._change_attached){b.event.add(bv,"change._change",function(e){if(this.parentNode&&!e.isSimulated&&!e.isTrigger){b.event.simulate("change",this.parentNode,e,true)}});bv._change_attached=true}})},handle:function(bv){var e=bv.target;if(this!==e||bv.isSimulated||bv.isTrigger||(e.type!=="radio"&&e.type!=="checkbox")){return bv.handleObj.handler.apply(this,arguments)}},teardown:function(){b.event.remove(this,"._change");return bd.test(this.nodeName)}}}if(!b.support.focusinBubbles){b.each({focus:"focusin",blur:"focusout"},function(bx,e){var bv=0,bw=function(by){b.event.simulate(e,by.target,b.event.fix(by),true)};b.event.special[e]={setup:function(){if(bv++===0){av.addEventListener(bx,bw,true)}},teardown:function(){if(--bv===0){av.removeEventListener(bx,bw,true)}}}})}b.fn.extend({on:function(bw,e,bz,by,bv){var bA,bx;if(typeof bw==="object"){if(typeof e!=="string"){bz=e;e=L}for(bx in bw){this.on(bx,e,bz,bw[bx],bv)}return this}if(bz==null&&by==null){by=e;bz=e=L}else{if(by==null){if(typeof e==="string"){by=bz;bz=L}else{by=bz;bz=e;e=L}}}if(by===false){by=bk}else{if(!by){return this}}if(bv===1){bA=by;by=function(bB){b().off(bB);return bA.apply(this,arguments)};by.guid=bA.guid||(bA.guid=b.guid++)}return this.each(function(){b.event.add(this,bw,by,bz,e)})},one:function(bv,e,bx,bw){return this.on.call(this,bv,e,bx,bw,1)},off:function(bw,e,by){if(bw&&bw.preventDefault&&bw.handleObj){var bv=bw.handleObj;b(bw.delegateTarget).off(bv.namespace?bv.type+"."+bv.namespace:bv.type,bv.selector,bv.handler);return this}if(typeof bw==="object"){for(var bx in bw){this.off(bx,e,bw[bx])}return this}if(e===false||typeof e==="function"){by=e;e=L}if(by===false){by=bk}return this.each(function(){b.event.remove(this,bw,by,e)})},bind:function(e,bw,bv){return this.on(e,null,bw,bv)},unbind:function(e,bv){return this.off(e,null,bv)},live:function(e,bw,bv){b(this.context).on(e,this.selector,bw,bv);return this},die:function(e,bv){b(this.context).off(e,this.selector||"**",bv);return this},delegate:function(e,bv,bx,bw){return this.on(bv,e,bx,bw)},undelegate:function(e,bv,bw){return arguments.length==1?this.off(e,"**"):this.off(bv,e,bw)},trigger:function(e,bv){return this.each(function(){b.event.trigger(e,bv,this)})},triggerHandler:function(e,bv){if(this[0]){return b.event.trigger(e,bv,this[0],true)}},toggle:function(bx){var bv=arguments,e=bx.guid||b.guid++,bw=0,by=function(bz){var bA=(b._data(this,"lastToggle"+bx.guid)||0)%bw;b._data(this,"lastToggle"+bx.guid,bA+1);bz.preventDefault();return bv[bA].apply(this,arguments)||false};by.guid=e;while(bw<bv.length){bv[bw++].guid=e}return this.click(by)},hover:function(e,bv){return this.mouseenter(e).mouseleave(bv||e)}});b.each(("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu").split(" "),function(bv,e){b.fn[e]=function(bx,bw){if(bw==null){bw=bx;bx=null}return arguments.length>0?this.on(e,null,bx,bw):this.trigger(e)};if(b.attrFn){b.attrFn[e]=true}if(aO.test(e)){b.event.fixHooks[e]=b.event.keyHooks}if(bf.test(e)){b.event.fixHooks[e]=b.event.mouseHooks}});
+/*!
+ * Sizzle CSS Selector Engine
+ * Copyright 2011, The Dojo Foundation
+ * Released under the MIT, BSD, and GPL Licenses.
+ * More information: http://sizzlejs.com/
+ */
+(function(){var bH=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,bC="sizcache"+(Math.random()+"").replace(".",""),bI=0,bL=Object.prototype.toString,bB=false,bA=true,bK=/\\/g,bO=/\r\n/g,bQ=/\W/;[0,0].sort(function(){bA=false;return 0});var by=function(bV,e,bY,bZ){bY=bY||[];e=e||av;var b1=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!bV||typeof bV!=="string"){return bY}var bS,b3,b6,bR,b2,b5,b4,bX,bU=true,bT=by.isXML(e),bW=[],b0=bV;do{bH.exec("");bS=bH.exec(b0);if(bS){b0=bS[3];bW.push(bS[1]);if(bS[2]){bR=bS[3];break}}}while(bS);if(bW.length>1&&bD.exec(bV)){if(bW.length===2&&bE.relative[bW[0]]){b3=bM(bW[0]+bW[1],e,bZ)}else{b3=bE.relative[bW[0]]?[e]:by(bW.shift(),e);while(bW.length){bV=bW.shift();if(bE.relative[bV]){bV+=bW.shift()}b3=bM(bV,b3,bZ)}}}else{if(!bZ&&bW.length>1&&e.nodeType===9&&!bT&&bE.match.ID.test(bW[0])&&!bE.match.ID.test(bW[bW.length-1])){b2=by.find(bW.shift(),e,bT);e=b2.expr?by.filter(b2.expr,b2.set)[0]:b2.set[0]}if(e){b2=bZ?{expr:bW.pop(),set:bF(bZ)}:by.find(bW.pop(),bW.length===1&&(bW[0]==="~"||bW[0]==="+")&&e.parentNode?e.parentNode:e,bT);b3=b2.expr?by.filter(b2.expr,b2.set):b2.set;if(bW.length>0){b6=bF(b3)}else{bU=false}while(bW.length){b5=bW.pop();b4=b5;if(!bE.relative[b5]){b5=""}else{b4=bW.pop()}if(b4==null){b4=e}bE.relative[b5](b6,b4,bT)}}else{b6=bW=[]}}if(!b6){b6=b3}if(!b6){by.error(b5||bV)}if(bL.call(b6)==="[object Array]"){if(!bU){bY.push.apply(bY,b6)}else{if(e&&e.nodeType===1){for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&(b6[bX]===true||b6[bX].nodeType===1&&by.contains(e,b6[bX]))){bY.push(b3[bX])}}}else{for(bX=0;b6[bX]!=null;bX++){if(b6[bX]&&b6[bX].nodeType===1){bY.push(b3[bX])}}}}}else{bF(b6,bY)}if(bR){by(bR,b1,bY,bZ);by.uniqueSort(bY)}return bY};by.uniqueSort=function(bR){if(bJ){bB=bA;bR.sort(bJ);if(bB){for(var e=1;e<bR.length;e++){if(bR[e]===bR[e-1]){bR.splice(e--,1)}}}}return bR};by.matches=function(e,bR){return by(e,null,null,bR)};by.matchesSelector=function(e,bR){return by(bR,null,null,[e]).length>0};by.find=function(bX,e,bY){var bW,bS,bU,bT,bV,bR;if(!bX){return[]}for(bS=0,bU=bE.order.length;bS<bU;bS++){bV=bE.order[bS];if((bT=bE.leftMatch[bV].exec(bX))){bR=bT[1];bT.splice(1,1);if(bR.substr(bR.length-1)!=="\\"){bT[1]=(bT[1]||"").replace(bK,"");bW=bE.find[bV](bT,e,bY);if(bW!=null){bX=bX.replace(bE.match[bV],"");break}}}}if(!bW){bW=typeof e.getElementsByTagName!=="undefined"?e.getElementsByTagName("*"):[]}return{set:bW,expr:bX}};by.filter=function(b1,b0,b4,bU){var bW,e,bZ,b6,b3,bR,bT,bV,b2,bS=b1,b5=[],bY=b0,bX=b0&&b0[0]&&by.isXML(b0[0]);while(b1&&b0.length){for(bZ in bE.filter){if((bW=bE.leftMatch[bZ].exec(b1))!=null&&bW[2]){bR=bE.filter[bZ];bT=bW[1];e=false;bW.splice(1,1);if(bT.substr(bT.length-1)==="\\"){continue}if(bY===b5){b5=[]}if(bE.preFilter[bZ]){bW=bE.preFilter[bZ](bW,bY,b4,b5,bU,bX);if(!bW){e=b6=true}else{if(bW===true){continue}}}if(bW){for(bV=0;(b3=bY[bV])!=null;bV++){if(b3){b6=bR(b3,bW,bV,bY);b2=bU^b6;if(b4&&b6!=null){if(b2){e=true}else{bY[bV]=false}}else{if(b2){b5.push(b3);e=true}}}}}if(b6!==L){if(!b4){bY=b5}b1=b1.replace(bE.match[bZ],"");if(!e){return[]}break}}}if(b1===bS){if(e==null){by.error(b1)}else{break}}bS=b1}return bY};by.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};var bw=by.getText=function(bU){var bS,bT,e=bU.nodeType,bR="";if(e){if(e===1||e===9){if(typeof bU.textContent==="string"){return bU.textContent}else{if(typeof bU.innerText==="string"){return bU.innerText.replace(bO,"")}else{for(bU=bU.firstChild;bU;bU=bU.nextSibling){bR+=bw(bU)}}}}else{if(e===3||e===4){return bU.nodeValue}}}else{for(bS=0;(bT=bU[bS]);bS++){if(bT.nodeType!==8){bR+=bw(bT)}}}return bR};var bE=by.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(e){return e.getAttribute("href")},type:function(e){return e.getAttribute("type")}},relative:{"+":function(bW,bR){var bT=typeof bR==="string",bV=bT&&!bQ.test(bR),bX=bT&&!bV;if(bV){bR=bR.toLowerCase()}for(var bS=0,e=bW.length,bU;bS<e;bS++){if((bU=bW[bS])){while((bU=bU.previousSibling)&&bU.nodeType!==1){}bW[bS]=bX||bU&&bU.nodeName.toLowerCase()===bR?bU||false:bU===bR}}if(bX){by.filter(bR,bW,true)}},">":function(bW,bR){var bV,bU=typeof bR==="string",bS=0,e=bW.length;if(bU&&!bQ.test(bR)){bR=bR.toLowerCase();for(;bS<e;bS++){bV=bW[bS];if(bV){var bT=bV.parentNode;bW[bS]=bT.nodeName.toLowerCase()===bR?bT:false}}}else{for(;bS<e;bS++){bV=bW[bS];if(bV){bW[bS]=bU?bV.parentNode:bV.parentNode===bR}}if(bU){by.filter(bR,bW,true)}}},"":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("parentNode",bR,bS,bT,bU,bV)},"~":function(bT,bR,bV){var bU,bS=bI++,e=bN;if(typeof bR==="string"&&!bQ.test(bR)){bR=bR.toLowerCase();bU=bR;e=bv}e("previousSibling",bR,bS,bT,bU,bV)}},find:{ID:function(bR,bS,bT){if(typeof bS.getElementById!=="undefined"&&!bT){var e=bS.getElementById(bR[1]);return e&&e.parentNode?[e]:[]}},NAME:function(bS,bV){if(typeof bV.getElementsByName!=="undefined"){var bR=[],bU=bV.getElementsByName(bS[1]);for(var bT=0,e=bU.length;bT<e;bT++){if(bU[bT].getAttribute("name")===bS[1]){bR.push(bU[bT])}}return bR.length===0?null:bR}},TAG:function(e,bR){if(typeof bR.getElementsByTagName!=="undefined"){return bR.getElementsByTagName(e[1])}}},preFilter:{CLASS:function(bT,bR,bS,e,bW,bX){bT=" "+bT[1].replace(bK,"")+" ";if(bX){return bT}for(var bU=0,bV;(bV=bR[bU])!=null;bU++){if(bV){if(bW^(bV.className&&(" "+bV.className+" ").replace(/[\t\n\r]/g," ").indexOf(bT)>=0)){if(!bS){e.push(bV)}}else{if(bS){bR[bU]=false}}}}return false},ID:function(e){return e[1].replace(bK,"")},TAG:function(bR,e){return bR[1].replace(bK,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){by.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var bR=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(bR[1]+(bR[2]||1))-0;e[3]=bR[3]-0}else{if(e[2]){by.error(e[0])}}e[0]=bI++;return e},ATTR:function(bU,bR,bS,e,bV,bW){var bT=bU[1]=bU[1].replace(bK,"");if(!bW&&bE.attrMap[bT]){bU[1]=bE.attrMap[bT]}bU[4]=(bU[4]||bU[5]||"").replace(bK,"");if(bU[2]==="~="){bU[4]=" "+bU[4]+" "}return bU},PSEUDO:function(bU,bR,bS,e,bV){if(bU[1]==="not"){if((bH.exec(bU[3])||"").length>1||/^\w/.test(bU[3])){bU[3]=by(bU[3],null,null,bR)}else{var bT=by.filter(bU[3],bR,bS,true^bV);if(!bS){e.push.apply(e,bT)}return false}}else{if(bE.match.POS.test(bU[0])||bE.match.CHILD.test(bU[0])){return true}}return bU},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(bS,bR,e){return !!by(e[3],bS).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(bS){var e=bS.getAttribute("type"),bR=bS.type;return bS.nodeName.toLowerCase()==="input"&&"text"===bR&&(e===bR||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===bR.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(bR){var e=bR.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===bR.type},button:function(bR){var e=bR.nodeName.toLowerCase();return e==="input"&&"button"===bR.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(bR,e){return e===0},last:function(bS,bR,e,bT){return bR===bT.length-1},even:function(bR,e){return e%2===0},odd:function(bR,e){return e%2===1
+},lt:function(bS,bR,e){return bR<e[3]-0},gt:function(bS,bR,e){return bR>e[3]-0},nth:function(bS,bR,e){return e[3]-0===bR},eq:function(bS,bR,e){return e[3]-0===bR}},filter:{PSEUDO:function(bS,bX,bW,bY){var e=bX[1],bR=bE.filters[e];if(bR){return bR(bS,bW,bX,bY)}else{if(e==="contains"){return(bS.textContent||bS.innerText||bw([bS])||"").indexOf(bX[3])>=0}else{if(e==="not"){var bT=bX[3];for(var bV=0,bU=bT.length;bV<bU;bV++){if(bT[bV]===bS){return false}}return true}else{by.error(e)}}}},CHILD:function(bS,bU){var bT,b0,bW,bZ,e,bV,bY,bX=bU[1],bR=bS;switch(bX){case"only":case"first":while((bR=bR.previousSibling)){if(bR.nodeType===1){return false}}if(bX==="first"){return true}bR=bS;case"last":while((bR=bR.nextSibling)){if(bR.nodeType===1){return false}}return true;case"nth":bT=bU[2];b0=bU[3];if(bT===1&&b0===0){return true}bW=bU[0];bZ=bS.parentNode;if(bZ&&(bZ[bC]!==bW||!bS.nodeIndex)){bV=0;for(bR=bZ.firstChild;bR;bR=bR.nextSibling){if(bR.nodeType===1){bR.nodeIndex=++bV}}bZ[bC]=bW}bY=bS.nodeIndex-b0;if(bT===0){return bY===0}else{return(bY%bT===0&&bY/bT>=0)}}},ID:function(bR,e){return bR.nodeType===1&&bR.getAttribute("id")===e},TAG:function(bR,e){return(e==="*"&&bR.nodeType===1)||!!bR.nodeName&&bR.nodeName.toLowerCase()===e},CLASS:function(bR,e){return(" "+(bR.className||bR.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(bV,bT){var bS=bT[1],e=by.attr?by.attr(bV,bS):bE.attrHandle[bS]?bE.attrHandle[bS](bV):bV[bS]!=null?bV[bS]:bV.getAttribute(bS),bW=e+"",bU=bT[2],bR=bT[4];return e==null?bU==="!=":!bU&&by.attr?e!=null:bU==="="?bW===bR:bU==="*="?bW.indexOf(bR)>=0:bU==="~="?(" "+bW+" ").indexOf(bR)>=0:!bR?bW&&e!==false:bU==="!="?bW!==bR:bU==="^="?bW.indexOf(bR)===0:bU==="$="?bW.substr(bW.length-bR.length)===bR:bU==="|="?bW===bR||bW.substr(0,bR.length+1)===bR+"-":false},POS:function(bU,bR,bS,bV){var e=bR[2],bT=bE.setFilters[e];if(bT){return bT(bU,bS,bR,bV)}}}};var bD=bE.match.POS,bx=function(bR,e){return"\\"+(e-0+1)};for(var bz in bE.match){bE.match[bz]=new RegExp(bE.match[bz].source+(/(?![^\[]*\])(?![^\(]*\))/.source));bE.leftMatch[bz]=new RegExp(/(^(?:.|\r|\n)*?)/.source+bE.match[bz].source.replace(/\\(\d+)/g,bx))}var bF=function(bR,e){bR=Array.prototype.slice.call(bR,0);if(e){e.push.apply(e,bR);return e}return bR};try{Array.prototype.slice.call(av.documentElement.childNodes,0)[0].nodeType}catch(bP){bF=function(bU,bT){var bS=0,bR=bT||[];if(bL.call(bU)==="[object Array]"){Array.prototype.push.apply(bR,bU)}else{if(typeof bU.length==="number"){for(var e=bU.length;bS<e;bS++){bR.push(bU[bS])}}else{for(;bU[bS];bS++){bR.push(bU[bS])}}}return bR}}var bJ,bG;if(av.documentElement.compareDocumentPosition){bJ=function(bR,e){if(bR===e){bB=true;return 0}if(!bR.compareDocumentPosition||!e.compareDocumentPosition){return bR.compareDocumentPosition?-1:1}return bR.compareDocumentPosition(e)&4?-1:1}}else{bJ=function(bY,bX){if(bY===bX){bB=true;return 0}else{if(bY.sourceIndex&&bX.sourceIndex){return bY.sourceIndex-bX.sourceIndex}}var bV,bR,bS=[],e=[],bU=bY.parentNode,bW=bX.parentNode,bZ=bU;if(bU===bW){return bG(bY,bX)}else{if(!bU){return -1}else{if(!bW){return 1}}}while(bZ){bS.unshift(bZ);bZ=bZ.parentNode}bZ=bW;while(bZ){e.unshift(bZ);bZ=bZ.parentNode}bV=bS.length;bR=e.length;for(var bT=0;bT<bV&&bT<bR;bT++){if(bS[bT]!==e[bT]){return bG(bS[bT],e[bT])}}return bT===bV?bG(bY,e[bT],-1):bG(bS[bT],bX,1)};bG=function(bR,e,bS){if(bR===e){return bS}var bT=bR.nextSibling;while(bT){if(bT===e){return -1}bT=bT.nextSibling}return 1}}(function(){var bR=av.createElement("div"),bS="script"+(new Date()).getTime(),e=av.documentElement;bR.innerHTML="<a name='"+bS+"'/>";e.insertBefore(bR,e.firstChild);if(av.getElementById(bS)){bE.find.ID=function(bU,bV,bW){if(typeof bV.getElementById!=="undefined"&&!bW){var bT=bV.getElementById(bU[1]);return bT?bT.id===bU[1]||typeof bT.getAttributeNode!=="undefined"&&bT.getAttributeNode("id").nodeValue===bU[1]?[bT]:L:[]}};bE.filter.ID=function(bV,bT){var bU=typeof bV.getAttributeNode!=="undefined"&&bV.getAttributeNode("id");return bV.nodeType===1&&bU&&bU.nodeValue===bT}}e.removeChild(bR);e=bR=null})();(function(){var e=av.createElement("div");e.appendChild(av.createComment(""));if(e.getElementsByTagName("*").length>0){bE.find.TAG=function(bR,bV){var bU=bV.getElementsByTagName(bR[1]);if(bR[1]==="*"){var bT=[];for(var bS=0;bU[bS];bS++){if(bU[bS].nodeType===1){bT.push(bU[bS])}}bU=bT}return bU}}e.innerHTML="<a href='#'></a>";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){bE.attrHandle.href=function(bR){return bR.getAttribute("href",2)}}e=null})();if(av.querySelectorAll){(function(){var e=by,bT=av.createElement("div"),bS="__sizzle__";bT.innerHTML="<p class='TEST'></p>";if(bT.querySelectorAll&&bT.querySelectorAll(".TEST").length===0){return}by=function(b4,bV,bZ,b3){bV=bV||av;if(!b3&&!by.isXML(bV)){var b2=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b4);if(b2&&(bV.nodeType===1||bV.nodeType===9)){if(b2[1]){return bF(bV.getElementsByTagName(b4),bZ)}else{if(b2[2]&&bE.find.CLASS&&bV.getElementsByClassName){return bF(bV.getElementsByClassName(b2[2]),bZ)}}}if(bV.nodeType===9){if(b4==="body"&&bV.body){return bF([bV.body],bZ)}else{if(b2&&b2[3]){var bY=bV.getElementById(b2[3]);if(bY&&bY.parentNode){if(bY.id===b2[3]){return bF([bY],bZ)}}else{return bF([],bZ)}}}try{return bF(bV.querySelectorAll(b4),bZ)}catch(b0){}}else{if(bV.nodeType===1&&bV.nodeName.toLowerCase()!=="object"){var bW=bV,bX=bV.getAttribute("id"),bU=bX||bS,b6=bV.parentNode,b5=/^\s*[+~]/.test(b4);if(!bX){bV.setAttribute("id",bU)}else{bU=bU.replace(/'/g,"\\$&")}if(b5&&b6){bV=bV.parentNode}try{if(!b5||b6){return bF(bV.querySelectorAll("[id='"+bU+"'] "+b4),bZ)}}catch(b1){}finally{if(!bX){bW.removeAttribute("id")}}}}}return e(b4,bV,bZ,b3)};for(var bR in e){by[bR]=e[bR]}bT=null})()}(function(){var e=av.documentElement,bS=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(bS){var bU=!bS.call(av.createElement("div"),"div"),bR=false;try{bS.call(av.documentElement,"[test!='']:sizzle")}catch(bT){bR=true}by.matchesSelector=function(bW,bY){bY=bY.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!by.isXML(bW)){try{if(bR||!bE.match.PSEUDO.test(bY)&&!/!=/.test(bY)){var bV=bS.call(bW,bY);if(bV||!bU||bW.document&&bW.document.nodeType!==11){return bV}}}catch(bX){}}return by(bY,null,null,[bW]).length>0}}})();(function(){var e=av.createElement("div");e.innerHTML="<div class='test e'></div><div class='test'></div>";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}bE.order.splice(1,0,"CLASS");bE.find.CLASS=function(bR,bS,bT){if(typeof bS.getElementsByClassName!=="undefined"&&!bT){return bS.getElementsByClassName(bR[1])}};e=null})();function bv(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1&&!bY){e[bC]=bV;e.sizset=bT}if(e.nodeName.toLowerCase()===bW){bU=e;break}e=e[bR]}bZ[bT]=bU}}}function bN(bR,bW,bV,bZ,bX,bY){for(var bT=0,bS=bZ.length;bT<bS;bT++){var e=bZ[bT];if(e){var bU=false;e=e[bR];while(e){if(e[bC]===bV){bU=bZ[e.sizset];break}if(e.nodeType===1){if(!bY){e[bC]=bV;e.sizset=bT}if(typeof bW!=="string"){if(e===bW){bU=true;break}}else{if(by.filter(bW,[e]).length>0){bU=e;break}}}e=e[bR]}bZ[bT]=bU}}}if(av.documentElement.contains){by.contains=function(bR,e){return bR!==e&&(bR.contains?bR.contains(e):true)}}else{if(av.documentElement.compareDocumentPosition){by.contains=function(bR,e){return !!(bR.compareDocumentPosition(e)&16)}}else{by.contains=function(){return false}}}by.isXML=function(e){var bR=(e?e.ownerDocument||e:0).documentElement;return bR?bR.nodeName!=="HTML":false};var bM=function(bS,e,bW){var bV,bX=[],bU="",bY=e.nodeType?[e]:e;while((bV=bE.match.PSEUDO.exec(bS))){bU+=bV[0];bS=bS.replace(bE.match.PSEUDO,"")}bS=bE.relative[bS]?bS+"*":bS;for(var bT=0,bR=bY.length;bT<bR;bT++){by(bS,bY[bT],bX,bW)}return by.filter(bU,bX)};by.attr=b.attr;by.selectors.attrMap={};b.find=by;b.expr=by.selectors;b.expr[":"]=b.expr.filters;b.unique=by.uniqueSort;b.text=by.getText;b.isXMLDoc=by.isXML;b.contains=by.contains})();var ab=/Until$/,aq=/^(?:parents|prevUntil|prevAll)/,a9=/,/,bp=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,H=b.expr.match.POS,ay={children:true,contents:true,next:true,prev:true};b.fn.extend({find:function(e){var bw=this,by,bv;if(typeof e!=="string"){return b(e).filter(function(){for(by=0,bv=bw.length;by<bv;by++){if(b.contains(bw[by],this)){return true}}})}var bx=this.pushStack("","find",e),bA,bB,bz;for(by=0,bv=this.length;by<bv;by++){bA=bx.length;b.find(e,this[by],bx);if(by>0){for(bB=bA;bB<bx.length;bB++){for(bz=0;bz<bA;bz++){if(bx[bz]===bx[bB]){bx.splice(bB--,1);break}}}}}return bx},has:function(bv){var e=b(bv);return this.filter(function(){for(var bx=0,bw=e.length;bx<bw;bx++){if(b.contains(this,e[bx])){return true}}})},not:function(e){return this.pushStack(aG(this,e,false),"not",e)},filter:function(e){return this.pushStack(aG(this,e,true),"filter",e)},is:function(e){return !!e&&(typeof e==="string"?H.test(e)?b(e,this.context).index(this[0])>=0:b.filter(e,this).length>0:this.filter(e).length>0)},closest:function(by,bx){var bv=[],bw,e,bz=this[0];if(b.isArray(by)){var bB=1;while(bz&&bz.ownerDocument&&bz!==bx){for(bw=0;bw<by.length;bw++){if(b(bz).is(by[bw])){bv.push({selector:by[bw],elem:bz,level:bB})}}bz=bz.parentNode;bB++}return bv}var bA=H.test(by)||typeof by!=="string"?b(by,bx||this.context):0;for(bw=0,e=this.length;bw<e;bw++){bz=this[bw];while(bz){if(bA?bA.index(bz)>-1:b.find.matchesSelector(bz,by)){bv.push(bz);break}else{bz=bz.parentNode;if(!bz||!bz.ownerDocument||bz===bx||bz.nodeType===11){break}}}}bv=bv.length>1?b.unique(bv):bv;return this.pushStack(bv,"closest",by)},index:function(e){if(!e){return(this[0]&&this[0].parentNode)?this.prevAll().length:-1}if(typeof e==="string"){return b.inArray(this[0],b(e))}return b.inArray(e.jquery?e[0]:e,this)},add:function(e,bv){var bx=typeof e==="string"?b(e,bv):b.makeArray(e&&e.nodeType?[e]:e),bw=b.merge(this.get(),bx);return this.pushStack(C(bx[0])||C(bw[0])?bw:b.unique(bw))},andSelf:function(){return this.add(this.prevObject)}});function C(e){return !e||!e.parentNode||e.parentNode.nodeType===11}b.each({parent:function(bv){var e=bv.parentNode;return e&&e.nodeType!==11?e:null},parents:function(e){return b.dir(e,"parentNode")},parentsUntil:function(bv,e,bw){return b.dir(bv,"parentNode",bw)},next:function(e){return b.nth(e,2,"nextSibling")},prev:function(e){return b.nth(e,2,"previousSibling")},nextAll:function(e){return b.dir(e,"nextSibling")},prevAll:function(e){return b.dir(e,"previousSibling")},nextUntil:function(bv,e,bw){return b.dir(bv,"nextSibling",bw)},prevUntil:function(bv,e,bw){return b.dir(bv,"previousSibling",bw)},siblings:function(e){return b.sibling(e.parentNode.firstChild,e)},children:function(e){return b.sibling(e.firstChild)},contents:function(e){return b.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:b.makeArray(e.childNodes)}},function(e,bv){b.fn[e]=function(by,bw){var bx=b.map(this,bv,by);if(!ab.test(e)){bw=by}if(bw&&typeof bw==="string"){bx=b.filter(bw,bx)}bx=this.length>1&&!ay[e]?b.unique(bx):bx;if((this.length>1||a9.test(bw))&&aq.test(e)){bx=bx.reverse()}return this.pushStack(bx,e,P.call(arguments).join(","))}});b.extend({filter:function(bw,e,bv){if(bv){bw=":not("+bw+")"}return e.length===1?b.find.matchesSelector(e[0],bw)?[e[0]]:[]:b.find.matches(bw,e)},dir:function(bw,bv,by){var e=[],bx=bw[bv];while(bx&&bx.nodeType!==9&&(by===L||bx.nodeType!==1||!b(bx).is(by))){if(bx.nodeType===1){e.push(bx)}bx=bx[bv]}return e},nth:function(by,e,bw,bx){e=e||1;var bv=0;for(;by;by=by[bw]){if(by.nodeType===1&&++bv===e){break}}return by},sibling:function(bw,bv){var e=[];for(;bw;bw=bw.nextSibling){if(bw.nodeType===1&&bw!==bv){e.push(bw)}}return e}});function aG(bx,bw,e){bw=bw||0;if(b.isFunction(bw)){return b.grep(bx,function(bz,by){var bA=!!bw.call(bz,by,bz);return bA===e})}else{if(bw.nodeType){return b.grep(bx,function(bz,by){return(bz===bw)===e})}else{if(typeof bw==="string"){var bv=b.grep(bx,function(by){return by.nodeType===1});if(bp.test(bw)){return b.filter(bw,bv,!e)}else{bw=b.filter(bw,bv)}}}}return b.grep(bx,function(bz,by){return(b.inArray(bz,bw)>=0)===e})}function a(e){var bw=aR.split("|"),bv=e.createDocumentFragment();if(bv.createElement){while(bw.length){bv.createElement(bw.pop())}}return bv}var aR="abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ag=/ jQuery\d+="(?:\d+|null)"/g,ar=/^\s+/,R=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,d=/<([\w:]+)/,w=/<tbody/i,W=/<|&#?\w+;/,ae=/<(?:script|style)/i,O=/<(?:script|object|embed|option|style)/i,ah=new RegExp("<(?:"+aR+")","i"),o=/checked\s*(?:[^=]|=\s*.checked.)/i,bm=/\/(java|ecma)script/i,aN=/^\s*<!(?:\[CDATA\[|\-\-)/,ax={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},ac=a(av);
+ax.optgroup=ax.option;ax.tbody=ax.tfoot=ax.colgroup=ax.caption=ax.thead;ax.th=ax.td;if(!b.support.htmlSerialize){ax._default=[1,"div<div>","</div>"]}b.fn.extend({text:function(e){if(b.isFunction(e)){return this.each(function(bw){var bv=b(this);bv.text(e.call(this,bw,bv.text()))})}if(typeof e!=="object"&&e!==L){return this.empty().append((this[0]&&this[0].ownerDocument||av).createTextNode(e))}return b.text(this)},wrapAll:function(e){if(b.isFunction(e)){return this.each(function(bw){b(this).wrapAll(e.call(this,bw))})}if(this[0]){var bv=b(e,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){bv.insertBefore(this[0])}bv.map(function(){var bw=this;while(bw.firstChild&&bw.firstChild.nodeType===1){bw=bw.firstChild}return bw}).append(this)}return this},wrapInner:function(e){if(b.isFunction(e)){return this.each(function(bv){b(this).wrapInner(e.call(this,bv))})}return this.each(function(){var bv=b(this),bw=bv.contents();if(bw.length){bw.wrapAll(e)}else{bv.append(e)}})},wrap:function(e){var bv=b.isFunction(e);return this.each(function(bw){b(this).wrapAll(bv?e.call(this,bw):e)})},unwrap:function(){return this.parent().each(function(){if(!b.nodeName(this,"body")){b(this).replaceWith(this.childNodes)}}).end()},append:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.appendChild(e)}})},prepend:function(){return this.domManip(arguments,true,function(e){if(this.nodeType===1){this.insertBefore(e,this.firstChild)}})},before:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this)})}else{if(arguments.length){var e=b.clean(arguments);e.push.apply(e,this.toArray());return this.pushStack(e,"before",arguments)}}},after:function(){if(this[0]&&this[0].parentNode){return this.domManip(arguments,false,function(bv){this.parentNode.insertBefore(bv,this.nextSibling)})}else{if(arguments.length){var e=this.pushStack(this,"after",arguments);e.push.apply(e,b.clean(arguments));return e}}},remove:function(e,bx){for(var bv=0,bw;(bw=this[bv])!=null;bv++){if(!e||b.filter(e,[bw]).length){if(!bx&&bw.nodeType===1){b.cleanData(bw.getElementsByTagName("*"));b.cleanData([bw])}if(bw.parentNode){bw.parentNode.removeChild(bw)}}}return this},empty:function(){for(var e=0,bv;(bv=this[e])!=null;e++){if(bv.nodeType===1){b.cleanData(bv.getElementsByTagName("*"))}while(bv.firstChild){bv.removeChild(bv.firstChild)}}return this},clone:function(bv,e){bv=bv==null?false:bv;e=e==null?bv:e;return this.map(function(){return b.clone(this,bv,e)})},html:function(bx){if(bx===L){return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(ag,""):null}else{if(typeof bx==="string"&&!ae.test(bx)&&(b.support.leadingWhitespace||!ar.test(bx))&&!ax[(d.exec(bx)||["",""])[1].toLowerCase()]){bx=bx.replace(R,"<$1></$2>");try{for(var bw=0,bv=this.length;bw<bv;bw++){if(this[bw].nodeType===1){b.cleanData(this[bw].getElementsByTagName("*"));this[bw].innerHTML=bx}}}catch(by){this.empty().append(bx)}}else{if(b.isFunction(bx)){this.each(function(bz){var e=b(this);e.html(bx.call(this,bz,e.html()))})}else{this.empty().append(bx)}}}return this},replaceWith:function(e){if(this[0]&&this[0].parentNode){if(b.isFunction(e)){return this.each(function(bx){var bw=b(this),bv=bw.html();bw.replaceWith(e.call(this,bx,bv))})}if(typeof e!=="string"){e=b(e).detach()}return this.each(function(){var bw=this.nextSibling,bv=this.parentNode;b(this).remove();if(bw){b(bw).before(e)}else{b(bv).append(e)}})}else{return this.length?this.pushStack(b(b.isFunction(e)?e():e),"replaceWith",e):this}},detach:function(e){return this.remove(e,true)},domManip:function(bB,bF,bE){var bx,by,bA,bD,bC=bB[0],bv=[];if(!b.support.checkClone&&arguments.length===3&&typeof bC==="string"&&o.test(bC)){return this.each(function(){b(this).domManip(bB,bF,bE,true)})}if(b.isFunction(bC)){return this.each(function(bH){var bG=b(this);bB[0]=bC.call(this,bH,bF?bG.html():L);bG.domManip(bB,bF,bE)})}if(this[0]){bD=bC&&bC.parentNode;if(b.support.parentNode&&bD&&bD.nodeType===11&&bD.childNodes.length===this.length){bx={fragment:bD}}else{bx=b.buildFragment(bB,this,bv)}bA=bx.fragment;if(bA.childNodes.length===1){by=bA=bA.firstChild}else{by=bA.firstChild}if(by){bF=bF&&b.nodeName(by,"tr");for(var bw=0,e=this.length,bz=e-1;bw<e;bw++){bE.call(bF?ba(this[bw],by):this[bw],bx.cacheable||(e>1&&bw<bz)?b.clone(bA,true,true):bA)}}if(bv.length){b.each(bv,bo)}}return this}});function ba(e,bv){return b.nodeName(e,"table")?(e.getElementsByTagName("tbody")[0]||e.appendChild(e.ownerDocument.createElement("tbody"))):e}function t(bB,bv){if(bv.nodeType!==1||!b.hasData(bB)){return}var by,bx,e,bA=b._data(bB),bz=b._data(bv,bA),bw=bA.events;if(bw){delete bz.handle;bz.events={};for(by in bw){for(bx=0,e=bw[by].length;bx<e;bx++){b.event.add(bv,by+(bw[by][bx].namespace?".":"")+bw[by][bx].namespace,bw[by][bx],bw[by][bx].data)}}}if(bz.data){bz.data=b.extend({},bz.data)}}function ai(bv,e){var bw;if(e.nodeType!==1){return}if(e.clearAttributes){e.clearAttributes()}if(e.mergeAttributes){e.mergeAttributes(bv)}bw=e.nodeName.toLowerCase();if(bw==="object"){e.outerHTML=bv.outerHTML}else{if(bw==="input"&&(bv.type==="checkbox"||bv.type==="radio")){if(bv.checked){e.defaultChecked=e.checked=bv.checked}if(e.value!==bv.value){e.value=bv.value}}else{if(bw==="option"){e.selected=bv.defaultSelected}else{if(bw==="input"||bw==="textarea"){e.defaultValue=bv.defaultValue}}}}e.removeAttribute(b.expando)}b.buildFragment=function(bz,bx,bv){var by,e,bw,bA,bB=bz[0];if(bx&&bx[0]){bA=bx[0].ownerDocument||bx[0]}if(!bA.createDocumentFragment){bA=av}if(bz.length===1&&typeof bB==="string"&&bB.length<512&&bA===av&&bB.charAt(0)==="<"&&!O.test(bB)&&(b.support.checkClone||!o.test(bB))&&(b.support.html5Clone||!ah.test(bB))){e=true;bw=b.fragments[bB];if(bw&&bw!==1){by=bw}}if(!by){by=bA.createDocumentFragment();b.clean(bz,bA,by,bv)}if(e){b.fragments[bB]=bw?by:1}return{fragment:by,cacheable:e}};b.fragments={};b.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,bv){b.fn[e]=function(bw){var bz=[],bC=b(bw),bB=this.length===1&&this[0].parentNode;if(bB&&bB.nodeType===11&&bB.childNodes.length===1&&bC.length===1){bC[bv](this[0]);return this}else{for(var bA=0,bx=bC.length;bA<bx;bA++){var by=(bA>0?this.clone(true):this).get();b(bC[bA])[bv](by);bz=bz.concat(by)}return this.pushStack(bz,e,bC.selector)}}});function bg(e){if(typeof e.getElementsByTagName!=="undefined"){return e.getElementsByTagName("*")}else{if(typeof e.querySelectorAll!=="undefined"){return e.querySelectorAll("*")}else{return[]}}}function az(e){if(e.type==="checkbox"||e.type==="radio"){e.defaultChecked=e.checked}}function E(e){var bv=(e.nodeName||"").toLowerCase();if(bv==="input"){az(e)}else{if(bv!=="script"&&typeof e.getElementsByTagName!=="undefined"){b.grep(e.getElementsByTagName("input"),az)}}}function al(e){var bv=av.createElement("div");ac.appendChild(bv);bv.innerHTML=e.outerHTML;return bv.firstChild}b.extend({clone:function(by,bA,bw){var e,bv,bx,bz=b.support.html5Clone||!ah.test("<"+by.nodeName)?by.cloneNode(true):al(by);if((!b.support.noCloneEvent||!b.support.noCloneChecked)&&(by.nodeType===1||by.nodeType===11)&&!b.isXMLDoc(by)){ai(by,bz);e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){if(bv[bx]){ai(e[bx],bv[bx])}}}if(bA){t(by,bz);if(bw){e=bg(by);bv=bg(bz);for(bx=0;e[bx];++bx){t(e[bx],bv[bx])}}}e=bv=null;return bz},clean:function(bw,by,bH,bA){var bF;by=by||av;if(typeof by.createElement==="undefined"){by=by.ownerDocument||by[0]&&by[0].ownerDocument||av}var bI=[],bB;for(var bE=0,bz;(bz=bw[bE])!=null;bE++){if(typeof bz==="number"){bz+=""}if(!bz){continue}if(typeof bz==="string"){if(!W.test(bz)){bz=by.createTextNode(bz)}else{bz=bz.replace(R,"<$1></$2>");var bK=(d.exec(bz)||["",""])[1].toLowerCase(),bx=ax[bK]||ax._default,bD=bx[0],bv=by.createElement("div");if(by===av){ac.appendChild(bv)}else{a(by).appendChild(bv)}bv.innerHTML=bx[1]+bz+bx[2];while(bD--){bv=bv.lastChild}if(!b.support.tbody){var e=w.test(bz),bC=bK==="table"&&!e?bv.firstChild&&bv.firstChild.childNodes:bx[1]==="<table>"&&!e?bv.childNodes:[];for(bB=bC.length-1;bB>=0;--bB){if(b.nodeName(bC[bB],"tbody")&&!bC[bB].childNodes.length){bC[bB].parentNode.removeChild(bC[bB])}}}if(!b.support.leadingWhitespace&&ar.test(bz)){bv.insertBefore(by.createTextNode(ar.exec(bz)[0]),bv.firstChild)}bz=bv.childNodes}}var bG;if(!b.support.appendChecked){if(bz[0]&&typeof(bG=bz.length)==="number"){for(bB=0;bB<bG;bB++){E(bz[bB])}}else{E(bz)}}if(bz.nodeType){bI.push(bz)}else{bI=b.merge(bI,bz)}}if(bH){bF=function(bL){return !bL.type||bm.test(bL.type)};for(bE=0;bI[bE];bE++){if(bA&&b.nodeName(bI[bE],"script")&&(!bI[bE].type||bI[bE].type.toLowerCase()==="text/javascript")){bA.push(bI[bE].parentNode?bI[bE].parentNode.removeChild(bI[bE]):bI[bE])}else{if(bI[bE].nodeType===1){var bJ=b.grep(bI[bE].getElementsByTagName("script"),bF);bI.splice.apply(bI,[bE+1,0].concat(bJ))}bH.appendChild(bI[bE])}}}return bI},cleanData:function(bv){var by,bw,e=b.cache,bB=b.event.special,bA=b.support.deleteExpando;for(var bz=0,bx;(bx=bv[bz])!=null;bz++){if(bx.nodeName&&b.noData[bx.nodeName.toLowerCase()]){continue}bw=bx[b.expando];if(bw){by=e[bw];if(by&&by.events){for(var bC in by.events){if(bB[bC]){b.event.remove(bx,bC)}else{b.removeEvent(bx,bC,by.handle)}}if(by.handle){by.handle.elem=null}}if(bA){delete bx[b.expando]}else{if(bx.removeAttribute){bx.removeAttribute(b.expando)}}delete e[bw]}}}});function bo(e,bv){if(bv.src){b.ajax({url:bv.src,async:false,dataType:"script"})}else{b.globalEval((bv.text||bv.textContent||bv.innerHTML||"").replace(aN,"/*$0*/"))}if(bv.parentNode){bv.parentNode.removeChild(bv)}}var ak=/alpha\([^)]*\)/i,au=/opacity=([^)]*)/,z=/([A-Z]|^ms)/g,bc=/^-?\d+(?:px)?$/i,bn=/^-?\d/,I=/^([\-+])=([\-+.\de]+)/,a7={position:"absolute",visibility:"hidden",display:"block"},an=["Left","Right"],a1=["Top","Bottom"],Z,aI,aX;b.fn.css=function(e,bv){if(arguments.length===2&&bv===L){return this}return b.access(this,e,bv,true,function(bx,bw,by){return by!==L?b.style(bx,bw,by):b.css(bx,bw)})};b.extend({cssHooks:{opacity:{get:function(bw,bv){if(bv){var e=Z(bw,"opacity","opacity");return e===""?"1":e}else{return bw.style.opacity}}}},cssNumber:{fillOpacity:true,fontWeight:true,lineHeight:true,opacity:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{"float":b.support.cssFloat?"cssFloat":"styleFloat"},style:function(bx,bw,bD,by){if(!bx||bx.nodeType===3||bx.nodeType===8||!bx.style){return}var bB,bC,bz=b.camelCase(bw),bv=bx.style,bE=b.cssHooks[bz];bw=b.cssProps[bz]||bz;if(bD!==L){bC=typeof bD;if(bC==="string"&&(bB=I.exec(bD))){bD=(+(bB[1]+1)*+bB[2])+parseFloat(b.css(bx,bw));bC="number"}if(bD==null||bC==="number"&&isNaN(bD)){return}if(bC==="number"&&!b.cssNumber[bz]){bD+="px"}if(!bE||!("set" in bE)||(bD=bE.set(bx,bD))!==L){try{bv[bw]=bD}catch(bA){}}}else{if(bE&&"get" in bE&&(bB=bE.get(bx,false,by))!==L){return bB}return bv[bw]}},css:function(by,bx,bv){var bw,e;bx=b.camelCase(bx);e=b.cssHooks[bx];bx=b.cssProps[bx]||bx;if(bx==="cssFloat"){bx="float"}if(e&&"get" in e&&(bw=e.get(by,true,bv))!==L){return bw}else{if(Z){return Z(by,bx)}}},swap:function(bx,bw,by){var e={};for(var bv in bw){e[bv]=bx.style[bv];bx.style[bv]=bw[bv]}by.call(bx);for(bv in bw){bx.style[bv]=e[bv]}}});b.curCSS=b.css;b.each(["height","width"],function(bv,e){b.cssHooks[e]={get:function(by,bx,bw){var bz;if(bx){if(by.offsetWidth!==0){return p(by,e,bw)}else{b.swap(by,a7,function(){bz=p(by,e,bw)})}return bz}},set:function(bw,bx){if(bc.test(bx)){bx=parseFloat(bx);if(bx>=0){return bx+"px"}}else{return bx}}}});if(!b.support.opacity){b.cssHooks.opacity={get:function(bv,e){return au.test((e&&bv.currentStyle?bv.currentStyle.filter:bv.style.filter)||"")?(parseFloat(RegExp.$1)/100)+"":e?"1":""},set:function(by,bz){var bx=by.style,bv=by.currentStyle,e=b.isNumeric(bz)?"alpha(opacity="+bz*100+")":"",bw=bv&&bv.filter||bx.filter||"";bx.zoom=1;if(bz>=1&&b.trim(bw.replace(ak,""))===""){bx.removeAttribute("filter");if(bv&&!bv.filter){return}}bx.filter=ak.test(bw)?bw.replace(ak,e):bw+" "+e}}}b(function(){if(!b.support.reliableMarginRight){b.cssHooks.marginRight={get:function(bw,bv){var e;b.swap(bw,{display:"inline-block"},function(){if(bv){e=Z(bw,"margin-right","marginRight")}else{e=bw.style.marginRight}});return e}}}});if(av.defaultView&&av.defaultView.getComputedStyle){aI=function(by,bw){var bv,bx,e;bw=bw.replace(z,"-$1").toLowerCase();if((bx=by.ownerDocument.defaultView)&&(e=bx.getComputedStyle(by,null))){bv=e.getPropertyValue(bw);if(bv===""&&!b.contains(by.ownerDocument.documentElement,by)){bv=b.style(by,bw)}}return bv}}if(av.documentElement.currentStyle){aX=function(bz,bw){var bA,e,by,bv=bz.currentStyle&&bz.currentStyle[bw],bx=bz.style;if(bv===null&&bx&&(by=bx[bw])){bv=by}if(!bc.test(bv)&&bn.test(bv)){bA=bx.left;e=bz.runtimeStyle&&bz.runtimeStyle.left;if(e){bz.runtimeStyle.left=bz.currentStyle.left}bx.left=bw==="fontSize"?"1em":(bv||0);bv=bx.pixelLeft+"px";bx.left=bA;if(e){bz.runtimeStyle.left=e}}return bv===""?"auto":bv}}Z=aI||aX;function p(by,bw,bv){var bA=bw==="width"?by.offsetWidth:by.offsetHeight,bz=bw==="width"?an:a1,bx=0,e=bz.length;
+if(bA>0){if(bv!=="border"){for(;bx<e;bx++){if(!bv){bA-=parseFloat(b.css(by,"padding"+bz[bx]))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}else{bA-=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}}}return bA+"px"}bA=Z(by,bw,bw);if(bA<0||bA==null){bA=by.style[bw]||0}bA=parseFloat(bA)||0;if(bv){for(;bx<e;bx++){bA+=parseFloat(b.css(by,"padding"+bz[bx]))||0;if(bv!=="padding"){bA+=parseFloat(b.css(by,"border"+bz[bx]+"Width"))||0}if(bv==="margin"){bA+=parseFloat(b.css(by,bv+bz[bx]))||0}}}return bA+"px"}if(b.expr&&b.expr.filters){b.expr.filters.hidden=function(bw){var bv=bw.offsetWidth,e=bw.offsetHeight;return(bv===0&&e===0)||(!b.support.reliableHiddenOffsets&&((bw.style&&bw.style.display)||b.css(bw,"display"))==="none")};b.expr.filters.visible=function(e){return !b.expr.filters.hidden(e)}}var k=/%20/g,ap=/\[\]$/,bs=/\r?\n/g,bq=/#.*$/,aD=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,aZ=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,aM=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,aQ=/^(?:GET|HEAD)$/,c=/^\/\//,M=/\?/,a6=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,q=/^(?:select|textarea)/i,h=/\s+/,br=/([?&])_=[^&]*/,K=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,A=b.fn.load,aa={},r={},aE,s,aV=["*/"]+["*"];try{aE=bl.href}catch(aw){aE=av.createElement("a");aE.href="";aE=aE.href}s=K.exec(aE.toLowerCase())||[];function f(e){return function(by,bA){if(typeof by!=="string"){bA=by;by="*"}if(b.isFunction(bA)){var bx=by.toLowerCase().split(h),bw=0,bz=bx.length,bv,bB,bC;for(;bw<bz;bw++){bv=bx[bw];bC=/^\+/.test(bv);if(bC){bv=bv.substr(1)||"*"}bB=e[bv]=e[bv]||[];bB[bC?"unshift":"push"](bA)}}}}function aW(bv,bE,bz,bD,bB,bx){bB=bB||bE.dataTypes[0];bx=bx||{};bx[bB]=true;var bA=bv[bB],bw=0,e=bA?bA.length:0,by=(bv===aa),bC;for(;bw<e&&(by||!bC);bw++){bC=bA[bw](bE,bz,bD);if(typeof bC==="string"){if(!by||bx[bC]){bC=L}else{bE.dataTypes.unshift(bC);bC=aW(bv,bE,bz,bD,bC,bx)}}}if((by||!bC)&&!bx["*"]){bC=aW(bv,bE,bz,bD,"*",bx)}return bC}function am(bw,bx){var bv,e,by=b.ajaxSettings.flatOptions||{};for(bv in bx){if(bx[bv]!==L){(by[bv]?bw:(e||(e={})))[bv]=bx[bv]}}if(e){b.extend(true,bw,e)}}b.fn.extend({load:function(bw,bz,bA){if(typeof bw!=="string"&&A){return A.apply(this,arguments)}else{if(!this.length){return this}}var by=bw.indexOf(" ");if(by>=0){var e=bw.slice(by,bw.length);bw=bw.slice(0,by)}var bx="GET";if(bz){if(b.isFunction(bz)){bA=bz;bz=L}else{if(typeof bz==="object"){bz=b.param(bz,b.ajaxSettings.traditional);bx="POST"}}}var bv=this;b.ajax({url:bw,type:bx,dataType:"html",data:bz,complete:function(bC,bB,bD){bD=bC.responseText;if(bC.isResolved()){bC.done(function(bE){bD=bE});bv.html(e?b("<div>").append(bD.replace(a6,"")).find(e):bD)}if(bA){bv.each(bA,[bD,bB,bC])}}});return this},serialize:function(){return b.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?b.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||q.test(this.nodeName)||aZ.test(this.type))}).map(function(e,bv){var bw=b(this).val();return bw==null?null:b.isArray(bw)?b.map(bw,function(by,bx){return{name:bv.name,value:by.replace(bs,"\r\n")}}):{name:bv.name,value:bw.replace(bs,"\r\n")}}).get()}});b.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,bv){b.fn[bv]=function(bw){return this.on(bv,bw)}});b.each(["get","post"],function(e,bv){b[bv]=function(bw,by,bz,bx){if(b.isFunction(by)){bx=bx||bz;bz=by;by=L}return b.ajax({type:bv,url:bw,data:by,success:bz,dataType:bx})}});b.extend({getScript:function(e,bv){return b.get(e,L,bv,"script")},getJSON:function(e,bv,bw){return b.get(e,bv,bw,"json")},ajaxSetup:function(bv,e){if(e){am(bv,b.ajaxSettings)}else{e=bv;bv=b.ajaxSettings}am(bv,e);return bv},ajaxSettings:{url:aE,isLocal:aM.test(s[1]),global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":aV},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":bb.String,"text html":true,"text json":b.parseJSON,"text xml":b.parseXML},flatOptions:{context:true,url:true}},ajaxPrefilter:f(aa),ajaxTransport:f(r),ajax:function(bz,bx){if(typeof bz==="object"){bx=bz;bz=L}bx=bx||{};var bD=b.ajaxSetup({},bx),bS=bD.context||bD,bG=bS!==bD&&(bS.nodeType||bS instanceof b)?b(bS):b.event,bR=b.Deferred(),bN=b.Callbacks("once memory"),bB=bD.statusCode||{},bC,bH={},bO={},bQ,by,bL,bE,bI,bA=0,bw,bK,bJ={readyState:0,setRequestHeader:function(bT,bU){if(!bA){var e=bT.toLowerCase();bT=bO[e]=bO[e]||bT;bH[bT]=bU}return this},getAllResponseHeaders:function(){return bA===2?bQ:null},getResponseHeader:function(bT){var e;if(bA===2){if(!by){by={};while((e=aD.exec(bQ))){by[e[1].toLowerCase()]=e[2]}}e=by[bT.toLowerCase()]}return e===L?null:e},overrideMimeType:function(e){if(!bA){bD.mimeType=e}return this},abort:function(e){e=e||"abort";if(bL){bL.abort(e)}bF(0,e);return this}};function bF(bZ,bU,b0,bW){if(bA===2){return}bA=2;if(bE){clearTimeout(bE)}bL=L;bQ=bW||"";bJ.readyState=bZ>0?4:0;var bT,b4,b3,bX=bU,bY=b0?bj(bD,bJ,b0):L,bV,b2;if(bZ>=200&&bZ<300||bZ===304){if(bD.ifModified){if((bV=bJ.getResponseHeader("Last-Modified"))){b.lastModified[bC]=bV}if((b2=bJ.getResponseHeader("Etag"))){b.etag[bC]=b2}}if(bZ===304){bX="notmodified";bT=true}else{try{b4=G(bD,bY);bX="success";bT=true}catch(b1){bX="parsererror";b3=b1}}}else{b3=bX;if(!bX||bZ){bX="error";if(bZ<0){bZ=0}}}bJ.status=bZ;bJ.statusText=""+(bU||bX);if(bT){bR.resolveWith(bS,[b4,bX,bJ])}else{bR.rejectWith(bS,[bJ,bX,b3])}bJ.statusCode(bB);bB=L;if(bw){bG.trigger("ajax"+(bT?"Success":"Error"),[bJ,bD,bT?b4:b3])}bN.fireWith(bS,[bJ,bX]);if(bw){bG.trigger("ajaxComplete",[bJ,bD]);if(!(--b.active)){b.event.trigger("ajaxStop")}}}bR.promise(bJ);bJ.success=bJ.done;bJ.error=bJ.fail;bJ.complete=bN.add;bJ.statusCode=function(bT){if(bT){var e;if(bA<2){for(e in bT){bB[e]=[bB[e],bT[e]]}}else{e=bT[bJ.status];bJ.then(e,e)}}return this};bD.url=((bz||bD.url)+"").replace(bq,"").replace(c,s[1]+"//");bD.dataTypes=b.trim(bD.dataType||"*").toLowerCase().split(h);if(bD.crossDomain==null){bI=K.exec(bD.url.toLowerCase());bD.crossDomain=!!(bI&&(bI[1]!=s[1]||bI[2]!=s[2]||(bI[3]||(bI[1]==="http:"?80:443))!=(s[3]||(s[1]==="http:"?80:443))))}if(bD.data&&bD.processData&&typeof bD.data!=="string"){bD.data=b.param(bD.data,bD.traditional)}aW(aa,bD,bx,bJ);if(bA===2){return false}bw=bD.global;bD.type=bD.type.toUpperCase();bD.hasContent=!aQ.test(bD.type);if(bw&&b.active++===0){b.event.trigger("ajaxStart")}if(!bD.hasContent){if(bD.data){bD.url+=(M.test(bD.url)?"&":"?")+bD.data;delete bD.data}bC=bD.url;if(bD.cache===false){var bv=b.now(),bP=bD.url.replace(br,"$1_="+bv);bD.url=bP+((bP===bD.url)?(M.test(bD.url)?"&":"?")+"_="+bv:"")}}if(bD.data&&bD.hasContent&&bD.contentType!==false||bx.contentType){bJ.setRequestHeader("Content-Type",bD.contentType)}if(bD.ifModified){bC=bC||bD.url;if(b.lastModified[bC]){bJ.setRequestHeader("If-Modified-Since",b.lastModified[bC])}if(b.etag[bC]){bJ.setRequestHeader("If-None-Match",b.etag[bC])}}bJ.setRequestHeader("Accept",bD.dataTypes[0]&&bD.accepts[bD.dataTypes[0]]?bD.accepts[bD.dataTypes[0]]+(bD.dataTypes[0]!=="*"?", "+aV+"; q=0.01":""):bD.accepts["*"]);for(bK in bD.headers){bJ.setRequestHeader(bK,bD.headers[bK])}if(bD.beforeSend&&(bD.beforeSend.call(bS,bJ,bD)===false||bA===2)){bJ.abort();return false}for(bK in {success:1,error:1,complete:1}){bJ[bK](bD[bK])}bL=aW(r,bD,bx,bJ);if(!bL){bF(-1,"No Transport")}else{bJ.readyState=1;if(bw){bG.trigger("ajaxSend",[bJ,bD])}if(bD.async&&bD.timeout>0){bE=setTimeout(function(){bJ.abort("timeout")},bD.timeout)}try{bA=1;bL.send(bH,bF)}catch(bM){if(bA<2){bF(-1,bM)}else{throw bM}}}return bJ},param:function(e,bw){var bv=[],by=function(bz,bA){bA=b.isFunction(bA)?bA():bA;bv[bv.length]=encodeURIComponent(bz)+"="+encodeURIComponent(bA)};if(bw===L){bw=b.ajaxSettings.traditional}if(b.isArray(e)||(e.jquery&&!b.isPlainObject(e))){b.each(e,function(){by(this.name,this.value)})}else{for(var bx in e){v(bx,e[bx],bw,by)}}return bv.join("&").replace(k,"+")}});function v(bw,by,bv,bx){if(b.isArray(by)){b.each(by,function(bA,bz){if(bv||ap.test(bw)){bx(bw,bz)}else{v(bw+"["+(typeof bz==="object"||b.isArray(bz)?bA:"")+"]",bz,bv,bx)}})}else{if(!bv&&by!=null&&typeof by==="object"){for(var e in by){v(bw+"["+e+"]",by[e],bv,bx)}}else{bx(bw,by)}}}b.extend({active:0,lastModified:{},etag:{}});function bj(bD,bC,bz){var bv=bD.contents,bB=bD.dataTypes,bw=bD.responseFields,by,bA,bx,e;for(bA in bw){if(bA in bz){bC[bw[bA]]=bz[bA]}}while(bB[0]==="*"){bB.shift();if(by===L){by=bD.mimeType||bC.getResponseHeader("content-type")}}if(by){for(bA in bv){if(bv[bA]&&bv[bA].test(by)){bB.unshift(bA);break}}}if(bB[0] in bz){bx=bB[0]}else{for(bA in bz){if(!bB[0]||bD.converters[bA+" "+bB[0]]){bx=bA;break}if(!e){e=bA}}bx=bx||e}if(bx){if(bx!==bB[0]){bB.unshift(bx)}return bz[bx]}}function G(bH,bz){if(bH.dataFilter){bz=bH.dataFilter(bz,bH.dataType)}var bD=bH.dataTypes,bG={},bA,bE,bw=bD.length,bB,bC=bD[0],bx,by,bF,bv,e;for(bA=1;bA<bw;bA++){if(bA===1){for(bE in bH.converters){if(typeof bE==="string"){bG[bE.toLowerCase()]=bH.converters[bE]}}}bx=bC;bC=bD[bA];if(bC==="*"){bC=bx}else{if(bx!=="*"&&bx!==bC){by=bx+" "+bC;bF=bG[by]||bG["* "+bC];if(!bF){e=L;for(bv in bG){bB=bv.split(" ");if(bB[0]===bx||bB[0]==="*"){e=bG[bB[1]+" "+bC];if(e){bv=bG[bv];if(bv===true){bF=e}else{if(e===true){bF=bv}}break}}}}if(!(bF||e)){b.error("No conversion from "+by.replace(" "," to "))}if(bF!==true){bz=bF?bF(bz):e(bv(bz))}}}}return bz}var aC=b.now(),u=/(\=)\?(&|$)|\?\?/i;b.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return b.expando+"_"+(aC++)}});b.ajaxPrefilter("json jsonp",function(bD,bA,bC){var bx=bD.contentType==="application/x-www-form-urlencoded"&&(typeof bD.data==="string");if(bD.dataTypes[0]==="jsonp"||bD.jsonp!==false&&(u.test(bD.url)||bx&&u.test(bD.data))){var bB,bw=bD.jsonpCallback=b.isFunction(bD.jsonpCallback)?bD.jsonpCallback():bD.jsonpCallback,bz=bb[bw],e=bD.url,by=bD.data,bv="$1"+bw+"$2";if(bD.jsonp!==false){e=e.replace(u,bv);if(bD.url===e){if(bx){by=by.replace(u,bv)}if(bD.data===by){e+=(/\?/.test(e)?"&":"?")+bD.jsonp+"="+bw}}}bD.url=e;bD.data=by;bb[bw]=function(bE){bB=[bE]};bC.always(function(){bb[bw]=bz;if(bB&&b.isFunction(bz)){bb[bw](bB[0])}});bD.converters["script json"]=function(){if(!bB){b.error(bw+" was not called")}return bB[0]};bD.dataTypes[0]="json";return"script"}});b.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){b.globalEval(e);return e}}});b.ajaxPrefilter("script",function(e){if(e.cache===L){e.cache=false}if(e.crossDomain){e.type="GET";e.global=false}});b.ajaxTransport("script",function(bw){if(bw.crossDomain){var e,bv=av.head||av.getElementsByTagName("head")[0]||av.documentElement;return{send:function(bx,by){e=av.createElement("script");e.async="async";if(bw.scriptCharset){e.charset=bw.scriptCharset}e.src=bw.url;e.onload=e.onreadystatechange=function(bA,bz){if(bz||!e.readyState||/loaded|complete/.test(e.readyState)){e.onload=e.onreadystatechange=null;if(bv&&e.parentNode){bv.removeChild(e)}e=L;if(!bz){by(200,"success")}}};bv.insertBefore(e,bv.firstChild)},abort:function(){if(e){e.onload(0,1)}}}}});var B=bb.ActiveXObject?function(){for(var e in N){N[e](0,1)}}:false,y=0,N;function aL(){try{return new bb.XMLHttpRequest()}catch(bv){}}function aj(){try{return new bb.ActiveXObject("Microsoft.XMLHTTP")}catch(bv){}}b.ajaxSettings.xhr=bb.ActiveXObject?function(){return !this.isLocal&&aL()||aj()}:aL;(function(e){b.extend(b.support,{ajax:!!e,cors:!!e&&("withCredentials" in e)})})(b.ajaxSettings.xhr());if(b.support.ajax){b.ajaxTransport(function(e){if(!e.crossDomain||b.support.cors){var bv;return{send:function(bB,bw){var bA=e.xhr(),bz,by;if(e.username){bA.open(e.type,e.url,e.async,e.username,e.password)}else{bA.open(e.type,e.url,e.async)}if(e.xhrFields){for(by in e.xhrFields){bA[by]=e.xhrFields[by]}}if(e.mimeType&&bA.overrideMimeType){bA.overrideMimeType(e.mimeType)}if(!e.crossDomain&&!bB["X-Requested-With"]){bB["X-Requested-With"]="XMLHttpRequest"}try{for(by in bB){bA.setRequestHeader(by,bB[by])}}catch(bx){}bA.send((e.hasContent&&e.data)||null);bv=function(bK,bE){var bF,bD,bC,bI,bH;try{if(bv&&(bE||bA.readyState===4)){bv=L;if(bz){bA.onreadystatechange=b.noop;if(B){delete N[bz]}}if(bE){if(bA.readyState!==4){bA.abort()}}else{bF=bA.status;bC=bA.getAllResponseHeaders();bI={};bH=bA.responseXML;if(bH&&bH.documentElement){bI.xml=bH}bI.text=bA.responseText;try{bD=bA.statusText}catch(bJ){bD=""}if(!bF&&e.isLocal&&!e.crossDomain){bF=bI.text?200:404}else{if(bF===1223){bF=204}}}}}catch(bG){if(!bE){bw(-1,bG)}}if(bI){bw(bF,bD,bI,bC)}};if(!e.async||bA.readyState===4){bv()}else{bz=++y;if(B){if(!N){N={};b(bb).unload(B)}N[bz]=bv}bA.onreadystatechange=bv}},abort:function(){if(bv){bv(0,1)
+}}}}})}var Q={},a8,m,aB=/^(?:toggle|show|hide)$/,aT=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,a3,aH=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],a4;b.fn.extend({show:function(bx,bA,bz){var bw,by;if(bx||bx===0){return this.animate(a0("show",3),bx,bA,bz)}else{for(var bv=0,e=this.length;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(!b._data(bw,"olddisplay")&&by==="none"){by=bw.style.display=""}if(by===""&&b.css(bw,"display")==="none"){b._data(bw,"olddisplay",x(bw.nodeName))}}}for(bv=0;bv<e;bv++){bw=this[bv];if(bw.style){by=bw.style.display;if(by===""||by==="none"){bw.style.display=b._data(bw,"olddisplay")||""}}}return this}},hide:function(bx,bA,bz){if(bx||bx===0){return this.animate(a0("hide",3),bx,bA,bz)}else{var bw,by,bv=0,e=this.length;for(;bv<e;bv++){bw=this[bv];if(bw.style){by=b.css(bw,"display");if(by!=="none"&&!b._data(bw,"olddisplay")){b._data(bw,"olddisplay",by)}}}for(bv=0;bv<e;bv++){if(this[bv].style){this[bv].style.display="none"}}return this}},_toggle:b.fn.toggle,toggle:function(bw,bv,bx){var e=typeof bw==="boolean";if(b.isFunction(bw)&&b.isFunction(bv)){this._toggle.apply(this,arguments)}else{if(bw==null||e){this.each(function(){var by=e?bw:b(this).is(":hidden");b(this)[by?"show":"hide"]()})}else{this.animate(a0("toggle",3),bw,bv,bx)}}return this},fadeTo:function(e,bx,bw,bv){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:bx},e,bw,bv)},animate:function(bz,bw,by,bx){var e=b.speed(bw,by,bx);if(b.isEmptyObject(bz)){return this.each(e.complete,[false])}bz=b.extend({},bz);function bv(){if(e.queue===false){b._mark(this)}var bE=b.extend({},e),bK=this.nodeType===1,bI=bK&&b(this).is(":hidden"),bB,bF,bD,bJ,bH,bC,bG,bL,bA;bE.animatedProperties={};for(bD in bz){bB=b.camelCase(bD);if(bD!==bB){bz[bB]=bz[bD];delete bz[bD]}bF=bz[bB];if(b.isArray(bF)){bE.animatedProperties[bB]=bF[1];bF=bz[bB]=bF[0]}else{bE.animatedProperties[bB]=bE.specialEasing&&bE.specialEasing[bB]||bE.easing||"swing"}if(bF==="hide"&&bI||bF==="show"&&!bI){return bE.complete.call(this)}if(bK&&(bB==="height"||bB==="width")){bE.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY];if(b.css(this,"display")==="inline"&&b.css(this,"float")==="none"){if(!b.support.inlineBlockNeedsLayout||x(this.nodeName)==="inline"){this.style.display="inline-block"}else{this.style.zoom=1}}}}if(bE.overflow!=null){this.style.overflow="hidden"}for(bD in bz){bJ=new b.fx(this,bE,bD);bF=bz[bD];if(aB.test(bF)){bA=b._data(this,"toggle"+bD)||(bF==="toggle"?bI?"show":"hide":0);if(bA){b._data(this,"toggle"+bD,bA==="show"?"hide":"show");bJ[bA]()}else{bJ[bF]()}}else{bH=aT.exec(bF);bC=bJ.cur();if(bH){bG=parseFloat(bH[2]);bL=bH[3]||(b.cssNumber[bD]?"":"px");if(bL!=="px"){b.style(this,bD,(bG||1)+bL);bC=((bG||1)/bJ.cur())*bC;b.style(this,bD,bC+bL)}if(bH[1]){bG=((bH[1]==="-="?-1:1)*bG)+bC}bJ.custom(bC,bG,bL)}else{bJ.custom(bC,bF,"")}}}return true}return e.queue===false?this.each(bv):this.queue(e.queue,bv)},stop:function(bw,bv,e){if(typeof bw!=="string"){e=bv;bv=bw;bw=L}if(bv&&bw!==false){this.queue(bw||"fx",[])}return this.each(function(){var bx,by=false,bA=b.timers,bz=b._data(this);if(!e){b._unmark(true,this)}function bB(bE,bF,bD){var bC=bF[bD];b.removeData(bE,bD,true);bC.stop(e)}if(bw==null){for(bx in bz){if(bz[bx]&&bz[bx].stop&&bx.indexOf(".run")===bx.length-4){bB(this,bz,bx)}}}else{if(bz[bx=bw+".run"]&&bz[bx].stop){bB(this,bz,bx)}}for(bx=bA.length;bx--;){if(bA[bx].elem===this&&(bw==null||bA[bx].queue===bw)){if(e){bA[bx](true)}else{bA[bx].saveState()}by=true;bA.splice(bx,1)}}if(!(e&&by)){b.dequeue(this,bw)}})}});function bh(){setTimeout(at,0);return(a4=b.now())}function at(){a4=L}function a0(bv,e){var bw={};b.each(aH.concat.apply([],aH.slice(0,e)),function(){bw[this]=bv});return bw}b.each({slideDown:a0("show",1),slideUp:a0("hide",1),slideToggle:a0("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,bv){b.fn[e]=function(bw,by,bx){return this.animate(bv,bw,by,bx)}});b.extend({speed:function(bw,bx,bv){var e=bw&&typeof bw==="object"?b.extend({},bw):{complete:bv||!bv&&bx||b.isFunction(bw)&&bw,duration:bw,easing:bv&&bx||bx&&!b.isFunction(bx)&&bx};e.duration=b.fx.off?0:typeof e.duration==="number"?e.duration:e.duration in b.fx.speeds?b.fx.speeds[e.duration]:b.fx.speeds._default;if(e.queue==null||e.queue===true){e.queue="fx"}e.old=e.complete;e.complete=function(by){if(b.isFunction(e.old)){e.old.call(this)}if(e.queue){b.dequeue(this,e.queue)}else{if(by!==false){b._unmark(this)}}};return e},easing:{linear:function(bw,bx,e,bv){return e+bv*bw},swing:function(bw,bx,e,bv){return((-Math.cos(bw*Math.PI)/2)+0.5)*bv+e}},timers:[],fx:function(bv,e,bw){this.options=e;this.elem=bv;this.prop=bw;e.orig=e.orig||{}}});b.fx.prototype={update:function(){if(this.options.step){this.options.step.call(this.elem,this.now,this)}(b.fx.step[this.prop]||b.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)){return this.elem[this.prop]}var e,bv=b.css(this.elem,this.prop);return isNaN(e=parseFloat(bv))?!bv||bv==="auto"?0:bv:e},custom:function(bz,by,bx){var e=this,bw=b.fx;this.startTime=a4||bh();this.end=by;this.now=this.start=bz;this.pos=this.state=0;this.unit=bx||this.unit||(b.cssNumber[this.prop]?"":"px");function bv(bA){return e.step(bA)}bv.queue=this.options.queue;bv.elem=this.elem;bv.saveState=function(){if(e.options.hide&&b._data(e.elem,"fxshow"+e.prop)===L){b._data(e.elem,"fxshow"+e.prop,e.start)}};if(bv()&&b.timers.push(bv)&&!a3){a3=setInterval(bw.tick,bw.interval)}},show:function(){var e=b._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=e||b.style(this.elem,this.prop);this.options.show=true;if(e!==L){this.custom(this.cur(),e)}else{this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur())}b(this.elem).show()},hide:function(){this.options.orig[this.prop]=b._data(this.elem,"fxshow"+this.prop)||b.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(by){var bA,bB,bv,bx=a4||bh(),e=true,bz=this.elem,bw=this.options;if(by||bx>=bw.duration+this.startTime){this.now=this.end;this.pos=this.state=1;this.update();bw.animatedProperties[this.prop]=true;for(bA in bw.animatedProperties){if(bw.animatedProperties[bA]!==true){e=false}}if(e){if(bw.overflow!=null&&!b.support.shrinkWrapBlocks){b.each(["","X","Y"],function(bC,bD){bz.style["overflow"+bD]=bw.overflow[bC]})}if(bw.hide){b(bz).hide()}if(bw.hide||bw.show){for(bA in bw.animatedProperties){b.style(bz,bA,bw.orig[bA]);b.removeData(bz,"fxshow"+bA,true);b.removeData(bz,"toggle"+bA,true)}}bv=bw.complete;if(bv){bw.complete=false;bv.call(bz)}}return false}else{if(bw.duration==Infinity){this.now=bx}else{bB=bx-this.startTime;this.state=bB/bw.duration;this.pos=b.easing[bw.animatedProperties[this.prop]](this.state,bB,0,1,bw.duration);this.now=this.start+((this.end-this.start)*this.pos)}this.update()}return true}};b.extend(b.fx,{tick:function(){var bw,bv=b.timers,e=0;for(;e<bv.length;e++){bw=bv[e];if(!bw()&&bv[e]===bw){bv.splice(e--,1)}}if(!bv.length){b.fx.stop()}},interval:13,stop:function(){clearInterval(a3);a3=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(e){b.style(e.elem,"opacity",e.now)},_default:function(e){if(e.elem.style&&e.elem.style[e.prop]!=null){e.elem.style[e.prop]=e.now+e.unit}else{e.elem[e.prop]=e.now}}}});b.each(["width","height"],function(e,bv){b.fx.step[bv]=function(bw){b.style(bw.elem,bv,Math.max(0,bw.now)+bw.unit)}});if(b.expr&&b.expr.filters){b.expr.filters.animated=function(e){return b.grep(b.timers,function(bv){return e===bv.elem}).length}}function x(bx){if(!Q[bx]){var e=av.body,bv=b("<"+bx+">").appendTo(e),bw=bv.css("display");bv.remove();if(bw==="none"||bw===""){if(!a8){a8=av.createElement("iframe");a8.frameBorder=a8.width=a8.height=0}e.appendChild(a8);if(!m||!a8.createElement){m=(a8.contentWindow||a8.contentDocument).document;m.write((av.compatMode==="CSS1Compat"?"<!doctype html>":"")+"<html><body>");m.close()}bv=m.createElement(bx);m.body.appendChild(bv);bw=b.css(bv,"display");e.removeChild(a8)}Q[bx]=bw}return Q[bx]}var V=/^t(?:able|d|h)$/i,ad=/^(?:body|html)$/i;if("getBoundingClientRect" in av.documentElement){b.fn.offset=function(bI){var by=this[0],bB;if(bI){return this.each(function(e){b.offset.setOffset(this,bI,e)})}if(!by||!by.ownerDocument){return null}if(by===by.ownerDocument.body){return b.offset.bodyOffset(by)}try{bB=by.getBoundingClientRect()}catch(bF){}var bH=by.ownerDocument,bw=bH.documentElement;if(!bB||!b.contains(bw,by)){return bB?{top:bB.top,left:bB.left}:{top:0,left:0}}var bC=bH.body,bD=aK(bH),bA=bw.clientTop||bC.clientTop||0,bE=bw.clientLeft||bC.clientLeft||0,bv=bD.pageYOffset||b.support.boxModel&&bw.scrollTop||bC.scrollTop,bz=bD.pageXOffset||b.support.boxModel&&bw.scrollLeft||bC.scrollLeft,bG=bB.top+bv-bA,bx=bB.left+bz-bE;return{top:bG,left:bx}}}else{b.fn.offset=function(bF){var bz=this[0];if(bF){return this.each(function(bG){b.offset.setOffset(this,bF,bG)})}if(!bz||!bz.ownerDocument){return null}if(bz===bz.ownerDocument.body){return b.offset.bodyOffset(bz)}var bC,bw=bz.offsetParent,bv=bz,bE=bz.ownerDocument,bx=bE.documentElement,bA=bE.body,bB=bE.defaultView,e=bB?bB.getComputedStyle(bz,null):bz.currentStyle,bD=bz.offsetTop,by=bz.offsetLeft;while((bz=bz.parentNode)&&bz!==bA&&bz!==bx){if(b.support.fixedPosition&&e.position==="fixed"){break}bC=bB?bB.getComputedStyle(bz,null):bz.currentStyle;bD-=bz.scrollTop;by-=bz.scrollLeft;if(bz===bw){bD+=bz.offsetTop;by+=bz.offsetLeft;if(b.support.doesNotAddBorder&&!(b.support.doesAddBorderForTableAndCells&&V.test(bz.nodeName))){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}bv=bw;bw=bz.offsetParent}if(b.support.subtractsBorderForOverflowNotVisible&&bC.overflow!=="visible"){bD+=parseFloat(bC.borderTopWidth)||0;by+=parseFloat(bC.borderLeftWidth)||0}e=bC}if(e.position==="relative"||e.position==="static"){bD+=bA.offsetTop;by+=bA.offsetLeft}if(b.support.fixedPosition&&e.position==="fixed"){bD+=Math.max(bx.scrollTop,bA.scrollTop);by+=Math.max(bx.scrollLeft,bA.scrollLeft)}return{top:bD,left:by}}}b.offset={bodyOffset:function(e){var bw=e.offsetTop,bv=e.offsetLeft;if(b.support.doesNotIncludeMarginInBodyOffset){bw+=parseFloat(b.css(e,"marginTop"))||0;bv+=parseFloat(b.css(e,"marginLeft"))||0}return{top:bw,left:bv}},setOffset:function(bx,bG,bA){var bB=b.css(bx,"position");if(bB==="static"){bx.style.position="relative"}var bz=b(bx),bv=bz.offset(),e=b.css(bx,"top"),bE=b.css(bx,"left"),bF=(bB==="absolute"||bB==="fixed")&&b.inArray("auto",[e,bE])>-1,bD={},bC={},bw,by;if(bF){bC=bz.position();bw=bC.top;by=bC.left}else{bw=parseFloat(e)||0;by=parseFloat(bE)||0}if(b.isFunction(bG)){bG=bG.call(bx,bA,bv)}if(bG.top!=null){bD.top=(bG.top-bv.top)+bw}if(bG.left!=null){bD.left=(bG.left-bv.left)+by}if("using" in bG){bG.using.call(bx,bD)}else{bz.css(bD)}}};b.fn.extend({position:function(){if(!this[0]){return null}var bw=this[0],bv=this.offsetParent(),bx=this.offset(),e=ad.test(bv[0].nodeName)?{top:0,left:0}:bv.offset();bx.top-=parseFloat(b.css(bw,"marginTop"))||0;bx.left-=parseFloat(b.css(bw,"marginLeft"))||0;e.top+=parseFloat(b.css(bv[0],"borderTopWidth"))||0;e.left+=parseFloat(b.css(bv[0],"borderLeftWidth"))||0;return{top:bx.top-e.top,left:bx.left-e.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||av.body;while(e&&(!ad.test(e.nodeName)&&b.css(e,"position")==="static")){e=e.offsetParent}return e})}});b.each(["Left","Top"],function(bv,e){var bw="scroll"+e;b.fn[bw]=function(bz){var bx,by;if(bz===L){bx=this[0];if(!bx){return null}by=aK(bx);return by?("pageXOffset" in by)?by[bv?"pageYOffset":"pageXOffset"]:b.support.boxModel&&by.document.documentElement[bw]||by.document.body[bw]:bx[bw]}return this.each(function(){by=aK(this);if(by){by.scrollTo(!bv?bz:b(by).scrollLeft(),bv?bz:b(by).scrollTop())}else{this[bw]=bz}})}});function aK(e){return b.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:false}b.each(["Height","Width"],function(bv,e){var bw=e.toLowerCase();b.fn["inner"+e]=function(){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,"padding")):this[bw]():null};b.fn["outer"+e]=function(by){var bx=this[0];return bx?bx.style?parseFloat(b.css(bx,bw,by?"margin":"border")):this[bw]():null};b.fn[bw]=function(bz){var bA=this[0];if(!bA){return bz==null?null:this}if(b.isFunction(bz)){return this.each(function(bE){var bD=b(this);bD[bw](bz.call(this,bE,bD[bw]()))})}if(b.isWindow(bA)){var bB=bA.document.documentElement["client"+e],bx=bA.document.body;return bA.document.compatMode==="CSS1Compat"&&bB||bx&&bx["client"+e]||bB}else{if(bA.nodeType===9){return Math.max(bA.documentElement["client"+e],bA.body["scroll"+e],bA.documentElement["scroll"+e],bA.body["offset"+e],bA.documentElement["offset"+e])}else{if(bz===L){var bC=b.css(bA,bw),by=parseFloat(bC);return b.isNumeric(by)?by:bC}else{return this.css(bw,typeof bz==="string"?bz:bz+"px")}}}}});bb.jQuery=bb.$=b;if(typeof define==="function"&&define.amd&&define.amd.jQuery){define("jquery",[],function(){return b
+})}})(window);
+/*!
+ * jQuery UI 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI
+ */
+(function(a,d){a.ui=a.ui||{};if(a.ui.version){return}a.extend(a.ui,{version:"1.8.18",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}});a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(e,f){return typeof e==="number"?this.each(function(){var g=this;setTimeout(function(){a(g).focus();if(f){f.call(g)}},e)}):this._focus.apply(this,arguments)},scrollParent:function(){var e;if((a.browser.msie&&(/(static|relative)/).test(this.css("position")))||(/absolute/).test(this.css("position"))){e=this.parents().filter(function(){return(/(relative|absolute|fixed)/).test(a.curCSS(this,"position",1))&&(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}else{e=this.parents().filter(function(){return(/(auto|scroll)/).test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0)}return(/fixed/).test(this.css("position"))||!e.length?a(document):e},zIndex:function(h){if(h!==d){return this.css("zIndex",h)}if(this.length){var f=a(this[0]),e,g;while(f.length&&f[0]!==document){e=f.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){g=parseInt(f.css("zIndex"),10);if(!isNaN(g)&&g!==0){return g}}f=f.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}});a.each(["Width","Height"],function(g,e){var f=e==="Width"?["Left","Right"]:["Top","Bottom"],h=e.toLowerCase(),k={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};function j(m,l,i,n){a.each(f,function(){l-=parseFloat(a.curCSS(m,"padding"+this,true))||0;if(i){l-=parseFloat(a.curCSS(m,"border"+this+"Width",true))||0}if(n){l-=parseFloat(a.curCSS(m,"margin"+this,true))||0}});return l}a.fn["inner"+e]=function(i){if(i===d){return k["inner"+e].call(this)}return this.each(function(){a(this).css(h,j(this,i)+"px")})};a.fn["outer"+e]=function(i,l){if(typeof i!=="number"){return k["outer"+e].call(this,i)}return this.each(function(){a(this).css(h,j(this,i,true,l)+"px")})}});function c(g,e){var j=g.nodeName.toLowerCase();if("area"===j){var i=g.parentNode,h=i.name,f;if(!g.href||!h||i.nodeName.toLowerCase()!=="map"){return false}f=a("img[usemap=#"+h+"]")[0];return !!f&&b(f)}return(/input|select|textarea|button|object/.test(j)?!g.disabled:"a"==j?g.href||e:e)&&b(g)}function b(e){return !a(e).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.extend(a.expr[":"],{data:function(g,f,e){return !!a.data(g,e[3])},focusable:function(e){return c(e,!isNaN(a.attr(e,"tabindex")))},tabbable:function(g){var e=a.attr(g,"tabindex"),f=isNaN(e);return(f||e>=0)&&c(g,!f)}});a(function(){var e=document.body,f=e.appendChild(f=document.createElement("div"));f.offsetHeight;a.extend(f.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0});a.support.minHeight=f.offsetHeight===100;a.support.selectstart="onselectstart" in f;e.removeChild(f).style.display="none"});a.extend(a.ui,{plugin:{add:function(f,g,j){var h=a.ui[f].prototype;for(var e in j){h.plugins[e]=h.plugins[e]||[];h.plugins[e].push([g,j[e]])}},call:function(e,g,f){var j=e.plugins[g];if(!j||!e.element[0].parentNode){return}for(var h=0;h<j.length;h++){if(e.options[j[h][0]]){j[h][1].apply(e.element,f)}}}},contains:function(f,e){return document.compareDocumentPosition?f.compareDocumentPosition(e)&16:f!==e&&f.contains(e)},hasScroll:function(h,f){if(a(h).css("overflow")==="hidden"){return false}var e=(f&&f==="left")?"scrollLeft":"scrollTop",g=false;if(h[e]>0){return true}h[e]=1;g=(h[e]>0);h[e]=0;return g},isOverAxis:function(f,e,g){return(f>e)&&(f<(e+g))},isOver:function(j,f,i,h,e,g){return a.ui.isOverAxis(j,i,e)&&a.ui.isOverAxis(f,h,g)}})})(jQuery);/*!
+ * jQuery UI Widget 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Widget
+ */
+(function(b,d){if(b.cleanData){var c=b.cleanData;b.cleanData=function(f){for(var g=0,h;(h=f[g])!=null;g++){try{b(h).triggerHandler("remove")}catch(j){}}c(f)}}else{var a=b.fn.remove;b.fn.remove=function(e,f){return this.each(function(){if(!f){if(!e||b.filter(e,[this]).length){b("*",this).add([this]).each(function(){try{b(this).triggerHandler("remove")}catch(g){}})}}return a.call(b(this),e,f)})}}b.widget=function(f,h,e){var g=f.split(".")[0],j;f=f.split(".")[1];j=g+"-"+f;if(!e){e=h;h=b.Widget}b.expr[":"][j]=function(k){return !!b.data(k,f)};b[g]=b[g]||{};b[g][f]=function(k,l){if(arguments.length){this._createWidget(k,l)}};var i=new h();i.options=b.extend(true,{},i.options);b[g][f].prototype=b.extend(true,i,{namespace:g,widgetName:f,widgetEventPrefix:b[g][f].prototype.widgetEventPrefix||f,widgetBaseClass:j},e);b.widget.bridge(f,b[g][f])};b.widget.bridge=function(f,e){b.fn[f]=function(i){var g=typeof i==="string",h=Array.prototype.slice.call(arguments,1),j=this;i=!g&&h.length?b.extend.apply(null,[true,i].concat(h)):i;if(g&&i.charAt(0)==="_"){return j}if(g){this.each(function(){var k=b.data(this,f),l=k&&b.isFunction(k[i])?k[i].apply(k,h):k;if(l!==k&&l!==d){j=l;return false}})}else{this.each(function(){var k=b.data(this,f);if(k){k.option(i||{})._init()}else{b.data(this,f,new e(i,this))}})}return j}};b.Widget=function(e,f){if(arguments.length){this._createWidget(e,f)}};b.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:false},_createWidget:function(f,g){b.data(g,this.widgetName,this);this.element=b(g);this.options=b.extend(true,{},this.options,this._getCreateOptions(),f);var e=this;this.element.bind("remove."+this.widgetName,function(){e.destroy()});this._create();this._trigger("create");this._init()},_getCreateOptions:function(){return b.metadata&&b.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName);this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled ui-state-disabled")},widget:function(){return this.element},option:function(f,g){var e=f;if(arguments.length===0){return b.extend({},this.options)}if(typeof f==="string"){if(g===d){return this.options[f]}e={};e[f]=g}this._setOptions(e);return this},_setOptions:function(f){var e=this;b.each(f,function(g,h){e._setOption(g,h)});return this},_setOption:function(e,f){this.options[e]=f;if(e==="disabled"){this.widget()[f?"addClass":"removeClass"](this.widgetBaseClass+"-disabled ui-state-disabled").attr("aria-disabled",f)}return this},enable:function(){return this._setOption("disabled",false)},disable:function(){return this._setOption("disabled",true)},_trigger:function(e,f,g){var j,i,h=this.options[e];g=g||{};f=b.Event(f);f.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase();f.target=this.element[0];i=f.originalEvent;if(i){for(j in i){if(!(j in f)){f[j]=i[j]}}}this.element.trigger(f,g);return !(b.isFunction(h)&&h.call(this.element[0],f,g)===false||f.isDefaultPrevented())}}})(jQuery);/*!
+ * jQuery UI Mouse 1.8.18
+ *
+ * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Mouse
+ *
+ * Depends:
+ * jquery.ui.widget.js
+ */
+(function(b,c){var a=false;b(document).mouseup(function(d){a=false});b.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var d=this;this.element.bind("mousedown."+this.widgetName,function(e){return d._mouseDown(e)}).bind("click."+this.widgetName,function(e){if(true===b.data(e.target,d.widgetName+".preventClickEvent")){b.removeData(e.target,d.widgetName+".preventClickEvent");e.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName)},_mouseDown:function(f){if(a){return}(this._mouseStarted&&this._mouseUp(f));this._mouseDownEvent=f;var e=this,g=(f.which==1),d=(typeof this.options.cancel=="string"&&f.target.nodeName?b(f.target).closest(this.options.cancel).length:false);if(!g||d||!this._mouseCapture(f)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){e.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(f)&&this._mouseDelayMet(f)){this._mouseStarted=(this._mouseStart(f)!==false);if(!this._mouseStarted){f.preventDefault();return true}}if(true===b.data(f.target,this.widgetName+".preventClickEvent")){b.removeData(f.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(h){return e._mouseMove(h)};this._mouseUpDelegate=function(h){return e._mouseUp(h)};b(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);f.preventDefault();a=true;return true},_mouseMove:function(d){if(b.browser.msie&&!(document.documentMode>=9)&&!d.button){return this._mouseUp(d)}if(this._mouseStarted){this._mouseDrag(d);return d.preventDefault()}if(this._mouseDistanceMet(d)&&this._mouseDelayMet(d)){this._mouseStarted=(this._mouseStart(this._mouseDownEvent,d)!==false);(this._mouseStarted?this._mouseDrag(d):this._mouseUp(d))}return !this._mouseStarted},_mouseUp:function(d){b(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(d.target==this._mouseDownEvent.target){b.data(d.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(d)}return false},_mouseDistanceMet:function(d){return(Math.max(Math.abs(this._mouseDownEvent.pageX-d.pageX),Math.abs(this._mouseDownEvent.pageY-d.pageY))>=this.options.distance)},_mouseDelayMet:function(d){return this.mouseDelayMet},_mouseStart:function(d){},_mouseDrag:function(d){},_mouseStop:function(d){},_mouseCapture:function(d){return true}})})(jQuery);(function(c,d){c.widget("ui.resizable",c.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1000},_create:function(){var f=this,k=this.options;this.element.addClass("ui-resizable");c.extend(this,{_aspectRatio:!!(k.aspectRatio),aspectRatio:k.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:k.helper||k.ghost||k.animate?k.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)){this.element.wrap(c('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("resizable",this.element.data("resizable"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=k.handles||(!c(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});if(this.handles.constructor==String){if(this.handles=="all"){this.handles="n,e,s,w,se,sw,ne,nw"}var l=this.handles.split(",");this.handles={};for(var g=0;g<l.length;g++){var j=c.trim(l[g]),e="ui-resizable-"+j;var h=c('<div class="ui-resizable-handle '+e+'"></div>');if(/sw|se|ne|nw/.test(j)){h.css({zIndex:++k.zIndex})}if("se"==j){h.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[j]=".ui-resizable-"+j;this.element.append(h)}}this._renderAxis=function(q){q=q||this.element;for(var n in this.handles){if(this.handles[n].constructor==String){this.handles[n]=c(this.handles[n],this.element).show()}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var o=c(this.handles[n],this.element),p=0;p=/sw|ne|nw|se|n|s/.test(n)?o.outerHeight():o.outerWidth();var m=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");q.css(m,p);this._proportionallyResize()}if(!c(this.handles[n]).length){continue}}};this._renderAxis(this.element);this._handles=c(".ui-resizable-handle",this.element).disableSelection();this._handles.mouseover(function(){if(!f.resizing){if(this.className){var i=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}f.axis=i&&i[1]?i[1]:"se"}});if(k.autoHide){this._handles.hide();c(this.element).addClass("ui-resizable-autohide").hover(function(){if(k.disabled){return}c(this).removeClass("ui-resizable-autohide");f._handles.show()},function(){if(k.disabled){return}if(!f.resizing){c(this).addClass("ui-resizable-autohide");f._handles.hide()}})}this._mouseInit()},destroy:function(){this._mouseDestroy();var e=function(g){c(g).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){e(this.element);var f=this.element;f.after(this.originalElement.css({position:f.css("position"),width:f.outerWidth(),height:f.outerHeight(),top:f.css("top"),left:f.css("left")})).remove()}this.originalElement.css("resize",this.originalResizeStyle);e(this.originalElement);return this},_mouseCapture:function(f){var g=false;for(var e in this.handles){if(c(this.handles[e])[0]==f.target){g=true}}return !this.options.disabled&&g},_mouseStart:function(g){var j=this.options,f=this.element.position(),e=this.element;this.resizing=true;this.documentScroll={top:c(document).scrollTop(),left:c(document).scrollLeft()};if(e.is(".ui-draggable")||(/absolute/).test(e.css("position"))){e.css({position:"absolute",top:f.top,left:f.left})}this._renderProxy();var k=b(this.helper.css("left")),h=b(this.helper.css("top"));if(j.containment){k+=c(j.containment).scrollLeft()||0;h+=c(j.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:k,top:h};this.size=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalSize=this._helper?{width:e.outerWidth(),height:e.outerHeight()}:{width:e.width(),height:e.height()};this.originalPosition={left:k,top:h};this.sizeDiff={width:e.outerWidth()-e.width(),height:e.outerHeight()-e.height()};this.originalMousePosition={left:g.pageX,top:g.pageY};this.aspectRatio=(typeof j.aspectRatio=="number")?j.aspectRatio:((this.originalSize.width/this.originalSize.height)||1);var i=c(".ui-resizable-"+this.axis).css("cursor");c("body").css("cursor",i=="auto"?this.axis+"-resize":i);e.addClass("ui-resizable-resizing");this._propagate("start",g);return true},_mouseDrag:function(e){var h=this.helper,g=this.options,m={},q=this,j=this.originalMousePosition,n=this.axis;var r=(e.pageX-j.left)||0,p=(e.pageY-j.top)||0;var i=this._change[n];if(!i){return false}var l=i.apply(this,[e,r,p]),k=c.browser.msie&&c.browser.version<7,f=this.sizeDiff;this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey){l=this._updateRatio(l,e)}l=this._respectSize(l,e);this._propagate("resize",e);h.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"});if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}this._updateCache(l);this._trigger("resize",e,this.ui());return false},_mouseStop:function(h){this.resizing=false;var i=this.options,m=this;if(this._helper){var g=this._proportionallyResizeElements,e=g.length&&(/textarea/i).test(g[0].nodeName),f=e&&c.ui.hasScroll(g[0],"left")?0:m.sizeDiff.height,k=e?0:m.sizeDiff.width;var n={width:(m.helper.width()-k),height:(m.helper.height()-f)},j=(parseInt(m.element.css("left"),10)+(m.position.left-m.originalPosition.left))||null,l=(parseInt(m.element.css("top"),10)+(m.position.top-m.originalPosition.top))||null;if(!i.animate){this.element.css(c.extend(n,{top:l,left:j}))}m.helper.height(m.size.height);m.helper.width(m.size.width);if(this._helper&&!i.animate){this._proportionallyResize()}}c("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",h);if(this._helper){this.helper.remove()}return false},_updateVirtualBoundaries:function(g){var j=this.options,i,h,f,k,e;e={minWidth:a(j.minWidth)?j.minWidth:0,maxWidth:a(j.maxWidth)?j.maxWidth:Infinity,minHeight:a(j.minHeight)?j.minHeight:0,maxHeight:a(j.maxHeight)?j.maxHeight:Infinity};if(this._aspectRatio||g){i=e.minHeight*this.aspectRatio;f=e.minWidth/this.aspectRatio;h=e.maxHeight*this.aspectRatio;k=e.maxWidth/this.aspectRatio;if(i>e.minWidth){e.minWidth=i}if(f>e.minHeight){e.minHeight=f}if(h<e.maxWidth){e.maxWidth=h}if(k<e.maxHeight){e.maxHeight=k}}this._vBoundaries=e},_updateCache:function(e){var f=this.options;this.offset=this.helper.offset();if(a(e.left)){this.position.left=e.left}if(a(e.top)){this.position.top=e.top}if(a(e.height)){this.size.height=e.height}if(a(e.width)){this.size.width=e.width}},_updateRatio:function(h,g){var i=this.options,j=this.position,f=this.size,e=this.axis;if(a(h.height)){h.width=(h.height*this.aspectRatio)}else{if(a(h.width)){h.height=(h.width/this.aspectRatio)}}if(e=="sw"){h.left=j.left+(f.width-h.width);h.top=null}if(e=="nw"){h.top=j.top+(f.height-h.height);h.left=j.left+(f.width-h.width)}return h},_respectSize:function(l,g){var j=this.helper,i=this._vBoundaries,r=this._aspectRatio||g.shiftKey,q=this.axis,t=a(l.width)&&i.maxWidth&&(i.maxWidth<l.width),m=a(l.height)&&i.maxHeight&&(i.maxHeight<l.height),h=a(l.width)&&i.minWidth&&(i.minWidth>l.width),s=a(l.height)&&i.minHeight&&(i.minHeight>l.height);if(h){l.width=i.minWidth}if(s){l.height=i.minHeight}if(t){l.width=i.maxWidth}if(m){l.height=i.maxHeight}var f=this.originalPosition.left+this.originalSize.width,p=this.position.top+this.size.height;var k=/sw|nw|w/.test(q),e=/nw|ne|n/.test(q);if(h&&k){l.left=f-i.minWidth}if(t&&k){l.left=f-i.maxWidth}if(s&&e){l.top=p-i.minHeight}if(m&&e){l.top=p-i.maxHeight}var n=!l.width&&!l.height;if(n&&!l.left&&l.top){l.top=null}else{if(n&&!l.top&&l.left){l.left=null}}return l},_proportionallyResize:function(){var k=this.options;if(!this._proportionallyResizeElements.length){return}var g=this.helper||this.element;for(var f=0;f<this._proportionallyResizeElements.length;f++){var h=this._proportionallyResizeElements[f];if(!this.borderDif){var e=[h.css("borderTopWidth"),h.css("borderRightWidth"),h.css("borderBottomWidth"),h.css("borderLeftWidth")],j=[h.css("paddingTop"),h.css("paddingRight"),h.css("paddingBottom"),h.css("paddingLeft")];this.borderDif=c.map(e,function(l,n){var m=parseInt(l,10)||0,o=parseInt(j[n],10)||0;return m+o})}if(c.browser.msie&&!(!(c(g).is(":hidden")||c(g).parents(":hidden").length))){continue}h.css({height:(g.height()-this.borderDif[0]-this.borderDif[2])||0,width:(g.width()-this.borderDif[1]-this.borderDif[3])||0})}},_renderProxy:function(){var f=this.element,i=this.options;this.elementOffset=f.offset();if(this._helper){this.helper=this.helper||c('<div style="overflow:hidden;"></div>');var e=c.browser.msie&&c.browser.version<7,g=(e?1:0),h=(e?2:-1);this.helper.addClass(this._helper).css({width:this.element.outerWidth()+h,height:this.element.outerHeight()+h,position:"absolute",left:this.elementOffset.left-g+"px",top:this.elementOffset.top-g+"px",zIndex:++i.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(g,f,e){return{width:this.originalSize.width+f}},w:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{left:i.left+f,width:g.width-f}},n:function(h,f,e){var j=this.options,g=this.originalSize,i=this.originalPosition;return{top:i.top+e,height:g.height-e}},s:function(g,f,e){return{height:this.originalSize.height+e}},se:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},sw:function(g,f,e){return c.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[g,f,e]))},ne:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[g,f,e]))},nw:function(g,f,e){return c.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[g,f,e]))}},_propagate:function(f,e){c.ui.plugin.call(this,f,[e,this.ui()]);(f!="resize"&&this._trigger(f,e,this.ui()))},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});c.extend(c.ui.resizable,{version:"1.8.18"});c.ui.plugin.add("resizable","alsoResize",{start:function(f,g){var e=c(this).data("resizable"),i=e.options;var h=function(j){c(j).each(function(){var k=c(this);k.data("resizable-alsoresize",{width:parseInt(k.width(),10),height:parseInt(k.height(),10),left:parseInt(k.css("left"),10),top:parseInt(k.css("top"),10)})})};if(typeof(i.alsoResize)=="object"&&!i.alsoResize.parentNode){if(i.alsoResize.length){i.alsoResize=i.alsoResize[0];h(i.alsoResize)}else{c.each(i.alsoResize,function(j){h(j)})}}else{h(i.alsoResize)}},resize:function(g,i){var f=c(this).data("resizable"),j=f.options,h=f.originalSize,l=f.originalPosition;var k={height:(f.size.height-h.height)||0,width:(f.size.width-h.width)||0,top:(f.position.top-l.top)||0,left:(f.position.left-l.left)||0},e=function(m,n){c(m).each(function(){var q=c(this),r=c(this).data("resizable-alsoresize"),p={},o=n&&n.length?n:q.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];c.each(o,function(s,u){var t=(r[u]||0)+(k[u]||0);if(t&&t>=0){p[u]=t||null}});q.css(p)})};if(typeof(j.alsoResize)=="object"&&!j.alsoResize.nodeType){c.each(j.alsoResize,function(m,n){e(m,n)})}else{e(j.alsoResize)}},stop:function(e,f){c(this).removeData("resizable-alsoresize")}});c.ui.plugin.add("resizable","animate",{stop:function(i,n){var p=c(this).data("resizable"),j=p.options;var h=p._proportionallyResizeElements,e=h.length&&(/textarea/i).test(h[0].nodeName),f=e&&c.ui.hasScroll(h[0],"left")?0:p.sizeDiff.height,l=e?0:p.sizeDiff.width;var g={width:(p.size.width-l),height:(p.size.height-f)},k=(parseInt(p.element.css("left"),10)+(p.position.left-p.originalPosition.left))||null,m=(parseInt(p.element.css("top"),10)+(p.position.top-p.originalPosition.top))||null;
+p.element.animate(c.extend(g,m&&k?{top:m,left:k}:{}),{duration:j.animateDuration,easing:j.animateEasing,step:function(){var o={width:parseInt(p.element.css("width"),10),height:parseInt(p.element.css("height"),10),top:parseInt(p.element.css("top"),10),left:parseInt(p.element.css("left"),10)};if(h&&h.length){c(h[0]).css({width:o.width,height:o.height})}p._updateCache(o);p._propagate("resize",i)}})}});c.ui.plugin.add("resizable","containment",{start:function(f,r){var t=c(this).data("resizable"),j=t.options,l=t.element;var g=j.containment,k=(g instanceof c)?g.get(0):(/parent/.test(g))?l.parent().get(0):g;if(!k){return}t.containerElement=c(k);if(/document/.test(g)||g==document){t.containerOffset={left:0,top:0};t.containerPosition={left:0,top:0};t.parentData={element:c(document),left:0,top:0,width:c(document).width(),height:c(document).height()||document.body.parentNode.scrollHeight}}else{var n=c(k),i=[];c(["Top","Right","Left","Bottom"]).each(function(p,o){i[p]=b(n.css("padding"+o))});t.containerOffset=n.offset();t.containerPosition=n.position();t.containerSize={height:(n.innerHeight()-i[3]),width:(n.innerWidth()-i[1])};var q=t.containerOffset,e=t.containerSize.height,m=t.containerSize.width,h=(c.ui.hasScroll(k,"left")?k.scrollWidth:m),s=(c.ui.hasScroll(k)?k.scrollHeight:e);t.parentData={element:k,left:q.left,top:q.top,width:h,height:s}}},resize:function(g,q){var t=c(this).data("resizable"),i=t.options,f=t.containerSize,p=t.containerOffset,m=t.size,n=t.position,r=t._aspectRatio||g.shiftKey,e={top:0,left:0},h=t.containerElement;if(h[0]!=document&&(/static/).test(h.css("position"))){e=p}if(n.left<(t._helper?p.left:0)){t.size.width=t.size.width+(t._helper?(t.position.left-p.left):(t.position.left-e.left));if(r){t.size.height=t.size.width/i.aspectRatio}t.position.left=i.helper?p.left:0}if(n.top<(t._helper?p.top:0)){t.size.height=t.size.height+(t._helper?(t.position.top-p.top):t.position.top);if(r){t.size.width=t.size.height*i.aspectRatio}t.position.top=t._helper?p.top:0}t.offset.left=t.parentData.left+t.position.left;t.offset.top=t.parentData.top+t.position.top;var l=Math.abs((t._helper?t.offset.left-e.left:(t.offset.left-e.left))+t.sizeDiff.width),s=Math.abs((t._helper?t.offset.top-e.top:(t.offset.top-p.top))+t.sizeDiff.height);var k=t.containerElement.get(0)==t.element.parent().get(0),j=/relative|absolute/.test(t.containerElement.css("position"));if(k&&j){l-=t.parentData.left}if(l+t.size.width>=t.parentData.width){t.size.width=t.parentData.width-l;if(r){t.size.height=t.size.width/t.aspectRatio}}if(s+t.size.height>=t.parentData.height){t.size.height=t.parentData.height-s;if(r){t.size.width=t.size.height*t.aspectRatio}}},stop:function(f,n){var q=c(this).data("resizable"),g=q.options,l=q.position,m=q.containerOffset,e=q.containerPosition,i=q.containerElement;var j=c(q.helper),r=j.offset(),p=j.outerWidth()-q.sizeDiff.width,k=j.outerHeight()-q.sizeDiff.height;if(q._helper&&!g.animate&&(/relative/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}if(q._helper&&!g.animate&&(/static/).test(i.css("position"))){c(this).css({left:r.left-e.left-m.left,width:p,height:k})}}});c.ui.plugin.add("resizable","ghost",{start:function(g,h){var e=c(this).data("resizable"),i=e.options,f=e.size;e.ghost=e.originalElement.clone();e.ghost.css({opacity:0.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:"");e.ghost.appendTo(e.helper)},resize:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost){e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})}},stop:function(f,g){var e=c(this).data("resizable"),h=e.options;if(e.ghost&&e.helper){e.helper.get(0).removeChild(e.ghost.get(0))}}});c.ui.plugin.add("resizable","grid",{resize:function(e,m){var p=c(this).data("resizable"),h=p.options,k=p.size,i=p.originalSize,j=p.originalPosition,n=p.axis,l=h._aspectRatio||e.shiftKey;h.grid=typeof h.grid=="number"?[h.grid,h.grid]:h.grid;var g=Math.round((k.width-i.width)/(h.grid[0]||1))*(h.grid[0]||1),f=Math.round((k.height-i.height)/(h.grid[1]||1))*(h.grid[1]||1);if(/^(se|s|e)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f}else{if(/^(ne)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f}else{if(/^(sw)$/.test(n)){p.size.width=i.width+g;p.size.height=i.height+f;p.position.left=j.left-g}else{p.size.width=i.width+g;p.size.height=i.height+f;p.position.top=j.top-f;p.position.left=j.left-g}}}}});var b=function(e){return parseInt(e,10)||0};var a=function(e){return !isNaN(parseInt(e,10))}})(jQuery);/*!
+ * jQuery hashchange event - v1.3 - 7/21/2010
+ * http://benalman.com/projects/jquery-hashchange-plugin/
+ *
+ * Copyright (c) 2010 "Cowboy" Ben Alman
+ * Dual licensed under the MIT and GPL licenses.
+ * http://benalman.com/about/license/
+ */
+(function($,e,b){var c="hashchange",h=document,f,g=$.event.special,i=h.documentMode,d="on"+c in e&&(i===b||i>7);function a(j){j=j||location.href;return"#"+j.replace(/^[^#]*#?(.*)$/,"$1")}$.fn[c]=function(j){return j?this.bind(c,j):this.trigger(c)};$.fn[c].delay=50;g[c]=$.extend(g[c],{setup:function(){if(d){return false}$(f.start)},teardown:function(){if(d){return false}$(f.stop)}});f=(function(){var j={},p,m=a(),k=function(q){return q},l=k,o=k;j.start=function(){p||n()};j.stop=function(){p&&clearTimeout(p);p=b};function n(){var r=a(),q=o(m);if(r!==m){l(m=r,q);$(e).trigger(c)}else{if(q!==m){location.href=location.href.replace(/#.*/,"")+q}}p=setTimeout(n,$.fn[c].delay)}$.browser.msie&&!d&&(function(){var q,r;j.start=function(){if(!q){r=$.fn[c].src;r=r&&r+a();q=$('<iframe tabindex="-1" title="empty"/>').hide().one("load",function(){r||l(a());n()}).attr("src",r||"javascript:0").insertAfter("body")[0].contentWindow;h.onpropertychange=function(){try{if(event.propertyName==="title"){q.document.title=h.title}}catch(s){}}}};j.stop=k;o=function(){return a(q.location.href)};l=function(v,s){var u=q.document,t=$.fn[c].domain;if(v!==s){u.title=h.title;u.open();t&&u.write('<script>document.domain="'+t+'"<\/script>');u.close();q.location.hash=v}}})();return j})()})(jQuery,this);
+(function(c){var a=c.scrollTo=function(f,e,d){c(window).scrollTo(f,e,d)};a.defaults={axis:"xy",duration:parseFloat(c.fn.jquery)>=1.3?0:1};a.window=function(d){return c(window)._scrollable()};c.fn._scrollable=function(){return this.map(function(){var e=this,d=!e.nodeName||c.inArray(e.nodeName.toLowerCase(),["iframe","#document","html","body"])!=-1;if(!d){return e}var f=(e.contentWindow||e).document||e.ownerDocument||e;return c.browser.safari||f.compatMode=="BackCompat"?f.body:f.documentElement})};c.fn.scrollTo=function(f,e,d){if(typeof e=="object"){d=e;e=0}if(typeof d=="function"){d={onAfter:d}}if(f=="max"){f=9000000000}d=c.extend({},a.defaults,d);e=e||d.speed||d.duration;d.queue=d.queue&&d.axis.length>1;if(d.queue){e/=2}d.offset=b(d.offset);d.over=b(d.over);return this._scrollable().each(function(){var l=this,j=c(l),k=f,i,g={},m=j.is("html,body");switch(typeof k){case"number":case"string":if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(k)){k=b(k);break}k=c(k,this);case"object":if(k.is||k.style){i=(k=c(k)).offset()}}c.each(d.axis.split(""),function(q,r){var s=r=="x"?"Left":"Top",u=s.toLowerCase(),p="scroll"+s,o=l[p],n=a.max(l,r);if(i){g[p]=i[u]+(m?0:o-j.offset()[u]);if(d.margin){g[p]-=parseInt(k.css("margin"+s))||0;g[p]-=parseInt(k.css("border"+s+"Width"))||0}g[p]+=d.offset[u]||0;if(d.over[u]){g[p]+=k[r=="x"?"width":"height"]()*d.over[u]}}else{var t=k[u];g[p]=t.slice&&t.slice(-1)=="%"?parseFloat(t)/100*n:t}if(/^\d+$/.test(g[p])){g[p]=g[p]<=0?0:Math.min(g[p],n)}if(!q&&d.queue){if(o!=g[p]){h(d.onAfterFirst)}delete g[p]}});h(d.onAfter);function h(n){j.animate(g,e,d.easing,n&&function(){n.call(this,f,d)})}}).end()};a.max=function(j,i){var h=i=="x"?"Width":"Height",e="scroll"+h;if(!c(j).is("html,body")){return j[e]-c(j)[h.toLowerCase()]()}var g="client"+h,f=j.ownerDocument.documentElement,d=j.ownerDocument.body;return Math.max(f[e],d[e])-Math.min(f[g],d[g])};function b(d){return typeof d=="object"?d:{top:d,left:d}}})(jQuery);
diff --git a/docs/RTOS/html/lowPower.html b/docs/RTOS/html/lowPower.html
new file mode 100644
index 0000000..0434c98
--- /dev/null
+++ b/docs/RTOS/html/lowPower.html
@@ -0,0 +1,204 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Configuration for Low-Power Modes</title>
+<title>CMSIS-RTOS: Configuration for Low-Power Modes</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('lowPower.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Configuration for Low-Power Modes </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The system thread <b>os_idle_demon</b> can be use to switch the system into a low-power mode. The easiest form to enter a low-power mode is the execution of the <code>__WFE</code> function that puts the processor into a sleep mode where it waits for an event.</p>
+<p><b>Configuration Example:</b></p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;device.h&quot;</span> <span class="comment">/* Device definitions */</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> <a class="code" href="group__RTX__Global__Functions.html#gafb4dc4d3dff8343a393726d2860282e4">os_idle_demon</a> (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <span class="comment">/* The idle demon is a system thread, running when no other thread is */</span></div>
+<div class="line"> <span class="comment">/* ready to run. */</span></div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">for</span> (;;) {</div>
+<div class="line"> __WFE(); <span class="comment">/* Enter sleep mode */</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment --><dl class="section note"><dt>Note</dt><dd><code>__WFE()</code> is not available at every Cortex-M implementation. Check device manuals for availability.</dd></dl>
+<h1><a class="anchor" id="TickLess"></a>
+Tick-less operation</h1>
+<p>CMSIS-RTOS RTX provides extension for tick-less operation which is useful for applications that use extensively low-power modes where the SysTick timer is also disabled. To provide a time-tick in such power-saving modes a wake-up timer is used to derive timer intervals. The RTX functions <a class="el" href="group__RTX__Global__Functions.html#ga3e9c57746ccbdfe90464ad50513c569e">os_suspend</a> and <a class="el" href="group__RTX__Global__Functions.html#ga1b85a217d43e6b971ffcf24f8aae1c33">os_resume</a> control the tick-less operation.</p>
+<p>Using this functions allows the RTX thread scheduler to stop the periodic kernel tick interrupt. When all active threads are suspended, the system enters power-down and calculates how long it can stay in this power-down mode. In the power-down mode the processor and potentially peripherals can be switched off. Only a wake-up timer must remain powered, because this timer is responsible to wake-up the system after the power-down period expires.</p>
+<p>The tick-less operation is controlled from the <a class="el" href="group__RTX__Global__Functions.html#gafb4dc4d3dff8343a393726d2860282e4">os_idle_demon</a> thread. The wake-up timeout value is set before the system enters the power-down mode. The function <a class="el" href="group__RTX__Global__Functions.html#ga3e9c57746ccbdfe90464ad50513c569e">os_suspend</a> calculates the wake-up timeout measured in RTX Timer Ticks; this value is used to setup the wake-up timer that runs during the power-down mode of the system.</p>
+<p>Once the system resumes operation (either by a wake-up time out or other interrupts) the RTX thread scheduler is started with the function <a class="el" href="group__RTX__Global__Functions.html#ga1b85a217d43e6b971ffcf24f8aae1c33">os_resume</a>. The parameter <em>sleep_time</em> specifies the time (in RTX Timer Ticks) that the system was in power-down mode.</p>
+<p><b>Code</b> <b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;LPC11Uxx.h&quot;</span> <span class="comment">/* LPC11Uxx definitions */</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> <a class="code" href="group__RTX__Global__Functions.html#gafb4dc4d3dff8343a393726d2860282e4">os_idle_demon</a> (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <span class="comment">/* The idle demon is a system thread, running when no other thread is */</span></div>
+<div class="line"> <span class="comment">/* ready to run. */</span></div>
+<div class="line"> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> sleep;</div>
+<div class="line"> <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> tc;</div>
+<div class="line"> </div>
+<div class="line"> LPC_SYSCON-&gt;SYSAHBCLKCTRL |= (1UL &lt;&lt; 15) | <span class="comment">/* Enable clock for WWDT */</span></div>
+<div class="line"> (1UL &lt;&lt; 19); <span class="comment">/* Enable clock for Pin IRQ */</span></div>
+<div class="line"> </div>
+<div class="line"> LPC_SYSCON-&gt;PINTSEL[0] = 1; <span class="comment">/* P0.1 selected as INT0 IRQ */</span></div>
+<div class="line"> LPC_SYSCON-&gt;STARTERP0 |= (1UL &lt;&lt; 0); <span class="comment">/* Enable INT0 wake-up */</span></div>
+<div class="line"> LPC_SYSCON-&gt;STARTERP1 |= (1UL &lt;&lt; 12); <span class="comment">/* Enable WWDT wake-up */</span></div>
+<div class="line"> </div>
+<div class="line"> LPC_SYSCON-&gt;WDTOSCCTRL = (3 &lt;&lt; 0) | <span class="comment">/* WDOSC DIVSEL=3 */</span></div>
+<div class="line"> (2 &lt;&lt; 5); <span class="comment">/* WDOSC FREQ=0.8MHz */</span></div>
+<div class="line"> LPC_SYSCON-&gt;PDRUNCFG &amp;= ~(1UL &lt;&lt; 6); <span class="comment">/* Power-up WDT Oscillator */</span></div>
+<div class="line"> LPC_SYSCON-&gt;PDSLEEPCFG &amp;= ~(1UL &lt;&lt; 6); <span class="comment">/* Power WDT Oscillator in PD */</span></div>
+<div class="line"> </div>
+<div class="line"> LPC_WWDT-&gt;CLKSEL = (1UL &lt;&lt; 0) | <span class="comment">/* Select WDOSC as Clock */</span></div>
+<div class="line"> (1UL &lt;&lt; 31); <span class="comment">/* Lock selection */</span></div>
+<div class="line"> LPC_WWDT-&gt;WARNINT = 1000; <span class="comment">/* WDT Warning IRQ value */</span></div>
+<div class="line"> LPC_WWDT-&gt;MOD = (1UL &lt;&lt; 0); <span class="comment">/* Enable WDT */</span></div>
+<div class="line"> </div>
+<div class="line"> NVIC_EnableIRQ(FLEX_INT0_IRQn); <span class="comment">/* Enable INT0 IRQ (wake-up) */</span></div>
+<div class="line"> NVIC_EnableIRQ(WDT_IRQn); <span class="comment">/* Enable WWDT IRQ (wake-up) */</span></div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">for</span> (;;) {</div>
+<div class="line"> <span class="comment">/* HERE: include optional user code to be executed when no task runs.*/</span></div>
+<div class="line"> sleep = <a class="code" href="group__RTX__Global__Functions.html#ga3e9c57746ccbdfe90464ad50513c569e">os_suspend</a>(); <span class="comment">/* Suspend RTX thread scheduler */</span></div>
+<div class="line"> </div>
+<div class="line"> <span class="keywordflow">if</span> (sleep) { <span class="comment">/* How long can we sleep? */</span></div>
+<div class="line"> <span class="comment">/* &quot;sleep&quot; is in RTX Timer Ticks which is 10ms in this configuration */</span></div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">/* Setup WDT wake-up: WDT ticks @25kHz (FREQ/2/(DIVSEL+1)/4) */</span></div>
+<div class="line"> tc = (sleep * 250) + 1000;</div>
+<div class="line"> LPC_WWDT-&gt;TC = tc;</div>
+<div class="line"> LPC_WWDT-&gt;FEED = 0xAA;</div>
+<div class="line"> LPC_WWDT-&gt;FEED = 0x55;</div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">/* Enter Power-down mode */</span></div>
+<div class="line"> LPC_SYSCON-&gt;PDAWAKECFG = LPC_SYSCON-&gt;PDRUNCFG; <span class="comment">/* Power after wake-up */</span></div>
+<div class="line"> LPC_PMU-&gt;PCON = 0x02; <span class="comment">/* Select Power-down mode */</span></div>
+<div class="line"> SCB-&gt;SCR = (1UL &lt;&lt; 2); <span class="comment">/* Set SLEEPDEEP */</span></div>
+<div class="line"> __WFE(); <span class="comment">/* Enter Power-down mode */</span></div>
+<div class="line"> </div>
+<div class="line"> <span class="comment">/* After Wake-up */</span></div>
+<div class="line"> sleep = (tc - LPC_WWDT-&gt;TV) / 250;</div>
+<div class="line"> }</div>
+<div class="line"> </div>
+<div class="line"> <a class="code" href="group__RTX__Global__Functions.html#ga1b85a217d43e6b971ffcf24f8aae1c33">os_resume</a>(sleep); <span class="comment">/* Resume RTX thread scheduler */</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+</div><!-- fragment --><dl class="section note"><dt>Note</dt><dd><code>__WFE()</code> is not available at every Cortex-M implementation. Check device manuals for availability. </dd></dl>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="index.html">index</a></li><li class="navelem"><a class="el" href="rtxImplementation.html">RTX Implementation</a></li><li class="navelem"><a class="el" href="configure.html">Configure RTX</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/manage_rte_output.png b/docs/RTOS/html/manage_rte_output.png
new file mode 100644
index 0000000..81672bf
--- /dev/null
+++ b/docs/RTOS/html/manage_rte_output.png
Binary files differ
diff --git a/docs/RTOS/html/misraCompliance.html b/docs/RTOS/html/misraCompliance.html
new file mode 100644
index 0000000..b6c9a02
--- /dev/null
+++ b/docs/RTOS/html/misraCompliance.html
@@ -0,0 +1,173 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>MISRA-C:2004 Compliance Exceptions</title>
+<title>CMSIS-RTOS: MISRA-C:2004 Compliance Exceptions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('misraCompliance.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">MISRA-C:2004 Compliance Exceptions </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>CMSIS-RTOS RTX tries to be MISRA-C compliant as much as possible. However, there are some violations in order to simplify the overall code logic and to generate more efficient code.</p>
+<p>CMSIS-RTOS RTX generates the following notes, warnings and infos for MISRA-C:2004 rules:</p>
+<ul>
+<li>Rule 1.1, required, Rule 2.2, required: Non-ANSI reserved word or construct: '//'</li>
+<li>Rule 1.2, required: Both sides have side effects</li>
+<li>Rule 1.2, required: Unusual pointer cast (incompatible indirect types)</li>
+<li>Rule 8.1, required: Function defined without a prototype in scope</li>
+<li>Rule 11.1, required, Rule 11.3, advisory: cast from pointer to unsigned int</li>
+<li>Rule 11.1, required, Rule 11.3, advisory: cast from unsigned int to pointer</li>
+<li>Rule 11.4, advisory: cast from pointer to pointer</li>
+<li>Rule 12.11, advisory: Overflow in computing constant for operation: 'unsigned shift left'</li>
+<li>Rule 13.7, required, Rule 14.1, required: Constant value Boolean</li>
+<li>Rule 14.4, required: Use of goto is deprecated</li>
+<li>Rule 14.7, required: Return statement before end of function</li>
+<li>Rule 16.10, required: Ignoring return value of function</li>
+<li>Rule 17.2, required, Rule 17.3, required: Relational or subtract operator applied to pointers</li>
+<li>Rule 19.4, required, Rule 19.10, required: Expression-like macro not parenthesized</li>
+<li>Rule 19.15, required: Repeated include file</li>
+</ul>
+<p>CMSIS-RTOS RTX violates the following MISRA-C:2004 rules:</p>
+<ul>
+<li>Required Rule 8.5: object/function definition in header file</li>
+<li>Required Rule 10.1: Prohibited Implicit Conversion: Non-constant argument to function</li>
+<li>Required Rule 10.1: Implicit conversion of complex integer expression</li>
+<li>Required Rule 10.3: Cast of complex integer expression to larger type</li>
+<li>Required Rule 10.3: Cast of complex expression changes signedness</li>
+<li>Required Rule 11.5: attempt to cast away const/volatile from a pointer or reference</li>
+<li>Required Rule 12.4: side effects on right hand of logical operator: '&amp;&amp;'</li>
+<li>Required Rule 12.4: side effects on right hand of logical operator: '||'</li>
+<li>Required Rule 12.5: non-primary expression used with logical operator</li>
+<li>Required Rule 14.3: null statement not in line by itself</li>
+<li>Required Rule 14.8: left brace expected for while, do...while and for</li>
+<li>Required Rule 14.9: left brace expected for if and else</li>
+<li>Required Rule 15.3: default missing from switch statement</li>
+<li>Required Rule 16.9: function identifier used without '&amp;' or parenthesized parameter list</li>
+<li>Required Rule 17.4: pointer arithmetic other than array indexing used</li>
+<li>Required Rule 18.4: declaration of union type or object of union type: '{...}'</li>
+<li>Required Rule 19.12: Multiple use of '#/##' operators in definition of macro</li>
+<li>Required Rule 20.2: Re-use of C90 identifier pattern</li>
+<li>Advisory Rule 12.1: dependence placed on C's operator precedence; operators: '+' and '-'</li>
+<li>Advisory Rule 12.13: increment or decrement combined with another operator</li>
+<li>Advisory Rule 19.13: '#/##' operator used in macro</li>
+<li>Advisory Rule 19.7: Function-like macro defined </li>
+</ul>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="index.html">index</a></li><li class="navelem"><a class="el" href="rtxImplementation.html">RTX Implementation</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/modules.html b/docs/RTOS/html/modules.html
new file mode 100644
index 0000000..d9de004
--- /dev/null
+++ b/docs/RTOS/html/modules.html
@@ -0,0 +1,147 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Reference</title>
+<title>CMSIS-RTOS: Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li class="current"><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('modules.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all modules:</div><div class="directory">
+<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span>]</div><table class="directory">
+<tr id="row_0_" class="even"><td class="entry"><img id="arr_0_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_')"/><a class="el" href="group__CMSIS__RTOS.html" target="_self">CMSIS-RTOS API</a></td><td class="desc">This section describes the CMSIS-RTOS API </td></tr>
+<tr id="row_0_0_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html" target="_self">Kernel Information and Control</a></td><td class="desc">Provide version/system information and start the RTOS Kernel </td></tr>
+<tr id="row_0_1_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html" target="_self">Thread Management</a></td><td class="desc">Define, create, and control thread functions </td></tr>
+<tr id="row_0_2_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__CMSIS__RTOS__Wait.html" target="_self">Generic Wait Functions</a></td><td class="desc">Wait for a time period or unspecified events </td></tr>
+<tr id="row_0_3_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__CMSIS__RTOS__TimerMgmt.html" target="_self">Timer Management</a></td><td class="desc">Create and control timer and timer callback functions </td></tr>
+<tr id="row_0_4_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img id="arr_0_4_" src="ftv2mnode.png" alt="o" width="16" height="22" onclick="toggleFolder('0_4_')"/><a class="el" href="group__CMSIS__RTOS__InterThread.html" target="_self">Inter-Thread Communication and Resource Sharing</a></td><td class="desc">Functions for inter-thread communication </td></tr>
+<tr id="row_0_4_0_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__CMSIS__RTOS__SignalMgmt.html" target="_self">Signal Events</a></td><td class="desc">Synchronize threads using signals </td></tr>
+<tr id="row_0_4_1_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__CMSIS__RTOS__Message.html" target="_self">Message Queue</a></td><td class="desc">Exchange messages between threads in a FIFO-like operation </td></tr>
+<tr id="row_0_4_2_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html" target="_self">Memory Pool</a></td><td class="desc">Manage thread-safe fixed-size blocks of dynamic memory </td></tr>
+<tr id="row_0_4_3_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__CMSIS__RTOS__Mail.html" target="_self">Mail Queue</a></td><td class="desc">Exchange data between threads using a queue of memory blocks </td></tr>
+<tr id="row_0_4_4_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__CMSIS__RTOS__MutexMgmt.html" target="_self">Mutexes</a></td><td class="desc">Synchronize resource access using Mutual Exclusion (Mutex) </td></tr>
+<tr id="row_0_4_5_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html" target="_self">Semaphores</a></td><td class="desc">Access shared resources simultaneously from different threads </td></tr>
+<tr id="row_0_5_" class="even"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2node.png" alt="o" width="16" height="22" /><a class="el" href="group__CMSIS__RTOS__Definitions.html" target="_self">Generic Data Types and Definitions</a></td><td class="desc">Data Type Definitions used by the CMSIS-RTOS API functions </td></tr>
+<tr id="row_0_6_"><td class="entry"><img src="ftv2vertline.png" alt="|" width="16" height="22" /><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="group__CMSIS__RTOS__Status.html" target="_self">Status and Error Codes</a></td><td class="desc">Status and Error Codes returned by CMSIS-RTOS API functions </td></tr>
+<tr id="row_1_" class="even"><td class="entry"><img src="ftv2lastnode.png" alt="\" width="16" height="22" /><a class="el" href="group__RTX__Global__Functions.html" target="_self">RTX Specific Functions</a></td><td class="desc">This section describes the functions that are specific to CMSIS-RTOS RTX </td></tr>
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/modules.js b/docs/RTOS/html/modules.js
new file mode 100644
index 0000000..93a80a5
--- /dev/null
+++ b/docs/RTOS/html/modules.js
@@ -0,0 +1,5 @@
+var modules =
+[
+ [ "CMSIS-RTOS API", "group__CMSIS__RTOS.html", "group__CMSIS__RTOS" ],
+ [ "RTX Specific Functions", "group__RTX__Global__Functions.html", "group__RTX__Global__Functions" ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/nav_f.png b/docs/RTOS/html/nav_f.png
new file mode 100644
index 0000000..72a58a5
--- /dev/null
+++ b/docs/RTOS/html/nav_f.png
Binary files differ
diff --git a/docs/RTOS/html/nav_g.png b/docs/RTOS/html/nav_g.png
new file mode 100644
index 0000000..2093a23
--- /dev/null
+++ b/docs/RTOS/html/nav_g.png
Binary files differ
diff --git a/docs/RTOS/html/nav_h.png b/docs/RTOS/html/nav_h.png
new file mode 100644
index 0000000..33389b1
--- /dev/null
+++ b/docs/RTOS/html/nav_h.png
Binary files differ
diff --git a/docs/RTOS/html/navtree.css b/docs/RTOS/html/navtree.css
new file mode 100644
index 0000000..41a9cb9
--- /dev/null
+++ b/docs/RTOS/html/navtree.css
@@ -0,0 +1,143 @@
+#nav-tree .children_ul {
+ margin:0;
+ padding:4px;
+}
+
+#nav-tree ul {
+ list-style:none outside none;
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree li {
+ white-space:nowrap;
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree .plus {
+ margin:0px;
+}
+
+#nav-tree .selected {
+ background-image: url('tab_a.png');
+ background-repeat:repeat-x;
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
+
+#nav-tree img {
+ margin:0px;
+ padding:0px;
+ border:0px;
+ vertical-align: middle;
+}
+
+#nav-tree a {
+ text-decoration:none;
+ padding:0px;
+ margin:0px;
+ outline:none;
+}
+
+#nav-tree .label {
+ margin:0px;
+ padding:0px;
+ font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
+}
+
+#nav-tree .label a {
+ padding:2px;
+}
+
+#nav-tree .selected a {
+ text-decoration:none;
+ color:#fff;
+}
+
+#nav-tree .children_ul {
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree .item {
+ margin:0px;
+ padding:0px;
+}
+
+#nav-tree {
+ padding: 0px 0px;
+ background-color: #FAFAFF;
+ font-size:14px;
+ overflow:auto;
+}
+
+#doc-content {
+ overflow:auto;
+ display:block;
+ padding:0px;
+ margin:0px;
+ -webkit-overflow-scrolling : touch; /* iOS 5+ */
+}
+
+#side-nav {
+ padding:0 6px 0 0;
+ margin: 0px;
+ display:block;
+ position: absolute;
+ left: 0px;
+ width: 250px;
+}
+
+.ui-resizable .ui-resizable-handle {
+ display:block;
+}
+
+.ui-resizable-e {
+ background:url("ftv2splitbar.png") repeat scroll right center transparent;
+ cursor:e-resize;
+ height:100%;
+ right:0;
+ top:0;
+ width:6px;
+}
+
+.ui-resizable-handle {
+ display:none;
+ font-size:0.1px;
+ position:absolute;
+ z-index:1;
+}
+
+#nav-tree-contents {
+ margin: 6px 0px 0px 0px;
+}
+
+#nav-tree {
+ background-image:url('nav_h.png');
+ background-repeat:repeat-x;
+ background-color: #F9FAFC;
+ -webkit-overflow-scrolling : touch; /* iOS 5+ */
+}
+
+#nav-sync {
+ position:absolute;
+ top:5px;
+ right:24px;
+ z-index:0;
+}
+
+#nav-sync img {
+ opacity:0.3;
+}
+
+#nav-sync img:hover {
+ opacity:0.9;
+}
+
+@media print
+{
+ #nav-tree { display: none; }
+ div.ui-resizable-handle { display: none; position: relative; }
+}
+
diff --git a/docs/RTOS/html/navtree.js b/docs/RTOS/html/navtree.js
new file mode 100644
index 0000000..a7b21ba
--- /dev/null
+++ b/docs/RTOS/html/navtree.js
@@ -0,0 +1,551 @@
+var NAVTREE =
+[
+ [ "CMSIS-RTOS", "index.html", [
+ [ "Revision History", "rtos_revisionHistory.html", [
+ [ "CMSIS-RTOS API", "rtos_revisionHistory.html#GenRTOSRev", null ],
+ [ "CMSIS-RTOS RTX", "rtos_revisionHistory.html#RTXRevisionHistory", null ]
+ ] ],
+ [ "Generic RTOS Interface", "genRTOSIF.html", null ],
+ [ "Using a CMSIS-RTOS Implementation", "usingOS.html", [
+ [ "Header File Template: cmsis_os.h", "usingOS.html#cmsis_os_h", null ]
+ ] ],
+ [ "Function Overview", "functionOverview.html", [
+ [ "Timout Value", "functionOverview.html#CMSIS_RTOS_TimeOutValue", null ],
+ [ "Calls from Interrupt Service Routines", "functionOverview.html#CMSIS_RTOS_ISR_Calls", null ]
+ ] ],
+ [ "RTOS Validation", "rtosValidation.html", [
+ [ "Sample Test Output", "rtosValidation.html#test_output", null ]
+ ] ],
+ [ "RTX Implementation", "rtxImplementation.html", "rtxImplementation" ],
+ [ "Reference", "modules.html", "modules" ],
+ [ "Data Structures", "annotated.html", "annotated" ],
+ [ "Data Structure Index", "classes.html", null ],
+ [ "Data Fields", "functions.html", [
+ [ "All", "functions.html", null ],
+ [ "Variables", "functions_vars.html", null ]
+ ] ]
+ ] ]
+];
+
+var NAVTREEINDEX =
+[
+"annotated.html"
+];
+
+var SYNCONMSG = 'click to disable panel synchronisation';
+var SYNCOFFMSG = 'click to enable panel synchronisation';
+var SYNCONMSG = 'click to disable panel synchronisation';
+var SYNCOFFMSG = 'click to enable panel synchronisation';
+var navTreeSubIndices = new Array();
+
+function getData(varName)
+{
+ var i = varName.lastIndexOf('/');
+ var n = i>=0 ? varName.substring(i+1) : varName;
+ return eval(n.replace(/\-/g,'_'));
+}
+
+function stripPath(uri)
+{
+ return uri.substring(uri.lastIndexOf('/')+1);
+}
+
+function stripPath2(uri)
+{
+ var i = uri.lastIndexOf('/');
+ var s = uri.substring(i+1);
+ var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/);
+ return m ? uri.substring(i-6) : s;
+}
+
+function localStorageSupported()
+{
+ try {
+ return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem;
+ }
+ catch(e) {
+ return false;
+ }
+}
+
+
+function storeLink(link)
+{
+ if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) {
+ window.localStorage.setItem('navpath',link);
+ }
+}
+
+function deleteLink()
+{
+ if (localStorageSupported()) {
+ window.localStorage.setItem('navpath','');
+ }
+}
+
+function cachedLink()
+{
+ if (localStorageSupported()) {
+ return window.localStorage.getItem('navpath');
+ } else {
+ return '';
+ }
+}
+
+function getScript(scriptName,func,show)
+{
+ var head = document.getElementsByTagName("head")[0];
+ var script = document.createElement('script');
+ script.id = scriptName;
+ script.type = 'text/javascript';
+ script.onload = func;
+ script.src = scriptName+'.js';
+ if ($.browser.msie && $.browser.version<=8) {
+ // script.onload does not work with older versions of IE
+ script.onreadystatechange = function() {
+ if (script.readyState=='complete' || script.readyState=='loaded') {
+ func(); if (show) showRoot();
+ }
+ }
+ }
+ head.appendChild(script);
+}
+
+function createIndent(o,domNode,node,level)
+{
+ var level=-1;
+ var n = node;
+ while (n.parentNode) { level++; n=n.parentNode; }
+ if (node.childrenData) {
+ var imgNode = document.createElement("img");
+ imgNode.style.paddingLeft=(16*level).toString()+'px';
+ imgNode.width = 16;
+ imgNode.height = 22;
+ imgNode.border = 0;
+ node.plus_img = imgNode;
+ node.expandToggle = document.createElement("a");
+ node.expandToggle.href = "javascript:void(0)";
+ node.expandToggle.onclick = function() {
+ if (node.expanded) {
+ $(node.getChildrenUL()).slideUp("fast");
+ node.plus_img.src = node.relpath+"ftv2pnode.png";
+ node.expanded = false;
+ } else {
+ expandNode(o, node, false, false);
+ }
+ }
+ node.expandToggle.appendChild(imgNode);
+ domNode.appendChild(node.expandToggle);
+ imgNode.src = node.relpath+"ftv2pnode.png";
+ } else {
+ var span = document.createElement("span");
+ span.style.display = 'inline-block';
+ span.style.width = 16*(level+1)+'px';
+ span.style.height = '22px';
+ span.innerHTML = '&#160;';
+ domNode.appendChild(span);
+ }
+}
+
+var animationInProgress = false;
+
+function gotoAnchor(anchor,aname,updateLocation)
+{
+ var pos, docContent = $('#doc-content');
+ if (anchor.parent().attr('class')=='memItemLeft' ||
+ anchor.parent().attr('class')=='fieldtype' ||
+ anchor.parent().is(':header'))
+ {
+ pos = anchor.parent().position().top;
+ } else if (anchor.position()) {
+ pos = anchor.position().top;
+ }
+ if (pos) {
+ var dist = Math.abs(Math.min(
+ pos-docContent.offset().top,
+ docContent[0].scrollHeight-
+ docContent.height()-docContent.scrollTop()));
+ animationInProgress=true;
+ docContent.animate({
+ scrollTop: pos + docContent.scrollTop() - docContent.offset().top
+ },Math.max(50,Math.min(500,dist)),function(){
+ if (updateLocation) window.location.href=aname;
+ animationInProgress=false;
+ });
+ }
+}
+
+function newNode(o, po, text, link, childrenData, lastNode)
+{
+ var node = new Object();
+ node.children = Array();
+ node.childrenData = childrenData;
+ node.depth = po.depth + 1;
+ node.relpath = po.relpath;
+ node.isLast = lastNode;
+
+ node.li = document.createElement("li");
+ po.getChildrenUL().appendChild(node.li);
+ node.parentNode = po;
+
+ node.itemDiv = document.createElement("div");
+ node.itemDiv.className = "item";
+
+ node.labelSpan = document.createElement("span");
+ node.labelSpan.className = "label";
+
+ createIndent(o,node.itemDiv,node,0);
+ node.itemDiv.appendChild(node.labelSpan);
+ node.li.appendChild(node.itemDiv);
+
+ var a = document.createElement("a");
+ node.labelSpan.appendChild(a);
+ node.label = document.createTextNode(text);
+ node.expanded = false;
+ a.appendChild(node.label);
+ if (link) {
+ var url;
+ if (link.substring(0,1)=='^') {
+ url = link.substring(1);
+ link = url;
+ } else {
+ url = node.relpath+link;
+ }
+ a.className = stripPath(link.replace('#',':'));
+ if (link.indexOf('#')!=-1) {
+ var aname = '#'+link.split('#')[1];
+ var srcPage = stripPath($(location).attr('pathname'));
+ var targetPage = stripPath(link.split('#')[0]);
+ a.href = srcPage!=targetPage ? url : "javascript:void(0)";
+ a.onclick = function(){
+ storeLink(link);
+ if (!$(a).parent().parent().hasClass('selected'))
+ {
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ $(a).parent().parent().addClass('selected');
+ $(a).parent().parent().attr('id','selected');
+ }
+ var anchor = $(aname);
+ gotoAnchor(anchor,aname,true);
+ };
+ } else {
+ a.href = url;
+ a.onclick = function() { storeLink(link); }
+ }
+ } else {
+ if (childrenData != null)
+ {
+ a.className = "nolink";
+ a.href = "javascript:void(0)";
+ a.onclick = node.expandToggle.onclick;
+ }
+ }
+
+ node.childrenUL = null;
+ node.getChildrenUL = function() {
+ if (!node.childrenUL) {
+ node.childrenUL = document.createElement("ul");
+ node.childrenUL.className = "children_ul";
+ node.childrenUL.style.display = "none";
+ node.li.appendChild(node.childrenUL);
+ }
+ return node.childrenUL;
+ };
+
+ return node;
+}
+
+function showRoot()
+{
+ var headerHeight = $("#top").height();
+ var footerHeight = $("#nav-path").height();
+ var windowHeight = $(window).height() - headerHeight - footerHeight;
+ (function (){ // retry until we can scroll to the selected item
+ try {
+ var navtree=$('#nav-tree');
+ navtree.scrollTo('#selected',0,{offset:-windowHeight/2});
+ } catch (err) {
+ setTimeout(arguments.callee, 0);
+ }
+ })();
+}
+
+function expandNode(o, node, imm, showRoot)
+{
+ if (node.childrenData && !node.expanded) {
+ if (typeof(node.childrenData)==='string') {
+ var varName = node.childrenData;
+ getScript(node.relpath+varName,function(){
+ node.childrenData = getData(varName);
+ expandNode(o, node, imm, showRoot);
+ }, showRoot);
+ } else {
+ if (!node.childrenVisited) {
+ getNode(o, node);
+ } if (imm || ($.browser.msie && $.browser.version>8)) {
+ // somehow slideDown jumps to the start of tree for IE9 :-(
+ $(node.getChildrenUL()).show();
+ } else {
+ $(node.getChildrenUL()).slideDown("fast");
+ }
+ if (node.isLast) {
+ node.plus_img.src = node.relpath+"ftv2mlastnode.png";
+ } else {
+ node.plus_img.src = node.relpath+"ftv2mnode.png";
+ }
+ node.expanded = true;
+ }
+ }
+}
+
+function glowEffect(n,duration)
+{
+ n.addClass('glow').delay(duration).queue(function(next){
+ $(this).removeClass('glow');next();
+ });
+}
+
+function highlightAnchor()
+{
+ var aname = $(location).attr('hash');
+ var anchor = $(aname);
+ if (anchor.parent().attr('class')=='memItemLeft'){
+ var rows = $('.memberdecls tr[class$="'+
+ window.location.hash.substring(1)+'"]');
+ glowEffect(rows.children(),300); // member without details
+ } else if (anchor.parents().slice(2).prop('tagName')=='TR') {
+ glowEffect(anchor.parents('div.memitem'),1000); // enum value
+ } else if (anchor.parent().attr('class')=='fieldtype'){
+ glowEffect(anchor.parent().parent(),1000); // struct field
+ } else if (anchor.parent().is(":header")) {
+ glowEffect(anchor.parent(),1000); // section header
+ } else {
+ glowEffect(anchor.next(),1000); // normal member
+ }
+ gotoAnchor(anchor,aname,false);
+}
+
+function selectAndHighlight(hash,n)
+{
+ var a;
+ if (hash) {
+ var link=stripPath($(location).attr('pathname'))+':'+hash.substring(1);
+ a=$('.item a[class$="'+link+'"]');
+ }
+ if (a && a.length) {
+ a.parent().parent().addClass('selected');
+ a.parent().parent().attr('id','selected');
+ highlightAnchor();
+ } else if (n) {
+ $(n.itemDiv).addClass('selected');
+ $(n.itemDiv).attr('id','selected');
+ }
+ if ($('#nav-tree-contents .item:first').hasClass('selected')) {
+ $('#nav-sync').css('top','30px');
+ } else {
+ $('#nav-sync').css('top','5px');
+ }
+ showRoot();
+}
+
+function showNode(o, node, index, hash)
+{
+ if (node && node.childrenData) {
+ if (typeof(node.childrenData)==='string') {
+ var varName = node.childrenData;
+ getScript(node.relpath+varName,function(){
+ node.childrenData = getData(varName);
+ showNode(o,node,index,hash);
+ },true);
+ } else {
+ if (!node.childrenVisited) {
+ getNode(o, node);
+ }
+ $(node.getChildrenUL()).css({'display':'block'});
+ if (node.isLast) {
+ node.plus_img.src = node.relpath+"ftv2mlastnode.png";
+ } else {
+ node.plus_img.src = node.relpath+"ftv2mnode.png";
+ }
+ node.expanded = true;
+ var n = node.children[o.breadcrumbs[index]];
+ if (index+1<o.breadcrumbs.length) {
+ showNode(o,n,index+1,hash);
+ } else {
+ if (typeof(n.childrenData)==='string') {
+ var varName = n.childrenData;
+ getScript(n.relpath+varName,function(){
+ n.childrenData = getData(varName);
+ node.expanded=false;
+ showNode(o,node,index,hash); // retry with child node expanded
+ },true);
+ } else {
+ var rootBase = stripPath(o.toroot.replace(/\..+$/, ''));
+ if (rootBase=="index" || rootBase=="pages" || rootBase=="search") {
+ expandNode(o, n, true, true);
+ }
+ selectAndHighlight(hash,n);
+ }
+ }
+ }
+ } else {
+ selectAndHighlight(hash);
+ }
+}
+
+function removeToInsertLater(element) {
+ var parentNode = element.parentNode;
+ var nextSibling = element.nextSibling;
+ parentNode.removeChild(element);
+ return function() {
+ if (nextSibling) {
+ parentNode.insertBefore(element, nextSibling);
+ } else {
+ parentNode.appendChild(element);
+ }
+ };
+}
+
+function getNode(o, po)
+{
+ var insertFunction = removeToInsertLater(po.li);
+ po.childrenVisited = true;
+ var l = po.childrenData.length-1;
+ for (var i in po.childrenData) {
+ var nodeData = po.childrenData[i];
+ po.children[i] = newNode(o, po, nodeData[0], nodeData[1], nodeData[2],
+ i==l);
+ }
+ insertFunction();
+}
+
+function gotoNode(o,subIndex,root,hash,relpath)
+{
+ var nti = navTreeSubIndices[subIndex][root+hash];
+ o.breadcrumbs = $.extend(true, [], nti ? nti : navTreeSubIndices[subIndex][root]);
+ if (!o.breadcrumbs && root!=NAVTREE[0][1]) { // fallback: show index
+ navTo(o,NAVTREE[0][1],"",relpath);
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ }
+ if (o.breadcrumbs) {
+ o.breadcrumbs.unshift(0); // add 0 for root node
+ showNode(o, o.node, 0, hash);
+ }
+}
+
+function navTo(o,root,hash,relpath)
+{
+ var link = cachedLink();
+ if (link) {
+ var parts = link.split('#');
+ root = parts[0];
+ if (parts.length>1) hash = '#'+parts[1];
+ else hash='';
+ }
+ if (hash.match(/^#l\d+$/)) {
+ var anchor=$('a[name='+hash.substring(1)+']');
+ glowEffect(anchor.parent(),1000); // line number
+ hash=''; // strip line number anchors
+ //root=root.replace(/_source\./,'.'); // source link to doc link
+ }
+ var url=root+hash;
+ var i=-1;
+ while (NAVTREEINDEX[i+1]<=url) i++;
+ if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index
+ if (navTreeSubIndices[i]) {
+ gotoNode(o,i,root,hash,relpath)
+ } else {
+ getScript(relpath+'navtreeindex'+i,function(){
+ navTreeSubIndices[i] = eval('NAVTREEINDEX'+i);
+ if (navTreeSubIndices[i]) {
+ gotoNode(o,i,root,hash,relpath);
+ }
+ },true);
+ }
+}
+
+function showSyncOff(n,relpath)
+{
+ n.html('<img src="'+relpath+'sync_off.png" title="'+SYNCOFFMSG+'"/>');
+}
+
+function showSyncOn(n,relpath)
+{
+ n.html('<img src="'+relpath+'sync_on.png" title="'+SYNCONMSG+'"/>');
+}
+
+function toggleSyncButton(relpath)
+{
+ var navSync = $('#nav-sync');
+ if (navSync.hasClass('sync')) {
+ navSync.removeClass('sync');
+ showSyncOff(navSync,relpath);
+ storeLink(stripPath2($(location).attr('pathname'))+$(location).attr('hash'));
+ } else {
+ navSync.addClass('sync');
+ showSyncOn(navSync,relpath);
+ deleteLink();
+ }
+}
+
+function initNavTree(toroot,relpath)
+{
+ var o = new Object();
+ o.toroot = toroot;
+ o.node = new Object();
+ o.node.li = document.getElementById("nav-tree-contents");
+ o.node.childrenData = NAVTREE;
+ o.node.children = new Array();
+ o.node.childrenUL = document.createElement("ul");
+ o.node.getChildrenUL = function() { return o.node.childrenUL; };
+ o.node.li.appendChild(o.node.childrenUL);
+ o.node.depth = 0;
+ o.node.relpath = relpath;
+ o.node.expanded = false;
+ o.node.isLast = true;
+ o.node.plus_img = document.createElement("img");
+ o.node.plus_img.src = relpath+"ftv2pnode.png";
+ o.node.plus_img.width = 16;
+ o.node.plus_img.height = 22;
+
+ if (localStorageSupported()) {
+ var navSync = $('#nav-sync');
+ if (cachedLink()) {
+ showSyncOff(navSync,relpath);
+ navSync.removeClass('sync');
+ } else {
+ showSyncOn(navSync,relpath);
+ }
+ navSync.click(function(){ toggleSyncButton(relpath); });
+ }
+
+ $(window).load(function(){
+ navTo(o,toroot,window.location.hash,relpath);
+ showRoot();
+ });
+
+ $(window).bind('hashchange', function(){
+ if (window.location.hash && window.location.hash.length>1){
+ var a;
+ if ($(location).attr('hash')){
+ var clslink=stripPath($(location).attr('pathname'))+':'+
+ $(location).attr('hash').substring(1);
+ a=$('.item a[class$="'+clslink+'"]');
+ }
+ if (a==null || !$(a).parent().parent().hasClass('selected')){
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ }
+ var link=stripPath2($(location).attr('pathname'));
+ navTo(o,link,$(location).attr('hash'),relpath);
+ } else if (!animationInProgress) {
+ $('#doc-content').scrollTop(0);
+ $('.item').removeClass('selected');
+ $('.item').removeAttr('id');
+ navTo(o,toroot,window.location.hash,relpath);
+ }
+ })
+}
+
diff --git a/docs/RTOS/html/navtreeindex0.js b/docs/RTOS/html/navtreeindex0.js
new file mode 100644
index 0000000..28fb552
--- /dev/null
+++ b/docs/RTOS/html/navtreeindex0.js
@@ -0,0 +1,208 @@
+var NAVTREEINDEX0 =
+{
+"annotated.html":[7],
+"classes.html":[8],
+"cmsis__os_8h.html#a15773df83aba93f8e61f3737af5fae47":[7,10,0],
+"cmsis__os_8h.html#a15da8f23c6fe684b70a73646ada685e7":[7,9,3],
+"cmsis__os_8h.html#a269c3935f8bc66db70bccdd02cb05e3c":[7,4,1],
+"cmsis__os_8h.html#a269c3935f8bc66db70bccdd02cb05e3c":[7,5,1],
+"cmsis__os_8h.html#a269c3935f8bc66db70bccdd02cb05e3c":[7,7,1],
+"cmsis__os_8h.html#a44b7a3baf02bac7ad707e8f2f5eca1ca":[7,6,0],
+"cmsis__os_8h.html#a44b7a3baf02bac7ad707e8f2f5eca1ca":[7,8,0],
+"cmsis__os_8h.html#a4c2a0c691de3365c00ecd22d8102811f":[7,4,0],
+"cmsis__os_8h.html#a4c2a0c691de3365c00ecd22d8102811f":[7,5,0],
+"cmsis__os_8h.html#a4c2a0c691de3365c00ecd22d8102811f":[7,7,0],
+"cmsis__os_8h.html#a8a83a3a8c0aa8057b13807d2a54077e0":[7,4,2],
+"cmsis__os_8h.html#a8a83a3a8c0aa8057b13807d2a54077e0":[7,5,2],
+"cmsis__os_8h.html#a950b7f81ad4711959517296e63bc79d1":[7,9,2],
+"cmsis__os_8h.html#aa4c4115851a098c0b87358ab6c025603":[7,9,0],
+"cmsis__os_8h.html#ac112e786b2a234e0e45cb5bdbee53763":[7,7,2],
+"cmsis__os_8h.html#ad3c9624ee214329fb34e71f544a6933e":[7,9,1],
+"cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa1485dec3702434a1ec3cb74c7a17a4af":[6,0,1,2,6],
+"cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa17b36cd9cd38652c2bc6d4803990674b":[6,0,1,2,4],
+"cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa193b650117c209b4a203954542bcc3e6":[6,0,1,2,2],
+"cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1":[6,0,1,2,3],
+"cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa549e79a43ff4f8b2b31afb613f5caa81":[6,0,1,2,0],
+"cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa61cb822239ac8f66dfbdc7291598a3d4":[6,0,1,2,1],
+"cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa914433934143a9ba767e59577c56e6c2":[6,0,1,2,5],
+"cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aae35f5e2f9c64ad346822521b643bdea4":[6,0,1,2,7],
+"cmsis__os_8h.html#structosMailQDef__t":[7,4],
+"cmsis__os_8h.html#structosMessageQDef__t":[7,5],
+"cmsis__os_8h.html#structosMutexDef__t":[7,6],
+"cmsis__os_8h.html#structosPoolDef__t":[7,7],
+"cmsis__os_8h.html#structosSemaphoreDef__t":[7,8],
+"cmsis__os_8h.html#structosThreadDef__t":[7,9],
+"cmsis__os_8h.html#structosTimerDef__t":[7,10],
+"configure.html":[5,5],
+"creating_RTX_LIB.html":[5,7],
+"dirstructfiles.html":[5,1],
+"dirstructfiles.html#Folders":[5,1,0],
+"dirstructfiles.html#RTX_Conf_CM":[5,1,2],
+"dirstructfiles.html#libFiles":[5,1,1],
+"exampleRTX_Tutorial.html":[5,6],
+"functionOverview.html":[3],
+"functionOverview.html#CMSIS_RTOS_ISR_Calls":[3,1],
+"functionOverview.html#CMSIS_RTOS_TimeOutValue":[3,0],
+"functions.html":[9,0],
+"functions_vars.html":[9,1],
+"genRTOSIF.html":[1],
+"group__CMSIS__RTOS.html":[6,0],
+"group__CMSIS__RTOS__Definitions.html":[6,0,5],
+"group__CMSIS__RTOS__Definitions.html#a0b9f8fd3645f01d8cb09cae82add2d7f":[6,0,5,0,2],
+"group__CMSIS__RTOS__Definitions.html#a4ccaa172acbdcbf38fa0ea0ef0229c49":[6,0,5,2,1],
+"group__CMSIS__RTOS__Definitions.html#a57aa2b69577037fb2428bc48a9fb1038":[6,0,5,2,0],
+"group__CMSIS__RTOS__Definitions.html#a596b6d55c3321db19239256bbe403df6":[6,0,5,0,0],
+"group__CMSIS__RTOS__Definitions.html#a83878c91171338902e0fe0fb97a8c47a":[6,0,5,1,0],
+"group__CMSIS__RTOS__Definitions.html#a9e3669d19b675bd57058fd4664205d2a":[6,0,5,1,2],
+"group__CMSIS__RTOS__Definitions.html#aa8420f8bebd6d9578b405b6bbaa813d9":[6,0,5,1,1],
+"group__CMSIS__RTOS__Definitions.html#ad477a289f1f03ac45407b64268d707d3":[6,0,5,0,1],
+"group__CMSIS__RTOS__Definitions.html#structosEvent":[6,0,5,0],
+"group__CMSIS__RTOS__Definitions.html#structos__mailQ":[6,0,5,3],
+"group__CMSIS__RTOS__Definitions.html#unionosEvent_8def":[6,0,5,2],
+"group__CMSIS__RTOS__Definitions.html#unionosEvent_8value":[6,0,5,1],
+"group__CMSIS__RTOS__InterThread.html":[6,0,4],
+"group__CMSIS__RTOS__KernelCtrl.html":[6,0,0],
+"group__CMSIS__RTOS__KernelCtrl.html#ga22f7d235bc9f783933bd5a981fd79696":[6,0,0,2],
+"group__CMSIS__RTOS__KernelCtrl.html#ga3b571de44cd3094c643247a7397f86b5":[6,0,0,8],
+"group__CMSIS__RTOS__KernelCtrl.html#ga47cf03658f01cdffca688e9096b58289":[6,0,0,4],
+"group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e":[6,0,0,7],
+"group__CMSIS__RTOS__KernelCtrl.html#ga702196bacccbb978620c736b209387f1":[6,0,0,0],
+"group__CMSIS__RTOS__KernelCtrl.html#ga9e0954d52722673e2031233a2ab99960":[6,0,0,5],
+"group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2":[6,0,0,9],
+"group__CMSIS__RTOS__KernelCtrl.html#gab78dce646fabec479c5f34bc5175b7de":[6,0,0,1],
+"group__CMSIS__RTOS__KernelCtrl.html#gad0262e4688e95d1e9038afd9bcc16001":[6,0,0,10],
+"group__CMSIS__RTOS__KernelCtrl.html#gae12c190af42d7310d8006d64f4ed5a88":[6,0,0,6],
+"group__CMSIS__RTOS__KernelCtrl.html#gae554ec16c23c5b7d65affade2a351891":[6,0,0,3],
+"group__CMSIS__RTOS__Mail.html":[6,0,4,3],
+"group__CMSIS__RTOS__Mail.html#ga27c1060cf21393f96b4fd1ed1c0167cc":[6,0,4,3,6],
+"group__CMSIS__RTOS__Mail.html#ga485ef6f81854ebda8ffbce4832181e02":[6,0,4,3,8],
+"group__CMSIS__RTOS__Mail.html#ga58d712b16c0c6668059f509386d1e55b":[6,0,4,3,2],
+"group__CMSIS__RTOS__Mail.html#ga8fde74f6fe5b9e88f75cc5eb8f2124fd":[6,0,4,3,4],
+"group__CMSIS__RTOS__Mail.html#gaa177e7fe5820dd70d8c9e46ded131174":[6,0,4,3,5],
+"group__CMSIS__RTOS__Mail.html#gac6ad7e6e7d6c4a80e60da22c57a42ccd":[6,0,4,3,7],
+"group__CMSIS__RTOS__Mail.html#gaceb2e0071ce160d153047f2eac1aca8e":[6,0,4,3,0],
+"group__CMSIS__RTOS__Mail.html#gad2deeb66d51ade54e63d8f87ff2ec9d2":[6,0,4,3,1],
+"group__CMSIS__RTOS__Mail.html#gadf5ce811bd6a56e617e902a1db6c2194":[6,0,4,3,3],
+"group__CMSIS__RTOS__Message.html":[6,0,4,1],
+"group__CMSIS__RTOS__Message.html#ga2d446a0b4bb90bf05d6f92eedeaabc97":[6,0,4,1,1],
+"group__CMSIS__RTOS__Message.html#ga479a6561f859e3d4818e25708593d203":[6,0,4,1,0],
+"group__CMSIS__RTOS__Message.html#ga6c6892b8f2296cca6becd57ca2d7e1ae":[6,0,4,1,4],
+"group__CMSIS__RTOS__Message.html#gac0dcf462fc92de8ffaba6cc004514a6d":[6,0,4,1,5],
+"group__CMSIS__RTOS__Message.html#gac9a6a6276c12609793e7701afcc82326":[6,0,4,1,2],
+"group__CMSIS__RTOS__Message.html#gaf3b9345cf426304d46565152bc26fb78":[6,0,4,1,3],
+"group__CMSIS__RTOS__MutexMgmt.html":[6,0,4,4],
+"group__CMSIS__RTOS__MutexMgmt.html#ga006e4744d741e8e132c3d5bbc295afe1":[6,0,4,4,4],
+"group__CMSIS__RTOS__MutexMgmt.html#ga1122a86faa64b4a0880c76cf68d0c934":[6,0,4,4,0],
+"group__CMSIS__RTOS__MutexMgmt.html#ga5c9de56e717016e39e788064e9a291cc":[6,0,4,4,2],
+"group__CMSIS__RTOS__MutexMgmt.html#ga5e1752b73f573ee015dbd9ef1edaba13":[6,0,4,4,5],
+"group__CMSIS__RTOS__MutexMgmt.html#ga9b522438489d7c402c95332b58bc94f3":[6,0,4,4,1],
+"group__CMSIS__RTOS__MutexMgmt.html#gac27e24135185d51d18f3dabc20910219":[6,0,4,4,3],
+"group__CMSIS__RTOS__PoolMgmt.html":[6,0,4,2],
+"group__CMSIS__RTOS__PoolMgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a":[6,0,4,2,5],
+"group__CMSIS__RTOS__PoolMgmt.html#ga4a861e9c469c9d0daf5721bf174f8e54":[6,0,4,2,6],
+"group__CMSIS__RTOS__PoolMgmt.html#ga5f0b204a82327533d420210125c90697":[6,0,4,2,1],
+"group__CMSIS__RTOS__PoolMgmt.html#ga87b471d4fe2d5dbd0040708edd52771b":[6,0,4,2,2],
+"group__CMSIS__RTOS__PoolMgmt.html#ga9f129fcad4730fbd1048ad4fa262f36a":[6,0,4,2,4],
+"group__CMSIS__RTOS__PoolMgmt.html#gaa0b2994f1a866c19e0d11e6e0d44f543":[6,0,4,2,3],
+"group__CMSIS__RTOS__PoolMgmt.html#gadd84b683001de327894851b428587caa":[6,0,4,2,0],
+"group__CMSIS__RTOS__SemaphoreMgmt.html":[6,0,4,5],
+"group__CMSIS__RTOS__SemaphoreMgmt.html#ga03761ee8d2c3cd4544e18364ab301dac":[6,0,4,5,1],
+"group__CMSIS__RTOS__SemaphoreMgmt.html#ga7da4c7bfb340779c9fc7b321f5ab3e3a":[6,0,4,5,0],
+"group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb":[6,0,4,5,3],
+"group__CMSIS__RTOS__SemaphoreMgmt.html#ga9e66fe361749071e5ab87826c43c2f1b":[6,0,4,5,2],
+"group__CMSIS__RTOS__SemaphoreMgmt.html#gab108914997c49e14d8ff1ae0d1988ca0":[6,0,4,5,5],
+"group__CMSIS__RTOS__SemaphoreMgmt.html#gabae2801ac2c096f6e8c69a264908f595":[6,0,4,5,4],
+"group__CMSIS__RTOS__SemaphoreMgmt.html#gacc15b0fc8ce1167fe43da33042e62098":[6,0,4,5,6],
+"group__CMSIS__RTOS__SignalMgmt.html":[6,0,4,0],
+"group__CMSIS__RTOS__SignalMgmt.html#ga01edde265710d883b6e237d34a6ef4a6":[6,0,4,0,0],
+"group__CMSIS__RTOS__SignalMgmt.html#ga38860acda96df47da6923348d96fc4c9":[6,0,4,0,3],
+"group__CMSIS__RTOS__SignalMgmt.html#ga3de2730654589d6c3559c4b9e2825553":[6,0,4,0,2],
+"group__CMSIS__RTOS__SignalMgmt.html#ga87283a6ebc31ce9ed42baf3ea7e4eab6":[6,0,4,0,1],
+"group__CMSIS__RTOS__Status.html":[6,0,6],
+"group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e":[6,0,6,0],
+"group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea15b12e42b42b53f35fb8a2724ad02926":[6,0,6,0,3],
+"group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea21635bdc492d3094fe83027fa4a30e2f":[6,0,6,0,8],
+"group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea314d24a49003f09459035db0dd7c9467":[6,0,6,0,7],
+"group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea4672c8a0c0f6bb1d7981da4602e8e9ee":[6,0,6,0,12],
+"group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea5df7e9643aa8a2f5f3a6f6ec59758518":[6,0,6,0,1],
+"group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea5fde24ff588ec5ab9cb8314bade26fbc":[6,0,6,0,13],
+"group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea78f477732375c0e1fca814e369618177":[6,0,6,0,4],
+"group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea8fc5801e8b0482bdf22ad63a77f0155d":[6,0,6,0,6],
+"group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f":[6,0,6,0,0],
+"group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eab7dda0ef504817659334cbfd650ae56f":[6,0,6,0,10],
+"group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eac24adca6a5d072c9f01c32178ba0d109":[6,0,6,0,5],
+"group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eac7a77f5fe18a15a357790c36a4aca1b1":[6,0,6,0,14],
+"group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ead604f3673359dd4ac643b16dc5a2c342":[6,0,6,0,2],
+"group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eaf1fac0240218e51eb30a13da2f8aae81":[6,0,6,0,11],
+"group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eaf6552310a817452aedfcd453f2805d65":[6,0,6,0,9],
+"group__CMSIS__RTOS__ThreadMgmt.html":[6,0,1],
+"group__CMSIS__RTOS__ThreadMgmt.html#ga0dfb90ccf1f6e4b54b9251b12d1cbc8b":[6,0,1,6],
+"group__CMSIS__RTOS__ThreadMgmt.html#ga4299d838978bc2aae5e4350754e6a4e9":[6,0,1,5],
+"group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a":[6,0,1,2],
+"group__CMSIS__RTOS__ThreadMgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7":[6,0,1,4],
+"group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff":[6,0,1,3],
+"group__CMSIS__RTOS__ThreadMgmt.html#gaea135bb90eb853eff39e0800b91bbeab":[6,0,1,7],
+"group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f":[6,0,1,1],
+"group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453":[6,0,1,0],
+"group__CMSIS__RTOS__ThreadMgmt.html#gaf13a667493c5d629a90c13e113b99233":[6,0,1,8],
+"group__CMSIS__RTOS__TimerMgmt.html":[6,0,3],
+"group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678":[6,0,3,0],
+"group__CMSIS__RTOS__TimerMgmt.html#ga1c720627e08d1cc1afcad44e799ed492":[6,0,3,1],
+"group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca":[6,0,3,5],
+"group__CMSIS__RTOS__TimerMgmt.html#ga58f36b121a812936435cacc6e1e0e091":[6,0,3,6],
+"group__CMSIS__RTOS__TimerMgmt.html#ga746b8043d906849bd65e3900fcb483cf":[6,0,3,4],
+"group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9":[6,0,3,2],
+"group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788":[6,0,3,2,1],
+"group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ad21712f8df5f97069c82dc9eec37b951":[6,0,3,2,0],
+"group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6":[6,0,3,3],
+"group__CMSIS__RTOS__Wait.html":[6,0,2],
+"group__CMSIS__RTOS__Wait.html#ga02e19d5e723bfb06ba9324d625162255":[6,0,2,1],
+"group__CMSIS__RTOS__Wait.html#ga6c97d38879ae86491628f6e647639bad":[6,0,2,0],
+"group__CMSIS__RTOS__Wait.html#ga8470c8aaedfde524a44e22e5b2328285":[6,0,2,2],
+"group__RTX__Global__Functions.html":[6,1],
+"group__RTX__Global__Functions.html#ga145e7eafdd042bb522020cbb3b469d9c":[6,1,4],
+"group__RTX__Global__Functions.html#ga1b85a217d43e6b971ffcf24f8aae1c33":[6,1,2],
+"group__RTX__Global__Functions.html#ga3e9c57746ccbdfe90464ad50513c569e":[6,1,3],
+"group__RTX__Global__Functions.html#ga567543bf38239a91f09751686c23017b":[6,1,7],
+"group__RTX__Global__Functions.html#ga651ae76b3acf45f80bf0e0487b51d6e6":[6,1,0],
+"group__RTX__Global__Functions.html#ga85dab8408f27236c7341a69feb6258c7":[6,1,5],
+"group__RTX__Global__Functions.html#gad5deddec3fea0fb31798f571afc3c692":[6,1,6],
+"group__RTX__Global__Functions.html#gafb4dc4d3dff8343a393726d2860282e4":[6,1,1],
+"index.html":[],
+"lowPower.html":[5,5,3],
+"lowPower.html#TickLess":[5,5,3,0],
+"misraCompliance.html":[5,3],
+"modules.html":[6],
+"pages.html":[],
+"rtosValidation.html":[4],
+"rtosValidation.html#test_output":[4,0],
+"rtos_revisionHistory.html":[0],
+"rtos_revisionHistory.html#GenRTOSRev":[0,0],
+"rtos_revisionHistory.html#RTXRevisionHistory":[0,1],
+"rtxImplementation.html":[5],
+"svcFunctions.html":[5,5,4],
+"systemConfig.html":[5,5,2],
+"systemConfig.html#ISRFIFO":[5,5,2,2],
+"systemConfig.html#RoundRobin":[5,5,2,0],
+"systemConfig.html#UserTimer":[5,5,2,1],
+"technicalData.html":[5,2],
+"technicalData.html#osWait":[5,2,0],
+"theory.html":[5,0],
+"theory.html#KernelTimer":[5,0,1],
+"theory.html#PriorityInversion":[5,0,3],
+"theory.html#RTX_Threads":[5,0,2],
+"theory.html#isr_function_calls":[5,0,4],
+"theory.html#osFeature":[5,0,0],
+"threadConfig.html":[5,5,0],
+"threadConfig.html#processorMode":[5,5,0,3],
+"threadConfig.html#stackCheck":[5,5,0,1],
+"threadConfig.html#stackConfig":[5,5,0,0],
+"threadConfig.html#stackUsage":[5,5,0,2],
+"timerTick.html":[5,5,1],
+"timerTick.html#AltTimer":[5,5,1,0],
+"using.html":[5,4],
+"using.html#DefRefObj":[5,4,0],
+"using.html#UsingIRQs":[5,4,1],
+"usingOS.html":[2],
+"usingOS.html#cmsis_os_h":[2,0]
+};
diff --git a/docs/RTOS/html/open.png b/docs/RTOS/html/open.png
new file mode 100644
index 0000000..30f75c7
--- /dev/null
+++ b/docs/RTOS/html/open.png
Binary files differ
diff --git a/docs/RTOS/html/own_lib_projwin.png b/docs/RTOS/html/own_lib_projwin.png
new file mode 100644
index 0000000..7373a18
--- /dev/null
+++ b/docs/RTOS/html/own_lib_projwin.png
Binary files differ
diff --git a/docs/RTOS/html/pages.html b/docs/RTOS/html/pages.html
new file mode 100644
index 0000000..9e5dd5b
--- /dev/null
+++ b/docs/RTOS/html/pages.html
@@ -0,0 +1,132 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Usage and Description</title>
+<title>CMSIS-RTOS: Usage and Description</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('pages.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Usage and Description</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock">Here is a list of all related documentation pages:</div><div class="directory">
+<table class="directory">
+</table>
+</div><!-- directory -->
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/printComponentTabs.js b/docs/RTOS/html/printComponentTabs.js
new file mode 100644
index 0000000..8afdb6b
--- /dev/null
+++ b/docs/RTOS/html/printComponentTabs.js
@@ -0,0 +1,39 @@
+var strgURL = location.pathname; // path of current component
+
+// constuctor for the array of objects
+function tabElement(id, folderName, tabTxt ) {
+ this.id = id; // elementID as needed in html;
+ this.folderName = folderName; // folder name of the component
+ this.tabTxt = tabTxt; // Text displayed as menu on the web
+ this.currentListItem = '<li id="' + this.id + '" class="current"> <a href="../..' + this.folderName + 'index.html"><span>' + this.tabTxt + '</span></a></li>';
+ this.listItem = '<li id="' + this.id + '"> <a href="../..' + this.folderName + 'index.html"><span>' + this.tabTxt + '</span></a></li>';
+};
+
+// array of objects
+var arr = [];
+
+// fill array
+ arr.push( new tabElement( "GEN", "/General/html/", "General") );
+ arr.push( new tabElement( "CORE_A", "/Core_A/html/", "CMSIS-Core(A)") );
+ arr.push( new tabElement( "CORE_M", "/Core/html/", "CMSIS-Core(M)") );
+ arr.push( new tabElement( "DRV", "/Driver/html/", "Driver") );
+ arr.push( new tabElement( "DSP", "/DSP/html/", "DSP") );
+ arr.push( new tabElement( "NN", "/NN/html/", "NN") );
+ arr.push( new tabElement( "RTOSv1", "/RTOS/html/", "RTOS v1") );
+ arr.push( new tabElement( "RTOSv2", "/RTOS2/html/", "RTOS v2") );
+ arr.push( new tabElement( "PACK", "/Pack/html/", "Pack") );
+ arr.push( new tabElement( "SVD", "/SVD/html/", "SVD") );
+ arr.push( new tabElement( "DAP", "/DAP/html/", "DAP") );
+ arr.push( new tabElement( "ZONE", "/Zone/html/", "Zone") );
+
+// write tabs
+// called from the header file.
+function writeComponentTabs() {
+ for ( var i=0; i < arr.length; i++ ) {
+ if (strgURL.search(arr[i].folderName) > 0) { // if this is the current folder
+ document.write(arr[i].currentListItem); // then print and hightlight the tab
+ } else {
+ document.write(arr[i].listItem); // else, print the tab
+ }
+ }
+};
diff --git a/docs/RTOS/html/project_window.png b/docs/RTOS/html/project_window.png
new file mode 100644
index 0000000..0846b93
--- /dev/null
+++ b/docs/RTOS/html/project_window.png
Binary files differ
diff --git a/docs/RTOS/html/resize.js b/docs/RTOS/html/resize.js
new file mode 100644
index 0000000..304fcb6
--- /dev/null
+++ b/docs/RTOS/html/resize.js
@@ -0,0 +1,97 @@
+var cookie_namespace = 'doxygen';
+var sidenav,navtree,content,header;
+
+function readCookie(cookie)
+{
+ var myCookie = cookie_namespace+"_"+cookie+"=";
+ if (document.cookie)
+ {
+ var index = document.cookie.indexOf(myCookie);
+ if (index != -1)
+ {
+ var valStart = index + myCookie.length;
+ var valEnd = document.cookie.indexOf(";", valStart);
+ if (valEnd == -1)
+ {
+ valEnd = document.cookie.length;
+ }
+ var val = document.cookie.substring(valStart, valEnd);
+ return val;
+ }
+ }
+ return 0;
+}
+
+function writeCookie(cookie, val, expiration)
+{
+ if (val==undefined) return;
+ if (expiration == null)
+ {
+ var date = new Date();
+ date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
+ expiration = date.toGMTString();
+ }
+ document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; expires=" + expiration+"; path=/";
+}
+
+function resizeWidth()
+{
+ var windowWidth = $(window).width() + "px";
+ var sidenavWidth = $(sidenav).outerWidth();
+ content.css({marginLeft:parseInt(sidenavWidth)+"px"});
+ writeCookie('width',sidenavWidth, null);
+}
+
+function restoreWidth(navWidth)
+{
+ var windowWidth = $(window).width() + "px";
+ content.css({marginLeft:parseInt(navWidth)+6+"px"});
+ sidenav.css({width:navWidth + "px"});
+}
+
+function resizeHeight()
+{
+ var headerHeight = header.outerHeight();
+ var footerHeight = footer.outerHeight();
+ var windowHeight = $(window).height() - headerHeight - footerHeight;
+ content.css({height:windowHeight + "px"});
+ navtree.css({height:windowHeight + "px"});
+ sidenav.css({height:windowHeight + "px",top: headerHeight+"px"});
+}
+
+function initResizable()
+{
+ header = $("#top");
+ sidenav = $("#side-nav");
+ content = $("#doc-content");
+ navtree = $("#nav-tree");
+ footer = $("#nav-path");
+ $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } });
+ $(window).resize(function() { resizeHeight(); });
+ var width = readCookie('width');
+ if (width) { restoreWidth(width); } else { resizeWidth(); }
+ resizeHeight();
+ var url = location.href;
+ var i=url.indexOf("#");
+ if (i>=0) window.location.hash=url.substr(i);
+ var _preventDefault = function(evt) { evt.preventDefault(); };
+ $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
+ $(document).bind('touchmove',function(e){
+ var device = navigator.userAgent.toLowerCase();
+ var ios = device.match(/(iphone|ipod|ipad)/);
+ if (ios) {
+ try {
+ var target = e.target;
+ while (target) {
+ if ($(target).css('-webkit-overflow-scrolling')=='touch') return;
+ target = target.parentNode;
+ }
+ e.preventDefault();
+ } catch(err) {
+ e.preventDefault();
+ }
+ }
+ });
+}
+
+
diff --git a/docs/RTOS/html/rtosValidation.html b/docs/RTOS/html/rtosValidation.html
new file mode 100644
index 0000000..700a335
--- /dev/null
+++ b/docs/RTOS/html/rtosValidation.html
@@ -0,0 +1,171 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>RTOS Validation</title>
+<title>CMSIS-RTOS: RTOS Validation</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('rtosValidation.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">RTOS Validation </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>Arm offers a <a href="http://www.keil.com/pack" class="el" target="_blank">Software Pack</a> for the CMSIS-RTOS Validation. The <b>ARM::CMSIS-RTOS_Validation</b> Pack contains the following:</p>
+<ul>
+<li>Source code of a CMSIS-RTOS Validation Suite along with configuration file.</li>
+<li>Documentation of the CMSIS-RTOS Validation Suite.</li>
+<li>Example that shows the usage of the CMSIS-RTOS Validation Suite using simulation.</li>
+</ul>
+<p>The CMSIS-RTOS Validation Suite is currently available in beta release and performs generic validation of various RTOS features. The test cases verify the functional behaviour, test invalid parameters and call management functions from ISR.</p>
+<p>The following CMSIS-RTOS features can be tested with the current release:</p>
+<ul>
+<li>Thread : Create multiple threads, terminate, restart, yield, change priority</li>
+<li>Timer : Create periodic and one-shot timers</li>
+<li>GenWait : Call generic wait functions (osDelay and osWait)</li>
+<li>WaitFunc : Measure wait ticks (delay, mail, message, mutex, semaphore, signal)</li>
+</ul>
+<p>Moreover the following inter-thread communication functions can be tested:</p>
+<ul>
+<li>Signal : Verify signal events</li>
+<li>Memory Pool : Verify memory allocation</li>
+<li>Message Queue : Exchange messages between threads</li>
+<li>Mail Queue : Exchange data between threads</li>
+<li>Mutex : Synchronize resource access</li>
+<li>Semaphore : Access shared resources</li>
+</ul>
+<p>The RTOS Validation output can be printed to a console, output via ITM printf, or output to a memory buffer.</p>
+<h1><a class="anchor" id="test_output"></a>
+Sample Test Output</h1>
+<pre class="fragment">CMSIS-RTOS Test Suite Oct 21 2015 16:39:16
+
+TEST 01: TC_ThreadCreate PASSED
+TEST 02: TC_ThreadMultiInstance PASSED
+TEST 03: TC_ThreadTerminate PASSED
+ :
+ :
+TEST 08: TC_ThreadChainedCreate PASSED
+TEST 09: TC_ThreadYield NOT EXECUTED
+TEST 10: TC_ThreadParam PASSED
+ :
+ :
+TEST 60: TC_MailFromISRToThread PASSED
+
+Test Summary: 60 Tests, 59 Executed, 59 Passed, 0 Failed, 0 Warnings.
+Test Result: PASSED
+</pre> </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="index.html">index</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/rtos_revisionHistory.html b/docs/RTOS/html/rtos_revisionHistory.html
new file mode 100644
index 0000000..de1097c
--- /dev/null
+++ b/docs/RTOS/html/rtos_revisionHistory.html
@@ -0,0 +1,227 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Revision History</title>
+<title>CMSIS-RTOS: Revision History</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('rtos_revisionHistory.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Revision History </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><h1><a class="anchor" id="GenRTOSRev"></a>
+CMSIS-RTOS API</h1>
+<table class="cmtable" summary="Revision History">
+<tr>
+<th>Version </th><th>Description </th></tr>
+<tr>
+<td>V1.03 - only documentation changes </td><td>Incorporated documentation for reference implementation CMSIS-RTOS RTX. </td></tr>
+<tr>
+<td>V1.02 - only documentation changes </td><td>Added: Overview of the <a class="el" href="rtosValidation.html">CMSIS-RTOS Validation</a> Software Pack.<br/>
+ Clarified: Behaviour of <a class="el" href="functionOverview.html#CMSIS_RTOS_TimeOutValue">Timout Value</a>. </td></tr>
+<tr>
+<td>V1.02 </td><td>Added: New control functions for short timeouts in microsecond resolution <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gad0262e4688e95d1e9038afd9bcc16001">osKernelSysTick</a>, <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga9e0954d52722673e2031233a2ab99960">osKernelSysTickFrequency</a>, <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gae12c190af42d7310d8006d64f4ed5a88">osKernelSysTickMicroSec</a>.<br/>
+ Removed: osSignalGet. </td></tr>
+<tr>
+<td>V1.01 </td><td>Added capabilities for C++, kernel initialization and object deletion.<br/>
+ Prepared for C++ class interface. In this context to <em>const</em> attribute has been moved from osXxxxDef_t typedefs to the osXxxxDef macros.<br/>
+ Added: <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga746b8043d906849bd65e3900fcb483cf">osTimerDelete</a>, <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#gac27e24135185d51d18f3dabc20910219">osMutexDelete</a>, <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gabae2801ac2c096f6e8c69a264908f595">osSemaphoreDelete</a>.<br/>
+ Added: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e">osKernelInitialize</a> that prepares the Kernel for object creation.<br/>
+ </td></tr>
+<tr>
+<td>V1.00 </td><td>First official Release.<br/>
+ Added: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2">osKernelStart</a>; starting 'main' as a thread is now an optional feature.<br/>
+ Semaphores have now the standard behavior.<br/>
+ <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6">osTimerCreate</a> does no longer start the timer. Added: <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca">osTimerStart</a> (replaces osTimerRestart).<br/>
+ Changed: osThreadPass is renamed to <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf13a667493c5d629a90c13e113b99233">osThreadYield</a>. </td></tr>
+<tr>
+<td>V0.02 </td><td>Preview Release. </td></tr>
+</table>
+<h1><a class="anchor" id="RTXRevisionHistory"></a>
+CMSIS-RTOS RTX</h1>
+<table class="cmtable" summary="Revision History">
+<tr>
+<th>Version </th><th>Description </th></tr>
+<tr>
+<td>V4.82 </td><td>Corrected: Recursive Mutex 16-bit lock counter is now checked to not overflow.<br/>
+ </td></tr>
+<tr>
+<td>V4.81 </td><td>Added provisions for Arm Compiler 6.<br/>
+ Corrected: Message Queue behavior when osMessagePut timed out due to full queue and osMessageGet was called from ISR.<br/>
+ </td></tr>
+<tr>
+<td>V4.80 </td><td>Restored time delay parameter 'millisec' old behavior (before V4.79) for software compatibility.<br/>
+ Corrected: implicit mutex release when mutex owner thread is terminated.<br/>
+ </td></tr>
+<tr>
+<td>V4.79 </td><td>Corrected: time delay parameter ‘millisec’ in all functions (osDelay, osSignalWait, …) is now treated as lower bound – wait for at least time given (before it could have been up to 1ms less).<br/>
+ Corrected: Lazy Context switching for Cortex-M4 with FPU could lead to a crash when thread which used FPU was terminated.<br/>
+ Corrected: osMailCAlloc only cleared the allocated memory block if it was available without waiting.<br/>
+ Corrected: osThreadCreate function returns NULL when trying to create more concurrent threads than defined in the configuration.<br/>
+ Improved source code MISRA compliance.<br/>
+ </td></tr>
+<tr>
+<td>V4.78 </td><td>Corrected: osTimerStart function accepts full 32-bit range for time delay value in milisec.<br/>
+ Added: User Timer Callback Queue overflow reported through os_error(OS_ERROR_TIMER_OVF).<br/>
+ </td></tr>
+<tr>
+<td>V4.77 </td><td>Added: Stack usage watermark.<br/>
+ </td></tr>
+<tr>
+<td>V4.76 </td><td>Optimized Service calls in GCC libraries.<br/>
+ Corrected: Stack/Heap regions can be used with scatter loading.<br/>
+ </td></tr>
+<tr>
+<td>V4.75 </td><td>Corrected: Service calls for Cortex-M4 with Floating Point for GCC.<br/>
+ Corrected: <a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga87283a6ebc31ce9ed42baf3ea7e4eab6">osSignalClear</a> returns 0x80000000 when called from interrupt service routines.<br/>
+ Corrected: C standard library memory functions (malloc, free, ...) can be called between calls to <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e">osKernelInitialize</a> and <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2">osKernelStart</a>.<br/>
+ Corrected: Interrupt Priority Group can be configured between calls to <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e">osKernelInitialize</a> and <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2">osKernelStart</a>.<br/>
+ </td></tr>
+<tr>
+<td>V4.74 </td><td>Corrected: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e">osKernelInitialize</a> and <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2">osKernelStart</a> when called from main which is already a thread.<br/>
+ </td></tr>
+<tr>
+<td>V4.73 </td><td>Corrected: mutex priority inversion when thread owns more than one mutex.<br/>
+ Added: RTX extensions os_suspend and os_resume.<br/>
+ Added: RTX os_error template. </td></tr>
+<tr>
+<td>V4.72 </td><td>Corrected: object initialization when defined inside function (allocated on stack and not as static memory). </td></tr>
+<tr>
+<td>V4.71 </td><td>Corrected: osMailFree behaviour when osMailAlloc timed out. </td></tr>
+<tr>
+<td>V4.70 </td><td>Added: New control functions for short timeouts in microsecond resolution <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gad0262e4688e95d1e9038afd9bcc16001">osKernelSysTick</a>, <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga9e0954d52722673e2031233a2ab99960">osKernelSysTickFrequency</a>, <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gae12c190af42d7310d8006d64f4ed5a88">osKernelSysTickMicroSec</a>.<br/>
+ Removed: osSignalGet. </td></tr>
+<tr>
+<td>V4.61 </td><td>Enhanced: <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6">osTimerCreate</a> can now be called after <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e">osKernelInitialize</a> (before only after <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2">osKernelStart</a>).<br/>
+ Corrected: Initialization of alternative kernel timer for Cortex-M0/M0+/M1 (when SysTick timer is not used).<br/>
+ Corrected: Message/Mail Queue behavior when timeout expires. </td></tr>
+<tr>
+<td>V4.51 </td><td>Corrected: problem with <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e">osKernelInitialize</a> when after the call high priority threads are defined. </td></tr>
+<tr>
+<td>V4.50 </td><td>Based on CMSIS-RTOS API Version 1.01 and the classic RTX V4.50 Kernel.<br/>
+ Added: <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html#ga746b8043d906849bd65e3900fcb483cf">osTimerDelete</a>, <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#gac27e24135185d51d18f3dabc20910219">osMutexDelete</a>, <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gabae2801ac2c096f6e8c69a264908f595">osSemaphoreDelete</a>.<br/>
+ Added: <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e">osKernelInitialize</a> that prepares the Kernel for object creation.<br/>
+ Added: support for Low Power Cortex-M applications based on new configuration functions: <b>os_suspend</b>, <b>os_resume</b>.<br/>
+ Added: support for peripheral timer to be used as OS tick timer instead of Core SysTick timer.<br/>
+ Corrected: stack checking did not work for os_tsk_delete_self function Preview Release. </td></tr>
+<tr>
+<td>V4.20 </td><td>Initial CMSIS-RTOS adaption of the RTX Kernel. </td></tr>
+</table>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="index.html">index</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/rtxImplementation.html b/docs/RTOS/html/rtxImplementation.html
new file mode 100644
index 0000000..73fdaf2
--- /dev/null
+++ b/docs/RTOS/html/rtxImplementation.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>RTX Implementation</title>
+<title>CMSIS-RTOS: RTX Implementation</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('rtxImplementation.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">RTX Implementation </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>This version of RTX implements the CMSIS-RTOS API, which is a generic RTOS interface for Cortex-M processor-based devices. The CMSIS-RTOS API provides a standardized interface for software components that require RTOS functionality. This RTX implementation gives therefore serious benefits to the users and the software industry.</p>
+<ul>
+<li>The unified feature set of the CMSIS-RTOS API simplifies sharing of software components and reduces learning efforts.</li>
+<li>Middleware components that use the CMSIS-RTOS API are RTOS agnostic and CMSIS-RTOS compliant middleware is easier to adapt.</li>
+<li>This RTX implementation is available under the Apache-2.0 license and can be freely distributed with project templates.</li>
+</ul>
+<p>The CMSIS-RTOS RTX manages the resources of the microcontroller system and implements the concept of parallel threads that run concurrently. There are many advantages of using the CMSIS-RTOS RTX kernel.</p>
+<p>Applications frequently require several concurrent activities. RTX can manage multiple concurrent activities at the time when they are needed. Each activity gets a separate thread which executes a specific task and this simplifies the overall program structure. The CMSIS-RTOS RTX system is scalable and additional threads can be added easily at a later time. Threads have a priority allowing faster execution of time-critical parts of an user application.</p>
+<p>The CMSIS-RTOS RTX offers services needed in many real-time applications, for example, periodical activation of timer functions, memory management, and message exchange between threads with time limits.</p>
+<div class="image">
+<img src="RTX_Structure.png" alt="RTX_Structure.png"/>
+<div class="caption">
+CMSIS-RTOS RTX Structure</div></div>
+<p> Compared to the classic Keil RTX version, the CMSIS-RTOS RTX library is extended with the CMSIS API interface module (source file rt_cmsis.c) which implements the function translation. The header file <a class="el" href="cmsis__os_8h.html">cmsis_os.h</a> provides the API to the CMSIS-RTOS RTX for the user application. Refer to <a class="el" href="using.html">Create an RTX Project</a> for more information.</p>
+<p>CMSIS-RTOS RTX has several options that are configured with the <a class="el" href="dirstructfiles.html#RTX_Conf_CM">RTX_Conf_CM.c</a> file. Refer to <a class="el" href="configure.html">Configure RTX</a> for more information.</p>
+<p>Attributes of the CMSIS-RTOS RTX implementation:</p>
+<ul>
+<li>Provides the complete functions specified for a CMSIS-RTOS with the exception of the function <a class="el" href="technicalData.html#osWait">osWait</a>.</li>
+<li>Interrupt Service Routines (ISR) <a class="el" href="theory.html#isr_function_calls">may call some CMSIS-RTOS RTX functions</a>.</li>
+<li>Configurations options for Thread Stack. Refer to <a class="el" href="threadConfig.html">Thread Configuration</a> for more information.</li>
+<li>Fully deterministic context switching and deadlock avoidance. Refer to <a class="el" href="theory.html#PriorityInversion">Priority Inversion on Resource Sharing</a> for more information.</li>
+<li>Optional Round-Robin Thread switching with configurable time-slices. Refer to <a class="el" href="threadConfig.html">Thread Configuration</a> for more information.</li>
+</ul>
+<p>The following sections provide further details:</p>
+<ul>
+<li><a class="el" href="theory.html">Theory of Operation</a> : provides general information about the operation of CMSIS-RTOS RTX.</li>
+<li><a class="el" href="dirstructfiles.html">Directory Structure and File Overview</a> : explains the directories and files that are supplied as part of CMSIS-RTOS RTX.</li>
+<li><a class="el" href="technicalData.html">Technical Data</a> : lists hardware requirements and limitations such as number of concurrent threads.</li>
+<li><a class="el" href="misraCompliance.html">MISRA-C:2004 Compliance Exceptions</a> : describes the violations to the MISRA standard.</li>
+<li><a class="el" href="using.html">Create an RTX Project</a> : Provides instructions for writing and debugging applications with CMSIS-RTOS RTX.</li>
+<li><a class="el" href="configure.html">Configure RTX</a> : Describes configuration parameters of CMSIS-RTOS RTX.</li>
+<li><a class="el" href="exampleRTX_Tutorial.html">RTX Tutorial</a> : Is an in-depth tutorial that can be used with any hardware to get a better understanding of the concepts and use cases of a real-time operating system.</li>
+<li><a class="el" href="creating_RTX_LIB.html">Building the RTX Library</a> : Describes how to build your own CMSIS-RTOS RTX library. </li>
+</ul>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="index.html">index</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/rtxImplementation.js b/docs/RTOS/html/rtxImplementation.js
new file mode 100644
index 0000000..96d7f31
--- /dev/null
+++ b/docs/RTOS/html/rtxImplementation.js
@@ -0,0 +1,26 @@
+var rtxImplementation =
+[
+ [ "Theory of Operation", "theory.html", [
+ [ "Settings for osFeature_xxx in cmsis_os.h", "theory.html#osFeature", null ],
+ [ "RTX Kernel Timer Tick and Thread Management", "theory.html#KernelTimer", null ],
+ [ "CMSIS-RTOS RTX Threads", "theory.html#RTX_Threads", null ],
+ [ "Priority Inversion on Resource Sharing", "theory.html#PriorityInversion", null ],
+ [ "Function calls from Interrupt Service Routines (ISR)", "theory.html#isr_function_calls", null ]
+ ] ],
+ [ "Directory Structure and File Overview", "dirstructfiles.html", [
+ [ "CMSIS-RTOS RTX Directory Structure", "dirstructfiles.html#Folders", null ],
+ [ "CMSIS-RTOS RTX Library Files", "dirstructfiles.html#libFiles", null ],
+ [ "Configuration File RTX_Conf_CM.c", "dirstructfiles.html#RTX_Conf_CM", null ]
+ ] ],
+ [ "Technical Data", "technicalData.html", [
+ [ "osWait", "technicalData.html#osWait", null ]
+ ] ],
+ [ "MISRA-C:2004 Compliance Exceptions", "misraCompliance.html", null ],
+ [ "Create an RTX Project", "using.html", [
+ [ "Define and Reference Object Definitions", "using.html#DefRefObj", null ],
+ [ "Using IRQ Interrupts", "using.html#UsingIRQs", null ]
+ ] ],
+ [ "Configure RTX", "configure.html", "configure" ],
+ [ "RTX Tutorial", "exampleRTX_Tutorial.html", null ],
+ [ "Building the RTX Library", "creating_RTX_LIB.html", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/search/all_0.html b/docs/RTOS/html/search/all_0.html
new file mode 100644
index 0000000..17b6da8
--- /dev/null
+++ b/docs/RTOS/html/search/all_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/all_0.js b/docs/RTOS/html/search/all_0.js
new file mode 100644
index 0000000..73791ef
--- /dev/null
+++ b/docs/RTOS/html/search/all_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['building_20the_20rtx_20library',['Building the RTX Library',['../creating_RTX_LIB.html',1,'rtxImplementation']]]
+];
diff --git a/docs/RTOS/html/search/all_1.html b/docs/RTOS/html/search/all_1.html
new file mode 100644
index 0000000..e290644
--- /dev/null
+++ b/docs/RTOS/html/search/all_1.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/all_1.js b/docs/RTOS/html/search/all_1.js
new file mode 100644
index 0000000..1557d8e
--- /dev/null
+++ b/docs/RTOS/html/search/all_1.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+ ['cmsis_5fos_2eh',['cmsis_os.h',['../cmsis__os_8h.html',1,'']]],
+ ['cmsis_5fos_2etxt',['cmsis_os.txt',['../cmsis__os_8txt.html',1,'']]],
+ ['cmsis_5fos_5frtx_5fextensions_2eh',['cmsis_os_rtx_extensions.h',['../cmsis__os__rtx__extensions_8h.html',1,'']]],
+ ['cmsis_2drtos_20api',['CMSIS-RTOS API',['../group__CMSIS__RTOS.html',1,'']]],
+ ['configure_20rtx',['Configure RTX',['../configure.html',1,'rtxImplementation']]],
+ ['configuration_20for_20low_2dpower_20modes',['Configuration for Low-Power Modes',['../lowPower.html',1,'configure']]],
+ ['create_20an_20rtx_20project',['Create an RTX Project',['../using.html',1,'rtxImplementation']]]
+];
diff --git a/docs/RTOS/html/search/all_2.html b/docs/RTOS/html/search/all_2.html
new file mode 100644
index 0000000..95ded12
--- /dev/null
+++ b/docs/RTOS/html/search/all_2.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/all_2.js b/docs/RTOS/html/search/all_2.js
new file mode 100644
index 0000000..e6f25ab
--- /dev/null
+++ b/docs/RTOS/html/search/all_2.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['def',['def',['../group__CMSIS__RTOS__Definitions.html#a596b6d55c3321db19239256bbe403df6',1,'osEvent']]],
+ ['directory_20structure_20and_20file_20overview',['Directory Structure and File Overview',['../dirstructfiles.html',1,'rtxImplementation']]],
+ ['dummy',['dummy',['../cmsis__os_8h.html#a44b7a3baf02bac7ad707e8f2f5eca1ca',1,'osMutexDef_t::dummy()'],['../cmsis__os_8h.html#a44b7a3baf02bac7ad707e8f2f5eca1ca',1,'osSemaphoreDef_t::dummy()']]]
+];
diff --git a/docs/RTOS/html/search/all_3.html b/docs/RTOS/html/search/all_3.html
new file mode 100644
index 0000000..4d312d0
--- /dev/null
+++ b/docs/RTOS/html/search/all_3.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/all_3.js b/docs/RTOS/html/search/all_3.js
new file mode 100644
index 0000000..92b936a
--- /dev/null
+++ b/docs/RTOS/html/search/all_3.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['function_20overview',['Function Overview',['../functionOverview.html',1,'index']]]
+];
diff --git a/docs/RTOS/html/search/all_4.html b/docs/RTOS/html/search/all_4.html
new file mode 100644
index 0000000..d72a910
--- /dev/null
+++ b/docs/RTOS/html/search/all_4.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/all_4.js b/docs/RTOS/html/search/all_4.js
new file mode 100644
index 0000000..d5eb908
--- /dev/null
+++ b/docs/RTOS/html/search/all_4.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['generic_20data_20types_20and_20definitions',['Generic Data Types and Definitions',['../group__CMSIS__RTOS__Definitions.html',1,'']]],
+ ['generic_20wait_20functions',['Generic Wait Functions',['../group__CMSIS__RTOS__Wait.html',1,'']]],
+ ['generic_20rtos_20interface',['Generic RTOS Interface',['../genRTOSIF.html',1,'index']]]
+];
diff --git a/docs/RTOS/html/search/all_5.html b/docs/RTOS/html/search/all_5.html
new file mode 100644
index 0000000..99ef726
--- /dev/null
+++ b/docs/RTOS/html/search/all_5.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/all_5.js b/docs/RTOS/html/search/all_5.js
new file mode 100644
index 0000000..1ee8798
--- /dev/null
+++ b/docs/RTOS/html/search/all_5.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['inter_2dthread_20communication_20and_20resource_20sharing',['Inter-Thread Communication and Resource Sharing',['../group__CMSIS__RTOS__InterThread.html',1,'']]],
+ ['instances',['instances',['../cmsis__os_8h.html#aa4c4115851a098c0b87358ab6c025603',1,'osThreadDef_t']]],
+ ['item_5fsz',['item_sz',['../cmsis__os_8h.html#a4c2a0c691de3365c00ecd22d8102811f',1,'osPoolDef_t::item_sz()'],['../cmsis__os_8h.html#a4c2a0c691de3365c00ecd22d8102811f',1,'osMessageQDef_t::item_sz()'],['../cmsis__os_8h.html#a4c2a0c691de3365c00ecd22d8102811f',1,'osMailQDef_t::item_sz()']]]
+];
diff --git a/docs/RTOS/html/search/all_6.html b/docs/RTOS/html/search/all_6.html
new file mode 100644
index 0000000..6133ab3
--- /dev/null
+++ b/docs/RTOS/html/search/all_6.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/all_6.js b/docs/RTOS/html/search/all_6.js
new file mode 100644
index 0000000..1b6ceb1
--- /dev/null
+++ b/docs/RTOS/html/search/all_6.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['kernel_20information_20and_20control',['Kernel Information and Control',['../group__CMSIS__RTOS__KernelCtrl.html',1,'']]]
+];
diff --git a/docs/RTOS/html/search/all_7.html b/docs/RTOS/html/search/all_7.html
new file mode 100644
index 0000000..5748125
--- /dev/null
+++ b/docs/RTOS/html/search/all_7.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/all_7.js b/docs/RTOS/html/search/all_7.js
new file mode 100644
index 0000000..0898e92
--- /dev/null
+++ b/docs/RTOS/html/search/all_7.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+ ['mail_20queue',['Mail Queue',['../group__CMSIS__RTOS__Mail.html',1,'']]],
+ ['message_20queue',['Message Queue',['../group__CMSIS__RTOS__Message.html',1,'']]],
+ ['mutexes',['Mutexes',['../group__CMSIS__RTOS__MutexMgmt.html',1,'']]],
+ ['memory_20pool',['Memory Pool',['../group__CMSIS__RTOS__PoolMgmt.html',1,'']]],
+ ['misra_2dc_3a2004_20compliance_20exceptions',['MISRA-C:2004 Compliance Exceptions',['../misraCompliance.html',1,'rtxImplementation']]]
+];
diff --git a/docs/RTOS/html/search/all_8.html b/docs/RTOS/html/search/all_8.html
new file mode 100644
index 0000000..0179bdd
--- /dev/null
+++ b/docs/RTOS/html/search/all_8.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/all_8.js b/docs/RTOS/html/search/all_8.js
new file mode 100644
index 0000000..e22fe05
--- /dev/null
+++ b/docs/RTOS/html/search/all_8.js
@@ -0,0 +1,150 @@
+var searchData=
+[
+ ['os_5fclock',['OS_CLOCK',['../RTX__Conf__CM_8c.html#adff23afdf544a322a38314870f8848b9',1,'RTX_Conf_CM.c']]],
+ ['os_5ferror',['os_error',['../group__RTX__Global__Functions.html#ga651ae76b3acf45f80bf0e0487b51d6e6',1,'os_error(uint32_t error_code):&#160;RTX_Conf_CM.c'],['../group__RTX__Global__Functions.html#ga651ae76b3acf45f80bf0e0487b51d6e6',1,'os_error(uint32_t error_code):&#160;RTX_Conf_CM.c']]],
+ ['os_5ferror_5ffifo_5fovf',['OS_ERROR_FIFO_OVF',['../RTX__Conf__CM_8c.html#a075d54df14c85a6afe32b7f5c99c9c29',1,'RTX_Conf_CM.c']]],
+ ['os_5ferror_5fmbx_5fovf',['OS_ERROR_MBX_OVF',['../RTX__Conf__CM_8c.html#ab715d7d66c341c067ef0a97b55db8a10',1,'RTX_Conf_CM.c']]],
+ ['os_5ferror_5fstack_5fovf',['OS_ERROR_STACK_OVF',['../RTX__Conf__CM_8c.html#abf8311a7a239ec56c6d725f926ba766d',1,'RTX_Conf_CM.c']]],
+ ['os_5ferror_5ftimer_5fovf',['OS_ERROR_TIMER_OVF',['../RTX__Conf__CM_8c.html#a79d7e388d951f11bd0dabd13f722cea8',1,'RTX_Conf_CM.c']]],
+ ['os_5ffifosz',['OS_FIFOSZ',['../RTX__Conf__CM_8c.html#a93c8e36d441750016f9f72e102f68d66',1,'RTX_Conf_CM.c']]],
+ ['os_5fidle_5fdemon',['os_idle_demon',['../group__RTX__Global__Functions.html#gafb4dc4d3dff8343a393726d2860282e4',1,'os_idle_demon(void):&#160;RTX_Conf_CM.c'],['../group__RTX__Global__Functions.html#gafb4dc4d3dff8343a393726d2860282e4',1,'os_idle_demon(void):&#160;RTX_Conf_CM.c']]],
+ ['os_5fmailq',['os_mailQ',['../group__CMSIS__RTOS__Definitions.html#structos__mailQ',1,'']]],
+ ['os_5fmainstksize',['OS_MAINSTKSIZE',['../RTX__Conf__CM_8c.html#a95362a96f44d4314f148ae24edd52f7c',1,'RTX_Conf_CM.c']]],
+ ['os_5fmutexcnt',['OS_MUTEXCNT',['../RTX__Conf__CM_8c.html#ad11cf133eea28b601f9a63cd9af9b786',1,'RTX_Conf_CM.c']]],
+ ['os_5fprivcnt',['OS_PRIVCNT',['../RTX__Conf__CM_8c.html#a7cfcbf2c4f9d0a63424a2a48592955b1',1,'RTX_Conf_CM.c']]],
+ ['os_5fprivstksize',['OS_PRIVSTKSIZE',['../RTX__Conf__CM_8c.html#a6e0d30986e4ae0df44f449a4b3b0fbec',1,'RTX_Conf_CM.c']]],
+ ['os_5fpthread',['os_pthread',['../cmsis__os_8h.html#aee631e5ea1b700fc35695cc7bc574cf7',1,'cmsis_os.h']]],
+ ['os_5fptimer',['os_ptimer',['../cmsis__os_8h.html#aa2d85e49bde9f6951ff3545cd323f065',1,'cmsis_os.h']]],
+ ['os_5fresume',['os_resume',['../group__RTX__Global__Functions.html#ga1b85a217d43e6b971ffcf24f8aae1c33',1,'cmsis_os_rtx_extensions.h']]],
+ ['os_5frobin',['OS_ROBIN',['../RTX__Conf__CM_8c.html#ae34f3058383d9fa9280bbf595618ab0a',1,'RTX_Conf_CM.c']]],
+ ['os_5frobintout',['OS_ROBINTOUT',['../RTX__Conf__CM_8c.html#ad89fdd7232cfba74d400080b6bcc0012',1,'RTX_Conf_CM.c']]],
+ ['os_5frunpriv',['OS_RUNPRIV',['../RTX__Conf__CM_8c.html#a786924d58be54e943a7e73458cebc51b',1,'RTX_Conf_CM.c']]],
+ ['os_5fstatus_5freserved',['os_status_reserved',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eac7a77f5fe18a15a357790c36a4aca1b1',1,'cmsis_os.h']]],
+ ['os_5fstkcheck',['OS_STKCHECK',['../RTX__Conf__CM_8c.html#a6ef9e00396f881f0fa9ac877150e5962',1,'RTX_Conf_CM.c']]],
+ ['os_5fstkinit',['OS_STKINIT',['../RTX__Conf__CM_8c.html#ac820623da739e4219ee86f15bdcd9752',1,'RTX_Conf_CM.c']]],
+ ['os_5fstksize',['OS_STKSIZE',['../RTX__Conf__CM_8c.html#a16495c133349f3e7c27ac933857c1a8c',1,'RTX_Conf_CM.c']]],
+ ['os_5fsuspend',['os_suspend',['../group__RTX__Global__Functions.html#ga3e9c57746ccbdfe90464ad50513c569e',1,'cmsis_os_rtx_extensions.h']]],
+ ['os_5ftaskcnt',['OS_TASKCNT',['../RTX__Conf__CM_8c.html#a309353d912327b7f4a2300711ee1b349',1,'RTX_Conf_CM.c']]],
+ ['os_5ftick',['OS_TICK',['../RTX__Conf__CM_8c.html#ab6b10bd6d60e95ab28c775757f6bfbcc',1,'RTX_Conf_CM.c']]],
+ ['os_5ftick_5finit',['os_tick_init',['../group__RTX__Global__Functions.html#ga145e7eafdd042bb522020cbb3b469d9c',1,'RTX_Conf_CM.c']]],
+ ['os_5ftick_5firqack',['os_tick_irqack',['../group__RTX__Global__Functions.html#ga85dab8408f27236c7341a69feb6258c7',1,'RTX_Conf_CM.c']]],
+ ['os_5ftick_5fovf',['os_tick_ovf',['../group__RTX__Global__Functions.html#gad5deddec3fea0fb31798f571afc3c692',1,'RTX_Conf_CM.c']]],
+ ['os_5ftick_5fval',['os_tick_val',['../group__RTX__Global__Functions.html#ga567543bf38239a91f09751686c23017b',1,'RTX_Conf_CM.c']]],
+ ['os_5ftimer_5ftype',['os_timer_type',['../group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9',1,'os_timer_type():&#160;cmsis_os.txt'],['../cmsis__os_8h.html#adac860eb9e1b4b0619271e6595ed83d9',1,'os_timer_type():&#160;cmsis_os.h']]],
+ ['os_5ftimercbqs',['OS_TIMERCBQS',['../RTX__Conf__CM_8c.html#a29701cff84a42494279367ad018f252d',1,'RTX_Conf_CM.c']]],
+ ['os_5ftimerprio',['OS_TIMERPRIO',['../RTX__Conf__CM_8c.html#a90af874f1df4dfb0f8821cc2d860dae6',1,'RTX_Conf_CM.c']]],
+ ['os_5ftimers',['OS_TIMERS',['../RTX__Conf__CM_8c.html#a23b0f1095632e58b5ac0d8f7dcfdfded',1,'RTX_Conf_CM.c']]],
+ ['os_5ftimerstksz',['OS_TIMERSTKSZ',['../RTX__Conf__CM_8c.html#a76d1b01799981a753fc528e600015627',1,'RTX_Conf_CM.c']]],
+ ['os_5ftrv',['OS_TRV',['../RTX__Conf__CM_8c.html#a9d55a070ddb219165bd4287f08318d51',1,'RTX_Conf_CM.c']]],
+ ['oscmsis',['osCMSIS',['../group__CMSIS__RTOS__KernelCtrl.html#ga702196bacccbb978620c736b209387f1',1,'cmsis_os.h']]],
+ ['oscmsis_5fkernel',['osCMSIS_KERNEL',['../group__CMSIS__RTOS__KernelCtrl.html#gab78dce646fabec479c5f34bc5175b7de',1,'cmsis_os.h']]],
+ ['osdelay',['osDelay',['../group__CMSIS__RTOS__Wait.html#ga02e19d5e723bfb06ba9324d625162255',1,'cmsis_os.h']]],
+ ['oserrorisr',['osErrorISR',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea21635bdc492d3094fe83027fa4a30e2f',1,'cmsis_os.h']]],
+ ['oserrorisrrecursive',['osErrorISRRecursive',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eaf6552310a817452aedfcd453f2805d65',1,'cmsis_os.h']]],
+ ['oserrornomemory',['osErrorNoMemory',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eaf1fac0240218e51eb30a13da2f8aae81',1,'cmsis_os.h']]],
+ ['oserroros',['osErrorOS',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea5fde24ff588ec5ab9cb8314bade26fbc',1,'cmsis_os.h']]],
+ ['oserrorparameter',['osErrorParameter',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eac24adca6a5d072c9f01c32178ba0d109',1,'cmsis_os.h']]],
+ ['oserrorpriority',['osErrorPriority',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eab7dda0ef504817659334cbfd650ae56f',1,'cmsis_os.h']]],
+ ['oserrorresource',['osErrorResource',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea8fc5801e8b0482bdf22ad63a77f0155d',1,'cmsis_os.h']]],
+ ['oserrortimeoutresource',['osErrorTimeoutResource',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea314d24a49003f09459035db0dd7c9467',1,'cmsis_os.h']]],
+ ['oserrorvalue',['osErrorValue',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea4672c8a0c0f6bb1d7981da4602e8e9ee',1,'cmsis_os.h']]],
+ ['osevent',['osEvent',['../group__CMSIS__RTOS__Definitions.html#structosEvent',1,'']]],
+ ['osevent_2edef',['osEvent.def',['../group__CMSIS__RTOS__Definitions.html#unionosEvent_8def',1,'']]],
+ ['osevent_2evalue',['osEvent.value',['../group__CMSIS__RTOS__Definitions.html#unionosEvent_8value',1,'']]],
+ ['oseventmail',['osEventMail',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea15b12e42b42b53f35fb8a2724ad02926',1,'cmsis_os.h']]],
+ ['oseventmessage',['osEventMessage',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ead604f3673359dd4ac643b16dc5a2c342',1,'cmsis_os.h']]],
+ ['oseventsignal',['osEventSignal',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea5df7e9643aa8a2f5f3a6f6ec59758518',1,'cmsis_os.h']]],
+ ['oseventtimeout',['osEventTimeout',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea78f477732375c0e1fca814e369618177',1,'cmsis_os.h']]],
+ ['osfeature_5fmailq',['osFeature_MailQ',['../group__CMSIS__RTOS__Mail.html#gaceb2e0071ce160d153047f2eac1aca8e',1,'cmsis_os.h']]],
+ ['osfeature_5fmainthread',['osFeature_MainThread',['../group__CMSIS__RTOS__KernelCtrl.html#ga22f7d235bc9f783933bd5a981fd79696',1,'cmsis_os.h']]],
+ ['osfeature_5fmessageq',['osFeature_MessageQ',['../group__CMSIS__RTOS__Message.html#ga479a6561f859e3d4818e25708593d203',1,'cmsis_os.h']]],
+ ['osfeature_5fpool',['osFeature_Pool',['../group__CMSIS__RTOS__PoolMgmt.html#gadd84b683001de327894851b428587caa',1,'cmsis_os.h']]],
+ ['osfeature_5fsemaphore',['osFeature_Semaphore',['../group__CMSIS__RTOS__SemaphoreMgmt.html#ga7da4c7bfb340779c9fc7b321f5ab3e3a',1,'cmsis_os.h']]],
+ ['osfeature_5fsignals',['osFeature_Signals',['../group__CMSIS__RTOS__SignalMgmt.html#ga01edde265710d883b6e237d34a6ef4a6',1,'cmsis_os.h']]],
+ ['osfeature_5fsystick',['osFeature_SysTick',['../group__CMSIS__RTOS__KernelCtrl.html#gae554ec16c23c5b7d65affade2a351891',1,'cmsis_os.h']]],
+ ['osfeature_5fwait',['osFeature_Wait',['../group__CMSIS__RTOS__Wait.html#ga6c97d38879ae86491628f6e647639bad',1,'cmsis_os.h']]],
+ ['oskernelinitialize',['osKernelInitialize',['../group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e',1,'cmsis_os.h']]],
+ ['oskernelrunning',['osKernelRunning',['../group__CMSIS__RTOS__KernelCtrl.html#ga3b571de44cd3094c643247a7397f86b5',1,'cmsis_os.h']]],
+ ['oskernelstart',['osKernelStart',['../group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2',1,'cmsis_os.h']]],
+ ['oskernelsystemid',['osKernelSystemId',['../group__CMSIS__RTOS__KernelCtrl.html#ga47cf03658f01cdffca688e9096b58289',1,'cmsis_os.h']]],
+ ['oskernelsystick',['osKernelSysTick',['../group__CMSIS__RTOS__KernelCtrl.html#gad0262e4688e95d1e9038afd9bcc16001',1,'cmsis_os.h']]],
+ ['oskernelsystickfrequency',['osKernelSysTickFrequency',['../group__CMSIS__RTOS__KernelCtrl.html#ga9e0954d52722673e2031233a2ab99960',1,'cmsis_os.h']]],
+ ['oskernelsystickmicrosec',['osKernelSysTickMicroSec',['../group__CMSIS__RTOS__KernelCtrl.html#gae12c190af42d7310d8006d64f4ed5a88',1,'cmsis_os.h']]],
+ ['osmailalloc',['osMailAlloc',['../group__CMSIS__RTOS__Mail.html#gadf5ce811bd6a56e617e902a1db6c2194',1,'cmsis_os.h']]],
+ ['osmailcalloc',['osMailCAlloc',['../group__CMSIS__RTOS__Mail.html#ga8fde74f6fe5b9e88f75cc5eb8f2124fd',1,'cmsis_os.h']]],
+ ['osmailcreate',['osMailCreate',['../group__CMSIS__RTOS__Mail.html#gaa177e7fe5820dd70d8c9e46ded131174',1,'cmsis_os.h']]],
+ ['osmailfree',['osMailFree',['../group__CMSIS__RTOS__Mail.html#ga27c1060cf21393f96b4fd1ed1c0167cc',1,'cmsis_os.h']]],
+ ['osmailget',['osMailGet',['../group__CMSIS__RTOS__Mail.html#gac6ad7e6e7d6c4a80e60da22c57a42ccd',1,'cmsis_os.h']]],
+ ['osmailput',['osMailPut',['../group__CMSIS__RTOS__Mail.html#ga485ef6f81854ebda8ffbce4832181e02',1,'cmsis_os.h']]],
+ ['osmailq',['osMailQ',['../group__CMSIS__RTOS__Mail.html#gad2deeb66d51ade54e63d8f87ff2ec9d2',1,'cmsis_os.h']]],
+ ['osmailqdef',['osMailQDef',['../group__CMSIS__RTOS__Mail.html#ga58d712b16c0c6668059f509386d1e55b',1,'cmsis_os.h']]],
+ ['osmailqdef_5ft',['osMailQDef_t',['../cmsis__os_8h.html#structosMailQDef__t',1,'']]],
+ ['osmailqid',['osMailQId',['../cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5',1,'cmsis_os.h']]],
+ ['osmessagecreate',['osMessageCreate',['../group__CMSIS__RTOS__Message.html#gaf3b9345cf426304d46565152bc26fb78',1,'cmsis_os.h']]],
+ ['osmessageget',['osMessageGet',['../group__CMSIS__RTOS__Message.html#ga6c6892b8f2296cca6becd57ca2d7e1ae',1,'cmsis_os.h']]],
+ ['osmessageput',['osMessagePut',['../group__CMSIS__RTOS__Message.html#gac0dcf462fc92de8ffaba6cc004514a6d',1,'cmsis_os.h']]],
+ ['osmessageq',['osMessageQ',['../group__CMSIS__RTOS__Message.html#ga2d446a0b4bb90bf05d6f92eedeaabc97',1,'cmsis_os.h']]],
+ ['osmessageqdef',['osMessageQDef',['../group__CMSIS__RTOS__Message.html#gac9a6a6276c12609793e7701afcc82326',1,'cmsis_os.h']]],
+ ['osmessageqdef_5ft',['osMessageQDef_t',['../cmsis__os_8h.html#structosMessageQDef__t',1,'']]],
+ ['osmessageqid',['osMessageQId',['../cmsis__os_8h.html#ad9ec70c32c6c521970636b521e12d17f',1,'cmsis_os.h']]],
+ ['osmutex',['osMutex',['../group__CMSIS__RTOS__MutexMgmt.html#ga1122a86faa64b4a0880c76cf68d0c934',1,'cmsis_os.h']]],
+ ['osmutexcreate',['osMutexCreate',['../group__CMSIS__RTOS__MutexMgmt.html#ga5c9de56e717016e39e788064e9a291cc',1,'cmsis_os.h']]],
+ ['osmutexdef',['osMutexDef',['../group__CMSIS__RTOS__MutexMgmt.html#ga9b522438489d7c402c95332b58bc94f3',1,'cmsis_os.h']]],
+ ['osmutexdef_5ft',['osMutexDef_t',['../cmsis__os_8h.html#structosMutexDef__t',1,'']]],
+ ['osmutexdelete',['osMutexDelete',['../group__CMSIS__RTOS__MutexMgmt.html#gac27e24135185d51d18f3dabc20910219',1,'cmsis_os.h']]],
+ ['osmutexid',['osMutexId',['../cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2',1,'cmsis_os.h']]],
+ ['osmutexrelease',['osMutexRelease',['../group__CMSIS__RTOS__MutexMgmt.html#ga006e4744d741e8e132c3d5bbc295afe1',1,'cmsis_os.h']]],
+ ['osmutexwait',['osMutexWait',['../group__CMSIS__RTOS__MutexMgmt.html#ga5e1752b73f573ee015dbd9ef1edaba13',1,'cmsis_os.h']]],
+ ['osok',['osOK',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f',1,'cmsis_os.h']]],
+ ['ospool',['osPool',['../group__CMSIS__RTOS__PoolMgmt.html#ga5f0b204a82327533d420210125c90697',1,'cmsis_os.h']]],
+ ['ospoolalloc',['osPoolAlloc',['../group__CMSIS__RTOS__PoolMgmt.html#gaa0b2994f1a866c19e0d11e6e0d44f543',1,'cmsis_os.h']]],
+ ['ospoolcalloc',['osPoolCAlloc',['../group__CMSIS__RTOS__PoolMgmt.html#ga9f129fcad4730fbd1048ad4fa262f36a',1,'cmsis_os.h']]],
+ ['ospoolcreate',['osPoolCreate',['../group__CMSIS__RTOS__PoolMgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a',1,'cmsis_os.h']]],
+ ['ospooldef',['osPoolDef',['../group__CMSIS__RTOS__PoolMgmt.html#ga87b471d4fe2d5dbd0040708edd52771b',1,'cmsis_os.h']]],
+ ['ospooldef_5ft',['osPoolDef_t',['../cmsis__os_8h.html#structosPoolDef__t',1,'']]],
+ ['ospoolfree',['osPoolFree',['../group__CMSIS__RTOS__PoolMgmt.html#ga4a861e9c469c9d0daf5721bf174f8e54',1,'cmsis_os.h']]],
+ ['ospoolid',['osPoolId',['../cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686',1,'cmsis_os.h']]],
+ ['ospriority',['osPriority',['../group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a',1,'cmsis_os.h']]],
+ ['ospriorityabovenormal',['osPriorityAboveNormal',['../cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa17b36cd9cd38652c2bc6d4803990674b',1,'cmsis_os.h']]],
+ ['osprioritybelownormal',['osPriorityBelowNormal',['../cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa193b650117c209b4a203954542bcc3e6',1,'cmsis_os.h']]],
+ ['ospriorityerror',['osPriorityError',['../cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aae35f5e2f9c64ad346822521b643bdea4',1,'cmsis_os.h']]],
+ ['ospriorityhigh',['osPriorityHigh',['../cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa914433934143a9ba767e59577c56e6c2',1,'cmsis_os.h']]],
+ ['ospriorityidle',['osPriorityIdle',['../cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa549e79a43ff4f8b2b31afb613f5caa81',1,'cmsis_os.h']]],
+ ['osprioritylow',['osPriorityLow',['../cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa61cb822239ac8f66dfbdc7291598a3d4',1,'cmsis_os.h']]],
+ ['osprioritynormal',['osPriorityNormal',['../cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1',1,'cmsis_os.h']]],
+ ['ospriorityrealtime',['osPriorityRealtime',['../cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa1485dec3702434a1ec3cb74c7a17a4af',1,'cmsis_os.h']]],
+ ['ossemaphore',['osSemaphore',['../group__CMSIS__RTOS__SemaphoreMgmt.html#ga03761ee8d2c3cd4544e18364ab301dac',1,'cmsis_os.h']]],
+ ['ossemaphorecreate',['osSemaphoreCreate',['../group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb',1,'cmsis_os.h']]],
+ ['ossemaphoredef',['osSemaphoreDef',['../group__CMSIS__RTOS__SemaphoreMgmt.html#ga9e66fe361749071e5ab87826c43c2f1b',1,'cmsis_os.h']]],
+ ['ossemaphoredef_5ft',['osSemaphoreDef_t',['../cmsis__os_8h.html#structosSemaphoreDef__t',1,'']]],
+ ['ossemaphoredelete',['osSemaphoreDelete',['../group__CMSIS__RTOS__SemaphoreMgmt.html#gabae2801ac2c096f6e8c69a264908f595',1,'cmsis_os.h']]],
+ ['ossemaphoreid',['osSemaphoreId',['../cmsis__os_8h.html#aa8968896c84094aa973683c84fa06f84',1,'cmsis_os.h']]],
+ ['ossemaphorerelease',['osSemaphoreRelease',['../group__CMSIS__RTOS__SemaphoreMgmt.html#gab108914997c49e14d8ff1ae0d1988ca0',1,'cmsis_os.h']]],
+ ['ossemaphorewait',['osSemaphoreWait',['../group__CMSIS__RTOS__SemaphoreMgmt.html#gacc15b0fc8ce1167fe43da33042e62098',1,'cmsis_os.h']]],
+ ['ossignalclear',['osSignalClear',['../group__CMSIS__RTOS__SignalMgmt.html#ga87283a6ebc31ce9ed42baf3ea7e4eab6',1,'cmsis_os.h']]],
+ ['ossignalset',['osSignalSet',['../group__CMSIS__RTOS__SignalMgmt.html#ga3de2730654589d6c3559c4b9e2825553',1,'cmsis_os.h']]],
+ ['ossignalwait',['osSignalWait',['../group__CMSIS__RTOS__SignalMgmt.html#ga38860acda96df47da6923348d96fc4c9',1,'cmsis_os.h']]],
+ ['osstatus',['osStatus',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e',1,'osStatus():&#160;cmsis_os.txt'],['../cmsis__os_8h.html#ae2e091fefc4c767117727bd5aba4d99e',1,'osStatus():&#160;cmsis_os.h']]],
+ ['osthread',['osThread',['../group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453',1,'cmsis_os.h']]],
+ ['osthreadcreate',['osThreadCreate',['../group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff',1,'cmsis_os.h']]],
+ ['osthreaddef',['osThreadDef',['../group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f',1,'cmsis_os.h']]],
+ ['osthreaddef_5ft',['osThreadDef_t',['../cmsis__os_8h.html#structosThreadDef__t',1,'']]],
+ ['osthreadgetid',['osThreadGetId',['../group__CMSIS__RTOS__ThreadMgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7',1,'cmsis_os.h']]],
+ ['osthreadgetpriority',['osThreadGetPriority',['../group__CMSIS__RTOS__ThreadMgmt.html#ga4299d838978bc2aae5e4350754e6a4e9',1,'cmsis_os.h']]],
+ ['osthreadid',['osThreadId',['../cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f',1,'cmsis_os.h']]],
+ ['osthreadsetpriority',['osThreadSetPriority',['../group__CMSIS__RTOS__ThreadMgmt.html#ga0dfb90ccf1f6e4b54b9251b12d1cbc8b',1,'cmsis_os.h']]],
+ ['osthreadterminate',['osThreadTerminate',['../group__CMSIS__RTOS__ThreadMgmt.html#gaea135bb90eb853eff39e0800b91bbeab',1,'cmsis_os.h']]],
+ ['osthreadyield',['osThreadYield',['../group__CMSIS__RTOS__ThreadMgmt.html#gaf13a667493c5d629a90c13e113b99233',1,'cmsis_os.h']]],
+ ['ostimer',['osTimer',['../group__CMSIS__RTOS__TimerMgmt.html#ga1b8d670eaf964b2910fa06885e650678',1,'cmsis_os.h']]],
+ ['ostimercreate',['osTimerCreate',['../group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6',1,'cmsis_os.h']]],
+ ['ostimerdef',['osTimerDef',['../group__CMSIS__RTOS__TimerMgmt.html#ga1c720627e08d1cc1afcad44e799ed492',1,'cmsis_os.h']]],
+ ['ostimerdef_5ft',['osTimerDef_t',['../cmsis__os_8h.html#structosTimerDef__t',1,'']]],
+ ['ostimerdelete',['osTimerDelete',['../group__CMSIS__RTOS__TimerMgmt.html#ga746b8043d906849bd65e3900fcb483cf',1,'cmsis_os.h']]],
+ ['ostimerid',['osTimerId',['../cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7',1,'cmsis_os.h']]],
+ ['ostimeronce',['osTimerOnce',['../group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ad21712f8df5f97069c82dc9eec37b951',1,'cmsis_os.h']]],
+ ['ostimerperiodic',['osTimerPeriodic',['../group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788',1,'cmsis_os.h']]],
+ ['ostimerstart',['osTimerStart',['../group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca',1,'cmsis_os.h']]],
+ ['ostimerstop',['osTimerStop',['../group__CMSIS__RTOS__TimerMgmt.html#ga58f36b121a812936435cacc6e1e0e091',1,'cmsis_os.h']]],
+ ['oswait',['osWait',['../group__CMSIS__RTOS__Wait.html#ga8470c8aaedfde524a44e22e5b2328285',1,'cmsis_os.h']]],
+ ['oswaitforever',['osWaitForever',['../cmsis__os_8h.html#a9eb9a7a797a42e4b55eb171ecc609ddb',1,'cmsis_os.h']]]
+];
diff --git a/docs/RTOS/html/search/all_9.html b/docs/RTOS/html/search/all_9.html
new file mode 100644
index 0000000..cd46d44
--- /dev/null
+++ b/docs/RTOS/html/search/all_9.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/all_9.js b/docs/RTOS/html/search/all_9.js
new file mode 100644
index 0000000..4a6f1b2
--- /dev/null
+++ b/docs/RTOS/html/search/all_9.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['pool',['pool',['../cmsis__os_8h.html#a269c3935f8bc66db70bccdd02cb05e3c',1,'osPoolDef_t::pool()'],['../cmsis__os_8h.html#a269c3935f8bc66db70bccdd02cb05e3c',1,'osMessageQDef_t::pool()'],['../cmsis__os_8h.html#a269c3935f8bc66db70bccdd02cb05e3c',1,'osMailQDef_t::pool()']]],
+ ['pool_5fsz',['pool_sz',['../cmsis__os_8h.html#ac112e786b2a234e0e45cb5bdbee53763',1,'osPoolDef_t']]],
+ ['pthread',['pthread',['../cmsis__os_8h.html#ad3c9624ee214329fb34e71f544a6933e',1,'osThreadDef_t']]],
+ ['ptimer',['ptimer',['../cmsis__os_8h.html#a15773df83aba93f8e61f3737af5fae47',1,'osTimerDef_t']]]
+];
diff --git a/docs/RTOS/html/search/all_a.html b/docs/RTOS/html/search/all_a.html
new file mode 100644
index 0000000..eab6553
--- /dev/null
+++ b/docs/RTOS/html/search/all_a.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/all_a.js b/docs/RTOS/html/search/all_a.js
new file mode 100644
index 0000000..72dd5cd
--- /dev/null
+++ b/docs/RTOS/html/search/all_a.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['queue_5fsz',['queue_sz',['../cmsis__os_8h.html#a8a83a3a8c0aa8057b13807d2a54077e0',1,'osMessageQDef_t::queue_sz()'],['../cmsis__os_8h.html#a8a83a3a8c0aa8057b13807d2a54077e0',1,'osMailQDef_t::queue_sz()']]]
+];
diff --git a/docs/RTOS/html/search/all_b.html b/docs/RTOS/html/search/all_b.html
new file mode 100644
index 0000000..a2c161e
--- /dev/null
+++ b/docs/RTOS/html/search/all_b.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/all_b.js b/docs/RTOS/html/search/all_b.js
new file mode 100644
index 0000000..3417bef
--- /dev/null
+++ b/docs/RTOS/html/search/all_b.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+ ['rtx_20tutorial',['RTX Tutorial',['../exampleRTX_Tutorial.html',1,'rtxImplementation']]],
+ ['revision_20history',['Revision History',['../rtos_revisionHistory.html',1,'index']]],
+ ['rtos_20validation',['RTOS Validation',['../rtosValidation.html',1,'index']]],
+ ['rtx_5fconf_5fcm_2ec',['RTX_Conf_CM.c',['../RTX__Conf__CM_8c.html',1,'']]],
+ ['rtx_20specific_20functions',['RTX Specific Functions',['../group__RTX__Global__Functions.html',1,'']]],
+ ['rtx_20implementation',['RTX Implementation',['../rtxImplementation.html',1,'index']]],
+ ['rtx_20kernel_20tick_20timer_20configuration',['RTX Kernel Tick Timer Configuration',['../timerTick.html',1,'configure']]]
+];
diff --git a/docs/RTOS/html/search/all_c.html b/docs/RTOS/html/search/all_c.html
new file mode 100644
index 0000000..bdd3ee2
--- /dev/null
+++ b/docs/RTOS/html/search/all_c.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/all_c.js b/docs/RTOS/html/search/all_c.js
new file mode 100644
index 0000000..00dc3fe
--- /dev/null
+++ b/docs/RTOS/html/search/all_c.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+ ['semaphores',['Semaphores',['../group__CMSIS__RTOS__SemaphoreMgmt.html',1,'']]],
+ ['signal_20events',['Signal Events',['../group__CMSIS__RTOS__SignalMgmt.html',1,'']]],
+ ['status_20and_20error_20codes',['Status and Error Codes',['../group__CMSIS__RTOS__Status.html',1,'']]],
+ ['stacksize',['stacksize',['../cmsis__os_8h.html#a950b7f81ad4711959517296e63bc79d1',1,'osThreadDef_t']]],
+ ['status',['status',['../group__CMSIS__RTOS__Definitions.html#ad477a289f1f03ac45407b64268d707d3',1,'osEvent']]],
+ ['svc_20functions',['SVC Functions',['../svcFunctions.html',1,'configure']]],
+ ['svcthreadgetid',['svcThreadGetId',['../RTX__Conf__CM_8c.html#a395cca131b7746fc43c104a3485b77f7',1,'RTX_Conf_CM.c']]],
+ ['system_20configuration',['System Configuration',['../systemConfig.html',1,'configure']]]
+];
diff --git a/docs/RTOS/html/search/all_d.html b/docs/RTOS/html/search/all_d.html
new file mode 100644
index 0000000..d510933
--- /dev/null
+++ b/docs/RTOS/html/search/all_d.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/all_d.js b/docs/RTOS/html/search/all_d.js
new file mode 100644
index 0000000..9034603
--- /dev/null
+++ b/docs/RTOS/html/search/all_d.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+ ['thread_20management',['Thread Management',['../group__CMSIS__RTOS__ThreadMgmt.html',1,'']]],
+ ['timer_20management',['Timer Management',['../group__CMSIS__RTOS__TimerMgmt.html',1,'']]],
+ ['technical_20data',['Technical Data',['../technicalData.html',1,'rtxImplementation']]],
+ ['theory_20of_20operation',['Theory of Operation',['../theory.html',1,'rtxImplementation']]],
+ ['thread_20configuration',['Thread Configuration',['../threadConfig.html',1,'configure']]],
+ ['tpriority',['tpriority',['../cmsis__os_8h.html#a15da8f23c6fe684b70a73646ada685e7',1,'osThreadDef_t']]]
+];
diff --git a/docs/RTOS/html/search/all_e.html b/docs/RTOS/html/search/all_e.html
new file mode 100644
index 0000000..3cda017
--- /dev/null
+++ b/docs/RTOS/html/search/all_e.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/all_e.js b/docs/RTOS/html/search/all_e.js
new file mode 100644
index 0000000..ebbd626
--- /dev/null
+++ b/docs/RTOS/html/search/all_e.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['using_20a_20cmsis_2drtos_20implementation',['Using a CMSIS-RTOS Implementation',['../usingOS.html',1,'index']]]
+];
diff --git a/docs/RTOS/html/search/all_f.html b/docs/RTOS/html/search/all_f.html
new file mode 100644
index 0000000..7419b02
--- /dev/null
+++ b/docs/RTOS/html/search/all_f.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_f.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/all_f.js b/docs/RTOS/html/search/all_f.js
new file mode 100644
index 0000000..8f5695b
--- /dev/null
+++ b/docs/RTOS/html/search/all_f.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['value',['value',['../group__CMSIS__RTOS__Definitions.html#a0b9f8fd3645f01d8cb09cae82add2d7f',1,'osEvent']]]
+];
diff --git a/docs/RTOS/html/search/classes_0.html b/docs/RTOS/html/search/classes_0.html
new file mode 100644
index 0000000..fabdc03
--- /dev/null
+++ b/docs/RTOS/html/search/classes_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="classes_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/classes_0.js b/docs/RTOS/html/search/classes_0.js
new file mode 100644
index 0000000..94c404e
--- /dev/null
+++ b/docs/RTOS/html/search/classes_0.js
@@ -0,0 +1,14 @@
+var searchData=
+[
+ ['os_5fmailq',['os_mailQ',['../group__CMSIS__RTOS__Definitions.html#structos__mailQ',1,'']]],
+ ['osevent',['osEvent',['../group__CMSIS__RTOS__Definitions.html#structosEvent',1,'']]],
+ ['osevent_2edef',['osEvent.def',['../group__CMSIS__RTOS__Definitions.html#unionosEvent_8def',1,'']]],
+ ['osevent_2evalue',['osEvent.value',['../group__CMSIS__RTOS__Definitions.html#unionosEvent_8value',1,'']]],
+ ['osmailqdef_5ft',['osMailQDef_t',['../cmsis__os_8h.html#structosMailQDef__t',1,'']]],
+ ['osmessageqdef_5ft',['osMessageQDef_t',['../cmsis__os_8h.html#structosMessageQDef__t',1,'']]],
+ ['osmutexdef_5ft',['osMutexDef_t',['../cmsis__os_8h.html#structosMutexDef__t',1,'']]],
+ ['ospooldef_5ft',['osPoolDef_t',['../cmsis__os_8h.html#structosPoolDef__t',1,'']]],
+ ['ossemaphoredef_5ft',['osSemaphoreDef_t',['../cmsis__os_8h.html#structosSemaphoreDef__t',1,'']]],
+ ['osthreaddef_5ft',['osThreadDef_t',['../cmsis__os_8h.html#structosThreadDef__t',1,'']]],
+ ['ostimerdef_5ft',['osTimerDef_t',['../cmsis__os_8h.html#structosTimerDef__t',1,'']]]
+];
diff --git a/docs/RTOS/html/search/close.png b/docs/RTOS/html/search/close.png
new file mode 100644
index 0000000..9342d3d
--- /dev/null
+++ b/docs/RTOS/html/search/close.png
Binary files differ
diff --git a/docs/RTOS/html/search/defines_0.html b/docs/RTOS/html/search/defines_0.html
new file mode 100644
index 0000000..c2f0b46
--- /dev/null
+++ b/docs/RTOS/html/search/defines_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="defines_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/defines_0.js b/docs/RTOS/html/search/defines_0.js
new file mode 100644
index 0000000..37c3122
--- /dev/null
+++ b/docs/RTOS/html/search/defines_0.js
@@ -0,0 +1,27 @@
+var searchData=
+[
+ ['os_5fclock',['OS_CLOCK',['../RTX__Conf__CM_8c.html#adff23afdf544a322a38314870f8848b9',1,'RTX_Conf_CM.c']]],
+ ['os_5ferror_5ffifo_5fovf',['OS_ERROR_FIFO_OVF',['../RTX__Conf__CM_8c.html#a075d54df14c85a6afe32b7f5c99c9c29',1,'RTX_Conf_CM.c']]],
+ ['os_5ferror_5fmbx_5fovf',['OS_ERROR_MBX_OVF',['../RTX__Conf__CM_8c.html#ab715d7d66c341c067ef0a97b55db8a10',1,'RTX_Conf_CM.c']]],
+ ['os_5ferror_5fstack_5fovf',['OS_ERROR_STACK_OVF',['../RTX__Conf__CM_8c.html#abf8311a7a239ec56c6d725f926ba766d',1,'RTX_Conf_CM.c']]],
+ ['os_5ferror_5ftimer_5fovf',['OS_ERROR_TIMER_OVF',['../RTX__Conf__CM_8c.html#a79d7e388d951f11bd0dabd13f722cea8',1,'RTX_Conf_CM.c']]],
+ ['os_5ffifosz',['OS_FIFOSZ',['../RTX__Conf__CM_8c.html#a93c8e36d441750016f9f72e102f68d66',1,'RTX_Conf_CM.c']]],
+ ['os_5fmainstksize',['OS_MAINSTKSIZE',['../RTX__Conf__CM_8c.html#a95362a96f44d4314f148ae24edd52f7c',1,'RTX_Conf_CM.c']]],
+ ['os_5fmutexcnt',['OS_MUTEXCNT',['../RTX__Conf__CM_8c.html#ad11cf133eea28b601f9a63cd9af9b786',1,'RTX_Conf_CM.c']]],
+ ['os_5fprivcnt',['OS_PRIVCNT',['../RTX__Conf__CM_8c.html#a7cfcbf2c4f9d0a63424a2a48592955b1',1,'RTX_Conf_CM.c']]],
+ ['os_5fprivstksize',['OS_PRIVSTKSIZE',['../RTX__Conf__CM_8c.html#a6e0d30986e4ae0df44f449a4b3b0fbec',1,'RTX_Conf_CM.c']]],
+ ['os_5frobin',['OS_ROBIN',['../RTX__Conf__CM_8c.html#ae34f3058383d9fa9280bbf595618ab0a',1,'RTX_Conf_CM.c']]],
+ ['os_5frobintout',['OS_ROBINTOUT',['../RTX__Conf__CM_8c.html#ad89fdd7232cfba74d400080b6bcc0012',1,'RTX_Conf_CM.c']]],
+ ['os_5frunpriv',['OS_RUNPRIV',['../RTX__Conf__CM_8c.html#a786924d58be54e943a7e73458cebc51b',1,'RTX_Conf_CM.c']]],
+ ['os_5fstkcheck',['OS_STKCHECK',['../RTX__Conf__CM_8c.html#a6ef9e00396f881f0fa9ac877150e5962',1,'RTX_Conf_CM.c']]],
+ ['os_5fstkinit',['OS_STKINIT',['../RTX__Conf__CM_8c.html#ac820623da739e4219ee86f15bdcd9752',1,'RTX_Conf_CM.c']]],
+ ['os_5fstksize',['OS_STKSIZE',['../RTX__Conf__CM_8c.html#a16495c133349f3e7c27ac933857c1a8c',1,'RTX_Conf_CM.c']]],
+ ['os_5ftaskcnt',['OS_TASKCNT',['../RTX__Conf__CM_8c.html#a309353d912327b7f4a2300711ee1b349',1,'RTX_Conf_CM.c']]],
+ ['os_5ftick',['OS_TICK',['../RTX__Conf__CM_8c.html#ab6b10bd6d60e95ab28c775757f6bfbcc',1,'RTX_Conf_CM.c']]],
+ ['os_5ftimercbqs',['OS_TIMERCBQS',['../RTX__Conf__CM_8c.html#a29701cff84a42494279367ad018f252d',1,'RTX_Conf_CM.c']]],
+ ['os_5ftimerprio',['OS_TIMERPRIO',['../RTX__Conf__CM_8c.html#a90af874f1df4dfb0f8821cc2d860dae6',1,'RTX_Conf_CM.c']]],
+ ['os_5ftimers',['OS_TIMERS',['../RTX__Conf__CM_8c.html#a23b0f1095632e58b5ac0d8f7dcfdfded',1,'RTX_Conf_CM.c']]],
+ ['os_5ftimerstksz',['OS_TIMERSTKSZ',['../RTX__Conf__CM_8c.html#a76d1b01799981a753fc528e600015627',1,'RTX_Conf_CM.c']]],
+ ['os_5ftrv',['OS_TRV',['../RTX__Conf__CM_8c.html#a9d55a070ddb219165bd4287f08318d51',1,'RTX_Conf_CM.c']]],
+ ['oswaitforever',['osWaitForever',['../cmsis__os_8h.html#a9eb9a7a797a42e4b55eb171ecc609ddb',1,'cmsis_os.h']]]
+];
diff --git a/docs/RTOS/html/search/enums_0.html b/docs/RTOS/html/search/enums_0.html
new file mode 100644
index 0000000..b4cbe1e
--- /dev/null
+++ b/docs/RTOS/html/search/enums_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enums_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/enums_0.js b/docs/RTOS/html/search/enums_0.js
new file mode 100644
index 0000000..10a49c3
--- /dev/null
+++ b/docs/RTOS/html/search/enums_0.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['os_5ftimer_5ftype',['os_timer_type',['../group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9',1,'os_timer_type():&#160;cmsis_os.txt'],['../cmsis__os_8h.html#adac860eb9e1b4b0619271e6595ed83d9',1,'os_timer_type():&#160;cmsis_os.h']]],
+ ['ospriority',['osPriority',['../group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a',1,'cmsis_os.h']]],
+ ['osstatus',['osStatus',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e',1,'osStatus():&#160;cmsis_os.txt'],['../cmsis__os_8h.html#ae2e091fefc4c767117727bd5aba4d99e',1,'osStatus():&#160;cmsis_os.h']]]
+];
diff --git a/docs/RTOS/html/search/enumvalues_0.html b/docs/RTOS/html/search/enumvalues_0.html
new file mode 100644
index 0000000..3e00fcf
--- /dev/null
+++ b/docs/RTOS/html/search/enumvalues_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="enumvalues_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/enumvalues_0.js b/docs/RTOS/html/search/enumvalues_0.js
new file mode 100644
index 0000000..242059a
--- /dev/null
+++ b/docs/RTOS/html/search/enumvalues_0.js
@@ -0,0 +1,28 @@
+var searchData=
+[
+ ['os_5fstatus_5freserved',['os_status_reserved',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eac7a77f5fe18a15a357790c36a4aca1b1',1,'cmsis_os.h']]],
+ ['oserrorisr',['osErrorISR',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea21635bdc492d3094fe83027fa4a30e2f',1,'cmsis_os.h']]],
+ ['oserrorisrrecursive',['osErrorISRRecursive',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eaf6552310a817452aedfcd453f2805d65',1,'cmsis_os.h']]],
+ ['oserrornomemory',['osErrorNoMemory',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eaf1fac0240218e51eb30a13da2f8aae81',1,'cmsis_os.h']]],
+ ['oserroros',['osErrorOS',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea5fde24ff588ec5ab9cb8314bade26fbc',1,'cmsis_os.h']]],
+ ['oserrorparameter',['osErrorParameter',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eac24adca6a5d072c9f01c32178ba0d109',1,'cmsis_os.h']]],
+ ['oserrorpriority',['osErrorPriority',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eab7dda0ef504817659334cbfd650ae56f',1,'cmsis_os.h']]],
+ ['oserrorresource',['osErrorResource',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea8fc5801e8b0482bdf22ad63a77f0155d',1,'cmsis_os.h']]],
+ ['oserrortimeoutresource',['osErrorTimeoutResource',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea314d24a49003f09459035db0dd7c9467',1,'cmsis_os.h']]],
+ ['oserrorvalue',['osErrorValue',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea4672c8a0c0f6bb1d7981da4602e8e9ee',1,'cmsis_os.h']]],
+ ['oseventmail',['osEventMail',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea15b12e42b42b53f35fb8a2724ad02926',1,'cmsis_os.h']]],
+ ['oseventmessage',['osEventMessage',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ead604f3673359dd4ac643b16dc5a2c342',1,'cmsis_os.h']]],
+ ['oseventsignal',['osEventSignal',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea5df7e9643aa8a2f5f3a6f6ec59758518',1,'cmsis_os.h']]],
+ ['oseventtimeout',['osEventTimeout',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea78f477732375c0e1fca814e369618177',1,'cmsis_os.h']]],
+ ['osok',['osOK',['../group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f',1,'cmsis_os.h']]],
+ ['ospriorityabovenormal',['osPriorityAboveNormal',['../cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa17b36cd9cd38652c2bc6d4803990674b',1,'cmsis_os.h']]],
+ ['osprioritybelownormal',['osPriorityBelowNormal',['../cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa193b650117c209b4a203954542bcc3e6',1,'cmsis_os.h']]],
+ ['ospriorityerror',['osPriorityError',['../cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aae35f5e2f9c64ad346822521b643bdea4',1,'cmsis_os.h']]],
+ ['ospriorityhigh',['osPriorityHigh',['../cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa914433934143a9ba767e59577c56e6c2',1,'cmsis_os.h']]],
+ ['ospriorityidle',['osPriorityIdle',['../cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa549e79a43ff4f8b2b31afb613f5caa81',1,'cmsis_os.h']]],
+ ['osprioritylow',['osPriorityLow',['../cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa61cb822239ac8f66dfbdc7291598a3d4',1,'cmsis_os.h']]],
+ ['osprioritynormal',['osPriorityNormal',['../cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1',1,'cmsis_os.h']]],
+ ['ospriorityrealtime',['osPriorityRealtime',['../cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa1485dec3702434a1ec3cb74c7a17a4af',1,'cmsis_os.h']]],
+ ['ostimeronce',['osTimerOnce',['../group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ad21712f8df5f97069c82dc9eec37b951',1,'cmsis_os.h']]],
+ ['ostimerperiodic',['osTimerPeriodic',['../group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788',1,'cmsis_os.h']]]
+];
diff --git a/docs/RTOS/html/search/files_0.html b/docs/RTOS/html/search/files_0.html
new file mode 100644
index 0000000..c7aa36c
--- /dev/null
+++ b/docs/RTOS/html/search/files_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/files_0.js b/docs/RTOS/html/search/files_0.js
new file mode 100644
index 0000000..ebba2f1
--- /dev/null
+++ b/docs/RTOS/html/search/files_0.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['cmsis_5fos_2eh',['cmsis_os.h',['../cmsis__os_8h.html',1,'']]],
+ ['cmsis_5fos_2etxt',['cmsis_os.txt',['../cmsis__os_8txt.html',1,'']]],
+ ['cmsis_5fos_5frtx_5fextensions_2eh',['cmsis_os_rtx_extensions.h',['../cmsis__os__rtx__extensions_8h.html',1,'']]]
+];
diff --git a/docs/RTOS/html/search/files_1.html b/docs/RTOS/html/search/files_1.html
new file mode 100644
index 0000000..eca1c80
--- /dev/null
+++ b/docs/RTOS/html/search/files_1.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/files_1.js b/docs/RTOS/html/search/files_1.js
new file mode 100644
index 0000000..3800696
--- /dev/null
+++ b/docs/RTOS/html/search/files_1.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['rtx_5fconf_5fcm_2ec',['RTX_Conf_CM.c',['../RTX__Conf__CM_8c.html',1,'']]]
+];
diff --git a/docs/RTOS/html/search/functions_0.html b/docs/RTOS/html/search/functions_0.html
new file mode 100644
index 0000000..16a5a52
--- /dev/null
+++ b/docs/RTOS/html/search/functions_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/functions_0.js b/docs/RTOS/html/search/functions_0.js
new file mode 100644
index 0000000..5a42bb5
--- /dev/null
+++ b/docs/RTOS/html/search/functions_0.js
@@ -0,0 +1,51 @@
+var searchData=
+[
+ ['os_5ferror',['os_error',['../group__RTX__Global__Functions.html#ga651ae76b3acf45f80bf0e0487b51d6e6',1,'os_error(uint32_t error_code):&#160;RTX_Conf_CM.c'],['../group__RTX__Global__Functions.html#ga651ae76b3acf45f80bf0e0487b51d6e6',1,'os_error(uint32_t error_code):&#160;RTX_Conf_CM.c']]],
+ ['os_5fidle_5fdemon',['os_idle_demon',['../group__RTX__Global__Functions.html#gafb4dc4d3dff8343a393726d2860282e4',1,'os_idle_demon(void):&#160;RTX_Conf_CM.c'],['../group__RTX__Global__Functions.html#gafb4dc4d3dff8343a393726d2860282e4',1,'os_idle_demon(void):&#160;RTX_Conf_CM.c']]],
+ ['os_5fresume',['os_resume',['../group__RTX__Global__Functions.html#ga1b85a217d43e6b971ffcf24f8aae1c33',1,'cmsis_os_rtx_extensions.h']]],
+ ['os_5fsuspend',['os_suspend',['../group__RTX__Global__Functions.html#ga3e9c57746ccbdfe90464ad50513c569e',1,'cmsis_os_rtx_extensions.h']]],
+ ['os_5ftick_5finit',['os_tick_init',['../group__RTX__Global__Functions.html#ga145e7eafdd042bb522020cbb3b469d9c',1,'RTX_Conf_CM.c']]],
+ ['os_5ftick_5firqack',['os_tick_irqack',['../group__RTX__Global__Functions.html#ga85dab8408f27236c7341a69feb6258c7',1,'RTX_Conf_CM.c']]],
+ ['os_5ftick_5fovf',['os_tick_ovf',['../group__RTX__Global__Functions.html#gad5deddec3fea0fb31798f571afc3c692',1,'RTX_Conf_CM.c']]],
+ ['os_5ftick_5fval',['os_tick_val',['../group__RTX__Global__Functions.html#ga567543bf38239a91f09751686c23017b',1,'RTX_Conf_CM.c']]],
+ ['osdelay',['osDelay',['../group__CMSIS__RTOS__Wait.html#ga02e19d5e723bfb06ba9324d625162255',1,'cmsis_os.h']]],
+ ['oskernelinitialize',['osKernelInitialize',['../group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e',1,'cmsis_os.h']]],
+ ['oskernelrunning',['osKernelRunning',['../group__CMSIS__RTOS__KernelCtrl.html#ga3b571de44cd3094c643247a7397f86b5',1,'cmsis_os.h']]],
+ ['oskernelstart',['osKernelStart',['../group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2',1,'cmsis_os.h']]],
+ ['oskernelsystick',['osKernelSysTick',['../group__CMSIS__RTOS__KernelCtrl.html#gad0262e4688e95d1e9038afd9bcc16001',1,'cmsis_os.h']]],
+ ['osmailalloc',['osMailAlloc',['../group__CMSIS__RTOS__Mail.html#gadf5ce811bd6a56e617e902a1db6c2194',1,'cmsis_os.h']]],
+ ['osmailcalloc',['osMailCAlloc',['../group__CMSIS__RTOS__Mail.html#ga8fde74f6fe5b9e88f75cc5eb8f2124fd',1,'cmsis_os.h']]],
+ ['osmailcreate',['osMailCreate',['../group__CMSIS__RTOS__Mail.html#gaa177e7fe5820dd70d8c9e46ded131174',1,'cmsis_os.h']]],
+ ['osmailfree',['osMailFree',['../group__CMSIS__RTOS__Mail.html#ga27c1060cf21393f96b4fd1ed1c0167cc',1,'cmsis_os.h']]],
+ ['osmailget',['osMailGet',['../group__CMSIS__RTOS__Mail.html#gac6ad7e6e7d6c4a80e60da22c57a42ccd',1,'cmsis_os.h']]],
+ ['osmailput',['osMailPut',['../group__CMSIS__RTOS__Mail.html#ga485ef6f81854ebda8ffbce4832181e02',1,'cmsis_os.h']]],
+ ['osmessagecreate',['osMessageCreate',['../group__CMSIS__RTOS__Message.html#gaf3b9345cf426304d46565152bc26fb78',1,'cmsis_os.h']]],
+ ['osmessageget',['osMessageGet',['../group__CMSIS__RTOS__Message.html#ga6c6892b8f2296cca6becd57ca2d7e1ae',1,'cmsis_os.h']]],
+ ['osmessageput',['osMessagePut',['../group__CMSIS__RTOS__Message.html#gac0dcf462fc92de8ffaba6cc004514a6d',1,'cmsis_os.h']]],
+ ['osmutexcreate',['osMutexCreate',['../group__CMSIS__RTOS__MutexMgmt.html#ga5c9de56e717016e39e788064e9a291cc',1,'cmsis_os.h']]],
+ ['osmutexdelete',['osMutexDelete',['../group__CMSIS__RTOS__MutexMgmt.html#gac27e24135185d51d18f3dabc20910219',1,'cmsis_os.h']]],
+ ['osmutexrelease',['osMutexRelease',['../group__CMSIS__RTOS__MutexMgmt.html#ga006e4744d741e8e132c3d5bbc295afe1',1,'cmsis_os.h']]],
+ ['osmutexwait',['osMutexWait',['../group__CMSIS__RTOS__MutexMgmt.html#ga5e1752b73f573ee015dbd9ef1edaba13',1,'cmsis_os.h']]],
+ ['ospoolalloc',['osPoolAlloc',['../group__CMSIS__RTOS__PoolMgmt.html#gaa0b2994f1a866c19e0d11e6e0d44f543',1,'cmsis_os.h']]],
+ ['ospoolcalloc',['osPoolCAlloc',['../group__CMSIS__RTOS__PoolMgmt.html#ga9f129fcad4730fbd1048ad4fa262f36a',1,'cmsis_os.h']]],
+ ['ospoolcreate',['osPoolCreate',['../group__CMSIS__RTOS__PoolMgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a',1,'cmsis_os.h']]],
+ ['ospoolfree',['osPoolFree',['../group__CMSIS__RTOS__PoolMgmt.html#ga4a861e9c469c9d0daf5721bf174f8e54',1,'cmsis_os.h']]],
+ ['ossemaphorecreate',['osSemaphoreCreate',['../group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb',1,'cmsis_os.h']]],
+ ['ossemaphoredelete',['osSemaphoreDelete',['../group__CMSIS__RTOS__SemaphoreMgmt.html#gabae2801ac2c096f6e8c69a264908f595',1,'cmsis_os.h']]],
+ ['ossemaphorerelease',['osSemaphoreRelease',['../group__CMSIS__RTOS__SemaphoreMgmt.html#gab108914997c49e14d8ff1ae0d1988ca0',1,'cmsis_os.h']]],
+ ['ossemaphorewait',['osSemaphoreWait',['../group__CMSIS__RTOS__SemaphoreMgmt.html#gacc15b0fc8ce1167fe43da33042e62098',1,'cmsis_os.h']]],
+ ['ossignalclear',['osSignalClear',['../group__CMSIS__RTOS__SignalMgmt.html#ga87283a6ebc31ce9ed42baf3ea7e4eab6',1,'cmsis_os.h']]],
+ ['ossignalset',['osSignalSet',['../group__CMSIS__RTOS__SignalMgmt.html#ga3de2730654589d6c3559c4b9e2825553',1,'cmsis_os.h']]],
+ ['ossignalwait',['osSignalWait',['../group__CMSIS__RTOS__SignalMgmt.html#ga38860acda96df47da6923348d96fc4c9',1,'cmsis_os.h']]],
+ ['osthreadcreate',['osThreadCreate',['../group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff',1,'cmsis_os.h']]],
+ ['osthreadgetid',['osThreadGetId',['../group__CMSIS__RTOS__ThreadMgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7',1,'cmsis_os.h']]],
+ ['osthreadgetpriority',['osThreadGetPriority',['../group__CMSIS__RTOS__ThreadMgmt.html#ga4299d838978bc2aae5e4350754e6a4e9',1,'cmsis_os.h']]],
+ ['osthreadsetpriority',['osThreadSetPriority',['../group__CMSIS__RTOS__ThreadMgmt.html#ga0dfb90ccf1f6e4b54b9251b12d1cbc8b',1,'cmsis_os.h']]],
+ ['osthreadterminate',['osThreadTerminate',['../group__CMSIS__RTOS__ThreadMgmt.html#gaea135bb90eb853eff39e0800b91bbeab',1,'cmsis_os.h']]],
+ ['osthreadyield',['osThreadYield',['../group__CMSIS__RTOS__ThreadMgmt.html#gaf13a667493c5d629a90c13e113b99233',1,'cmsis_os.h']]],
+ ['ostimercreate',['osTimerCreate',['../group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6',1,'cmsis_os.h']]],
+ ['ostimerdelete',['osTimerDelete',['../group__CMSIS__RTOS__TimerMgmt.html#ga746b8043d906849bd65e3900fcb483cf',1,'cmsis_os.h']]],
+ ['ostimerstart',['osTimerStart',['../group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca',1,'cmsis_os.h']]],
+ ['ostimerstop',['osTimerStop',['../group__CMSIS__RTOS__TimerMgmt.html#ga58f36b121a812936435cacc6e1e0e091',1,'cmsis_os.h']]],
+ ['oswait',['osWait',['../group__CMSIS__RTOS__Wait.html#ga8470c8aaedfde524a44e22e5b2328285',1,'cmsis_os.h']]]
+];
diff --git a/docs/RTOS/html/search/functions_1.html b/docs/RTOS/html/search/functions_1.html
new file mode 100644
index 0000000..3b4eacf
--- /dev/null
+++ b/docs/RTOS/html/search/functions_1.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="functions_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/functions_1.js b/docs/RTOS/html/search/functions_1.js
new file mode 100644
index 0000000..92f3757
--- /dev/null
+++ b/docs/RTOS/html/search/functions_1.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['svcthreadgetid',['svcThreadGetId',['../RTX__Conf__CM_8c.html#a395cca131b7746fc43c104a3485b77f7',1,'RTX_Conf_CM.c']]]
+];
diff --git a/docs/RTOS/html/search/groups_0.html b/docs/RTOS/html/search/groups_0.html
new file mode 100644
index 0000000..2090afa
--- /dev/null
+++ b/docs/RTOS/html/search/groups_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/groups_0.js b/docs/RTOS/html/search/groups_0.js
new file mode 100644
index 0000000..0ebfbe3
--- /dev/null
+++ b/docs/RTOS/html/search/groups_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['cmsis_2drtos_20api',['CMSIS-RTOS API',['../group__CMSIS__RTOS.html',1,'']]]
+];
diff --git a/docs/RTOS/html/search/groups_1.html b/docs/RTOS/html/search/groups_1.html
new file mode 100644
index 0000000..3ad8a3b
--- /dev/null
+++ b/docs/RTOS/html/search/groups_1.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/groups_1.js b/docs/RTOS/html/search/groups_1.js
new file mode 100644
index 0000000..b232e01
--- /dev/null
+++ b/docs/RTOS/html/search/groups_1.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['generic_20data_20types_20and_20definitions',['Generic Data Types and Definitions',['../group__CMSIS__RTOS__Definitions.html',1,'']]],
+ ['generic_20wait_20functions',['Generic Wait Functions',['../group__CMSIS__RTOS__Wait.html',1,'']]]
+];
diff --git a/docs/RTOS/html/search/groups_2.html b/docs/RTOS/html/search/groups_2.html
new file mode 100644
index 0000000..361832c
--- /dev/null
+++ b/docs/RTOS/html/search/groups_2.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/groups_2.js b/docs/RTOS/html/search/groups_2.js
new file mode 100644
index 0000000..528c93b
--- /dev/null
+++ b/docs/RTOS/html/search/groups_2.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['inter_2dthread_20communication_20and_20resource_20sharing',['Inter-Thread Communication and Resource Sharing',['../group__CMSIS__RTOS__InterThread.html',1,'']]]
+];
diff --git a/docs/RTOS/html/search/groups_3.html b/docs/RTOS/html/search/groups_3.html
new file mode 100644
index 0000000..f42200a
--- /dev/null
+++ b/docs/RTOS/html/search/groups_3.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/groups_3.js b/docs/RTOS/html/search/groups_3.js
new file mode 100644
index 0000000..1b6ceb1
--- /dev/null
+++ b/docs/RTOS/html/search/groups_3.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['kernel_20information_20and_20control',['Kernel Information and Control',['../group__CMSIS__RTOS__KernelCtrl.html',1,'']]]
+];
diff --git a/docs/RTOS/html/search/groups_4.html b/docs/RTOS/html/search/groups_4.html
new file mode 100644
index 0000000..b07fdf9
--- /dev/null
+++ b/docs/RTOS/html/search/groups_4.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/groups_4.js b/docs/RTOS/html/search/groups_4.js
new file mode 100644
index 0000000..ed72916
--- /dev/null
+++ b/docs/RTOS/html/search/groups_4.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['mail_20queue',['Mail Queue',['../group__CMSIS__RTOS__Mail.html',1,'']]],
+ ['message_20queue',['Message Queue',['../group__CMSIS__RTOS__Message.html',1,'']]],
+ ['mutexes',['Mutexes',['../group__CMSIS__RTOS__MutexMgmt.html',1,'']]],
+ ['memory_20pool',['Memory Pool',['../group__CMSIS__RTOS__PoolMgmt.html',1,'']]]
+];
diff --git a/docs/RTOS/html/search/groups_5.html b/docs/RTOS/html/search/groups_5.html
new file mode 100644
index 0000000..35324c0
--- /dev/null
+++ b/docs/RTOS/html/search/groups_5.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/groups_5.js b/docs/RTOS/html/search/groups_5.js
new file mode 100644
index 0000000..08671c1
--- /dev/null
+++ b/docs/RTOS/html/search/groups_5.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['rtx_20specific_20functions',['RTX Specific Functions',['../group__RTX__Global__Functions.html',1,'']]]
+];
diff --git a/docs/RTOS/html/search/groups_6.html b/docs/RTOS/html/search/groups_6.html
new file mode 100644
index 0000000..3231402
--- /dev/null
+++ b/docs/RTOS/html/search/groups_6.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/groups_6.js b/docs/RTOS/html/search/groups_6.js
new file mode 100644
index 0000000..1be771f
--- /dev/null
+++ b/docs/RTOS/html/search/groups_6.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['semaphores',['Semaphores',['../group__CMSIS__RTOS__SemaphoreMgmt.html',1,'']]],
+ ['signal_20events',['Signal Events',['../group__CMSIS__RTOS__SignalMgmt.html',1,'']]],
+ ['status_20and_20error_20codes',['Status and Error Codes',['../group__CMSIS__RTOS__Status.html',1,'']]]
+];
diff --git a/docs/RTOS/html/search/groups_7.html b/docs/RTOS/html/search/groups_7.html
new file mode 100644
index 0000000..27334b6
--- /dev/null
+++ b/docs/RTOS/html/search/groups_7.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="groups_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/groups_7.js b/docs/RTOS/html/search/groups_7.js
new file mode 100644
index 0000000..ab2196c
--- /dev/null
+++ b/docs/RTOS/html/search/groups_7.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['thread_20management',['Thread Management',['../group__CMSIS__RTOS__ThreadMgmt.html',1,'']]],
+ ['timer_20management',['Timer Management',['../group__CMSIS__RTOS__TimerMgmt.html',1,'']]]
+];
diff --git a/docs/RTOS/html/search/mag_sel.png b/docs/RTOS/html/search/mag_sel.png
new file mode 100644
index 0000000..81f6040
--- /dev/null
+++ b/docs/RTOS/html/search/mag_sel.png
Binary files differ
diff --git a/docs/RTOS/html/search/nomatches.html b/docs/RTOS/html/search/nomatches.html
new file mode 100644
index 0000000..b1ded27
--- /dev/null
+++ b/docs/RTOS/html/search/nomatches.html
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="NoMatches">No Matches</div>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/pages_0.html b/docs/RTOS/html/search/pages_0.html
new file mode 100644
index 0000000..c51c834
--- /dev/null
+++ b/docs/RTOS/html/search/pages_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/pages_0.js b/docs/RTOS/html/search/pages_0.js
new file mode 100644
index 0000000..73791ef
--- /dev/null
+++ b/docs/RTOS/html/search/pages_0.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['building_20the_20rtx_20library',['Building the RTX Library',['../creating_RTX_LIB.html',1,'rtxImplementation']]]
+];
diff --git a/docs/RTOS/html/search/pages_1.html b/docs/RTOS/html/search/pages_1.html
new file mode 100644
index 0000000..2a98fce
--- /dev/null
+++ b/docs/RTOS/html/search/pages_1.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/pages_1.js b/docs/RTOS/html/search/pages_1.js
new file mode 100644
index 0000000..28630a0
--- /dev/null
+++ b/docs/RTOS/html/search/pages_1.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['configure_20rtx',['Configure RTX',['../configure.html',1,'rtxImplementation']]],
+ ['configuration_20for_20low_2dpower_20modes',['Configuration for Low-Power Modes',['../lowPower.html',1,'configure']]],
+ ['create_20an_20rtx_20project',['Create an RTX Project',['../using.html',1,'rtxImplementation']]]
+];
diff --git a/docs/RTOS/html/search/pages_2.html b/docs/RTOS/html/search/pages_2.html
new file mode 100644
index 0000000..0711a0b
--- /dev/null
+++ b/docs/RTOS/html/search/pages_2.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/pages_2.js b/docs/RTOS/html/search/pages_2.js
new file mode 100644
index 0000000..d04f353
--- /dev/null
+++ b/docs/RTOS/html/search/pages_2.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['directory_20structure_20and_20file_20overview',['Directory Structure and File Overview',['../dirstructfiles.html',1,'rtxImplementation']]]
+];
diff --git a/docs/RTOS/html/search/pages_3.html b/docs/RTOS/html/search/pages_3.html
new file mode 100644
index 0000000..4310311
--- /dev/null
+++ b/docs/RTOS/html/search/pages_3.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/pages_3.js b/docs/RTOS/html/search/pages_3.js
new file mode 100644
index 0000000..92b936a
--- /dev/null
+++ b/docs/RTOS/html/search/pages_3.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['function_20overview',['Function Overview',['../functionOverview.html',1,'index']]]
+];
diff --git a/docs/RTOS/html/search/pages_4.html b/docs/RTOS/html/search/pages_4.html
new file mode 100644
index 0000000..ae5ce18
--- /dev/null
+++ b/docs/RTOS/html/search/pages_4.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/pages_4.js b/docs/RTOS/html/search/pages_4.js
new file mode 100644
index 0000000..9883cb3
--- /dev/null
+++ b/docs/RTOS/html/search/pages_4.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['generic_20rtos_20interface',['Generic RTOS Interface',['../genRTOSIF.html',1,'index']]]
+];
diff --git a/docs/RTOS/html/search/pages_5.html b/docs/RTOS/html/search/pages_5.html
new file mode 100644
index 0000000..02c1114
--- /dev/null
+++ b/docs/RTOS/html/search/pages_5.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/pages_5.js b/docs/RTOS/html/search/pages_5.js
new file mode 100644
index 0000000..17e739d
--- /dev/null
+++ b/docs/RTOS/html/search/pages_5.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['misra_2dc_3a2004_20compliance_20exceptions',['MISRA-C:2004 Compliance Exceptions',['../misraCompliance.html',1,'rtxImplementation']]]
+];
diff --git a/docs/RTOS/html/search/pages_6.html b/docs/RTOS/html/search/pages_6.html
new file mode 100644
index 0000000..afb70af
--- /dev/null
+++ b/docs/RTOS/html/search/pages_6.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/pages_6.js b/docs/RTOS/html/search/pages_6.js
new file mode 100644
index 0000000..90c14ce
--- /dev/null
+++ b/docs/RTOS/html/search/pages_6.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+ ['rtx_20tutorial',['RTX Tutorial',['../exampleRTX_Tutorial.html',1,'rtxImplementation']]],
+ ['revision_20history',['Revision History',['../rtos_revisionHistory.html',1,'index']]],
+ ['rtos_20validation',['RTOS Validation',['../rtosValidation.html',1,'index']]],
+ ['rtx_20implementation',['RTX Implementation',['../rtxImplementation.html',1,'index']]],
+ ['rtx_20kernel_20tick_20timer_20configuration',['RTX Kernel Tick Timer Configuration',['../timerTick.html',1,'configure']]]
+];
diff --git a/docs/RTOS/html/search/pages_7.html b/docs/RTOS/html/search/pages_7.html
new file mode 100644
index 0000000..9d7ba25
--- /dev/null
+++ b/docs/RTOS/html/search/pages_7.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/pages_7.js b/docs/RTOS/html/search/pages_7.js
new file mode 100644
index 0000000..ec70b69
--- /dev/null
+++ b/docs/RTOS/html/search/pages_7.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['svc_20functions',['SVC Functions',['../svcFunctions.html',1,'configure']]],
+ ['system_20configuration',['System Configuration',['../systemConfig.html',1,'configure']]]
+];
diff --git a/docs/RTOS/html/search/pages_8.html b/docs/RTOS/html/search/pages_8.html
new file mode 100644
index 0000000..3377887
--- /dev/null
+++ b/docs/RTOS/html/search/pages_8.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/pages_8.js b/docs/RTOS/html/search/pages_8.js
new file mode 100644
index 0000000..a5ef4ac
--- /dev/null
+++ b/docs/RTOS/html/search/pages_8.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['technical_20data',['Technical Data',['../technicalData.html',1,'rtxImplementation']]],
+ ['theory_20of_20operation',['Theory of Operation',['../theory.html',1,'rtxImplementation']]],
+ ['thread_20configuration',['Thread Configuration',['../threadConfig.html',1,'configure']]]
+];
diff --git a/docs/RTOS/html/search/pages_9.html b/docs/RTOS/html/search/pages_9.html
new file mode 100644
index 0000000..203934e
--- /dev/null
+++ b/docs/RTOS/html/search/pages_9.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="pages_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/pages_9.js b/docs/RTOS/html/search/pages_9.js
new file mode 100644
index 0000000..ebbd626
--- /dev/null
+++ b/docs/RTOS/html/search/pages_9.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['using_20a_20cmsis_2drtos_20implementation',['Using a CMSIS-RTOS Implementation',['../usingOS.html',1,'index']]]
+];
diff --git a/docs/RTOS/html/search/search.css b/docs/RTOS/html/search/search.css
new file mode 100644
index 0000000..4d7612f
--- /dev/null
+++ b/docs/RTOS/html/search/search.css
@@ -0,0 +1,271 @@
+/*---------------- Search Box */
+
+#FSearchBox {
+ float: left;
+}
+
+#MSearchBox {
+ white-space : nowrap;
+ position: absolute;
+ float: none;
+ display: inline;
+ margin-top: 8px;
+ right: 0px;
+ width: 170px;
+ z-index: 102;
+ background-color: white;
+}
+
+#MSearchBox .left
+{
+ display:block;
+ position:absolute;
+ left:10px;
+ width:20px;
+ height:19px;
+ background:url('search_l.png') no-repeat;
+ background-position:right;
+}
+
+#MSearchSelect {
+ display:block;
+ position:absolute;
+ width:20px;
+ height:19px;
+}
+
+.left #MSearchSelect {
+ left:4px;
+}
+
+.right #MSearchSelect {
+ right:5px;
+}
+
+#MSearchField {
+ display:block;
+ position:absolute;
+ height:19px;
+ background:url('search_m.png') repeat-x;
+ border:none;
+ width:111px;
+ margin-left:20px;
+ padding-left:4px;
+ color: #909090;
+ outline: none;
+ font: 9pt Arial, Verdana, sans-serif;
+}
+
+#FSearchBox #MSearchField {
+ margin-left:15px;
+}
+
+#MSearchBox .right {
+ display:block;
+ position:absolute;
+ right:10px;
+ top:0px;
+ width:20px;
+ height:19px;
+ background:url('search_r.png') no-repeat;
+ background-position:left;
+}
+
+#MSearchClose {
+ display: none;
+ position: absolute;
+ top: 4px;
+ background : none;
+ border: none;
+ margin: 0px 4px 0px 0px;
+ padding: 0px 0px;
+ outline: none;
+}
+
+.left #MSearchClose {
+ left: 6px;
+}
+
+.right #MSearchClose {
+ right: 2px;
+}
+
+.MSearchBoxActive #MSearchField {
+ color: #000000;
+}
+
+/*---------------- Search filter selection */
+
+#MSearchSelectWindow {
+ display: none;
+ position: absolute;
+ left: 0; top: 0;
+ border: 1px solid #90A5CE;
+ background-color: #F9FAFC;
+ z-index: 1;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ -moz-border-radius: 4px;
+ -webkit-border-top-left-radius: 4px;
+ -webkit-border-top-right-radius: 4px;
+ -webkit-border-bottom-left-radius: 4px;
+ -webkit-border-bottom-right-radius: 4px;
+ -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
+}
+
+.SelectItem {
+ font: 8pt Arial, Verdana, sans-serif;
+ padding-left: 2px;
+ padding-right: 12px;
+ border: 0px;
+}
+
+span.SelectionMark {
+ margin-right: 4px;
+ font-family: monospace;
+ outline-style: none;
+ text-decoration: none;
+}
+
+a.SelectItem {
+ display: block;
+ outline-style: none;
+ color: #000000;
+ text-decoration: none;
+ padding-left: 6px;
+ padding-right: 12px;
+}
+
+a.SelectItem:focus,
+a.SelectItem:active {
+ color: #000000;
+ outline-style: none;
+ text-decoration: none;
+}
+
+a.SelectItem:hover {
+ color: #FFFFFF;
+ background-color: #3D578C;
+ outline-style: none;
+ text-decoration: none;
+ cursor: pointer;
+ display: block;
+}
+
+/*---------------- Search results window */
+
+iframe#MSearchResults {
+ width: 60ex;
+ height: 15em;
+}
+
+#MSearchResultsWindow {
+ display: none;
+ position: absolute;
+ left: 0; top: 0;
+ border: 1px solid #000;
+ background-color: #EEF1F7;
+}
+
+/* ----------------------------------- */
+
+
+#SRIndex {
+ clear:both;
+ padding-bottom: 15px;
+}
+
+.SREntry {
+ font-size: 10pt;
+ padding-left: 1ex;
+}
+
+.SRPage .SREntry {
+ font-size: 8pt;
+ padding: 1px 5px;
+}
+
+body.SRPage {
+ margin: 5px 2px;
+}
+
+.SRChildren {
+ padding-left: 3ex; padding-bottom: .5em
+}
+
+.SRPage .SRChildren {
+ display: none;
+}
+
+.SRSymbol {
+ font-weight: bold;
+ color: #425E97;
+ font-family: Arial, Verdana, sans-serif;
+ text-decoration: none;
+ outline: none;
+}
+
+a.SRScope {
+ display: block;
+ color: #425E97;
+ font-family: Arial, Verdana, sans-serif;
+ text-decoration: none;
+ outline: none;
+}
+
+a.SRSymbol:focus, a.SRSymbol:active,
+a.SRScope:focus, a.SRScope:active {
+ text-decoration: underline;
+}
+
+span.SRScope {
+ padding-left: 4px;
+}
+
+.SRPage .SRStatus {
+ padding: 2px 5px;
+ font-size: 8pt;
+ font-style: italic;
+}
+
+.SRResult {
+ display: none;
+}
+
+DIV.searchresults {
+ margin-left: 10px;
+ margin-right: 10px;
+}
+
+/*---------------- External search page results */
+
+.searchresult {
+ background-color: #F0F3F8;
+}
+
+.pages b {
+ color: white;
+ padding: 5px 5px 3px 5px;
+ background-image: url("../tab_a.png");
+ background-repeat: repeat-x;
+ text-shadow: 0 1px 1px #000000;
+}
+
+.pages {
+ line-height: 17px;
+ margin-left: 4px;
+ text-decoration: none;
+}
+
+.hl {
+ font-weight: bold;
+}
+
+#searchresults {
+ margin-bottom: 20px;
+}
+
+.searchpages {
+ margin-top: 10px;
+}
+
diff --git a/docs/RTOS/html/search/search.js b/docs/RTOS/html/search/search.js
new file mode 100644
index 0000000..789d29d
--- /dev/null
+++ b/docs/RTOS/html/search/search.js
@@ -0,0 +1,813 @@
+// Search script generated by doxygen
+// Copyright (C) 2009 by Dimitri van Heesch.
+
+// The code in this file is loosly based on main.js, part of Natural Docs,
+// which is Copyright (C) 2003-2008 Greg Valure
+// Natural Docs is licensed under the GPL.
+
+var indexSectionsWithContent =
+{
+ 0: "bcdfgikmopqrstuv",
+ 1: "o",
+ 2: "cr",
+ 3: "os",
+ 4: "dipqstv",
+ 5: "o",
+ 6: "o",
+ 7: "o",
+ 8: "o",
+ 9: "cgikmrst",
+ 10: "bcdfgmrstu"
+};
+
+var indexSectionNames =
+{
+ 0: "all",
+ 1: "classes",
+ 2: "files",
+ 3: "functions",
+ 4: "variables",
+ 5: "typedefs",
+ 6: "enums",
+ 7: "enumvalues",
+ 8: "defines",
+ 9: "groups",
+ 10: "pages"
+};
+
+function convertToId(search)
+{
+ var result = '';
+ for (i=0;i<search.length;i++)
+ {
+ var c = search.charAt(i);
+ var cn = c.charCodeAt(0);
+ if (c.match(/[a-z0-9\u0080-\uFFFF]/))
+ {
+ result+=c;
+ }
+ else if (cn<16)
+ {
+ result+="_0"+cn.toString(16);
+ }
+ else
+ {
+ result+="_"+cn.toString(16);
+ }
+ }
+ return result;
+}
+
+function getXPos(item)
+{
+ var x = 0;
+ if (item.offsetWidth)
+ {
+ while (item && item!=document.body)
+ {
+ x += item.offsetLeft;
+ item = item.offsetParent;
+ }
+ }
+ return x;
+}
+
+function getYPos(item)
+{
+ var y = 0;
+ if (item.offsetWidth)
+ {
+ while (item && item!=document.body)
+ {
+ y += item.offsetTop;
+ item = item.offsetParent;
+ }
+ }
+ return y;
+}
+
+/* A class handling everything associated with the search panel.
+
+ Parameters:
+ name - The name of the global variable that will be
+ storing this instance. Is needed to be able to set timeouts.
+ resultPath - path to use for external files
+*/
+function SearchBox(name, resultsPath, inFrame, label)
+{
+ if (!name || !resultsPath) { alert("Missing parameters to SearchBox."); }
+
+ // ---------- Instance variables
+ this.name = name;
+ this.resultsPath = resultsPath;
+ this.keyTimeout = 0;
+ this.keyTimeoutLength = 500;
+ this.closeSelectionTimeout = 300;
+ this.lastSearchValue = "";
+ this.lastResultsPage = "";
+ this.hideTimeout = 0;
+ this.searchIndex = 0;
+ this.searchActive = false;
+ this.insideFrame = inFrame;
+ this.searchLabel = label;
+
+ // ----------- DOM Elements
+
+ this.DOMSearchField = function()
+ { return document.getElementById("MSearchField"); }
+
+ this.DOMSearchSelect = function()
+ { return document.getElementById("MSearchSelect"); }
+
+ this.DOMSearchSelectWindow = function()
+ { return document.getElementById("MSearchSelectWindow"); }
+
+ this.DOMPopupSearchResults = function()
+ { return document.getElementById("MSearchResults"); }
+
+ this.DOMPopupSearchResultsWindow = function()
+ { return document.getElementById("MSearchResultsWindow"); }
+
+ this.DOMSearchClose = function()
+ { return document.getElementById("MSearchClose"); }
+
+ this.DOMSearchBox = function()
+ { return document.getElementById("MSearchBox"); }
+
+ // ------------ Event Handlers
+
+ // Called when focus is added or removed from the search field.
+ this.OnSearchFieldFocus = function(isActive)
+ {
+ this.Activate(isActive);
+ }
+
+ this.OnSearchSelectShow = function()
+ {
+ var searchSelectWindow = this.DOMSearchSelectWindow();
+ var searchField = this.DOMSearchSelect();
+
+ if (this.insideFrame)
+ {
+ var left = getXPos(searchField);
+ var top = getYPos(searchField);
+ left += searchField.offsetWidth + 6;
+ top += searchField.offsetHeight;
+
+ // show search selection popup
+ searchSelectWindow.style.display='block';
+ left -= searchSelectWindow.offsetWidth;
+ searchSelectWindow.style.left = left + 'px';
+ searchSelectWindow.style.top = top + 'px';
+ }
+ else
+ {
+ var left = getXPos(searchField);
+ var top = getYPos(searchField);
+ top += searchField.offsetHeight;
+
+ // show search selection popup
+ searchSelectWindow.style.display='block';
+ searchSelectWindow.style.left = left + 'px';
+ searchSelectWindow.style.top = top + 'px';
+ }
+
+ // stop selection hide timer
+ if (this.hideTimeout)
+ {
+ clearTimeout(this.hideTimeout);
+ this.hideTimeout=0;
+ }
+ return false; // to avoid "image drag" default event
+ }
+
+ this.OnSearchSelectHide = function()
+ {
+ this.hideTimeout = setTimeout(this.name +".CloseSelectionWindow()",
+ this.closeSelectionTimeout);
+ }
+
+ // Called when the content of the search field is changed.
+ this.OnSearchFieldChange = function(evt)
+ {
+ if (this.keyTimeout) // kill running timer
+ {
+ clearTimeout(this.keyTimeout);
+ this.keyTimeout = 0;
+ }
+
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==40 || e.keyCode==13)
+ {
+ if (e.shiftKey==1)
+ {
+ this.OnSearchSelectShow();
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ child.focus();
+ return;
+ }
+ }
+ return;
+ }
+ else if (window.frames.MSearchResults.searchResults)
+ {
+ var elem = window.frames.MSearchResults.searchResults.NavNext(0);
+ if (elem) elem.focus();
+ }
+ }
+ else if (e.keyCode==27) // Escape out of the search field
+ {
+ this.DOMSearchField().blur();
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.lastSearchValue = '';
+ this.Activate(false);
+ return;
+ }
+
+ // strip whitespaces
+ var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+
+ if (searchValue != this.lastSearchValue) // search value has changed
+ {
+ if (searchValue != "") // non-empty search
+ {
+ // set timer for search update
+ this.keyTimeout = setTimeout(this.name + '.Search()',
+ this.keyTimeoutLength);
+ }
+ else // empty search field
+ {
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.lastSearchValue = '';
+ }
+ }
+ }
+
+ this.SelectItemCount = function(id)
+ {
+ var count=0;
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ count++;
+ }
+ }
+ return count;
+ }
+
+ this.SelectItemSet = function(id)
+ {
+ var i,j=0;
+ var win=this.DOMSearchSelectWindow();
+ for (i=0;i<win.childNodes.length;i++)
+ {
+ var child = win.childNodes[i]; // get span within a
+ if (child.className=='SelectItem')
+ {
+ var node = child.firstChild;
+ if (j==id)
+ {
+ node.innerHTML='&#8226;';
+ }
+ else
+ {
+ node.innerHTML='&#160;';
+ }
+ j++;
+ }
+ }
+ }
+
+ // Called when an search filter selection is made.
+ // set item with index id as the active item
+ this.OnSelectItem = function(id)
+ {
+ this.searchIndex = id;
+ this.SelectItemSet(id);
+ var searchValue = this.DOMSearchField().value.replace(/ +/g, "");
+ if (searchValue!="" && this.searchActive) // something was found -> do a search
+ {
+ this.Search();
+ }
+ }
+
+ this.OnSearchSelectKey = function(evt)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==40 && this.searchIndex<this.SelectItemCount()) // Down
+ {
+ this.searchIndex++;
+ this.OnSelectItem(this.searchIndex);
+ }
+ else if (e.keyCode==38 && this.searchIndex>0) // Up
+ {
+ this.searchIndex--;
+ this.OnSelectItem(this.searchIndex);
+ }
+ else if (e.keyCode==13 || e.keyCode==27)
+ {
+ this.OnSelectItem(this.searchIndex);
+ this.CloseSelectionWindow();
+ this.DOMSearchField().focus();
+ }
+ return false;
+ }
+
+ // --------- Actions
+
+ // Closes the results window.
+ this.CloseResultsWindow = function()
+ {
+ this.DOMPopupSearchResultsWindow().style.display = 'none';
+ this.DOMSearchClose().style.display = 'none';
+ this.Activate(false);
+ }
+
+ this.CloseSelectionWindow = function()
+ {
+ this.DOMSearchSelectWindow().style.display = 'none';
+ }
+
+ // Performs a search.
+ this.Search = function()
+ {
+ this.keyTimeout = 0;
+
+ // strip leading whitespace
+ var searchValue = this.DOMSearchField().value.replace(/^ +/, "");
+
+ var code = searchValue.toLowerCase().charCodeAt(0);
+ var idxChar = searchValue.substr(0, 1).toLowerCase();
+ if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair
+ {
+ idxChar = searchValue.substr(0, 2);
+ }
+
+ var resultsPage;
+ var resultsPageWithSearch;
+ var hasResultsPage;
+
+ var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar);
+ if (idx!=-1)
+ {
+ var hexCode=idx.toString(16);
+ resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + '.html';
+ resultsPageWithSearch = resultsPage+'?'+escape(searchValue);
+ hasResultsPage = true;
+ }
+ else // nothing available for this search term
+ {
+ resultsPage = this.resultsPath + '/nomatches.html';
+ resultsPageWithSearch = resultsPage;
+ hasResultsPage = false;
+ }
+
+ window.frames.MSearchResults.location = resultsPageWithSearch;
+ var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow();
+
+ if (domPopupSearchResultsWindow.style.display!='block')
+ {
+ var domSearchBox = this.DOMSearchBox();
+ this.DOMSearchClose().style.display = 'inline';
+ if (this.insideFrame)
+ {
+ var domPopupSearchResults = this.DOMPopupSearchResults();
+ domPopupSearchResultsWindow.style.position = 'relative';
+ domPopupSearchResultsWindow.style.display = 'block';
+ var width = document.body.clientWidth - 8; // the -8 is for IE :-(
+ domPopupSearchResultsWindow.style.width = width + 'px';
+ domPopupSearchResults.style.width = width + 'px';
+ }
+ else
+ {
+ var domPopupSearchResults = this.DOMPopupSearchResults();
+ var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth;
+ var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1;
+ domPopupSearchResultsWindow.style.display = 'block';
+ left -= domPopupSearchResults.offsetWidth;
+ domPopupSearchResultsWindow.style.top = top + 'px';
+ domPopupSearchResultsWindow.style.left = left + 'px';
+ }
+ }
+
+ this.lastSearchValue = searchValue;
+ this.lastResultsPage = resultsPage;
+ }
+
+ // -------- Activation Functions
+
+ // Activates or deactivates the search panel, resetting things to
+ // their default values if necessary.
+ this.Activate = function(isActive)
+ {
+ if (isActive || // open it
+ this.DOMPopupSearchResultsWindow().style.display == 'block'
+ )
+ {
+ this.DOMSearchBox().className = 'MSearchBoxActive';
+
+ var searchField = this.DOMSearchField();
+
+ if (searchField.value == this.searchLabel) // clear "Search" term upon entry
+ {
+ searchField.value = '';
+ this.searchActive = true;
+ }
+ }
+ else if (!isActive) // directly remove the panel
+ {
+ this.DOMSearchBox().className = 'MSearchBoxInactive';
+ this.DOMSearchField().value = this.searchLabel;
+ this.searchActive = false;
+ this.lastSearchValue = ''
+ this.lastResultsPage = '';
+ }
+ }
+}
+
+// -----------------------------------------------------------------------
+
+// The class that handles everything on the search results page.
+function SearchResults(name)
+{
+ // The number of matches from the last run of <Search()>.
+ this.lastMatchCount = 0;
+ this.lastKey = 0;
+ this.repeatOn = false;
+
+ // Toggles the visibility of the passed element ID.
+ this.FindChildElement = function(id)
+ {
+ var parentElement = document.getElementById(id);
+ var element = parentElement.firstChild;
+
+ while (element && element!=parentElement)
+ {
+ if (element.nodeName == 'DIV' && element.className == 'SRChildren')
+ {
+ return element;
+ }
+
+ if (element.nodeName == 'DIV' && element.hasChildNodes())
+ {
+ element = element.firstChild;
+ }
+ else if (element.nextSibling)
+ {
+ element = element.nextSibling;
+ }
+ else
+ {
+ do
+ {
+ element = element.parentNode;
+ }
+ while (element && element!=parentElement && !element.nextSibling);
+
+ if (element && element!=parentElement)
+ {
+ element = element.nextSibling;
+ }
+ }
+ }
+ }
+
+ this.Toggle = function(id)
+ {
+ var element = this.FindChildElement(id);
+ if (element)
+ {
+ if (element.style.display == 'block')
+ {
+ element.style.display = 'none';
+ }
+ else
+ {
+ element.style.display = 'block';
+ }
+ }
+ }
+
+ // Searches for the passed string. If there is no parameter,
+ // it takes it from the URL query.
+ //
+ // Always returns true, since other documents may try to call it
+ // and that may or may not be possible.
+ this.Search = function(search)
+ {
+ if (!search) // get search word from URL
+ {
+ search = window.location.search;
+ search = search.substring(1); // Remove the leading '?'
+ search = unescape(search);
+ }
+
+ search = search.replace(/^ +/, ""); // strip leading spaces
+ search = search.replace(/ +$/, ""); // strip trailing spaces
+ search = search.toLowerCase();
+ search = convertToId(search);
+
+ var resultRows = document.getElementsByTagName("div");
+ var matches = 0;
+
+ var i = 0;
+ while (i < resultRows.length)
+ {
+ var row = resultRows.item(i);
+ if (row.className == "SRResult")
+ {
+ var rowMatchName = row.id.toLowerCase();
+ rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_'
+
+ if (search.length<=rowMatchName.length &&
+ rowMatchName.substr(0, search.length)==search)
+ {
+ row.style.display = 'block';
+ matches++;
+ }
+ else
+ {
+ row.style.display = 'none';
+ }
+ }
+ i++;
+ }
+ document.getElementById("Searching").style.display='none';
+ if (matches == 0) // no results
+ {
+ document.getElementById("NoMatches").style.display='block';
+ }
+ else // at least one result
+ {
+ document.getElementById("NoMatches").style.display='none';
+ }
+ this.lastMatchCount = matches;
+ return true;
+ }
+
+ // return the first item with index index or higher that is visible
+ this.NavNext = function(index)
+ {
+ var focusItem;
+ while (1)
+ {
+ var focusName = 'Item'+index;
+ focusItem = document.getElementById(focusName);
+ if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+ {
+ break;
+ }
+ else if (!focusItem) // last element
+ {
+ break;
+ }
+ focusItem=null;
+ index++;
+ }
+ return focusItem;
+ }
+
+ this.NavPrev = function(index)
+ {
+ var focusItem;
+ while (1)
+ {
+ var focusName = 'Item'+index;
+ focusItem = document.getElementById(focusName);
+ if (focusItem && focusItem.parentNode.parentNode.style.display=='block')
+ {
+ break;
+ }
+ else if (!focusItem) // last element
+ {
+ break;
+ }
+ focusItem=null;
+ index--;
+ }
+ return focusItem;
+ }
+
+ this.ProcessKeys = function(e)
+ {
+ if (e.type == "keydown")
+ {
+ this.repeatOn = false;
+ this.lastKey = e.keyCode;
+ }
+ else if (e.type == "keypress")
+ {
+ if (!this.repeatOn)
+ {
+ if (this.lastKey) this.repeatOn = true;
+ return false; // ignore first keypress after keydown
+ }
+ }
+ else if (e.type == "keyup")
+ {
+ this.lastKey = 0;
+ this.repeatOn = false;
+ }
+ return this.lastKey!=0;
+ }
+
+ this.Nav = function(evt,itemIndex)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==13) return true;
+ if (!this.ProcessKeys(e)) return false;
+
+ if (this.lastKey==38) // Up
+ {
+ var newIndex = itemIndex-1;
+ var focusItem = this.NavPrev(newIndex);
+ if (focusItem)
+ {
+ var child = this.FindChildElement(focusItem.parentNode.parentNode.id);
+ if (child && child.style.display == 'block') // children visible
+ {
+ var n=0;
+ var tmpElem;
+ while (1) // search for last child
+ {
+ tmpElem = document.getElementById('Item'+newIndex+'_c'+n);
+ if (tmpElem)
+ {
+ focusItem = tmpElem;
+ }
+ else // found it!
+ {
+ break;
+ }
+ n++;
+ }
+ }
+ }
+ if (focusItem)
+ {
+ focusItem.focus();
+ }
+ else // return focus to search field
+ {
+ parent.document.getElementById("MSearchField").focus();
+ }
+ }
+ else if (this.lastKey==40) // Down
+ {
+ var newIndex = itemIndex+1;
+ var focusItem;
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem && elem.style.display == 'block') // children visible
+ {
+ focusItem = document.getElementById('Item'+itemIndex+'_c0');
+ }
+ if (!focusItem) focusItem = this.NavNext(newIndex);
+ if (focusItem) focusItem.focus();
+ }
+ else if (this.lastKey==39) // Right
+ {
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem) elem.style.display = 'block';
+ }
+ else if (this.lastKey==37) // Left
+ {
+ var item = document.getElementById('Item'+itemIndex);
+ var elem = this.FindChildElement(item.parentNode.parentNode.id);
+ if (elem) elem.style.display = 'none';
+ }
+ else if (this.lastKey==27) // Escape
+ {
+ parent.searchBox.CloseResultsWindow();
+ parent.document.getElementById("MSearchField").focus();
+ }
+ else if (this.lastKey==13) // Enter
+ {
+ return true;
+ }
+ return false;
+ }
+
+ this.NavChild = function(evt,itemIndex,childIndex)
+ {
+ var e = (evt) ? evt : window.event; // for IE
+ if (e.keyCode==13) return true;
+ if (!this.ProcessKeys(e)) return false;
+
+ if (this.lastKey==38) // Up
+ {
+ if (childIndex>0)
+ {
+ var newIndex = childIndex-1;
+ document.getElementById('Item'+itemIndex+'_c'+newIndex).focus();
+ }
+ else // already at first child, jump to parent
+ {
+ document.getElementById('Item'+itemIndex).focus();
+ }
+ }
+ else if (this.lastKey==40) // Down
+ {
+ var newIndex = childIndex+1;
+ var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex);
+ if (!elem) // last child, jump to parent next parent
+ {
+ elem = this.NavNext(itemIndex+1);
+ }
+ if (elem)
+ {
+ elem.focus();
+ }
+ }
+ else if (this.lastKey==27) // Escape
+ {
+ parent.searchBox.CloseResultsWindow();
+ parent.document.getElementById("MSearchField").focus();
+ }
+ else if (this.lastKey==13) // Enter
+ {
+ return true;
+ }
+ return false;
+ }
+}
+
+function setKeyActions(elem,action)
+{
+ elem.setAttribute('onkeydown',action);
+ elem.setAttribute('onkeypress',action);
+ elem.setAttribute('onkeyup',action);
+}
+
+function setClassAttr(elem,attr)
+{
+ elem.setAttribute('class',attr);
+ elem.setAttribute('className',attr);
+}
+
+function createResults()
+{
+ var results = document.getElementById("SRResults");
+ for (var e=0; e<searchData.length; e++)
+ {
+ var id = searchData[e][0];
+ var srResult = document.createElement('div');
+ srResult.setAttribute('id','SR_'+id);
+ setClassAttr(srResult,'SRResult');
+ var srEntry = document.createElement('div');
+ setClassAttr(srEntry,'SREntry');
+ var srLink = document.createElement('a');
+ srLink.setAttribute('id','Item'+e);
+ setKeyActions(srLink,'return searchResults.Nav(event,'+e+')');
+ setClassAttr(srLink,'SRSymbol');
+ srLink.innerHTML = searchData[e][1][0];
+ srEntry.appendChild(srLink);
+ if (searchData[e][1].length==2) // single result
+ {
+ srLink.setAttribute('href',searchData[e][1][1][0]);
+ if (searchData[e][1][1][1])
+ {
+ srLink.setAttribute('target','_parent');
+ }
+ var srScope = document.createElement('span');
+ setClassAttr(srScope,'SRScope');
+ srScope.innerHTML = searchData[e][1][1][2];
+ srEntry.appendChild(srScope);
+ }
+ else // multiple results
+ {
+ srLink.setAttribute('href','javascript:searchResults.Toggle("SR_'+id+'")');
+ var srChildren = document.createElement('div');
+ setClassAttr(srChildren,'SRChildren');
+ for (var c=0; c<searchData[e][1].length-1; c++)
+ {
+ var srChild = document.createElement('a');
+ srChild.setAttribute('id','Item'+e+'_c'+c);
+ setKeyActions(srChild,'return searchResults.NavChild(event,'+e+','+c+')');
+ setClassAttr(srChild,'SRScope');
+ srChild.setAttribute('href',searchData[e][1][c+1][0]);
+ if (searchData[e][1][c+1][1])
+ {
+ srChild.setAttribute('target','_parent');
+ }
+ srChild.innerHTML = searchData[e][1][c+1][2];
+ srChildren.appendChild(srChild);
+ }
+ srEntry.appendChild(srChildren);
+ }
+ srResult.appendChild(srEntry);
+ results.appendChild(srResult);
+ }
+}
+
diff --git a/docs/RTOS/html/search/search_l.png b/docs/RTOS/html/search/search_l.png
new file mode 100644
index 0000000..c872f4d
--- /dev/null
+++ b/docs/RTOS/html/search/search_l.png
Binary files differ
diff --git a/docs/RTOS/html/search/search_m.png b/docs/RTOS/html/search/search_m.png
new file mode 100644
index 0000000..b429a16
--- /dev/null
+++ b/docs/RTOS/html/search/search_m.png
Binary files differ
diff --git a/docs/RTOS/html/search/search_r.png b/docs/RTOS/html/search/search_r.png
new file mode 100644
index 0000000..97ee8b4
--- /dev/null
+++ b/docs/RTOS/html/search/search_r.png
Binary files differ
diff --git a/docs/RTOS/html/search/typedefs_0.html b/docs/RTOS/html/search/typedefs_0.html
new file mode 100644
index 0000000..8d6b78f
--- /dev/null
+++ b/docs/RTOS/html/search/typedefs_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="typedefs_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/typedefs_0.js b/docs/RTOS/html/search/typedefs_0.js
new file mode 100644
index 0000000..e543bcc
--- /dev/null
+++ b/docs/RTOS/html/search/typedefs_0.js
@@ -0,0 +1,12 @@
+var searchData=
+[
+ ['os_5fpthread',['os_pthread',['../cmsis__os_8h.html#aee631e5ea1b700fc35695cc7bc574cf7',1,'cmsis_os.h']]],
+ ['os_5fptimer',['os_ptimer',['../cmsis__os_8h.html#aa2d85e49bde9f6951ff3545cd323f065',1,'cmsis_os.h']]],
+ ['osmailqid',['osMailQId',['../cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5',1,'cmsis_os.h']]],
+ ['osmessageqid',['osMessageQId',['../cmsis__os_8h.html#ad9ec70c32c6c521970636b521e12d17f',1,'cmsis_os.h']]],
+ ['osmutexid',['osMutexId',['../cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2',1,'cmsis_os.h']]],
+ ['ospoolid',['osPoolId',['../cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686',1,'cmsis_os.h']]],
+ ['ossemaphoreid',['osSemaphoreId',['../cmsis__os_8h.html#aa8968896c84094aa973683c84fa06f84',1,'cmsis_os.h']]],
+ ['osthreadid',['osThreadId',['../cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f',1,'cmsis_os.h']]],
+ ['ostimerid',['osTimerId',['../cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7',1,'cmsis_os.h']]]
+];
diff --git a/docs/RTOS/html/search/variables_0.html b/docs/RTOS/html/search/variables_0.html
new file mode 100644
index 0000000..1b8adc9
--- /dev/null
+++ b/docs/RTOS/html/search/variables_0.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_0.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/variables_0.js b/docs/RTOS/html/search/variables_0.js
new file mode 100644
index 0000000..10a84b7
--- /dev/null
+++ b/docs/RTOS/html/search/variables_0.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['def',['def',['../group__CMSIS__RTOS__Definitions.html#a596b6d55c3321db19239256bbe403df6',1,'osEvent']]],
+ ['dummy',['dummy',['../cmsis__os_8h.html#a44b7a3baf02bac7ad707e8f2f5eca1ca',1,'osMutexDef_t::dummy()'],['../cmsis__os_8h.html#a44b7a3baf02bac7ad707e8f2f5eca1ca',1,'osSemaphoreDef_t::dummy()']]]
+];
diff --git a/docs/RTOS/html/search/variables_1.html b/docs/RTOS/html/search/variables_1.html
new file mode 100644
index 0000000..78f63cd
--- /dev/null
+++ b/docs/RTOS/html/search/variables_1.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_1.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/variables_1.js b/docs/RTOS/html/search/variables_1.js
new file mode 100644
index 0000000..6605ab3
--- /dev/null
+++ b/docs/RTOS/html/search/variables_1.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['instances',['instances',['../cmsis__os_8h.html#aa4c4115851a098c0b87358ab6c025603',1,'osThreadDef_t']]],
+ ['item_5fsz',['item_sz',['../cmsis__os_8h.html#a4c2a0c691de3365c00ecd22d8102811f',1,'osPoolDef_t::item_sz()'],['../cmsis__os_8h.html#a4c2a0c691de3365c00ecd22d8102811f',1,'osMessageQDef_t::item_sz()'],['../cmsis__os_8h.html#a4c2a0c691de3365c00ecd22d8102811f',1,'osMailQDef_t::item_sz()']]]
+];
diff --git a/docs/RTOS/html/search/variables_2.html b/docs/RTOS/html/search/variables_2.html
new file mode 100644
index 0000000..ea80d20
--- /dev/null
+++ b/docs/RTOS/html/search/variables_2.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_2.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/variables_2.js b/docs/RTOS/html/search/variables_2.js
new file mode 100644
index 0000000..4a6f1b2
--- /dev/null
+++ b/docs/RTOS/html/search/variables_2.js
@@ -0,0 +1,7 @@
+var searchData=
+[
+ ['pool',['pool',['../cmsis__os_8h.html#a269c3935f8bc66db70bccdd02cb05e3c',1,'osPoolDef_t::pool()'],['../cmsis__os_8h.html#a269c3935f8bc66db70bccdd02cb05e3c',1,'osMessageQDef_t::pool()'],['../cmsis__os_8h.html#a269c3935f8bc66db70bccdd02cb05e3c',1,'osMailQDef_t::pool()']]],
+ ['pool_5fsz',['pool_sz',['../cmsis__os_8h.html#ac112e786b2a234e0e45cb5bdbee53763',1,'osPoolDef_t']]],
+ ['pthread',['pthread',['../cmsis__os_8h.html#ad3c9624ee214329fb34e71f544a6933e',1,'osThreadDef_t']]],
+ ['ptimer',['ptimer',['../cmsis__os_8h.html#a15773df83aba93f8e61f3737af5fae47',1,'osTimerDef_t']]]
+];
diff --git a/docs/RTOS/html/search/variables_3.html b/docs/RTOS/html/search/variables_3.html
new file mode 100644
index 0000000..0dca26f
--- /dev/null
+++ b/docs/RTOS/html/search/variables_3.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/variables_3.js b/docs/RTOS/html/search/variables_3.js
new file mode 100644
index 0000000..72dd5cd
--- /dev/null
+++ b/docs/RTOS/html/search/variables_3.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['queue_5fsz',['queue_sz',['../cmsis__os_8h.html#a8a83a3a8c0aa8057b13807d2a54077e0',1,'osMessageQDef_t::queue_sz()'],['../cmsis__os_8h.html#a8a83a3a8c0aa8057b13807d2a54077e0',1,'osMailQDef_t::queue_sz()']]]
+];
diff --git a/docs/RTOS/html/search/variables_4.html b/docs/RTOS/html/search/variables_4.html
new file mode 100644
index 0000000..400e8e9
--- /dev/null
+++ b/docs/RTOS/html/search/variables_4.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/variables_4.js b/docs/RTOS/html/search/variables_4.js
new file mode 100644
index 0000000..b4ff6e8
--- /dev/null
+++ b/docs/RTOS/html/search/variables_4.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['stacksize',['stacksize',['../cmsis__os_8h.html#a950b7f81ad4711959517296e63bc79d1',1,'osThreadDef_t']]],
+ ['status',['status',['../group__CMSIS__RTOS__Definitions.html#ad477a289f1f03ac45407b64268d707d3',1,'osEvent']]]
+];
diff --git a/docs/RTOS/html/search/variables_5.html b/docs/RTOS/html/search/variables_5.html
new file mode 100644
index 0000000..7f1241f
--- /dev/null
+++ b/docs/RTOS/html/search/variables_5.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/variables_5.js b/docs/RTOS/html/search/variables_5.js
new file mode 100644
index 0000000..1cc6efb
--- /dev/null
+++ b/docs/RTOS/html/search/variables_5.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['tpriority',['tpriority',['../cmsis__os_8h.html#a15da8f23c6fe684b70a73646ada685e7',1,'osThreadDef_t']]]
+];
diff --git a/docs/RTOS/html/search/variables_6.html b/docs/RTOS/html/search/variables_6.html
new file mode 100644
index 0000000..7536df8
--- /dev/null
+++ b/docs/RTOS/html/search/variables_6.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/variables_6.js b/docs/RTOS/html/search/variables_6.js
new file mode 100644
index 0000000..8f5695b
--- /dev/null
+++ b/docs/RTOS/html/search/variables_6.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['value',['value',['../group__CMSIS__RTOS__Definitions.html#a0b9f8fd3645f01d8cb09cae82add2d7f',1,'osEvent']]]
+];
diff --git a/docs/RTOS/html/search/variables_7.html b/docs/RTOS/html/search/variables_7.html
new file mode 100644
index 0000000..66186a6
--- /dev/null
+++ b/docs/RTOS/html/search/variables_7.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.6">
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/search/variables_7.js b/docs/RTOS/html/search/variables_7.js
new file mode 100644
index 0000000..d748c4a
--- /dev/null
+++ b/docs/RTOS/html/search/variables_7.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['v',['v',['../group__CMSIS__RTOS__Definitions.html#a9e0a00edabf3b8a5dafff624fff7bbfc',1,'osEvent']]],
+ ['value',['value',['../group__CMSIS__RTOS__Definitions.html#a0b9f8fd3645f01d8cb09cae82add2d7f',1,'osEvent']]]
+];
diff --git a/docs/RTOS/html/simple_signal.png b/docs/RTOS/html/simple_signal.png
new file mode 100644
index 0000000..a0305e4
--- /dev/null
+++ b/docs/RTOS/html/simple_signal.png
Binary files differ
diff --git a/docs/RTOS/html/stack_usage_watermark.png b/docs/RTOS/html/stack_usage_watermark.png
new file mode 100644
index 0000000..4a4ee10
--- /dev/null
+++ b/docs/RTOS/html/stack_usage_watermark.png
Binary files differ
diff --git a/docs/RTOS/html/structosMailQDef__t.html b/docs/RTOS/html/structosMailQDef__t.html
new file mode 100644
index 0000000..0154cac
--- /dev/null
+++ b/docs/RTOS/html/structosMailQDef__t.html
@@ -0,0 +1,193 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>osMailQDef_t Struct Reference</title>
+<title>CMSIS-RTOS: osMailQDef_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+ <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('structosMailQDef__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">osMailQDef_t Struct Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Definition structure for mail queue.
+ <a href="structosMailQDef__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a8a83a3a8c0aa8057b13807d2a54077e0"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structosMailQDef__t.html#a8a83a3a8c0aa8057b13807d2a54077e0">queue_sz</a></td></tr>
+<tr class="memdesc:a8a83a3a8c0aa8057b13807d2a54077e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">number of elements in the queue <a href="#a8a83a3a8c0aa8057b13807d2a54077e0">More...</a><br/></td></tr>
+<tr class="separator:a8a83a3a8c0aa8057b13807d2a54077e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c2a0c691de3365c00ecd22d8102811f"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structosMailQDef__t.html#a4c2a0c691de3365c00ecd22d8102811f">item_sz</a></td></tr>
+<tr class="memdesc:a4c2a0c691de3365c00ecd22d8102811f"><td class="mdescLeft">&#160;</td><td class="mdescRight">size of an item <a href="#a4c2a0c691de3365c00ecd22d8102811f">More...</a><br/></td></tr>
+<tr class="separator:a4c2a0c691de3365c00ecd22d8102811f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a269c3935f8bc66db70bccdd02cb05e3c"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structosMailQDef__t.html#a269c3935f8bc66db70bccdd02cb05e3c">pool</a></td></tr>
+<tr class="memdesc:a269c3935f8bc66db70bccdd02cb05e3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">memory array for mail <a href="#a269c3935f8bc66db70bccdd02cb05e3c">More...</a><br/></td></tr>
+<tr class="separator:a269c3935f8bc66db70bccdd02cb05e3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
+<div class="textblock"><dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: <b>os_mailQ_def</b> is implementation specific in every CMSIS-RTOS. </dd></dl>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a4c2a0c691de3365c00ecd22d8102811f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t item_sz</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a269c3935f8bc66db70bccdd02cb05e3c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void* pool</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8a83a3a8c0aa8057b13807d2a54077e0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t queue_sz</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="structosMailQDef__t.html">osMailQDef_t</a></li>
+ <li class="footer">Generated on Wed Feb 8 2017 10:21:02 for CMSIS-RTOS by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/structosMailQDef__t.js b/docs/RTOS/html/structosMailQDef__t.js
new file mode 100644
index 0000000..00f1f43
--- /dev/null
+++ b/docs/RTOS/html/structosMailQDef__t.js
@@ -0,0 +1,6 @@
+var structosMailQDef__t =
+[
+ [ "item_sz", "structosMailQDef__t.html#a4c2a0c691de3365c00ecd22d8102811f", null ],
+ [ "pool", "structosMailQDef__t.html#a269c3935f8bc66db70bccdd02cb05e3c", null ],
+ [ "queue_sz", "structosMailQDef__t.html#a8a83a3a8c0aa8057b13807d2a54077e0", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/structosMessageQDef__t.html b/docs/RTOS/html/structosMessageQDef__t.html
new file mode 100644
index 0000000..ec51ae5
--- /dev/null
+++ b/docs/RTOS/html/structosMessageQDef__t.html
@@ -0,0 +1,193 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>osMessageQDef_t Struct Reference</title>
+<title>CMSIS-RTOS: osMessageQDef_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+ <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('structosMessageQDef__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">osMessageQDef_t Struct Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Definition structure for message queue.
+ <a href="structosMessageQDef__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a8a83a3a8c0aa8057b13807d2a54077e0"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structosMessageQDef__t.html#a8a83a3a8c0aa8057b13807d2a54077e0">queue_sz</a></td></tr>
+<tr class="memdesc:a8a83a3a8c0aa8057b13807d2a54077e0"><td class="mdescLeft">&#160;</td><td class="mdescRight">number of elements in the queue <a href="#a8a83a3a8c0aa8057b13807d2a54077e0">More...</a><br/></td></tr>
+<tr class="separator:a8a83a3a8c0aa8057b13807d2a54077e0"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c2a0c691de3365c00ecd22d8102811f"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structosMessageQDef__t.html#a4c2a0c691de3365c00ecd22d8102811f">item_sz</a></td></tr>
+<tr class="memdesc:a4c2a0c691de3365c00ecd22d8102811f"><td class="mdescLeft">&#160;</td><td class="mdescRight">size of an item <a href="#a4c2a0c691de3365c00ecd22d8102811f">More...</a><br/></td></tr>
+<tr class="separator:a4c2a0c691de3365c00ecd22d8102811f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a269c3935f8bc66db70bccdd02cb05e3c"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structosMessageQDef__t.html#a269c3935f8bc66db70bccdd02cb05e3c">pool</a></td></tr>
+<tr class="memdesc:a269c3935f8bc66db70bccdd02cb05e3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">memory array for messages <a href="#a269c3935f8bc66db70bccdd02cb05e3c">More...</a><br/></td></tr>
+<tr class="separator:a269c3935f8bc66db70bccdd02cb05e3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
+<div class="textblock"><dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: <b>os_messageQ_def</b> is implementation specific in every CMSIS-RTOS. </dd></dl>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a4c2a0c691de3365c00ecd22d8102811f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t item_sz</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a269c3935f8bc66db70bccdd02cb05e3c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void* pool</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a8a83a3a8c0aa8057b13807d2a54077e0"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t queue_sz</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="structosMessageQDef__t.html">osMessageQDef_t</a></li>
+ <li class="footer">Generated on Wed Feb 8 2017 10:21:02 for CMSIS-RTOS by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/structosMessageQDef__t.js b/docs/RTOS/html/structosMessageQDef__t.js
new file mode 100644
index 0000000..68945a5
--- /dev/null
+++ b/docs/RTOS/html/structosMessageQDef__t.js
@@ -0,0 +1,6 @@
+var structosMessageQDef__t =
+[
+ [ "item_sz", "structosMessageQDef__t.html#a4c2a0c691de3365c00ecd22d8102811f", null ],
+ [ "pool", "structosMessageQDef__t.html#a269c3935f8bc66db70bccdd02cb05e3c", null ],
+ [ "queue_sz", "structosMessageQDef__t.html#a8a83a3a8c0aa8057b13807d2a54077e0", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/structosMutexDef__t.html b/docs/RTOS/html/structosMutexDef__t.html
new file mode 100644
index 0000000..cef730a
--- /dev/null
+++ b/docs/RTOS/html/structosMutexDef__t.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>osMutexDef_t Struct Reference</title>
+<title>CMSIS-RTOS: osMutexDef_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+ <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('structosMutexDef__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">osMutexDef_t Struct Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Mutex Definition structure contains setup information for a mutex.
+ <a href="structosMutexDef__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a44b7a3baf02bac7ad707e8f2f5eca1ca"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structosMutexDef__t.html#a44b7a3baf02bac7ad707e8f2f5eca1ca">dummy</a></td></tr>
+<tr class="memdesc:a44b7a3baf02bac7ad707e8f2f5eca1ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">dummy value. <a href="#a44b7a3baf02bac7ad707e8f2f5eca1ca">More...</a><br/></td></tr>
+<tr class="separator:a44b7a3baf02bac7ad707e8f2f5eca1ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
+<div class="textblock"><dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: <b>os_mutex_def</b> is implementation specific in every CMSIS-RTOS. </dd></dl>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a44b7a3baf02bac7ad707e8f2f5eca1ca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t dummy</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="structosMutexDef__t.html">osMutexDef_t</a></li>
+ <li class="footer">Generated on Wed Feb 8 2017 10:21:02 for CMSIS-RTOS by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/structosMutexDef__t.js b/docs/RTOS/html/structosMutexDef__t.js
new file mode 100644
index 0000000..f2d1a42
--- /dev/null
+++ b/docs/RTOS/html/structosMutexDef__t.js
@@ -0,0 +1,4 @@
+var structosMutexDef__t =
+[
+ [ "dummy", "structosMutexDef__t.html#a44b7a3baf02bac7ad707e8f2f5eca1ca", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/structosPoolDef__t.html b/docs/RTOS/html/structosPoolDef__t.html
new file mode 100644
index 0000000..87be461
--- /dev/null
+++ b/docs/RTOS/html/structosPoolDef__t.html
@@ -0,0 +1,193 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>osPoolDef_t Struct Reference</title>
+<title>CMSIS-RTOS: osPoolDef_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+ <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('structosPoolDef__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">osPoolDef_t Struct Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Definition structure for memory block allocation.
+ <a href="structosPoolDef__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:ac112e786b2a234e0e45cb5bdbee53763"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structosPoolDef__t.html#ac112e786b2a234e0e45cb5bdbee53763">pool_sz</a></td></tr>
+<tr class="memdesc:ac112e786b2a234e0e45cb5bdbee53763"><td class="mdescLeft">&#160;</td><td class="mdescRight">number of items (elements) in the pool <a href="#ac112e786b2a234e0e45cb5bdbee53763">More...</a><br/></td></tr>
+<tr class="separator:ac112e786b2a234e0e45cb5bdbee53763"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c2a0c691de3365c00ecd22d8102811f"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structosPoolDef__t.html#a4c2a0c691de3365c00ecd22d8102811f">item_sz</a></td></tr>
+<tr class="memdesc:a4c2a0c691de3365c00ecd22d8102811f"><td class="mdescLeft">&#160;</td><td class="mdescRight">size of an item <a href="#a4c2a0c691de3365c00ecd22d8102811f">More...</a><br/></td></tr>
+<tr class="separator:a4c2a0c691de3365c00ecd22d8102811f"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a269c3935f8bc66db70bccdd02cb05e3c"><td class="memItemLeft" align="right" valign="top">void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structosPoolDef__t.html#a269c3935f8bc66db70bccdd02cb05e3c">pool</a></td></tr>
+<tr class="memdesc:a269c3935f8bc66db70bccdd02cb05e3c"><td class="mdescLeft">&#160;</td><td class="mdescRight">pointer to memory for pool <a href="#a269c3935f8bc66db70bccdd02cb05e3c">More...</a><br/></td></tr>
+<tr class="separator:a269c3935f8bc66db70bccdd02cb05e3c"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
+<div class="textblock"><dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: <b>os_pool_def</b> is implementation specific in every CMSIS-RTOS. </dd></dl>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a4c2a0c691de3365c00ecd22d8102811f"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t item_sz</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a269c3935f8bc66db70bccdd02cb05e3c"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">void* pool</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ac112e786b2a234e0e45cb5bdbee53763"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t pool_sz</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="structosPoolDef__t.html">osPoolDef_t</a></li>
+ <li class="footer">Generated on Wed Feb 8 2017 10:21:02 for CMSIS-RTOS by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/structosPoolDef__t.js b/docs/RTOS/html/structosPoolDef__t.js
new file mode 100644
index 0000000..05f8859
--- /dev/null
+++ b/docs/RTOS/html/structosPoolDef__t.js
@@ -0,0 +1,6 @@
+var structosPoolDef__t =
+[
+ [ "item_sz", "structosPoolDef__t.html#a4c2a0c691de3365c00ecd22d8102811f", null ],
+ [ "pool", "structosPoolDef__t.html#a269c3935f8bc66db70bccdd02cb05e3c", null ],
+ [ "pool_sz", "structosPoolDef__t.html#ac112e786b2a234e0e45cb5bdbee53763", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/structosSemaphoreDef__t.html b/docs/RTOS/html/structosSemaphoreDef__t.html
new file mode 100644
index 0000000..f352bb4
--- /dev/null
+++ b/docs/RTOS/html/structosSemaphoreDef__t.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>osSemaphoreDef_t Struct Reference</title>
+<title>CMSIS-RTOS: osSemaphoreDef_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+ <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('structosSemaphoreDef__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">osSemaphoreDef_t Struct Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Semaphore Definition structure contains setup information for a semaphore.
+ <a href="structosSemaphoreDef__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a44b7a3baf02bac7ad707e8f2f5eca1ca"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structosSemaphoreDef__t.html#a44b7a3baf02bac7ad707e8f2f5eca1ca">dummy</a></td></tr>
+<tr class="memdesc:a44b7a3baf02bac7ad707e8f2f5eca1ca"><td class="mdescLeft">&#160;</td><td class="mdescRight">dummy value. <a href="#a44b7a3baf02bac7ad707e8f2f5eca1ca">More...</a><br/></td></tr>
+<tr class="separator:a44b7a3baf02bac7ad707e8f2f5eca1ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
+<div class="textblock"><dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: <b>os_semaphore_def</b> is implementation specific in every CMSIS-RTOS. </dd></dl>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a44b7a3baf02bac7ad707e8f2f5eca1ca"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t dummy</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="structosSemaphoreDef__t.html">osSemaphoreDef_t</a></li>
+ <li class="footer">Generated on Wed Feb 8 2017 10:21:02 for CMSIS-RTOS by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/structosSemaphoreDef__t.js b/docs/RTOS/html/structosSemaphoreDef__t.js
new file mode 100644
index 0000000..1cdee3f
--- /dev/null
+++ b/docs/RTOS/html/structosSemaphoreDef__t.js
@@ -0,0 +1,4 @@
+var structosSemaphoreDef__t =
+[
+ [ "dummy", "structosSemaphoreDef__t.html#a44b7a3baf02bac7ad707e8f2f5eca1ca", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/structosThreadDef__t.html b/docs/RTOS/html/structosThreadDef__t.html
new file mode 100644
index 0000000..e8f9609
--- /dev/null
+++ b/docs/RTOS/html/structosThreadDef__t.html
@@ -0,0 +1,208 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>osThreadDef_t Struct Reference</title>
+<title>CMSIS-RTOS: osThreadDef_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+ <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('structosThreadDef__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">osThreadDef_t Struct Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Thread Definition structure contains startup information of a thread.
+ <a href="structosThreadDef__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:ad3c9624ee214329fb34e71f544a6933e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cmsis__os_8h.html#aee631e5ea1b700fc35695cc7bc574cf7">os_pthread</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structosThreadDef__t.html#ad3c9624ee214329fb34e71f544a6933e">pthread</a></td></tr>
+<tr class="memdesc:ad3c9624ee214329fb34e71f544a6933e"><td class="mdescLeft">&#160;</td><td class="mdescRight">start address of thread function <a href="#ad3c9624ee214329fb34e71f544a6933e">More...</a><br/></td></tr>
+<tr class="separator:ad3c9624ee214329fb34e71f544a6933e"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a15da8f23c6fe684b70a73646ada685e7"><td class="memItemLeft" align="right" valign="top"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a">osPriority</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structosThreadDef__t.html#a15da8f23c6fe684b70a73646ada685e7">tpriority</a></td></tr>
+<tr class="memdesc:a15da8f23c6fe684b70a73646ada685e7"><td class="mdescLeft">&#160;</td><td class="mdescRight">initial thread priority <a href="#a15da8f23c6fe684b70a73646ada685e7">More...</a><br/></td></tr>
+<tr class="separator:a15da8f23c6fe684b70a73646ada685e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa4c4115851a098c0b87358ab6c025603"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structosThreadDef__t.html#aa4c4115851a098c0b87358ab6c025603">instances</a></td></tr>
+<tr class="memdesc:aa4c4115851a098c0b87358ab6c025603"><td class="mdescLeft">&#160;</td><td class="mdescRight">maximum number of instances of that thread function <a href="#aa4c4115851a098c0b87358ab6c025603">More...</a><br/></td></tr>
+<tr class="separator:aa4c4115851a098c0b87358ab6c025603"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a950b7f81ad4711959517296e63bc79d1"><td class="memItemLeft" align="right" valign="top">uint32_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structosThreadDef__t.html#a950b7f81ad4711959517296e63bc79d1">stacksize</a></td></tr>
+<tr class="memdesc:a950b7f81ad4711959517296e63bc79d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">stack size requirements in bytes; 0 is default stack size <a href="#a950b7f81ad4711959517296e63bc79d1">More...</a><br/></td></tr>
+<tr class="separator:a950b7f81ad4711959517296e63bc79d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
+<div class="textblock"><dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: <b>os_thread_def</b> is implementation specific in every CMSIS-RTOS. </dd></dl>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="aa4c4115851a098c0b87358ab6c025603"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t instances</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="ad3c9624ee214329fb34e71f544a6933e"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="cmsis__os_8h.html#aee631e5ea1b700fc35695cc7bc574cf7">os_pthread</a> pthread</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a950b7f81ad4711959517296e63bc79d1"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">uint32_t stacksize</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a class="anchor" id="a15da8f23c6fe684b70a73646ada685e7"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a">osPriority</a> tpriority</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="structosThreadDef__t.html">osThreadDef_t</a></li>
+ <li class="footer">Generated on Wed Feb 8 2017 10:21:02 for CMSIS-RTOS by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/structosThreadDef__t.js b/docs/RTOS/html/structosThreadDef__t.js
new file mode 100644
index 0000000..a39cbd4
--- /dev/null
+++ b/docs/RTOS/html/structosThreadDef__t.js
@@ -0,0 +1,7 @@
+var structosThreadDef__t =
+[
+ [ "instances", "structosThreadDef__t.html#aa4c4115851a098c0b87358ab6c025603", null ],
+ [ "pthread", "structosThreadDef__t.html#ad3c9624ee214329fb34e71f544a6933e", null ],
+ [ "stacksize", "structosThreadDef__t.html#a950b7f81ad4711959517296e63bc79d1", null ],
+ [ "tpriority", "structosThreadDef__t.html#a15da8f23c6fe684b70a73646ada685e7", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/structosTimerDef__t.html b/docs/RTOS/html/structosTimerDef__t.html
new file mode 100644
index 0000000..92b7362
--- /dev/null
+++ b/docs/RTOS/html/structosTimerDef__t.html
@@ -0,0 +1,163 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>osTimerDef_t Struct Reference</title>
+<title>CMSIS-RTOS: osTimerDef_t Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+ <div id="navrow2" class="tabs2">
+ <ul class="tablist">
+ <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
+ <li><a href="classes.html"><span>Data&#160;Structure&#160;Index</span></a></li>
+ <li><a href="functions.html"><span>Data&#160;Fields</span></a></li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('structosTimerDef__t.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Data Fields</a> </div>
+ <div class="headertitle">
+<div class="title">osTimerDef_t Struct Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Timer Definition structure contains timer parameters.
+ <a href="structosTimerDef__t.html#details">More...</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Data Fields</h2></td></tr>
+<tr class="memitem:a15773df83aba93f8e61f3737af5fae47"><td class="memItemLeft" align="right" valign="top"><a class="el" href="cmsis__os_8h.html#aa2d85e49bde9f6951ff3545cd323f065">os_ptimer</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="structosTimerDef__t.html#a15773df83aba93f8e61f3737af5fae47">ptimer</a></td></tr>
+<tr class="memdesc:a15773df83aba93f8e61f3737af5fae47"><td class="mdescLeft">&#160;</td><td class="mdescRight">start address of a timer function <a href="#a15773df83aba93f8e61f3737af5fae47">More...</a><br/></td></tr>
+<tr class="separator:a15773df83aba93f8e61f3737af5fae47"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Description</h2>
+<div class="textblock"><dl class="section note"><dt>Note</dt><dd>CAN BE CHANGED: <b>os_timer_def</b> is implementation specific in every CMSIS-RTOS. </dd></dl>
+</div><h2 class="groupheader">Field Documentation</h2>
+<a class="anchor" id="a15773df83aba93f8e61f3737af5fae47"></a>
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname"><a class="el" href="cmsis__os_8h.html#aa2d85e49bde9f6951ff3545cd323f065">os_ptimer</a> ptimer</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+</div>
+</div>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="structosTimerDef__t.html">osTimerDef_t</a></li>
+ <li class="footer">Generated on Wed Feb 8 2017 10:21:02 for CMSIS-RTOS by ARM Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/structosTimerDef__t.js b/docs/RTOS/html/structosTimerDef__t.js
new file mode 100644
index 0000000..2aa8a7b
--- /dev/null
+++ b/docs/RTOS/html/structosTimerDef__t.js
@@ -0,0 +1,4 @@
+var structosTimerDef__t =
+[
+ [ "ptimer", "structosTimerDef__t.html#a15773df83aba93f8e61f3737af5fae47", null ]
+]; \ No newline at end of file
diff --git a/docs/RTOS/html/svcFunctions.html b/docs/RTOS/html/svcFunctions.html
new file mode 100644
index 0000000..612e401
--- /dev/null
+++ b/docs/RTOS/html/svcFunctions.html
@@ -0,0 +1,167 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>SVC Functions</title>
+<title>CMSIS-RTOS: SVC Functions</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('svcFunctions.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">SVC Functions </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>Supervisor Calls (SVC) are exceptions targeted at software and operating systems for generating system function calls. They are sometimes called software interrupts. For example, instead of allowing user programs to directly access hardware, an operating system may provide access to hardware through an SVC. So when a user program wants to use certain hardware, it generates the SVC exception using SVC instructions, and then the software exception handler in the operating system is executed and provides the requested service to the user application. In this way, access to hardware is under the control of the OS, which can provide a more robust system by preventing the user applications from directly accessing the hardware.</p>
+<p>SVC can also make software more portable because the user application does not need to know the programming details of the underlying hardware. The user program will only need to know the application programming interface (API) function ID and parameters; the actual hardware-level programming is handled by device drivers.</p>
+<p>SVCs run in <b>Privileged</b> <b>Handler</b> mode of the <b>Cortex-M</b> core. SVC functions accept arguments and can return values. The functions are used in the same way as other functions; however, differences are hidden to the user. The ARMCC handles the differences and generates code instructions to call SVC functions. SVC functions are called by executing the SVC instruction. When executing SVC instructions, the controller changes to the Privileged Handler Mode.</p>
+<p>Interrupts are <b>not disabled</b> in this mode. To protect SVC function from interrupts, you need to include the disable/enable intrinsic functions <b>__disable_irq()</b> and <b>__enable_irq()</b> in your code.</p>
+<p>You can use SVC functions to access <b>protected</b> <b>peripherals</b>, for example, to configure NVIC and interrupts. This is required if you run tasks in unprivileged (protected) mode and you need to change interrupts from the task.</p>
+<p>To implement SVC functions in your CMSIS-RTOS RTX kernel project, you need to:</p>
+<ol type="1">
+<li>Copy the file <b>SVC_Table.s</b> to your project folder and include it into your project. This file is available as a source code template.</li>
+<li>Declare a function with a <b>__svc(x)</b> attribute. Use the first SVC number, starting from 1, that is free. <div class="fragment"><div class="line"><span class="keywordtype">void</span> __svc(1) inc_5bit (U32 *cp);</div>
+</div><!-- fragment --></li>
+<li>Write a function implementation and convert the function name into a <b>__SVC_x</b> function name. Later, this name is referenced by the linker from the <b>SVC_Table.s</b> module. You also need to disable/enable interrupts. <div class="fragment"><div class="line"><span class="keywordtype">void</span> __SVC_1 (U32 *cp) {</div>
+<div class="line"> <span class="comment">// A protected function to increment a 5-bit counter. </span></div>
+<div class="line"> __disable_irq();</div>
+<div class="line"> cp = (*cp + 1) &amp; 0x1F;</div>
+<div class="line"> __enable_irq();</div>
+<div class="line">}</div>
+</div><!-- fragment --></li>
+<li>Add the function <b>__SVC_x</b> to the SVC function table in the <b>SVC_Table.s</b> module. First import it from other modules: <div class="fragment"><div class="line">; Import user SVC functions here.</div>
+<div class="line"> IMPORT __SVC_1</div>
+</div><!-- fragment --> Then, add a reference to it into the table: <div class="fragment"><div class="line">; Insert user SVC functions here. SVC 0 used by RTL Kernel.</div>
+<div class="line"> DCD __SVC_1 ; user SVC <span class="keyword">function</span></div>
+</div><!-- fragment --></li>
+<li>Your <b>SVC</b> function should now look like this: <div class="fragment"><div class="line"><span class="keywordtype">void</span> __svc(1) inc_5bit (U32 *cp);</div>
+<div class="line"><span class="keywordtype">void</span> __SVC_1 (U32 *cp) {</div>
+<div class="line"> <span class="comment">// A protected function to increment a 5-bit counter. </span></div>
+<div class="line"> __disable_irq();</div>
+<div class="line"> cp = (*cp + 1) &amp; 0x1F;</div>
+<div class="line"> __enable_irq();</div>
+<div class="line">}</div>
+</div><!-- fragment --></li>
+</ol>
+<dl class="section note"><dt>Note</dt><dd><ul>
+<li>SVC function <b>0</b> is <b>reserved</b> for the CMSIS-RTOS RTX kernel.</li>
+<li>Do not leave gaps when numbering SVC functions. They must occupy a <b>continuous</b> range of numbers starting from 1.</li>
+<li>SVC functions can still be interrupted.</li>
+<li>CMSIS-RTOS RTX must not be called before the main() function. </li>
+</ul>
+</dd></dl>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="index.html">index</a></li><li class="navelem"><a class="el" href="rtxImplementation.html">RTX Implementation</a></li><li class="navelem"><a class="el" href="configure.html">Configure RTX</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/sync_off.png b/docs/RTOS/html/sync_off.png
new file mode 100644
index 0000000..3b443fc
--- /dev/null
+++ b/docs/RTOS/html/sync_off.png
Binary files differ
diff --git a/docs/RTOS/html/sync_on.png b/docs/RTOS/html/sync_on.png
new file mode 100644
index 0000000..e08320f
--- /dev/null
+++ b/docs/RTOS/html/sync_on.png
Binary files differ
diff --git a/docs/RTOS/html/systemConfig.html b/docs/RTOS/html/systemConfig.html
new file mode 100644
index 0000000..713604a
--- /dev/null
+++ b/docs/RTOS/html/systemConfig.html
@@ -0,0 +1,194 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>System Configuration</title>
+<title>CMSIS-RTOS: System Configuration</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('systemConfig.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">System Configuration </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The CMSIS-RTOS RTX provides system-wide settings for:</p>
+<ul>
+<li><a class="el" href="systemConfig.html#RoundRobin">Settings for Round-Robin Thread Switching</a></li>
+<li><a class="el" href="systemConfig.html#UserTimer">User Timer Management</a></li>
+</ul>
+<h1><a class="anchor" id="RoundRobin"></a>
+Settings for Round-Robin Thread Switching</h1>
+<p>CMSIS-RTOS RTX may be configured to use round-robin multitasking thread switching. Round-robin allows quasi-parallel execution of several threads of the <em>same</em> priority. Threads are not really executed concurrently, but are scheduled where the available CPU time is divided into time slices and CMSIS-RTOS RTX assigns a time slice to each thread. Because the time slice is typically short (only a few milliseconds), it appears as though threads execute simultaneously.</p>
+<p>Round-robin thread switching functions as follows:</p>
+<ul>
+<li>the tick is preloaded with the timeout value when a thread switch occurs</li>
+<li>the tick is decremented (if not already zero) each system tick if the same thread is still executing</li>
+<li>when the tick reaches 0 it indicates that a timeout has occurred. If there is another thread ready with the <em>same</em> priority, then the system switches to that thread and the tick is preloaded with timeout again.</li>
+</ul>
+<p>In other words, threads execute for the duration of their time slice (unless a thread's time slice is given up). Then, RTX switches to the next thread that is in <b>READY</b> state and has the same priority. If no other thread with the same priority is ready to run, the current running thread resumes it execution.</p>
+<dl class="section note"><dt>Note</dt><dd>When switching to higher priority threads, the round-robin timeout value is reset.</dd></dl>
+<p>Round-Robin multitasking is controlled with the <b>#define OS_ROBIN</b>. The time slice period is configured (in RTX Timer ticks) with the <b>#define OS_ROBINTOUT</b>.</p>
+<p><b>Code Example:</b></p>
+<p>The following example shows a simple CMSIS-RTOS RTX program that uses Round-Robin Multitasking. The two threads in this program are counter loops. RTX starts executing job 1, which is the function named job1. This function creates another task called job2. After job1 executes for its time slice, RTX switches to job2. After job2 executes for its time slice, RTX switches back to job1. This process repeats indefinitely.</p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span> <span class="comment">// CMSIS-RTOS header file</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">int</span> counter1;</div>
+<div class="line"><span class="keywordtype">int</span> counter2;</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> job1 (<span class="keywordtype">void</span> <span class="keyword">const</span> *arg) {</div>
+<div class="line"> <span class="keywordflow">while</span> (1) { <span class="comment">// loop forever</span></div>
+<div class="line"> counter1++; <span class="comment">// update the counter</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> job2 (<span class="keywordtype">void</span> <span class="keyword">const</span> *arg) {</div>
+<div class="line"> <span class="keywordflow">while</span> (1) { <span class="comment">// loop forever</span></div>
+<div class="line"> counter2++; <span class="comment">// update the counter</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a> (job1, <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa17b36cd9cd38652c2bc6d4803990674b">osPriorityAboveNormal</a>, 1, 0);</div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a> (job2, <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa17b36cd9cd38652c2bc6d4803990674b">osPriorityAboveNormal</a>, 1, 0);</div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">int</span> main (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e">osKernelInitialize</a> (); <span class="comment">// setup kernel</span></div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> (<a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">osThread</a>(job1), NULL); <span class="comment">// create threads</span></div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> (<a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">osThread</a>(job2), NULL); </div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2">osKernelStart</a> (); <span class="comment">// start kernel</span></div>
+<div class="line">}</div>
+</div><!-- fragment --><dl class="section note"><dt>Note</dt><dd>Rather than waiting for a thread time slice to expire, use CMSIS-RTOS functions to signal to the RTX kernel that it can switch to another task. The function <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf13a667493c5d629a90c13e113b99233">osThreadYield</a> passes control to other threads without Round-Robin Multitasking.</dd></dl>
+<h1><a class="anchor" id="UserTimer"></a>
+User Timer Management</h1>
+<p>CMSIS-RTOS RTX supports <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html">Timer Management</a> which provides timer callback functions. The <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html">Timer Management</a> is configured with the following <em>#defines:</em> </p>
+<table class="doxtable">
+<tr>
+<th>Name </th><th>#define </th><th>Description </th></tr>
+<tr>
+<td>User Timers </td><td><code>OS_TIMERS</code> </td><td>Enables the <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html">Timer Management</a>. When disabled, the <b>osTimerThread</b> is not created. </td></tr>
+<tr>
+<td>Timer Thread Priority </td><td><code>OS_TIMERPRIO</code> </td><td>Specifies the priority of the osTimerThread that executes the timer callback functions. </td></tr>
+<tr>
+<td>Timer Thread stack size [bytes] </td><td><code>OS_TIMERSTKSZ</code> </td><td>Specifies the stack size (in words) for the the <b>osTimerThread</b>. </td></tr>
+<tr>
+<td>Timer Callback Queue size </td><td><code>OS_TIMERCBQS</code> </td><td>Specifies the maximum number of concurrent timer callbacks. </td></tr>
+</table>
+<dl class="section note"><dt>Note</dt><dd>Refer to <a class="el" href="theory.html#RTX_Threads">CMSIS-RTOS RTX Threads</a> for more information about the <b>osTimerThread</b>.</dd></dl>
+<h1><a class="anchor" id="ISRFIFO"></a>
+ISR FIFO Queue size</h1>
+<p>ISR functions store requests to this buffer, when they are called from the interrupt handler. The default value for <b>#define OS_FIFOSZ</b> is 16. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="index.html">index</a></li><li class="navelem"><a class="el" href="rtxImplementation.html">RTX Implementation</a></li><li class="navelem"><a class="el" href="configure.html">Configure RTX</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/tab_a.png b/docs/RTOS/html/tab_a.png
new file mode 100644
index 0000000..3b725c4
--- /dev/null
+++ b/docs/RTOS/html/tab_a.png
Binary files differ
diff --git a/docs/RTOS/html/tab_b.png b/docs/RTOS/html/tab_b.png
new file mode 100644
index 0000000..e2b4a86
--- /dev/null
+++ b/docs/RTOS/html/tab_b.png
Binary files differ
diff --git a/docs/RTOS/html/tab_h.png b/docs/RTOS/html/tab_h.png
new file mode 100644
index 0000000..fd5cb70
--- /dev/null
+++ b/docs/RTOS/html/tab_h.png
Binary files differ
diff --git a/docs/RTOS/html/tab_s.png b/docs/RTOS/html/tab_s.png
new file mode 100644
index 0000000..ab478c9
--- /dev/null
+++ b/docs/RTOS/html/tab_s.png
Binary files differ
diff --git a/docs/RTOS/html/tab_topnav.png b/docs/RTOS/html/tab_topnav.png
new file mode 100644
index 0000000..b257b77
--- /dev/null
+++ b/docs/RTOS/html/tab_topnav.png
Binary files differ
diff --git a/docs/RTOS/html/tabs.css b/docs/RTOS/html/tabs.css
new file mode 100644
index 0000000..ffbab50
--- /dev/null
+++ b/docs/RTOS/html/tabs.css
@@ -0,0 +1,71 @@
+.tabs, .tabs1, .tabs2, .tabs3 {
+ background-image: url('tab_b.png');
+ width: 100%;
+ z-index: 101;
+ font-size: 10px;
+}
+
+.tabs1 {
+ background-image: url('tab_topnav.png');
+ font-size: 12px;
+}
+
+.tabs2 {
+ font-size: 10px;
+}
+.tabs3 {
+ font-size: 9px;
+}
+
+.tablist {
+ margin: 0;
+ padding: 0;
+ display: table;
+ line-height: 24px;
+}
+
+.tablist li {
+ float: left;
+ display: table-cell;
+ background-image: url('tab_b.png');
+ list-style: none;
+}
+
+.tabs1 .tablist li {
+ float: left;
+ display: table-cell;
+ background-image: url('tab_topnav.png');
+ list-style: none;
+}
+
+.tablist a {
+ display: block;
+ padding: 0 20px;
+ font-weight: bold;
+ background-image:url('tab_s.png');
+ background-repeat:no-repeat;
+ background-position:right;
+ color: #283A5D;
+ text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9);
+ text-decoration: none;
+ outline: none;
+}
+
+.tabs3 .tablist a {
+ padding: 0 10px;
+}
+
+.tablist a:hover {
+ background-image: url('tab_h.png');
+ background-repeat:repeat-x;
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+ text-decoration: none;
+}
+
+.tablist li.current a {
+ background-image: url('tab_a.png');
+ background-repeat:repeat-x;
+ color: #fff;
+ text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
+}
diff --git a/docs/RTOS/html/technicalData.html b/docs/RTOS/html/technicalData.html
new file mode 100644
index 0000000..166f1a7
--- /dev/null
+++ b/docs/RTOS/html/technicalData.html
@@ -0,0 +1,211 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Technical Data</title>
+<title>CMSIS-RTOS: Technical Data</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('technicalData.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Technical Data </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>This section lists the technical data of CMSIS-RTOS RTX.</p>
+<table class="cmtable">
+<tr>
+<th>Description </th><th><p class="starttd">Limitations </p>
+<p class="endtd"></p>
+</th></tr>
+<tr>
+<td>Defined Tasks </td><td><p class="starttd">Unlimited </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>Active Threads </td><td><p class="starttd">250 max </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>Mailboxes </td><td><p class="starttd">Unlimited </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>Semaphores </td><td><p class="starttd">Unlimited </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>Mutexes </td><td><p class="starttd">Unlimited </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>Signals </td><td><p class="starttd">16 per thread </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>Timer Callbacks </td><td><p class="starttd">Unlimited </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>Code Space </td><td><p class="starttd">&lt; 5.0 Kbytes </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>RAM Space for Kernel </td><td><p class="starttd">300 bytes + 128 bytes Main Stack </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>RAM Space for a Thread </td><td><p class="starttd">StackSize + 52 bytes </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>RAM Space for a Mailbox </td><td><p class="starttd">MaxMessages * 4 + 16 bytes </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>RAM Space for a Semaphore </td><td><p class="starttd">8 bytes </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>RAM Space for a Mutex </td><td><p class="starttd">12 bytes </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>RAM Space for a User Timer </td><td><p class="starttd">24 bytes </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>Hardware Requirements </td><td><p class="starttd">SysTick timer or other hardware timer </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>Thread context switch time </td><td><p class="starttd">&lt; 2.6 usec @ 72 MHz </p>
+<p class="endtd"></p>
+</td></tr>
+<tr>
+<td>Interrupt lockout time </td><td>Not disabled </td></tr>
+</table>
+<dl class="section note"><dt>Note</dt><dd><ul>
+<li>Unlimited means that the RTX kernel does not impose any limitations on the number. However, the available system memory resources limit the number of items you can create.</li>
+<li>RAM requirements depend on the number of concurrently running threads.</li>
+<li>The code and RAM size is calculated for ARMCC Compiler when using the <b>MicroLib</b> runtime library.</li>
+</ul>
+</dd></dl>
+<h1><a class="anchor" id="osWait"></a>
+osWait</h1>
+<p>The generic wait function <b>osWait</b> is currently not supported by CMSIS-RTOS RTX. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="index.html">index</a></li><li class="navelem"><a class="el" href="rtxImplementation.html">RTX Implementation</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/theory.html b/docs/RTOS/html/theory.html
new file mode 100644
index 0000000..f4d4f34
--- /dev/null
+++ b/docs/RTOS/html/theory.html
@@ -0,0 +1,194 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Theory of Operation</title>
+<title>CMSIS-RTOS: Theory of Operation</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('theory.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Theory of Operation </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>This section describes how CMSIS-RTOS RTX manages the resources of the target system. Many aspects of the CMSIS-RTOS RTX kernel can be configured. Information about configuration options is mentioned where applicable.</p>
+<h1><a class="anchor" id="osFeature"></a>
+Settings for osFeature_xxx in cmsis_os.h</h1>
+<p>CMSIS-RTOS RTX uses the following #defines.</p>
+<table class="doxtable">
+<tr>
+<th>osFeature_xxx #define </th><th>RTX Setting </th><th>Meaning </th></tr>
+<tr>
+<td><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga22f7d235bc9f783933bd5a981fd79696">osFeature_MainThread</a> </td><td>1 </td><td>main can be a thread </td></tr>
+<tr>
+<td><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#gadd84b683001de327894851b428587caa">osFeature_Pool</a> </td><td>1 </td><td>Memory Pools are available </td></tr>
+<tr>
+<td><a class="el" href="group__CMSIS__RTOS__Mail.html#gaceb2e0071ce160d153047f2eac1aca8e">osFeature_MailQ</a> </td><td>1 </td><td>Mail Queues are available </td></tr>
+<tr>
+<td><a class="el" href="group__CMSIS__RTOS__Message.html#ga479a6561f859e3d4818e25708593d203">osFeature_MessageQ</a> </td><td>1 </td><td>Message Queues are available </td></tr>
+<tr>
+<td><a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga01edde265710d883b6e237d34a6ef4a6">osFeature_Signals</a> </td><td>16 </td><td>16 Signal Flags are available per thread </td></tr>
+<tr>
+<td><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga7da4c7bfb340779c9fc7b321f5ab3e3a">osFeature_Semaphore</a> </td><td>65535 </td><td>Maximum count for <a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb">osSemaphoreCreate</a> function </td></tr>
+<tr>
+<td><a class="el" href="group__CMSIS__RTOS__Wait.html#ga6c97d38879ae86491628f6e647639bad">osFeature_Wait</a> </td><td>0 </td><td><a class="el" href="technicalData.html#osWait">osWait</a> is not available </td></tr>
+<tr>
+<td><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gae554ec16c23c5b7d65affade2a351891">osFeature_SysTick</a> </td><td>1 </td><td><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#gad0262e4688e95d1e9038afd9bcc16001">osKernelSysTick</a> functions are available </td></tr>
+</table>
+<h1><a class="anchor" id="KernelTimer"></a>
+RTX Kernel Timer Tick and Thread Management</h1>
+<p>By default, CMSIS-RTOS RTX uses the Cortex-M <a href="http://www.keil.com/support/man/docs/gsac/GSAC_SYSTICKtimer.htm" target="_blank">SysTick</a> timer to generate periodic interrupts for the RTX kernel timer tick. CMSIS-RTOS provides <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html">Timer Management</a> functions and several CMSIS-RTOS functions have a timeout parameter. This periodic RTX kernel timer tick interrupt is used to derive the required time interval. CMSIS-RTOS RTX also provides configuration options for a alternative timer and tick-less operation. Refer to <a class="el" href="timerTick.html">RTX Kernel Tick Timer Configuration</a> for more information.</p>
+<p>To handle timeout and time delays for threads, the CMSIS-RTOS RTX thread management is controlled by the RTX kernel timer tick interrupt. The thread context switch itself is implemented in the HAL_CMx.x hardware abstraction layer source files. The thread context contains all CPU registers (R0 - R12), the return address (LR), the program counter (PC), and the processor status register (xPSR). For the Cortex-M4 FPU and Cortex-M7 FPU the floating point status and registers (S0 - S32, FPSCR) are also part of the thread context.</p>
+<p>When a thread switch occurs:</p>
+<ul>
+<li>the thread context of the current running thread is stored on the local stack of this thread.</li>
+<li>the stack pointer is switched to the next running thread.</li>
+<li>the thread context of this next running thread is restored and this thread starts to run.</li>
+</ul>
+<dl class="section note"><dt>Note</dt><dd><ul>
+<li>For Cortex-M0, Cortex-M3, Cortex-M4, and Cortex-M7 the thread context requires 64 bytes on the local stack.</li>
+<li>For Cortex-M4 FPU and Cortex-M7 FPU the thread context requires 200 bytes on the local stack. For devices with Cortex-M4 FPU and Cortex-M7 FPU the default stack space should be increased to a minimum of 300 bytes.</li>
+</ul>
+</dd></dl>
+<p>Each thread is provided with an separate stack that holds the thread context and stack space for automatic variables and return addresses for function call nesting. The stack sizes of the RTX threads are flexible configurable as explained in the section <a class="el" href="threadConfig.html">Thread Configuration</a>. RTX even offers a configurable checking for stack overflows. Refer to <a class="el" href="threadConfig.html#stackCheck">Stack Overflow Checking</a> for more information.</p>
+<h1><a class="anchor" id="RTX_Threads"></a>
+CMSIS-RTOS RTX Threads</h1>
+<p>At startup time, the CMSIS-RTOS RTX creates the following threads:</p>
+<ul>
+<li><b>main</b> : the 'main' function of the application code is started as thread with the <a class="el" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1">osPriorityNormal</a>.</li>
+<li><b>os_idle_demon</b> : this thread executes when no other thread is in <b>RUNNING</b> state. The code of that thread is provided in the <a class="el" href="dirstructfiles.html#RTX_Conf_CM">RTX_Conf_CM.c</a> file and is typically used to put the system into a power-saving mode.</li>
+<li><b>osTimerThread</b> : this thread executes the <a class="el" href="group__CMSIS__RTOS__TimerMgmt.html">Timer Management</a> callback functions. This thread can be disabled; refer to <a class="el" href="systemConfig.html#UserTimer">User Timer Management</a> for configuration options.</li>
+</ul>
+<h1><a class="anchor" id="PriorityInversion"></a>
+Priority Inversion on Resource Sharing</h1>
+<p>The CMSIS-RTOS RTX employs a priority-based preemptive scheduler which ensures that from all the threads that are in the <b>READY</b> state, the thread with the highest priority gets executed and becomes the <b>RUNNING</b> thread. Because threads share resources, events that are outside of the control of the RTX scheduler can prevent the highest priority thread from running when it should. If this happens, a critical deadline could be missed, causing the system to fail. Priority inversion is the term of a scenario in which the highest-priority ready task fails to run when it should.</p>
+<p>Threads typically share resources to communicate and process data by using the CMSIS-RTOS <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html">Mutexes</a>. At any time, two or more threads share a resource, such as a memory buffer or a serial port, one of them may have a higher priority. It is expected that the higher-priority thread runs as soon as it is in the <b>READY</b> state. However, if the lower-priority thread is using a shared resource of a higher-priority thread, this higher-priority thread must wait until the lower-priority thread releases the shared resource.</p>
+<p>To prevent priority inversions, the CMSIS-RTOS RTX implements a <b>priority inheritance</b> method for the <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html">Mutexes</a>. A lower-priority thread inherit the priority of any higher-priority thread that is waiting with <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga5e1752b73f573ee015dbd9ef1edaba13">osMutexWait</a> on a shared resource. During the time the higher-priority thread is in <b>WAITING</b> state, the lower-priority thread runs at the same priority of a higher-priority pending thread. When the lower-priority thread stops to share a resource with <a class="el" href="group__CMSIS__RTOS__MutexMgmt.html#ga006e4744d741e8e132c3d5bbc295afe1">osMutexRelease</a>, the original priority is assigned to this thread again.</p>
+<h1><a class="anchor" id="isr_function_calls"></a>
+Function calls from Interrupt Service Routines (ISR)</h1>
+<p>The following CMSIS-RTOS functions can be called from threads <em>and</em> Interrupt Service Routines (ISR):</p>
+<ul>
+<li><a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga3b571de44cd3094c643247a7397f86b5">osKernelRunning</a></li>
+<li><a class="el" href="group__CMSIS__RTOS__SignalMgmt.html#ga3de2730654589d6c3559c4b9e2825553">osSignalSet</a></li>
+<li><a class="el" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gab108914997c49e14d8ff1ae0d1988ca0">osSemaphoreRelease</a></li>
+<li><a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#gaa0b2994f1a866c19e0d11e6e0d44f543">osPoolAlloc</a>, <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga9f129fcad4730fbd1048ad4fa262f36a">osPoolCAlloc</a>, <a class="el" href="group__CMSIS__RTOS__PoolMgmt.html#ga4a861e9c469c9d0daf5721bf174f8e54">osPoolFree</a></li>
+<li><a class="el" href="group__CMSIS__RTOS__Message.html#gac0dcf462fc92de8ffaba6cc004514a6d">osMessagePut</a>, <a class="el" href="group__CMSIS__RTOS__Message.html#ga6c6892b8f2296cca6becd57ca2d7e1ae">osMessageGet</a></li>
+<li><a class="el" href="group__CMSIS__RTOS__Mail.html#gadf5ce811bd6a56e617e902a1db6c2194">osMailAlloc</a>, <a class="el" href="group__CMSIS__RTOS__Mail.html#ga8fde74f6fe5b9e88f75cc5eb8f2124fd">osMailCAlloc</a>, <a class="el" href="group__CMSIS__RTOS__Mail.html#gac6ad7e6e7d6c4a80e60da22c57a42ccd">osMailGet</a>, <a class="el" href="group__CMSIS__RTOS__Mail.html#ga485ef6f81854ebda8ffbce4832181e02">osMailPut</a>, <a class="el" href="group__CMSIS__RTOS__Mail.html#ga27c1060cf21393f96b4fd1ed1c0167cc">osMailFree</a></li>
+</ul>
+<p>Functions that cannot be called from an ISR are verifying the interrupt status and return the status code <b>osErrorISR</b> in case that they are called from an ISR context. </p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="index.html">index</a></li><li class="navelem"><a class="el" href="rtxImplementation.html">RTX Implementation</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/threadConfig.html b/docs/RTOS/html/threadConfig.html
new file mode 100644
index 0000000..b601e04
--- /dev/null
+++ b/docs/RTOS/html/threadConfig.html
@@ -0,0 +1,192 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Thread Configuration</title>
+<title>CMSIS-RTOS: Thread Configuration</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('threadConfig.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Thread Configuration </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The CMSIS-RTOS RTX provides several parameters for the thread configuration.</p>
+<ul>
+<li><a class="el" href="threadConfig.html#stackConfig">Configuration of Thread count and Stack Space</a></li>
+<li><a class="el" href="threadConfig.html#stackCheck">Stack Overflow Checking</a></li>
+<li><a class="el" href="threadConfig.html#processorMode">Processor Mode for Thread Execution</a></li>
+</ul>
+<h1><a class="anchor" id="stackConfig"></a>
+Configuration of Thread count and Stack Space</h1>
+<p><a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a> defines a thread function. The parameter <em>stacksz</em> specifies thereby the stack requirements of this thread function. CMSIS-RTOS RTX defines two methods for defining the stack requirements:</p>
+<ul>
+<li>when <em>stacksz</em> is 0, a fixed-size memory pool is used to for the thread stack. In this case <b>OS_STKSIZE</b> specifies the stack size for the thread function.</li>
+<li>when <em>stacksz</em> is not 0, the thread stack is allocated from a user space. The size of this user space is specified with <b>OS_PRIVSTKSIZE</b>.</li>
+</ul>
+<p>The CMSIS-RTOS RTX kernel uses a separate stack for each thread it creates. However, before the kernel is started by the <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e">osKernelInitialize()</a> function, the main stack size that is configured in the file startup_<em>device</em>.s is used.</p>
+<p>Main stack is also used when:</p>
+<ul>
+<li>the user application calls the majority of RTX functions from Thread mode (ending up in an SVC call)</li>
+<li>running from handlers (user interrupt of exception handlers like SVCm PendSV, Faults, etc.)</li>
+</ul>
+<table class="doxtable">
+<tr>
+<th>Name </th><th>#define </th><th>Description </th></tr>
+<tr>
+<td>Number of concurrent running user threads </td><td><code>OS_TASKCNT</code> </td><td>Indicates the maximum number of threads that will run at the same time (including main). </td></tr>
+<tr>
+<td>Default Thread stack size [bytes] </td><td><code>OS_STKSIZE</code> </td><td>Specifies the default stack size (in words) for threads that are defined with osThreadDef <em>stacksz</em> = 0. </td></tr>
+<tr>
+<td>Main Thread stack size [bytes] </td><td><code>OS_MAINSTKSIZE</code> </td><td>Is the stack requirement (in words) for the main function that is started by default as an RTOS thread. </td></tr>
+<tr>
+<td>Number of threads with user-provided stack size </td><td><code>OS_PRIVCNT</code> </td><td>Indicates the number of threads that are defined with <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a> <em>stacksz</em> != 0 (excluding main). <em>stacksz</em> specifies the stack size requirement of that thread. </td></tr>
+<tr>
+<td>Total stack size [bytes] for threads with user-provided stack size </td><td><code>OS_PRIVSTKSIZE</code> </td><td>Is the combined stack requirement (in words) of all threads that are defined with with <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a> <em>stacksz</em> != 0 (excluding main). </td></tr>
+<tr>
+<td><a class="el" href="threadConfig.html#stackCheck">Stack Overflow Checking</a> </td><td><code>OS_STKCHECK</code> </td><td>If a stack overflow is detected at a thread switch, the function <b>os_error</b> with error code = 1 is called. By default, this function is implemented as endless loop and will practically stop code execution. </td></tr>
+<tr>
+<td><a class="el" href="threadConfig.html#stackUsage">Stack Usage Watermark</a> </td><td><code>OS_STKINIT</code> </td><td>Initializes the thread stack with a watermark pattern that can be used to determine the maximum stack usage within each thread. </td></tr>
+<tr>
+<td><a class="el" href="threadConfig.html#processorMode">Processor Mode for Thread Execution</a> </td><td><code>OS_RUNPRIV</code> </td><td>Controls the processor mode (privileged/unprivileged) </td></tr>
+</table>
+<h1><a class="anchor" id="stackCheck"></a>
+Stack Overflow Checking</h1>
+<p>CMSIS-RTOS RTX implements a software stack overflow checking that traps stack overruns. Stack is used for return addresses and automatic variables and extensive usage or incorrect stack configuration may cause a stack overflow. Software stack overflow checking is controlled with the <b>#define OS_STKCHECK</b>.</p>
+<p>If a stack overflow is detected, the function <b>os_error</b> with error code = 1 is called. By default, this function is implemented as endless loop and will practically stop code execution.</p>
+<h1><a class="anchor" id="stackUsage"></a>
+Stack Usage Watermark</h1>
+<p>The total stack size of an application needs to be as small as possible in a memory restricted embedded system. To be able to set the smallest stack size for every thread, the developer needs to know the maximum stack usage over the runtime of the application.</p>
+<p>The <b>Stack</b> <b>Usage</b> <b>Watermark</b> feature support this by initializing the thread stack with a watermark pattern (0xCC) when a thread is created. This allows the debugger to determine the maximum stack usage for each thread.</p>
+<div class="image">
+<img src="stack_usage_watermark.png" alt="stack_usage_watermark.png"/>
+<div class="caption">
+System and Thread Viewer showing current and maximum stack usage</div></div>
+<p> Stack usage watermark is controlled with the <b>#define OS_STKINIT</b>. Setting this <code>#define</code> increases significantly the execution time of <a class="el" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> (depending on thread stack size).</p>
+<h1><a class="anchor" id="processorMode"></a>
+Processor Mode for Thread Execution</h1>
+<p>CMSIS-RTOS RTX allows to execute threads in unprivileged or privileged processor mode. The processor mode is controlled with the <b>#define OS_RUNPRIV</b>.</p>
+<p>In unprivileged processor mode, the software:</p>
+<ul>
+<li>has limited access to the MSR and MRS instructions, and cannot use the CPS instruction.</li>
+<li>cannot access the system timer, NVIC, or system control block.</li>
+<li>might have restricted access to memory or peripherals.</li>
+</ul>
+<p>In privileged processor mode the software can use all the instructions and has access to all resources.</p>
+<dl class="section note"><dt>Note</dt><dd>It is recommended to use the privileged processor mode. </dd></dl>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="index.html">index</a></li><li class="navelem"><a class="el" href="rtxImplementation.html">RTX Implementation</a></li><li class="navelem"><a class="el" href="configure.html">Configure RTX</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/timerTick.html b/docs/RTOS/html/timerTick.html
new file mode 100644
index 0000000..b1a7727
--- /dev/null
+++ b/docs/RTOS/html/timerTick.html
@@ -0,0 +1,225 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>RTX Kernel Tick Timer Configuration</title>
+<title>CMSIS-RTOS: RTX Kernel Tick Timer Configuration</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('timerTick.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">RTX Kernel Tick Timer Configuration </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>The CMSIS-RTOS RTX functions provide delays in units of milliseconds that are derived from the RTX Timer Tick. It is therefore recommended to configure the RTX Timer Tick to generate a 1 millisecond interval. Configuring a longer RTX Timer Tick may reduce energy consumption, but has impacts on the granularity of the timeouts.</p>
+<table class="doxtable">
+<tr>
+<th>Name </th><th>#define </th><th>Description </th></tr>
+<tr>
+<td>Use Cortex-M SysTick timer as RTX Kernel Timer </td><td><code>OS_SYSTICK</code> </td><td>Selects the Cortex-M SysTick timer as RTX kernel timer. In this case, the RTX kernel configures the SysTick timer clock source as processor clock. Therefore the value <b>OS_CLOCK</b> should be identical with the value of the CMSIS variable <b>SystemCoreClock</b>. </td></tr>
+<tr>
+<td>RTOS Kernel Timer input clock frequency [Hz] </td><td><code>OS_CLOCK</code> </td><td>Specifies the Cortex-M processor clock frequency in Hz. This value is used to calculate the RTX kernel timer reload value. </td></tr>
+<tr>
+<td>RTX Timer tick interval value [us] </td><td><code>OS_TICK</code> </td><td>Specifies the RTX Timer Tick interval in microseconds (us). This value is used to calculate timeout values. When the SysTick core timer is enabled the value is also used to configure the SysTick timer. It is recommended to configure the RTX Timer tick to 1000 us which results in a timeout granularity of 1 millisecond. </td></tr>
+</table>
+<h1><a class="anchor" id="AltTimer"></a>
+Usage of an Alternate Timer as RTX Kernel Timer</h1>
+<p>With <b>#define OS_SYSTICK 0</b> an alternative timer is selected as RTX kernel timer.</p>
+<p>Four functions in the <a class="el" href="dirstructfiles.html#RTX_Conf_CM">RTX_Conf_CM.c</a> file need to be adapted for using an alternative hardware timer.</p>
+<ul>
+<li><a class="el" href="group__RTX__Global__Functions.html#ga145e7eafdd042bb522020cbb3b469d9c">os_tick_init</a> provides the initialization function for the alternative hardware timer.</li>
+<li><a class="el" href="group__RTX__Global__Functions.html#ga567543bf38239a91f09751686c23017b">os_tick_val</a> returns the current value of the alternative hardware timer.</li>
+<li><a class="el" href="group__RTX__Global__Functions.html#gad5deddec3fea0fb31798f571afc3c692">os_tick_ovf</a> returns the overflow flag of the alternative hardware timer.</li>
+<li><a class="el" href="group__RTX__Global__Functions.html#ga85dab8408f27236c7341a69feb6258c7">os_tick_irqack</a> is an interrupt acknowledge function that is called to confirm the alternative hardware timer interrupt.</li>
+<li><a class="el" href="timerTick.html#OS_Tick_Handler">OS_Tick_Handler</a> needs to be called as the hardware timer interrupt function; the startup code should be modified to this function.</li>
+</ul>
+<p><b>Configuration Code:</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#if (OS_SYSTICK == 0) // Functions for alternative timer as RTX kernel timer</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="comment">/*--------------------------- os_tick_init ----------------------------------*/</span></div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// \brief Initializes an alternative hardware timer as RTX kernel timer</span></div>
+<div class="line"><span class="comment">/// \return IRQ number of the alternative hardware timer</span></div>
+<div class="line"><span class="comment"></span><span class="keywordtype">int</span> <a class="code" href="group__RTX__Global__Functions.html#ga145e7eafdd042bb522020cbb3b469d9c">os_tick_init</a> (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <span class="keywordflow">return</span> (-1); <span class="comment">/* Return IRQ number of timer (0..239) */</span></div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"><span class="comment">/*--------------------------- os_tick_val -----------------------------------*/</span></div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// \brief Get alternative hardware timer&#39;s current value (0 .. OS_TRV)</span></div>
+<div class="line"><span class="comment">/// \return Current value of the alternative hardware timer</span></div>
+<div class="line"><span class="comment"></span>uint32_t <a class="code" href="group__RTX__Global__Functions.html#ga567543bf38239a91f09751686c23017b">os_tick_val</a> (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <span class="keywordflow">return</span> (0);</div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"><span class="comment">/*--------------------------- os_tick_ovf -----------------------------------*/</span></div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// \brief Get alternative hardware timer&#39;s overflow flag</span></div>
+<div class="line"><span class="comment">/// \return Overflow flag\n</span></div>
+<div class="line"><span class="comment">/// - 1 : overflow</span></div>
+<div class="line"><span class="comment">/// - 0 : no overflow</span></div>
+<div class="line"><span class="comment"></span>uint32_t <a class="code" href="group__RTX__Global__Functions.html#gad5deddec3fea0fb31798f571afc3c692">os_tick_ovf</a> (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <span class="keywordflow">return</span> (0);</div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"><span class="comment">/*--------------------------- os_tick_irqack --------------------------------*/</span></div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// \brief Acknowledge alternative hardware timer interrupt</span></div>
+<div class="line"><span class="comment"></span><span class="keywordtype">void</span> <a class="code" href="group__RTX__Global__Functions.html#ga85dab8408f27236c7341a69feb6258c7">os_tick_irqack</a> (<span class="keywordtype">void</span>) {</div>
+<div class="line"> <span class="comment">/* ... */</span></div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#endif // (OS_SYSTICK == 0)</span></div>
+</div><!-- fragment --><p><a class="anchor" id="OS_Tick_Handler"></a></p>
+<h2>OS_Tick_Handler </h2>
+<p>The function <b>OS_Tick_Handler</b> handles the RTX tick interval interrupts. It is used if you are using an alternate timer as the RTX tick timer.</p>
+<p>The <b>OS_Tick_Handler</b> is an interrupt handler function, which runs the OS task scheduler. It is called by the Nested Vectored Interrupt Controller (NVIC) on the alternate timer's interrupt, and cannot be called as a regular C-function. It must be entered into the Interrupt Table in startup file. The default Cortex-M interrupt vector must be replaced by <b>OS_Tick_Handler</b>.</p>
+<div class="fragment"><div class="line">; Vector Table Mapped to Address 0 at Reset</div>
+<div class="line"> </div>
+<div class="line"> AREA RESET, DATA, READONLY</div>
+<div class="line"> EXPORT __Vectors</div>
+<div class="line"> </div>
+<div class="line"> IMPORT OS_Tick_Handler</div>
+<div class="line"> </div>
+<div class="line">__Vectors DCD __initial_sp ; Top of Stack</div>
+<div class="line"> DCD Reset_Handler ; Reset Handler</div>
+<div class="line"> DCD NMI_Handler ; NMI Handler</div>
+<div class="line"> DCD HardFault_Handler ; Hard Fault Handler</div>
+<div class="line"> DCD MemManage_Handler ; MPU Fault Handler</div>
+<div class="line"> DCD BusFault_Handler ; Bus Fault Handler</div>
+<div class="line"> DCD UsageFault_Handler ; Usage Fault Handler</div>
+<div class="line"> DCD 0 ; Reserved</div>
+<div class="line"> DCD 0 ; Reserved</div>
+<div class="line"> DCD 0 ; Reserved</div>
+<div class="line"> DCD 0 ; Reserved</div>
+<div class="line"> DCD SVC_Handler ; SVCall Handler</div>
+<div class="line"> DCD DebugMon_Handler ; Debug Monitor Handler</div>
+<div class="line"> DCD 0 ; Reserved</div>
+<div class="line"> DCD PendSV_Handler ; PendSV Handler</div>
+<div class="line"> DCD SysTick_Handler ; SysTick Handler</div>
+<div class="line"> </div>
+<div class="line"> ; External Interrupts</div>
+<div class="line"> DCD WDT_IRQHandler ; 16: Watchdog Timer</div>
+<div class="line"> DCD TIMER0_IRQHandler ; 17: Timer0</div>
+<div class="line"> ...</div>
+<div class="line"> DCD I2S_IRQHandler ; 43: I2S</div>
+<div class="line"> DCD ENET_IRQHandler ; 44: Ethernet</div>
+<div class="line"> DCD OS_Tick_Handler ; 45: Repetitive Interrupt Timer</div>
+<div class="line"> DCD MCPWM_IRQHandler ; 46: Motor Control PWM</div>
+<div class="line"> ...</div>
+</div><!-- fragment --> </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="index.html">index</a></li><li class="navelem"><a class="el" href="rtxImplementation.html">RTX Implementation</a></li><li class="navelem"><a class="el" href="configure.html">Configure RTX</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/using.html b/docs/RTOS/html/using.html
new file mode 100644
index 0000000..778ce6b
--- /dev/null
+++ b/docs/RTOS/html/using.html
@@ -0,0 +1,203 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Create an RTX Project</title>
+<title>CMSIS-RTOS: Create an RTX Project</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('using.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Create an RTX Project </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>Example projects using CMSIS-RTOS RTX are available for various development boards. To make use of these examples, you need to install a Device Family Pack in µVision and use Pack Installer to open a CMSIS-RTOS Blinky project. If you wish to start a CMSIS-RTOS RTX from scratch, follow these steps:</p>
+<ul>
+<li>Create a new project and select a device.</li>
+<li><p class="startli">In the Manage Run-Time Environment window that opens, select <b>CMSIS::CORE</b> and <b>CMSIS::RTOS (API)::Keil RTX</b>. If the <b>Validation Output</b> requires other components to be present, try to use the <b>Resolve</b> button:</p>
+<div class="image">
+<img src="manage_rte_output.png" alt="manage_rte_output.png"/>
+</div>
+</li>
+<li><p class="startli">Click <b>OK</b>. In the <b>Project</b> window, you will see the files that have been automatically added to you project, such as <b>RTX_Conf_CM.c</b> and the system and startup files:</p>
+<div class="image">
+<img src="project_window.png" alt="project_window.png"/>
+</div>
+</li>
+<li><p class="startli">You can add template files to the project by right-clicking on <b>Source Group 1</b> and selecting <b>Add New Item to 'Source Group 1'</b>. In the new window, click on <b>User Code Template</b>. On the right-hand side you will see all available template files for CMSIS-RTOS RTX:</p>
+<div class="image">
+<img src="add_item.png" alt="add_item.png"/>
+</div>
+</li>
+<li>Finally, <a class="el" href="configure.html">configure</a> RTX to the application's needs using the <b>RTX_Conf_CM.c</b> file.</li>
+</ul>
+<h1><a class="anchor" id="DefRefObj"></a>
+Define and Reference Object Definitions</h1>
+<p>With <code>#define</code> <code>osObjectsExternal</code> objects are defined as external symbols. This allows to create a consistent header file that is used throughout a project. If you are using the <b>CMSIS-RTOS</b> <b>'main'</b> <b>function</b> user code template, such a header file (called <code>osObjects.h</code>) will be added automatically to the project:</p>
+<p><b>Code</b> <b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="comment">/*----------------------------------------------------------------------------</span></div>
+<div class="line"><span class="comment"> * osObjects.h: CMSIS-RTOS global object definitions for an application</span></div>
+<div class="line"><span class="comment"> *----------------------------------------------------------------------------</span></div>
+<div class="line"><span class="comment"> </span></div>
+<div class="line"><span class="comment"> * This header file defines global RTOS objects used throughout a project</span></div>
+<div class="line"><span class="comment"> </span></div>
+<div class="line"><span class="comment"> * #define osObjectsPublic indicates that objects are defined; without that</span></div>
+<div class="line"><span class="comment"> * definition the objects are defined as external symbols.</span></div>
+<div class="line"><span class="comment"> </span></div>
+<div class="line"><span class="comment"> *--------------------------------------------------------------------------*/</span></div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#ifndef __osObjects</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define __osObjects</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="preprocessor">#if (!defined (osObjectsPublic))</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define osObjectsExternal // define RTOS objects with extern attribute</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="preprocessor">#include &lt;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&gt;</span> <span class="comment">// CMSIS RTOS header file</span></div>
+<div class="line"> </div>
+<div class="line"><span class="comment">// global &#39;thread&#39; functions -------------------------------------------------</span></div>
+<div class="line"><span class="keyword">extern</span> <span class="keywordtype">void</span> thread_sample (<span class="keywordtype">void</span> <span class="keyword">const</span> *argument); <span class="comment">// function prototype</span></div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a> (thread_sample, <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa193b650117c209b4a203954542bcc3e6">osPriorityBelowNormal</a>, 1, 100);</div>
+<div class="line"> </div>
+<div class="line"><span class="comment">// global &#39;memory pools&#39; -----------------------------------------------------</span></div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga87b471d4fe2d5dbd0040708edd52771b">osPoolDef</a>(MyPool, 10, <span class="keywordtype">long</span>);</div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#endif // __osObjects</span></div>
+</div><!-- fragment --><p>This header file defines all objects when included in a C/C++ source file. When <code>#define</code> <code>osObjectsExternal</code> is present before the header file, the objects are defined as external symbols. A single consistent header file can therefore be used throughout the whole project.</p>
+<p><b>Code</b> <b>Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;osObjects.h&quot;</span> <span class="comment">// Definition of the CMSIS-RTOS objects</span></div>
+</div><!-- fragment --><h1><a class="anchor" id="UsingIRQs"></a>
+Using IRQ Interrupts</h1>
+<p>The CMSIS-RTOS RTX kernel uses the following interrupts:</p>
+<ul>
+<li>Timer interrupt (SysTick or alternative peripheral timer) to generate periodic timer ticks</li>
+<li>SVC (Supervisor Call) when calling the majority of RTX functions from <b>Thread</b> mode</li>
+<li>PendSV (request for system-level service) when calling certain RTX functions from <b>Handler</b> mode</li>
+</ul>
+<p>Interrupts can be used without limitation. Interrupt priority grouping can be used with some restrictions:</p>
+<ul>
+<li>IRQ interrupts are never disabled by RTX Kernel for Armv7-M architectures (Cortex-M3/M4/M7).</li>
+<li>Software interrupt 0 is used by RTX and cannot be used in an application.</li>
+<li>RTX uses its own SVC Handler which is automatically linked from the library. <a class="el" href="svcFunctions.html">SVC Functions</a> explains how to use a custom SVC table.</li>
+<li>When interrupt <b>priority</b> <b>grouping</b> is used, the PRIGROUP must be set before the <a class="el" href="group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e">osKernelInitialize()</a> function is called (usually in the SystemInit() function in the system_<em>device</em>.c file). The kernel reads the value of PRIGROUP to correctly set internal interrupt pre-emption priorities.</li>
+<li>Allowed values for <b>PRIGROUP</b> are from 0 to 6. The PRIGROUP value 7 will cause RTX to fail.</li>
+<li>The lowest two pre-emption priorities are reserved for RTX kernel, all remaining pre-emption priorities are available to be used in an application.</li>
+<li>Do not change the priority used by the RTX kernel. If this cannot be avoided, ensure that the preempt priority of SysTick/PendSV is lower than SVC.</li>
+<li>Check the <b>main stack size</b> configured from the device startup file if you see sporadic crashes of your application. Supervisor Calls (SVCs) are used when calling RTX functions from Thread mode. All SVC calls use the main stack. </li>
+</ul>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="index.html">index</a></li><li class="navelem"><a class="el" href="rtxImplementation.html">RTX Implementation</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/RTOS/html/usingOS.html b/docs/RTOS/html/usingOS.html
new file mode 100644
index 0000000..78a39d0
--- /dev/null
+++ b/docs/RTOS/html/usingOS.html
@@ -0,0 +1,902 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<title>Using a CMSIS-RTOS Implementation</title>
+<title>CMSIS-RTOS: Using a CMSIS-RTOS Implementation</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<link href="cmsis.css" rel="stylesheet" type="text/css" />
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<script type="text/javascript" src="printComponentTabs.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+ $(window).load(resizeHeight);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/javascript">
+ $(document).ready(function() { searchBox.OnSelectItem(0); });
+</script>
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 46px;">
+ <td id="projectlogo"><img alt="Logo" src="CMSIS_Logo_Final.png"/></td>
+ <td style="padding-left: 0.5em;">
+ <div id="projectname">CMSIS-RTOS
+ &#160;<span id="projectnumber">Version 1.03</span>
+ </div>
+ <div id="projectbrief">Real-Time Operating System: API and RTX Reference Implementation.</div>
+ </td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<div id="CMSISnav" class="tabs1">
+ <ul class="tablist">
+ <script type="text/javascript">
+ <!--
+ writeComponentTabs.call(this);
+ //-->
+ </script>
+ </ul>
+</div>
+<!-- Generated by Doxygen 1.8.6 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+ <div id="navrow1" class="tabs">
+ <ul class="tablist">
+ <li><a href="index.html"><span>Main&#160;Page</span></a></li>
+ <li class="current"><a href="pages.html"><span>Usage&#160;and&#160;Description</span></a></li>
+ <li><a href="modules.html"><span>Reference</span></a></li>
+ <li>
+ <div id="MSearchBox" class="MSearchBoxInactive">
+ <span class="left">
+ <img id="MSearchSelect" src="search/mag_sel.png"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ alt=""/>
+ <input type="text" id="MSearchField" value="Search" accesskey="S"
+ onfocus="searchBox.OnSearchFieldFocus(true)"
+ onblur="searchBox.OnSearchFieldFocus(false)"
+ onkeyup="searchBox.OnSearchFieldChange(event)"/>
+ </span><span class="right">
+ <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
+ </span>
+ </div>
+ </li>
+ </ul>
+ </div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('usingOS.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark">&#160;</span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark">&#160;</span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark">&#160;</span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark">&#160;</span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark">&#160;</span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark">&#160;</span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark">&#160;</span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark">&#160;</span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark">&#160;</span>Macros</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(9)"><span class="SelectionMark">&#160;</span>Groups</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(10)"><span class="SelectionMark">&#160;</span>Pages</a></div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">Using a CMSIS-RTOS Implementation </div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><p>A CMSIS-RTOS implementation is typically provided as a library. To add the RTOS functionality to an existing CMSIS-based application, the RTOS library (and typically a configuration file) needs to be added. The available functionality of the RTOS library is defined in the header file <b><a class="el" href="cmsis__os_8h.html">cmsis_os.h</a></b> that is specific for each CMSIS-RTOS implementation.</p>
+<div class="image">
+<img src="CMSIS_RTOS_Files.png" alt="CMSIS_RTOS_Files.png"/>
+<div class="caption">
+CMSIS-RTOS File Structure</div></div>
+<p> Depending on the CMSIS-RTOS implementation, execution may start with the <b>main</b> function as the first thread. This has the benefit that an application programmer may use other middleware libraries that create threads internally, but the remaining part of the user application just uses the <b>main</b> thread. Therefore, the usage of the RTOS can be invisible to the application programmer, but libraries can use CMSIS-RTOS features.</p>
+<p>Once the files are added to a project, the user can start working with the CMSIS-RTOS functions. A code example is provided below:</p>
+<p><b>Code Example</b> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&quot;</span> <span class="comment">// CMSIS-RTOS header file</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> job1 (<span class="keywordtype">void</span> <span class="keyword">const</span> *argument) { <span class="comment">// thread function &#39;job1&#39;</span></div>
+<div class="line"> <span class="keywordflow">while</span> (1) {</div>
+<div class="line"> : <span class="comment">// execute some code</span></div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__Wait.html#ga02e19d5e723bfb06ba9324d625162255">osDelay</a> (10); <span class="comment">// delay execution for 10 milliseconds</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a>(job1, <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa17b36cd9cd38652c2bc6d4803990674b">osPriorityAboveNormal</a>, 1, 0); <span class="comment">// define job1 as thread function</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> job2 (<span class="keywordtype">void</span> <span class="keyword">const</span> *argument) { <span class="comment">// thread function &#39;job2&#39;</span></div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a>(<a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">osThread</a>(job1),NULL); <span class="comment">// create job1 thread</span></div>
+<div class="line"> <span class="keywordflow">while</span> (1) {</div>
+<div class="line"> : <span class="comment">// execute some code</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a>(job2, <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1">osPriorityNormal</a>, 1, 0); <span class="comment">// define job2 as thread function</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">void</span> job3 (<span class="keywordtype">void</span> <span class="keyword">const</span> *argument) { <span class="comment">// thread function &#39;job3&#39;</span></div>
+<div class="line"> <span class="keywordflow">while</span> (1) {</div>
+<div class="line"> : <span class="comment">// execute some code</span></div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__Wait.html#ga02e19d5e723bfb06ba9324d625162255">osDelay</a> (20); <span class="comment">// delay execution for 20 milliseconds</span></div>
+<div class="line"> }</div>
+<div class="line">}</div>
+<div class="line"> </div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a>(job3, <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1">osPriorityNormal</a>, 1, 0); <span class="comment">// define job3 as thread function</span></div>
+<div class="line"> </div>
+<div class="line"><span class="keywordtype">int</span> main (<span class="keywordtype">void</span>) { <span class="comment">// program execution starts here</span></div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e">osKernelInitialize</a> (); <span class="comment">// initialize RTOS kernel</span></div>
+<div class="line"> : <span class="comment">// setup and initialize peripherals</span></div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> (<a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">osThread</a>(job2));</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> (<a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf0c7c6b5e09f8be198312144b5c9e453">osThread</a>(job3));</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2">osKernelStart</a> (); <span class="comment">// start kernel with job2 execution</span></div>
+<div class="line">}</div>
+</div><!-- fragment --><h1><a class="anchor" id="cmsis_os_h"></a>
+Header File Template: cmsis_os.h</h1>
+<p>The file <b><a class="el" href="cmsis__os_8h.html">cmsis_os.h</a></b> is a template header file for a CMSIS-RTOS compliant Real-Time Operating System (RTOS). Each RTOS that is compliant with CMSIS-RTOS shall provide a specific <b><a class="el" href="cmsis__os_8h.html">cmsis_os.h</a></b> header file that represents its implementation.</p>
+<p>The file <a class="el" href="cmsis__os_8h.html">cmsis_os.h</a> contains:</p>
+<ul>
+<li>CMSIS-RTOS API function definitions</li>
+<li>struct definitions for parameters and return types</li>
+<li>status and priority values used by CMSIS-RTOS API functions</li>
+<li>macros for defining threads and other kernel objects</li>
+</ul>
+<p><b>Name conventions and header file modifications</b></p>
+<p>All definitions are prefixed with <b>os</b> to give an unique name space for CMSIS-RTOS functions. Definitions that are prefixed <b>os_</b> are not used in the application code but local to this header file. All definitions and functions that belong to a module are grouped and have a common prefix, i.e. <b>osThread</b>.</p>
+<p>Definitions that are marked with <b>CAN BE CHANGED</b> can be adapted towards the needs of the actual CMSIS-RTOS implementation. These definitions can be specific to the underlying RTOS kernel.</p>
+<p>Definitions that are marked with <b>MUST REMAIN UNCHANGED</b> cannot be altered. Otherwise the CMSIS-RTOS implementation is no longer compliant to the standard. Note that some functions are optional and need not to be provided by every CMSIS-RTOS implementation.</p>
+<p><b>Define and reference object definitions</b></p>
+<p>With <b>#define osObjectsExternal</b> objects are defined as external symbols. This allows to create a consistent header file that is used throughout a project as shown below:</p>
+<p><em>Header File</em> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &lt;<a class="code" href="cmsis__os_8h.html">cmsis_os.h</a>&gt;</span> <span class="comment">// CMSIS RTOS header file</span></div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Thread definition</span></div>
+<div class="line"><span class="keyword">extern</span> <span class="keywordtype">void</span> thread_sample (<span class="keywordtype">void</span> <span class="keyword">const</span> *argument); <span class="comment">// function prototype</span></div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaee93d929beb350f16e5cc7fa602e229f">osThreadDef</a> (thread_sample, <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa193b650117c209b4a203954542bcc3e6">osPriorityBelowNormal</a>, 1, 100);</div>
+<div class="line"></div>
+<div class="line"><span class="comment">// Pool definition</span></div>
+<div class="line"><a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga87b471d4fe2d5dbd0040708edd52771b">osPoolDef</a>(MyPool, 10, <span class="keywordtype">long</span>);</div>
+</div><!-- fragment --><p>This header file defines all objects when included in a C/C++ source file. When <b>#define osObjectsExternal</b> is present before the header file, the objects are defined as external symbols. A single consistent header file can therefore be used throughout the whole project.</p>
+<p><em>Example</em> </p>
+<div class="fragment"><div class="line"><span class="preprocessor">#include &quot;osObjects.h&quot;</span> <span class="comment">// Definition of the CMSIS-RTOS objects</span></div>
+</div><!-- fragment --><div class="fragment"><div class="line"><span class="preprocessor">#define osObjectsExternal // Objects will be defined as external symbols</span></div>
+<div class="line"><span class="preprocessor">#include &quot;osObjects.h&quot; // Reference to the CMSIS-RTOS objects</span></div>
+</div><!-- fragment --><p><b>Header file cmsis_os.h</b></p>
+<div class="fragment"><div class="line"><span class="comment">/* ----------------------------------------------------------------------</span></div>
+<div class="line"><span class="comment"> * $Date: 5. February 2013</span></div>
+<div class="line"><span class="comment"> * $Revision: V1.02</span></div>
+<div class="line"><span class="comment"> *</span></div>
+<div class="line"><span class="comment"> * Project: CMSIS-RTOS API</span></div>
+<div class="line"><span class="comment"> * Title: cmsis_os.h template header file</span></div>
+<div class="line"><span class="comment"> *</span></div>
+<div class="line"><span class="comment"> * Version 0.02</span></div>
+<div class="line"><span class="comment"> * Initial Proposal Phase</span></div>
+<div class="line"><span class="comment"> * Version 0.03</span></div>
+<div class="line"><span class="comment"> * osKernelStart added, optional feature: main started as thread</span></div>
+<div class="line"><span class="comment"> * osSemaphores have standard behavior</span></div>
+<div class="line"><span class="comment"> * osTimerCreate does not start the timer, added osTimerStart</span></div>
+<div class="line"><span class="comment"> * osThreadPass is renamed to osThreadYield</span></div>
+<div class="line"><span class="comment"> * Version 1.01</span></div>
+<div class="line"><span class="comment"> * Support for C++ interface</span></div>
+<div class="line"><span class="comment"> * - const attribute removed from the osXxxxDef_t typedef&#39;s</span></div>
+<div class="line"><span class="comment"> * - const attribute added to the osXxxxDef macros</span></div>
+<div class="line"><span class="comment"> * Added: osTimerDelete, osMutexDelete, osSemaphoreDelete</span></div>
+<div class="line"><span class="comment"> * Added: osKernelInitialize</span></div>
+<div class="line"><span class="comment"> * Version 1.02</span></div>
+<div class="line"><span class="comment"> * Control functions for short timeouts in microsecond resolution:</span></div>
+<div class="line"><span class="comment"> * Added: osKernelSysTick, osKernelSysTickFrequency, osKernelSysTickMicroSec</span></div>
+<div class="line"><span class="comment"> * Removed: osSignalGet </span></div>
+<div class="line"><span class="comment"> *----------------------------------------------------------------------------</span></div>
+<div class="line"><span class="comment"> *</span></div>
+<div class="line"><span class="comment"> * Copyright (c) 2013-2017 ARM LIMITED</span></div>
+<div class="line"><span class="comment"> *</span></div>
+<div class="line"><span class="comment"> * SPDX-License-Identifier: Apache-2.0</span></div>
+<div class="line"><span class="comment"> *</span></div>
+<div class="line"><span class="comment"> * Licensed under the Apache License, Version 2.0 (the License); you may</span></div>
+<div class="line"><span class="comment"> * not use this file except in compliance with the License.</span></div>
+<div class="line"><span class="comment"> * You may obtain a copy of the License at</span></div>
+<div class="line"><span class="comment"> *</span></div>
+<div class="line"><span class="comment"> * www.apache.org/licenses/LICENSE-2.0</span></div>
+<div class="line"><span class="comment"> *</span></div>
+<div class="line"><span class="comment"> * Unless required by applicable law or agreed to in writing, software</span></div>
+<div class="line"><span class="comment"> * distributed under the License is distributed on an AS IS BASIS, WITHOUT</span></div>
+<div class="line"><span class="comment"> * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.</span></div>
+<div class="line"><span class="comment"> * See the License for the specific language governing permissions and</span></div>
+<div class="line"><span class="comment"> * limitations under the License.</span></div>
+<div class="line"><span class="comment"> *---------------------------------------------------------------------------*/</span></div>
+<div class="line"> </div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#ifndef _CMSIS_OS_H</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define _CMSIS_OS_H</span></div>
+<div class="line"><span class="preprocessor"></span> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osCMSIS identifies the CMSIS-RTOS API version.</span></div>
+<div class="line"><span class="comment"></span><span class="preprocessor">#define osCMSIS 0x10002 </span><span class="comment">///&lt; API version (main [31:16] .sub [15:0])</span></div>
+<div class="line"><span class="comment"></span> </div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: \b osCMSIS_KERNEL identifies the underlying RTOS kernel and version number.</span></div>
+<div class="line"><span class="comment"></span><span class="preprocessor">#define osCMSIS_KERNEL 0x10000 </span><span class="comment">///&lt; RTOS identification and version (main [31:16] .sub [15:0])</span></div>
+<div class="line"><span class="comment"></span> </div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osKernelSystemId shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="preprocessor">#define osKernelSystemId &quot;KERNEL V1.00&quot; </span><span class="comment">///&lt; RTOS identification string</span></div>
+<div class="line"><span class="comment"></span> </div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osFeature_xxx shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="preprocessor">#define osFeature_MainThread 1 </span><span class="comment">///&lt; main thread 1=main can be thread, 0=not available</span></div>
+<div class="line"><span class="comment"></span>#define osFeature_Pool 1 <span class="comment">///&lt; Memory Pools: 1=available, 0=not available</span></div>
+<div class="line"><span class="comment"></span>#define osFeature_MailQ 1 <span class="comment">///&lt; Mail Queues: 1=available, 0=not available</span></div>
+<div class="line"><span class="comment"></span>#define osFeature_MessageQ 1 <span class="comment">///&lt; Message Queues: 1=available, 0=not available</span></div>
+<div class="line"><span class="comment"></span>#define osFeature_Signals 8 <span class="comment">///&lt; maximum number of Signal Flags available per thread</span></div>
+<div class="line"><span class="comment"></span>#define osFeature_Semaphore 30 <span class="comment">///&lt; maximum count for \ref osSemaphoreCreate function</span></div>
+<div class="line"><span class="comment"></span>#define osFeature_Wait 1 <span class="comment">///&lt; osWait function: 1=available, 0=not available</span></div>
+<div class="line"><span class="comment"></span>#define osFeature_SysTick 1 <span class="comment">///&lt; osKernelSysTick functions: 1=available, 0=not available</span></div>
+<div class="line"><span class="comment"></span> </div>
+<div class="line"><span class="preprocessor">#include &lt;stdint.h&gt;</span></div>
+<div class="line"><span class="preprocessor">#include &lt;stddef.h&gt;</span></div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">&quot;C&quot;</span></div>
+<div class="line">{</div>
+<div class="line"><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"> </div>
+<div class="line"><span class="comment">// ==== Enumeration, structures, defines ====</span></div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Priority used for thread control.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osPriority shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
+<div class="line"> <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa549e79a43ff4f8b2b31afb613f5caa81">osPriorityIdle</a> = -3, <span class="comment">///&lt; priority: idle (lowest)</span></div>
+<div class="line"><span class="comment"></span> <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa61cb822239ac8f66dfbdc7291598a3d4">osPriorityLow</a> = -2, <span class="comment">///&lt; priority: low</span></div>
+<div class="line"><span class="comment"></span> <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa193b650117c209b4a203954542bcc3e6">osPriorityBelowNormal</a> = -1, <span class="comment">///&lt; priority: below normal</span></div>
+<div class="line"><span class="comment"></span> <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa45a2895ad30c79fb97de18cac7cc19f1">osPriorityNormal</a> = 0, <span class="comment">///&lt; priority: normal (default)</span></div>
+<div class="line"><span class="comment"></span> <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa17b36cd9cd38652c2bc6d4803990674b">osPriorityAboveNormal</a> = +1, <span class="comment">///&lt; priority: above normal</span></div>
+<div class="line"><span class="comment"></span> <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa914433934143a9ba767e59577c56e6c2">osPriorityHigh</a> = +2, <span class="comment">///&lt; priority: high</span></div>
+<div class="line"><span class="comment"></span> <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aa1485dec3702434a1ec3cb74c7a17a4af">osPriorityRealtime</a> = +3, <span class="comment">///&lt; priority: realtime (highest)</span></div>
+<div class="line"><span class="comment"></span> <a class="code" href="cmsis__os_8h.html#ga7f2b42f1983b9107775ec2a1c69a849aae35f5e2f9c64ad346822521b643bdea4">osPriorityError</a> = 0x84 <span class="comment">///&lt; system cannot determine priority or thread has illegal priority</span></div>
+<div class="line"><span class="comment"></span>} <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a">osPriority</a>;</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Timeout value.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osWaitForever shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="preprocessor">#define osWaitForever 0xFFFFFFFF </span><span class="comment">///&lt; wait forever timeout value</span></div>
+<div class="line"><span class="comment"></span> </div>
+<div class="line"><span class="comment">/// Status code values returned by CMSIS-RTOS functions.</span></div>
+<div class="line"><span class="comment"></span><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osStatus shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea9e1c9e2550bb4de8969a935acffc968f">osOK</a> = 0, <span class="comment">///&lt; function completed; no error or event occurred.</span></div>
+<div class="line"><span class="comment"></span> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea5df7e9643aa8a2f5f3a6f6ec59758518">osEventSignal</a> = 0x08, <span class="comment">///&lt; function completed; signal event occurred.</span></div>
+<div class="line"><span class="comment"></span> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ead604f3673359dd4ac643b16dc5a2c342">osEventMessage</a> = 0x10, <span class="comment">///&lt; function completed; message event occurred.</span></div>
+<div class="line"><span class="comment"></span> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea15b12e42b42b53f35fb8a2724ad02926">osEventMail</a> = 0x20, <span class="comment">///&lt; function completed; mail event occurred.</span></div>
+<div class="line"><span class="comment"></span> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea78f477732375c0e1fca814e369618177">osEventTimeout</a> = 0x40, <span class="comment">///&lt; function completed; timeout occurred.</span></div>
+<div class="line"><span class="comment"></span> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eac24adca6a5d072c9f01c32178ba0d109">osErrorParameter</a> = 0x80, <span class="comment">///&lt; parameter error: a mandatory parameter was missing or specified an incorrect object.</span></div>
+<div class="line"><span class="comment"></span> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea8fc5801e8b0482bdf22ad63a77f0155d">osErrorResource</a> = 0x81, <span class="comment">///&lt; resource not available: a specified resource was not available.</span></div>
+<div class="line"><span class="comment"></span> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea314d24a49003f09459035db0dd7c9467">osErrorTimeoutResource</a> = 0xC1, <span class="comment">///&lt; resource not available within given time: a specified resource was not available within the timeout period.</span></div>
+<div class="line"><span class="comment"></span> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea21635bdc492d3094fe83027fa4a30e2f">osErrorISR</a> = 0x82, <span class="comment">///&lt; not allowed in ISR context: the function cannot be called from interrupt service routines.</span></div>
+<div class="line"><span class="comment"></span> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eaf6552310a817452aedfcd453f2805d65">osErrorISRRecursive</a> = 0x83, <span class="comment">///&lt; function called multiple times from ISR with same object.</span></div>
+<div class="line"><span class="comment"></span> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eab7dda0ef504817659334cbfd650ae56f">osErrorPriority</a> = 0x84, <span class="comment">///&lt; system cannot determine priority or thread has illegal priority.</span></div>
+<div class="line"><span class="comment"></span> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eaf1fac0240218e51eb30a13da2f8aae81">osErrorNoMemory</a> = 0x85, <span class="comment">///&lt; system is out of memory: it was impossible to allocate or reserve memory for the operation.</span></div>
+<div class="line"><span class="comment"></span> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea4672c8a0c0f6bb1d7981da4602e8e9ee">osErrorValue</a> = 0x86, <span class="comment">///&lt; value of a parameter is out of range.</span></div>
+<div class="line"><span class="comment"></span> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99ea5fde24ff588ec5ab9cb8314bade26fbc">osErrorOS</a> = 0xFF, <span class="comment">///&lt; unspecified RTOS error: run-time error but no other error message fits.</span></div>
+<div class="line"><span class="comment"></span> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99eac7a77f5fe18a15a357790c36a4aca1b1">os_status_reserved</a> = 0x7FFFFFFF <span class="comment">///&lt; prevent from enum down-size compiler optimization.</span></div>
+<div class="line"><span class="comment"></span>} <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a>;</div>
+<div class="line"> </div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Timer type value for the timer definition.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b os_timer_type shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">enum</span> {</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ad21712f8df5f97069c82dc9eec37b951">osTimerOnce</a> = 0, <span class="comment">///&lt; one-shot timer</span></div>
+<div class="line"><span class="comment"></span> <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9ab9c91f9699162edb09bb7c90c11c8788">osTimerPeriodic</a> = 1 <span class="comment">///&lt; repeating timer</span></div>
+<div class="line"><span class="comment"></span>} <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9">os_timer_type</a>;</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Entry point of a thread.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b os_pthread shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="keyword">typedef</span> void (*<a class="code" href="cmsis__os_8h.html#aee631e5ea1b700fc35695cc7bc574cf7">os_pthread</a>) (<span class="keywordtype">void</span> <span class="keyword">const</span> *argument);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Entry point of a timer call back function.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b os_ptimer shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="keyword">typedef</span> void (*<a class="code" href="cmsis__os_8h.html#aa2d85e49bde9f6951ff3545cd323f065">os_ptimer</a>) (<span class="keywordtype">void</span> <span class="keyword">const</span> *argument);</div>
+<div class="line"> </div>
+<div class="line"><span class="comment">// &gt;&gt;&gt; the following data type definitions may shall adapted towards a specific RTOS</span></div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Thread ID identifies the thread (pointer to a thread control block).</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: \b os_thread_cb is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>os_thread_cb *<a class="code" href="cmsis__os_8h.html#adfeb153a84a81309e2d958268197617f">osThreadId</a>;</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Timer ID identifies the timer (pointer to a timer control block).</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: \b os_timer_cb is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>os_timer_cb *<a class="code" href="cmsis__os_8h.html#ab8530dd4273f1f5382187732e14fcaa7">osTimerId</a>;</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Mutex ID identifies the mutex (pointer to a mutex control block).</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: \b os_mutex_cb is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>os_mutex_cb *<a class="code" href="cmsis__os_8h.html#a3263c1ad9fd79b84f908d65e8da44ac2">osMutexId</a>;</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Semaphore ID identifies the semaphore (pointer to a semaphore control block).</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: \b os_semaphore_cb is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>os_semaphore_cb *<a class="code" href="cmsis__os_8h.html#aa8968896c84094aa973683c84fa06f84">osSemaphoreId</a>;</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Pool ID identifies the memory pool (pointer to a memory pool control block).</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: \b os_pool_cb is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>os_pool_cb *<a class="code" href="cmsis__os_8h.html#a08d2e20fd9bbd96220fe068d420f3686">osPoolId</a>;</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Message ID identifies the message queue (pointer to a message queue control block).</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: \b os_messageQ_cb is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>os_messageQ_cb *<a class="code" href="cmsis__os_8h.html#ad9ec70c32c6c521970636b521e12d17f">osMessageQId</a>;</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Mail ID identifies the mail queue (pointer to a mail queue control block).</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: \b os_mailQ_cb is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>os_mailQ_cb *<a class="code" href="cmsis__os_8h.html#a1dac049fb7725a8af8b26c71cbb373b5">osMailQId</a>;</div>
+<div class="line"> </div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Thread Definition structure contains startup information of a thread.</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: \b os_thread_def is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>os_thread_def {</div>
+<div class="line"> <a class="code" href="cmsis__os_8h.html#aee631e5ea1b700fc35695cc7bc574cf7">os_pthread</a> pthread; <span class="comment">///&lt; start address of thread function</span></div>
+<div class="line"><span class="comment"></span> <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a">osPriority</a> tpriority; <span class="comment">///&lt; initial thread priority</span></div>
+<div class="line"><span class="comment"></span> uint32_t instances; <span class="comment">///&lt; maximum number of instances of that thread function</span></div>
+<div class="line"><span class="comment"></span> uint32_t stacksize; <span class="comment">///&lt; stack size requirements in bytes; 0 is default stack size</span></div>
+<div class="line"><span class="comment"></span>} <a class="code" href="cmsis__os_8h.html#structosThreadDef__t">osThreadDef_t</a>;</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Timer Definition structure contains timer parameters.</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: \b os_timer_def is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>os_timer_def {</div>
+<div class="line"> <a class="code" href="cmsis__os_8h.html#aa2d85e49bde9f6951ff3545cd323f065">os_ptimer</a> ptimer; <span class="comment">///&lt; start address of a timer function</span></div>
+<div class="line"><span class="comment"></span>} <a class="code" href="cmsis__os_8h.html#structosTimerDef__t">osTimerDef_t</a>;</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Mutex Definition structure contains setup information for a mutex.</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: \b os_mutex_def is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>os_mutex_def {</div>
+<div class="line"> uint32_t dummy; <span class="comment">///&lt; dummy value.</span></div>
+<div class="line"><span class="comment"></span>} <a class="code" href="cmsis__os_8h.html#structosMutexDef__t">osMutexDef_t</a>;</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Semaphore Definition structure contains setup information for a semaphore.</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: \b os_semaphore_def is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>os_semaphore_def {</div>
+<div class="line"> uint32_t dummy; <span class="comment">///&lt; dummy value.</span></div>
+<div class="line"><span class="comment"></span>} <a class="code" href="cmsis__os_8h.html#structosSemaphoreDef__t">osSemaphoreDef_t</a>;</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Definition structure for memory block allocation.</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: \b os_pool_def is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>os_pool_def {</div>
+<div class="line"> uint32_t pool_sz; <span class="comment">///&lt; number of items (elements) in the pool</span></div>
+<div class="line"><span class="comment"></span> uint32_t item_sz; <span class="comment">///&lt; size of an item</span></div>
+<div class="line"><span class="comment"></span> <span class="keywordtype">void</span> *pool; <span class="comment">///&lt; pointer to memory for pool</span></div>
+<div class="line"><span class="comment"></span>} <a class="code" href="cmsis__os_8h.html#structosPoolDef__t">osPoolDef_t</a>;</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Definition structure for message queue.</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: \b os_messageQ_def is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>os_messageQ_def {</div>
+<div class="line"> uint32_t queue_sz; <span class="comment">///&lt; number of elements in the queue</span></div>
+<div class="line"><span class="comment"></span> uint32_t item_sz; <span class="comment">///&lt; size of an item</span></div>
+<div class="line"><span class="comment"></span> <span class="keywordtype">void</span> *pool; <span class="comment">///&lt; memory array for messages</span></div>
+<div class="line"><span class="comment"></span>} <a class="code" href="cmsis__os_8h.html#structosMessageQDef__t">osMessageQDef_t</a>;</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Definition structure for mail queue.</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: \b os_mailQ_def is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>os_mailQ_def {</div>
+<div class="line"> uint32_t queue_sz; <span class="comment">///&lt; number of elements in the queue</span></div>
+<div class="line"><span class="comment"></span> uint32_t item_sz; <span class="comment">///&lt; size of an item</span></div>
+<div class="line"><span class="comment"></span> <span class="keywordtype">void</span> *pool; <span class="comment">///&lt; memory array for mail</span></div>
+<div class="line"><span class="comment"></span>} <a class="code" href="cmsis__os_8h.html#structosMailQDef__t">osMailQDef_t</a>;</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Event structure contains detailed information about an event.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b os_event shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment">/// However the struct may be extended at the end.</span></div>
+<div class="line"><span class="comment"></span><span class="keyword">typedef</span> <span class="keyword">struct </span>{</div>
+<div class="line"> <a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> status; <span class="comment">///&lt; status code: event or error information</span></div>
+<div class="line"><span class="comment"></span> <span class="keyword">union </span>{</div>
+<div class="line"> uint32_t v; <span class="comment">///&lt; message as 32-bit value</span></div>
+<div class="line"><span class="comment"></span> <span class="keywordtype">void</span> *p; <span class="comment">///&lt; message or mail as void pointer</span></div>
+<div class="line"><span class="comment"></span> int32_t signals; <span class="comment">///&lt; signal flags</span></div>
+<div class="line"><span class="comment"></span> } value; <span class="comment">///&lt; event value</span></div>
+<div class="line"><span class="comment"></span> <span class="keyword">union </span>{</div>
+<div class="line"> osMailQId mail_id; <span class="comment">///&lt; mail id obtained by \ref osMailCreate</span></div>
+<div class="line"><span class="comment"></span> osMessageQId message_id; <span class="comment">///&lt; message id obtained by \ref osMessageCreate</span></div>
+<div class="line"><span class="comment"></span> } def; <span class="comment">///&lt; event definition</span></div>
+<div class="line"><span class="comment"></span>} <a class="code" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a>;</div>
+<div class="line"> </div>
+<div class="line"> </div>
+<div class="line"><span class="comment">// ==== Kernel Control Functions ====</span></div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Initialize the RTOS Kernel for creating objects.</span></div>
+<div class="line"><span class="comment">/// \return status code that indicates the execution status of the function.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osKernelInitialize shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> <a class="code" href="group__CMSIS__RTOS__KernelCtrl.html#ga53d078a801022e202e8115c083ece68e">osKernelInitialize</a> (<span class="keywordtype">void</span>);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Start the RTOS Kernel.</span></div>
+<div class="line"><span class="comment">/// \return status code that indicates the execution status of the function.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osKernelStart shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> <a class="code" href="group__CMSIS__RTOS__KernelCtrl.html#gaab668ffd2ea76bb0a77ab0ab385eaef2">osKernelStart</a> (<span class="keywordtype">void</span>);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Check if the RTOS kernel is already started.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osKernelRunning shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment">/// \return 0 RTOS is not started, 1 RTOS is started.</span></div>
+<div class="line"><span class="comment"></span>int32_t <a class="code" href="group__CMSIS__RTOS__KernelCtrl.html#ga3b571de44cd3094c643247a7397f86b5">osKernelRunning</a>(<span class="keywordtype">void</span>);</div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#if (defined (osFeature_SysTick) &amp;&amp; (osFeature_SysTick != 0)) // System Timer available</span></div>
+<div class="line"><span class="preprocessor"></span> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Get the RTOS kernel system timer counter </span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osKernelSysTick shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment">/// \return RTOS kernel system timer as 32-bit value </span></div>
+<div class="line"><span class="comment"></span>uint32_t <a class="code" href="group__CMSIS__RTOS__KernelCtrl.html#gad0262e4688e95d1e9038afd9bcc16001">osKernelSysTick</a> (<span class="keywordtype">void</span>);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// The RTOS kernel system timer frequency in Hz</span></div>
+<div class="line"><span class="comment">/// \note Reflects the system timer setting and is typically defined in a configuration file.</span></div>
+<div class="line"><span class="comment"></span><span class="preprocessor">#define osKernelSysTickFrequency 100000000</span></div>
+<div class="line"><span class="preprocessor"></span> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Convert a microseconds value to a RTOS kernel system timer value.</span></div>
+<div class="line"><span class="comment">/// \param microsec time value in microseconds.</span></div>
+<div class="line"><span class="comment">/// \return time value normalized to the \ref osKernelSysTickFrequency</span></div>
+<div class="line"><span class="comment"></span><span class="preprocessor">#define osKernelSysTickMicroSec(microsec) (((uint64_t)microsec * (osKernelSysTickFrequency)) / 1000000)</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="preprocessor">#endif // System Timer available</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="comment">// ==== Thread Management ====</span></div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Create a Thread Definition with function, priority, and stack requirements.</span></div>
+<div class="line"><span class="comment">/// \param name name of the thread function.</span></div>
+<div class="line"><span class="comment">/// \param priority initial priority of the thread function.</span></div>
+<div class="line"><span class="comment">/// \param instances number of possible thread instances.</span></div>
+<div class="line"><span class="comment">/// \param stacksz stack size (in bytes) requirements for the thread function.</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: The parameters to \b osThreadDef shall be consistent but the</span></div>
+<div class="line"><span class="comment">/// macro body is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="preprocessor">#if defined (osObjectsExternal) // object is external</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define osThreadDef(name, priority, instances, stacksz) \</span></div>
+<div class="line"><span class="preprocessor">extern const osThreadDef_t os_thread_def_##name</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#else // define the object</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define osThreadDef(name, priority, instances, stacksz) \</span></div>
+<div class="line"><span class="preprocessor">const osThreadDef_t os_thread_def_##name = \</span></div>
+<div class="line"><span class="preprocessor">{ (name), (priority), (instances), (stacksz) }</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Access a Thread definition.</span></div>
+<div class="line"><span class="comment">/// \param name name of the thread definition object.</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: The parameter to \b osThread shall be consistent but the</span></div>
+<div class="line"><span class="comment">/// macro body is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="preprocessor">#define osThread(name) \</span></div>
+<div class="line"><span class="preprocessor">&amp;os_thread_def_##name</span></div>
+<div class="line"><span class="preprocessor"></span> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Create a thread and add it to Active Threads and set it to state READY.</span></div>
+<div class="line"><span class="comment">/// \param[in] thread_def thread definition referenced with \ref osThread.</span></div>
+<div class="line"><span class="comment">/// \param[in] argument pointer that is passed to the thread function as start argument.</span></div>
+<div class="line"><span class="comment">/// \return thread ID for reference by other functions or NULL in case of error.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osThreadCreate shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span>osThreadId <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gac59b5713cb083702dce759c73fd90dff">osThreadCreate</a> (<span class="keyword">const</span> <a class="code" href="cmsis__os_8h.html#structosThreadDef__t">osThreadDef_t</a> *thread_def, <span class="keywordtype">void</span> *argument);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Return the thread ID of the current running thread.</span></div>
+<div class="line"><span class="comment">/// \return thread ID for reference by other functions or NULL in case of error.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osThreadGetId shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span>osThreadId <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gab1df2a28925862ef8f9cf4e1c995c5a7">osThreadGetId</a> (<span class="keywordtype">void</span>);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Terminate execution of a thread and remove it from Active Threads.</span></div>
+<div class="line"><span class="comment">/// \param[in] thread_id thread ID obtained by \ref osThreadCreate or \ref osThreadGetId.</span></div>
+<div class="line"><span class="comment">/// \return status code that indicates the execution status of the function.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osThreadTerminate shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaea135bb90eb853eff39e0800b91bbeab">osThreadTerminate</a> (osThreadId thread_id);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Pass control to next thread that is in state \b READY.</span></div>
+<div class="line"><span class="comment">/// \return status code that indicates the execution status of the function.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osThreadYield shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#gaf13a667493c5d629a90c13e113b99233">osThreadYield</a> (<span class="keywordtype">void</span>);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Change priority of an active thread.</span></div>
+<div class="line"><span class="comment">/// \param[in] thread_id thread ID obtained by \ref osThreadCreate or \ref osThreadGetId.</span></div>
+<div class="line"><span class="comment">/// \param[in] priority new priority value for the thread function.</span></div>
+<div class="line"><span class="comment">/// \return status code that indicates the execution status of the function.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osThreadSetPriority shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#ga0dfb90ccf1f6e4b54b9251b12d1cbc8b">osThreadSetPriority</a> (osThreadId thread_id, <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a">osPriority</a> priority);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Get current priority of an active thread.</span></div>
+<div class="line"><span class="comment">/// \param[in] thread_id thread ID obtained by \ref osThreadCreate or \ref osThreadGetId.</span></div>
+<div class="line"><span class="comment">/// \return current priority value of the thread function.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osThreadGetPriority shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#ga7f2b42f1983b9107775ec2a1c69a849a">osPriority</a> <a class="code" href="group__CMSIS__RTOS__ThreadMgmt.html#ga4299d838978bc2aae5e4350754e6a4e9">osThreadGetPriority</a> (osThreadId thread_id);</div>
+<div class="line"> </div>
+<div class="line"> </div>
+<div class="line"><span class="comment">// ==== Generic Wait Functions ====</span></div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Wait for Timeout (Time Delay).</span></div>
+<div class="line"><span class="comment">/// \param[in] millisec \ref CMSIS_RTOS_TimeOutValue &quot;time delay&quot; value</span></div>
+<div class="line"><span class="comment">/// \return status code that indicates the execution status of the function.</span></div>
+<div class="line"><span class="comment"></span><a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> <a class="code" href="group__CMSIS__RTOS__Wait.html#ga02e19d5e723bfb06ba9324d625162255">osDelay</a> (uint32_t millisec);</div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#if (defined (osFeature_Wait) &amp;&amp; (osFeature_Wait != 0)) // Generic Wait available</span></div>
+<div class="line"><span class="preprocessor"></span> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Wait for Signal, Message, Mail, or Timeout.</span></div>
+<div class="line"><span class="comment">/// \param[in] millisec \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out</span></div>
+<div class="line"><span class="comment">/// \return event that contains signal, message, or mail information or error code.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osWait shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><a class="code" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a> <a class="code" href="group__CMSIS__RTOS__Wait.html#ga8470c8aaedfde524a44e22e5b2328285">osWait</a> (uint32_t millisec);</div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#endif // Generic Wait available</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"> </div>
+<div class="line"><span class="comment">// ==== Timer Management Functions ====</span><span class="comment"></span></div>
+<div class="line"><span class="comment">/// Define a Timer object.</span></div>
+<div class="line"><span class="comment">/// \param name name of the timer object.</span></div>
+<div class="line"><span class="comment">/// \param function name of the timer call back function.</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: The parameter to \b osTimerDef shall be consistent but the</span></div>
+<div class="line"><span class="comment">/// macro body is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="preprocessor">#if defined (osObjectsExternal) // object is external</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define osTimerDef(name, function) \</span></div>
+<div class="line"><span class="preprocessor">extern const osTimerDef_t os_timer_def_##name</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#else // define the object</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define osTimerDef(name, function) \</span></div>
+<div class="line"><span class="preprocessor">const osTimerDef_t os_timer_def_##name = \</span></div>
+<div class="line"><span class="preprocessor">{ (function) }</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Access a Timer definition.</span></div>
+<div class="line"><span class="comment">/// \param name name of the timer object.</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: The parameter to \b osTimer shall be consistent but the</span></div>
+<div class="line"><span class="comment">/// macro body is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="preprocessor">#define osTimer(name) \</span></div>
+<div class="line"><span class="preprocessor">&amp;os_timer_def_##name</span></div>
+<div class="line"><span class="preprocessor"></span> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Create a timer.</span></div>
+<div class="line"><span class="comment">/// \param[in] timer_def timer object referenced with \ref osTimer.</span></div>
+<div class="line"><span class="comment">/// \param[in] type osTimerOnce for one-shot or osTimerPeriodic for periodic behavior.</span></div>
+<div class="line"><span class="comment">/// \param[in] argument argument to the timer call back function.</span></div>
+<div class="line"><span class="comment">/// \return timer ID for reference by other functions or NULL in case of error.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osTimerCreate shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span>osTimerId <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#gaedd312bfdca04e0b8162b666e09a1ae6">osTimerCreate</a> (<span class="keyword">const</span> <a class="code" href="cmsis__os_8h.html#structosTimerDef__t">osTimerDef_t</a> *timer_def, <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#gadac860eb9e1b4b0619271e6595ed83d9">os_timer_type</a> type, <span class="keywordtype">void</span> *argument);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Start or restart a timer.</span></div>
+<div class="line"><span class="comment">/// \param[in] timer_id timer ID obtained by \ref osTimerCreate.</span></div>
+<div class="line"><span class="comment">/// \param[in] millisec \ref CMSIS_RTOS_TimeOutValue &quot;time delay&quot; value of the timer.</span></div>
+<div class="line"><span class="comment">/// \return status code that indicates the execution status of the function.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osTimerStart shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga27a797a401b068e2644d1125f22a07ca">osTimerStart</a> (osTimerId timer_id, uint32_t millisec);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Stop the timer.</span></div>
+<div class="line"><span class="comment">/// \param[in] timer_id timer ID obtained by \ref osTimerCreate.</span></div>
+<div class="line"><span class="comment">/// \return status code that indicates the execution status of the function.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osTimerStop shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga58f36b121a812936435cacc6e1e0e091">osTimerStop</a> (osTimerId timer_id);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Delete a timer that was created by \ref osTimerCreate.</span></div>
+<div class="line"><span class="comment">/// \param[in] timer_id timer ID obtained by \ref osTimerCreate.</span></div>
+<div class="line"><span class="comment">/// \return status code that indicates the execution status of the function.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osTimerDelete shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> <a class="code" href="group__CMSIS__RTOS__TimerMgmt.html#ga746b8043d906849bd65e3900fcb483cf">osTimerDelete</a> (osTimerId timer_id);</div>
+<div class="line"> </div>
+<div class="line"> </div>
+<div class="line"><span class="comment">// ==== Signal Management ====</span></div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Set the specified Signal Flags of an active thread.</span></div>
+<div class="line"><span class="comment">/// \param[in] thread_id thread ID obtained by \ref osThreadCreate or \ref osThreadGetId.</span></div>
+<div class="line"><span class="comment">/// \param[in] signals specifies the signal flags of the thread that should be set.</span></div>
+<div class="line"><span class="comment">/// \return previous signal flags of the specified thread or 0x80000000 in case of incorrect parameters.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osSignalSet shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span>int32_t <a class="code" href="group__CMSIS__RTOS__SignalMgmt.html#ga3de2730654589d6c3559c4b9e2825553">osSignalSet</a> (osThreadId thread_id, int32_t signals);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Clear the specified Signal Flags of an active thread.</span></div>
+<div class="line"><span class="comment">/// \param[in] thread_id thread ID obtained by \ref osThreadCreate or \ref osThreadGetId.</span></div>
+<div class="line"><span class="comment">/// \param[in] signals specifies the signal flags of the thread that shall be cleared.</span></div>
+<div class="line"><span class="comment">/// \return previous signal flags of the specified thread or 0x80000000 in case of incorrect parameters or call from ISR.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osSignalClear shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span>int32_t <a class="code" href="group__CMSIS__RTOS__SignalMgmt.html#ga87283a6ebc31ce9ed42baf3ea7e4eab6">osSignalClear</a> (osThreadId thread_id, int32_t signals);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Wait for one or more Signal Flags to become signaled for the current \b RUNNING thread.</span></div>
+<div class="line"><span class="comment">/// \param[in] signals wait until all specified signal flags set or 0 for any single signal flag.</span></div>
+<div class="line"><span class="comment">/// \param[in] millisec \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.</span></div>
+<div class="line"><span class="comment">/// \return event flag information or error code.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osSignalWait shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><a class="code" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a> <a class="code" href="group__CMSIS__RTOS__SignalMgmt.html#ga38860acda96df47da6923348d96fc4c9">osSignalWait</a> (int32_t signals, uint32_t millisec);</div>
+<div class="line"> </div>
+<div class="line"> </div>
+<div class="line"><span class="comment">// ==== Mutex Management ====</span></div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Define a Mutex.</span></div>
+<div class="line"><span class="comment">/// \param name name of the mutex object.</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: The parameter to \b osMutexDef shall be consistent but the</span></div>
+<div class="line"><span class="comment">/// macro body is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="preprocessor">#if defined (osObjectsExternal) // object is external</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define osMutexDef(name) \</span></div>
+<div class="line"><span class="preprocessor">extern const osMutexDef_t os_mutex_def_##name</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#else // define the object</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define osMutexDef(name) \</span></div>
+<div class="line"><span class="preprocessor">const osMutexDef_t os_mutex_def_##name = { 0 }</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Access a Mutex definition.</span></div>
+<div class="line"><span class="comment">/// \param name name of the mutex object.</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: The parameter to \b osMutex shall be consistent but the</span></div>
+<div class="line"><span class="comment">/// macro body is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="preprocessor">#define osMutex(name) \</span></div>
+<div class="line"><span class="preprocessor">&amp;os_mutex_def_##name</span></div>
+<div class="line"><span class="preprocessor"></span> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Create and Initialize a Mutex object.</span></div>
+<div class="line"><span class="comment">/// \param[in] mutex_def mutex definition referenced with \ref osMutex.</span></div>
+<div class="line"><span class="comment">/// \return mutex ID for reference by other functions or NULL in case of error.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osMutexCreate shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span>osMutexId <a class="code" href="group__CMSIS__RTOS__MutexMgmt.html#ga5c9de56e717016e39e788064e9a291cc">osMutexCreate</a> (<span class="keyword">const</span> <a class="code" href="cmsis__os_8h.html#structosMutexDef__t">osMutexDef_t</a> *mutex_def);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Wait until a Mutex becomes available.</span></div>
+<div class="line"><span class="comment">/// \param[in] mutex_id mutex ID obtained by \ref osMutexCreate.</span></div>
+<div class="line"><span class="comment">/// \param[in] millisec \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.</span></div>
+<div class="line"><span class="comment">/// \return status code that indicates the execution status of the function.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osMutexWait shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> <a class="code" href="group__CMSIS__RTOS__MutexMgmt.html#ga5e1752b73f573ee015dbd9ef1edaba13">osMutexWait</a> (osMutexId mutex_id, uint32_t millisec);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Release a Mutex that was obtained by \ref osMutexWait.</span></div>
+<div class="line"><span class="comment">/// \param[in] mutex_id mutex ID obtained by \ref osMutexCreate.</span></div>
+<div class="line"><span class="comment">/// \return status code that indicates the execution status of the function.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osMutexRelease shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> <a class="code" href="group__CMSIS__RTOS__MutexMgmt.html#ga006e4744d741e8e132c3d5bbc295afe1">osMutexRelease</a> (osMutexId mutex_id);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Delete a Mutex that was created by \ref osMutexCreate.</span></div>
+<div class="line"><span class="comment">/// \param[in] mutex_id mutex ID obtained by \ref osMutexCreate.</span></div>
+<div class="line"><span class="comment">/// \return status code that indicates the execution status of the function.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osMutexDelete shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> <a class="code" href="group__CMSIS__RTOS__MutexMgmt.html#gac27e24135185d51d18f3dabc20910219">osMutexDelete</a> (osMutexId mutex_id);</div>
+<div class="line"> </div>
+<div class="line"> </div>
+<div class="line"><span class="comment">// ==== Semaphore Management Functions ====</span></div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#if (defined (osFeature_Semaphore) &amp;&amp; (osFeature_Semaphore != 0)) // Semaphore available</span></div>
+<div class="line"><span class="preprocessor"></span> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Define a Semaphore object.</span></div>
+<div class="line"><span class="comment">/// \param name name of the semaphore object.</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: The parameter to \b osSemaphoreDef shall be consistent but the</span></div>
+<div class="line"><span class="comment">/// macro body is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="preprocessor">#if defined (osObjectsExternal) // object is external</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define osSemaphoreDef(name) \</span></div>
+<div class="line"><span class="preprocessor">extern const osSemaphoreDef_t os_semaphore_def_##name</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#else // define the object</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define osSemaphoreDef(name) \</span></div>
+<div class="line"><span class="preprocessor">const osSemaphoreDef_t os_semaphore_def_##name = { 0 }</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Access a Semaphore definition.</span></div>
+<div class="line"><span class="comment">/// \param name name of the semaphore object.</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: The parameter to \b osSemaphore shall be consistent but the</span></div>
+<div class="line"><span class="comment">/// macro body is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="preprocessor">#define osSemaphore(name) \</span></div>
+<div class="line"><span class="preprocessor">&amp;os_semaphore_def_##name</span></div>
+<div class="line"><span class="preprocessor"></span> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Create and Initialize a Semaphore object used for managing resources.</span></div>
+<div class="line"><span class="comment">/// \param[in] semaphore_def semaphore definition referenced with \ref osSemaphore.</span></div>
+<div class="line"><span class="comment">/// \param[in] count number of available resources.</span></div>
+<div class="line"><span class="comment">/// \return semaphore ID for reference by other functions or NULL in case of error.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osSemaphoreCreate shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span>osSemaphoreId <a class="code" href="group__CMSIS__RTOS__SemaphoreMgmt.html#ga97381e8e55cd47cec390bf57c96d6edb">osSemaphoreCreate</a> (<span class="keyword">const</span> <a class="code" href="cmsis__os_8h.html#structosSemaphoreDef__t">osSemaphoreDef_t</a> *semaphore_def, int32_t count);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Wait until a Semaphore token becomes available.</span></div>
+<div class="line"><span class="comment">/// \param[in] semaphore_id semaphore object referenced with \ref osSemaphoreCreate.</span></div>
+<div class="line"><span class="comment">/// \param[in] millisec \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.</span></div>
+<div class="line"><span class="comment">/// \return number of available tokens, or -1 in case of incorrect parameters.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osSemaphoreWait shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span>int32_t <a class="code" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gacc15b0fc8ce1167fe43da33042e62098">osSemaphoreWait</a> (osSemaphoreId semaphore_id, uint32_t millisec);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Release a Semaphore token.</span></div>
+<div class="line"><span class="comment">/// \param[in] semaphore_id semaphore object referenced with \ref osSemaphoreCreate.</span></div>
+<div class="line"><span class="comment">/// \return status code that indicates the execution status of the function.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osSemaphoreRelease shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> <a class="code" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gab108914997c49e14d8ff1ae0d1988ca0">osSemaphoreRelease</a> (osSemaphoreId semaphore_id);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Delete a Semaphore that was created by \ref osSemaphoreCreate.</span></div>
+<div class="line"><span class="comment">/// \param[in] semaphore_id semaphore object referenced with \ref osSemaphoreCreate.</span></div>
+<div class="line"><span class="comment">/// \return status code that indicates the execution status of the function.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osSemaphoreDelete shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> <a class="code" href="group__CMSIS__RTOS__SemaphoreMgmt.html#gabae2801ac2c096f6e8c69a264908f595">osSemaphoreDelete</a> (osSemaphoreId semaphore_id);</div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#endif // Semaphore available</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"> </div>
+<div class="line"><span class="comment">// ==== Memory Pool Management Functions ====</span></div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#if (defined (osFeature_Pool) &amp;&amp; (osFeature_Pool != 0)) // Memory Pool Management available</span></div>
+<div class="line"><span class="preprocessor"></span> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// \brief Define a Memory Pool.</span></div>
+<div class="line"><span class="comment">/// \param name name of the memory pool.</span></div>
+<div class="line"><span class="comment">/// \param no maximum number of blocks (objects) in the memory pool.</span></div>
+<div class="line"><span class="comment">/// \param type data type of a single block (object).</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: The parameter to \b osPoolDef shall be consistent but the</span></div>
+<div class="line"><span class="comment">/// macro body is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="preprocessor">#if defined (osObjectsExternal) // object is external</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define osPoolDef(name, no, type) \</span></div>
+<div class="line"><span class="preprocessor">extern const osPoolDef_t os_pool_def_##name</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#else // define the object</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define osPoolDef(name, no, type) \</span></div>
+<div class="line"><span class="preprocessor">const osPoolDef_t os_pool_def_##name = \</span></div>
+<div class="line"><span class="preprocessor">{ (no), sizeof(type), NULL }</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// \brief Access a Memory Pool definition.</span></div>
+<div class="line"><span class="comment">/// \param name name of the memory pool</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: The parameter to \b osPool shall be consistent but the</span></div>
+<div class="line"><span class="comment">/// macro body is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="preprocessor">#define osPool(name) \</span></div>
+<div class="line"><span class="preprocessor">&amp;os_pool_def_##name</span></div>
+<div class="line"><span class="preprocessor"></span> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Create and Initialize a memory pool.</span></div>
+<div class="line"><span class="comment">/// \param[in] pool_def memory pool definition referenced with \ref osPool.</span></div>
+<div class="line"><span class="comment">/// \return memory pool ID for reference by other functions or NULL in case of error.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osPoolCreate shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span>osPoolId <a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga34af5c4f4ab38f4138ea7f1f9ece3a1a">osPoolCreate</a> (<span class="keyword">const</span> <a class="code" href="cmsis__os_8h.html#structosPoolDef__t">osPoolDef_t</a> *pool_def);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Allocate a memory block from a memory pool.</span></div>
+<div class="line"><span class="comment">/// \param[in] pool_id memory pool ID obtain referenced with \ref osPoolCreate.</span></div>
+<div class="line"><span class="comment">/// \return address of the allocated memory block or NULL in case of no memory available.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osPoolAlloc shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="keywordtype">void</span> *<a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#gaa0b2994f1a866c19e0d11e6e0d44f543">osPoolAlloc</a> (osPoolId pool_id);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Allocate a memory block from a memory pool and set memory block to zero.</span></div>
+<div class="line"><span class="comment">/// \param[in] pool_id memory pool ID obtain referenced with \ref osPoolCreate.</span></div>
+<div class="line"><span class="comment">/// \return address of the allocated memory block or NULL in case of no memory available.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osPoolCAlloc shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="keywordtype">void</span> *<a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga9f129fcad4730fbd1048ad4fa262f36a">osPoolCAlloc</a> (osPoolId pool_id);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Return an allocated memory block back to a specific memory pool.</span></div>
+<div class="line"><span class="comment">/// \param[in] pool_id memory pool ID obtain referenced with \ref osPoolCreate.</span></div>
+<div class="line"><span class="comment">/// \param[in] block address of the allocated memory block that is returned to the memory pool.</span></div>
+<div class="line"><span class="comment">/// \return status code that indicates the execution status of the function.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osPoolFree shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> <a class="code" href="group__CMSIS__RTOS__PoolMgmt.html#ga4a861e9c469c9d0daf5721bf174f8e54">osPoolFree</a> (osPoolId pool_id, <span class="keywordtype">void</span> *block);</div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#endif // Memory Pool Management available</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"> </div>
+<div class="line"><span class="comment">// ==== Message Queue Management Functions ====</span></div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#if (defined (osFeature_MessageQ) &amp;&amp; (osFeature_MessageQ != 0)) // Message Queues available</span></div>
+<div class="line"><span class="preprocessor"></span> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// \brief Create a Message Queue Definition.</span></div>
+<div class="line"><span class="comment">/// \param name name of the queue.</span></div>
+<div class="line"><span class="comment">/// \param queue_sz maximum number of messages in the queue.</span></div>
+<div class="line"><span class="comment">/// \param type data type of a single message element (for debugger).</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: The parameter to \b osMessageQDef shall be consistent but the</span></div>
+<div class="line"><span class="comment">/// macro body is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="preprocessor">#if defined (osObjectsExternal) // object is external</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define osMessageQDef(name, queue_sz, type) \</span></div>
+<div class="line"><span class="preprocessor">extern const osMessageQDef_t os_messageQ_def_##name</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#else // define the object</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define osMessageQDef(name, queue_sz, type) \</span></div>
+<div class="line"><span class="preprocessor">const osMessageQDef_t os_messageQ_def_##name = \</span></div>
+<div class="line"><span class="preprocessor">{ (queue_sz), sizeof (type) }</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// \brief Access a Message Queue Definition.</span></div>
+<div class="line"><span class="comment">/// \param name name of the queue</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: The parameter to \b osMessageQ shall be consistent but the</span></div>
+<div class="line"><span class="comment">/// macro body is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="preprocessor">#define osMessageQ(name) \</span></div>
+<div class="line"><span class="preprocessor">&amp;os_messageQ_def_##name</span></div>
+<div class="line"><span class="preprocessor"></span> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Create and Initialize a Message Queue.</span></div>
+<div class="line"><span class="comment">/// \param[in] queue_def queue definition referenced with \ref osMessageQ.</span></div>
+<div class="line"><span class="comment">/// \param[in] thread_id thread ID (obtained by \ref osThreadCreate or \ref osThreadGetId) or NULL.</span></div>
+<div class="line"><span class="comment">/// \return message queue ID for reference by other functions or NULL in case of error.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osMessageCreate shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span>osMessageQId <a class="code" href="group__CMSIS__RTOS__Message.html#gaf3b9345cf426304d46565152bc26fb78">osMessageCreate</a> (<span class="keyword">const</span> <a class="code" href="cmsis__os_8h.html#structosMessageQDef__t">osMessageQDef_t</a> *queue_def, osThreadId thread_id);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Put a Message to a Queue.</span></div>
+<div class="line"><span class="comment">/// \param[in] queue_id message queue ID obtained with \ref osMessageCreate.</span></div>
+<div class="line"><span class="comment">/// \param[in] info message information.</span></div>
+<div class="line"><span class="comment">/// \param[in] millisec \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.</span></div>
+<div class="line"><span class="comment">/// \return status code that indicates the execution status of the function.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osMessagePut shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> <a class="code" href="group__CMSIS__RTOS__Message.html#gac0dcf462fc92de8ffaba6cc004514a6d">osMessagePut</a> (osMessageQId queue_id, uint32_t info, uint32_t millisec);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Get a Message or Wait for a Message from a Queue.</span></div>
+<div class="line"><span class="comment">/// \param[in] queue_id message queue ID obtained with \ref osMessageCreate.</span></div>
+<div class="line"><span class="comment">/// \param[in] millisec \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out.</span></div>
+<div class="line"><span class="comment">/// \return event information that includes status code.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osMessageGet shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><a class="code" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a> <a class="code" href="group__CMSIS__RTOS__Message.html#ga6c6892b8f2296cca6becd57ca2d7e1ae">osMessageGet</a> (osMessageQId queue_id, uint32_t millisec);</div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#endif // Message Queues available</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"> </div>
+<div class="line"><span class="comment">// ==== Mail Queue Management Functions ====</span></div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#if (defined (osFeature_MailQ) &amp;&amp; (osFeature_MailQ != 0)) // Mail Queues available</span></div>
+<div class="line"><span class="preprocessor"></span> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// \brief Create a Mail Queue Definition.</span></div>
+<div class="line"><span class="comment">/// \param name name of the queue</span></div>
+<div class="line"><span class="comment">/// \param queue_sz maximum number of messages in queue</span></div>
+<div class="line"><span class="comment">/// \param type data type of a single message element</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: The parameter to \b osMailQDef shall be consistent but the</span></div>
+<div class="line"><span class="comment">/// macro body is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="preprocessor">#if defined (osObjectsExternal) // object is external</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define osMailQDef(name, queue_sz, type) \</span></div>
+<div class="line"><span class="preprocessor">extern const osMailQDef_t os_mailQ_def_##name</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#else // define the object</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#define osMailQDef(name, queue_sz, type) \</span></div>
+<div class="line"><span class="preprocessor">const osMailQDef_t os_mailQ_def_##name = \</span></div>
+<div class="line"><span class="preprocessor">{ (queue_sz), sizeof (type) }</span></div>
+<div class="line"><span class="preprocessor"></span><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// \brief Access a Mail Queue Definition.</span></div>
+<div class="line"><span class="comment">/// \param name name of the queue</span></div>
+<div class="line"><span class="comment">/// \note CAN BE CHANGED: The parameter to \b osMailQ shall be consistent but the</span></div>
+<div class="line"><span class="comment">/// macro body is implementation specific in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="preprocessor">#define osMailQ(name) \</span></div>
+<div class="line"><span class="preprocessor">&amp;os_mailQ_def_##name</span></div>
+<div class="line"><span class="preprocessor"></span> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Create and Initialize mail queue.</span></div>
+<div class="line"><span class="comment">/// \param[in] queue_def reference to the mail queue definition obtain with \ref osMailQ</span></div>
+<div class="line"><span class="comment">/// \param[in] thread_id thread ID (obtained by \ref osThreadCreate or \ref osThreadGetId) or NULL.</span></div>
+<div class="line"><span class="comment">/// \return mail queue ID for reference by other functions or NULL in case of error.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osMailCreate shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span>osMailQId <a class="code" href="group__CMSIS__RTOS__Mail.html#gaa177e7fe5820dd70d8c9e46ded131174">osMailCreate</a> (<span class="keyword">const</span> <a class="code" href="cmsis__os_8h.html#structosMailQDef__t">osMailQDef_t</a> *queue_def, osThreadId thread_id);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Allocate a memory block from a mail.</span></div>
+<div class="line"><span class="comment">/// \param[in] queue_id mail queue ID obtained with \ref osMailCreate.</span></div>
+<div class="line"><span class="comment">/// \param[in] millisec \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out</span></div>
+<div class="line"><span class="comment">/// \return pointer to memory block that can be filled with mail or NULL in case of error.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osMailAlloc shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="keywordtype">void</span> *<a class="code" href="group__CMSIS__RTOS__Mail.html#gadf5ce811bd6a56e617e902a1db6c2194">osMailAlloc</a> (osMailQId queue_id, uint32_t millisec);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Allocate a memory block from a mail and set memory block to zero.</span></div>
+<div class="line"><span class="comment">/// \param[in] queue_id mail queue ID obtained with \ref osMailCreate.</span></div>
+<div class="line"><span class="comment">/// \param[in] millisec \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out</span></div>
+<div class="line"><span class="comment">/// \return pointer to memory block that can be filled with mail or NULL in case of error.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osMailCAlloc shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><span class="keywordtype">void</span> *<a class="code" href="group__CMSIS__RTOS__Mail.html#ga8fde74f6fe5b9e88f75cc5eb8f2124fd">osMailCAlloc</a> (osMailQId queue_id, uint32_t millisec);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Put a mail to a queue.</span></div>
+<div class="line"><span class="comment">/// \param[in] queue_id mail queue ID obtained with \ref osMailCreate.</span></div>
+<div class="line"><span class="comment">/// \param[in] mail memory block previously allocated with \ref osMailAlloc or \ref osMailCAlloc.</span></div>
+<div class="line"><span class="comment">/// \return status code that indicates the execution status of the function.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osMailPut shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> <a class="code" href="group__CMSIS__RTOS__Mail.html#ga485ef6f81854ebda8ffbce4832181e02">osMailPut</a> (osMailQId queue_id, <span class="keywordtype">void</span> *mail);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Get a mail from a queue.</span></div>
+<div class="line"><span class="comment">/// \param[in] queue_id mail queue ID obtained with \ref osMailCreate.</span></div>
+<div class="line"><span class="comment">/// \param[in] millisec \ref CMSIS_RTOS_TimeOutValue or 0 in case of no time-out</span></div>
+<div class="line"><span class="comment">/// \return event that contains mail information or error code.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osMailGet shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><a class="code" href="group__CMSIS__RTOS__Definitions.html#structosEvent">osEvent</a> <a class="code" href="group__CMSIS__RTOS__Mail.html#gac6ad7e6e7d6c4a80e60da22c57a42ccd">osMailGet</a> (osMailQId queue_id, uint32_t millisec);</div>
+<div class="line"> <span class="comment"></span></div>
+<div class="line"><span class="comment">/// Free a memory block from a mail.</span></div>
+<div class="line"><span class="comment">/// \param[in] queue_id mail queue ID obtained with \ref osMailCreate.</span></div>
+<div class="line"><span class="comment">/// \param[in] mail pointer to the memory block that was obtained with \ref osMailGet.</span></div>
+<div class="line"><span class="comment">/// \return status code that indicates the execution status of the function.</span></div>
+<div class="line"><span class="comment">/// \note MUST REMAIN UNCHANGED: \b osMailFree shall be consistent in every CMSIS-RTOS.</span></div>
+<div class="line"><span class="comment"></span><a class="code" href="group__CMSIS__RTOS__Status.html#gae2e091fefc4c767117727bd5aba4d99e">osStatus</a> <a class="code" href="group__CMSIS__RTOS__Mail.html#ga27c1060cf21393f96b4fd1ed1c0167cc">osMailFree</a> (osMailQId queue_id, <span class="keywordtype">void</span> *mail);</div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#endif // Mail Queues available</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"> </div>
+<div class="line"><span class="preprocessor">#ifdef __cplusplus</span></div>
+<div class="line"><span class="preprocessor"></span>}</div>
+<div class="line"><span class="preprocessor">#endif</span></div>
+<div class="line"><span class="preprocessor"></span> </div>
+<div class="line"><span class="preprocessor">#endif // _CMSIS_OS_H</span></div>
+</div><!-- fragment --> </div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="index.html">index</a></li>
+ <li class="footer">Generated on Wed Aug 1 2018 17:12:43 for CMSIS-RTOS by Arm Ltd. All rights reserved.
+ <!--
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.6
+ -->
+ </li>
+ </ul>
+</div>
+</body>
+</html>