├── .cyignore
├── docs
├── html
│ ├── bc_s.png
│ ├── bdwn.png
│ ├── doc.png
│ ├── logo.png
│ ├── open.png
│ ├── closed.png
│ ├── nav_f.png
│ ├── nav_g.png
│ ├── nav_h.png
│ ├── sync_on.png
│ ├── tab_a.png
│ ├── tab_b.png
│ ├── tab_h.png
│ ├── tab_s.png
│ ├── splitbar.png
│ ├── sync_off.png
│ ├── folderclosed.png
│ ├── folderopen.png
│ ├── search
│ │ ├── search_l.png
│ │ ├── search_m.png
│ │ ├── search_r.png
│ │ ├── pages_0.js
│ │ ├── all_2.js
│ │ ├── all_5.js
│ │ ├── groups_0.js
│ │ ├── groups_1.js
│ │ ├── groups_2.js
│ │ ├── groups_3.js
│ │ ├── all_9.js
│ │ ├── groups_7.js
│ │ ├── all_4.js
│ │ ├── variables_4.js
│ │ ├── variables_2.js
│ │ ├── groups_4.js
│ │ ├── groups_5.js
│ │ ├── all_6.js
│ │ ├── groups_6.js
│ │ ├── all_3.js
│ │ ├── variables_1.js
│ │ ├── variables_0.js
│ │ ├── classes_0.js
│ │ ├── all_1.js
│ │ ├── all_8.js
│ │ ├── variables_3.js
│ │ ├── nomatches.html
│ │ ├── all_7.js
│ │ ├── searchdata.js
│ │ ├── enums_0.js
│ │ ├── close.svg
│ │ ├── all_0.html
│ │ ├── all_1.html
│ │ ├── all_2.html
│ │ ├── all_3.html
│ │ ├── all_4.html
│ │ ├── all_5.html
│ │ ├── all_6.html
│ │ ├── all_7.html
│ │ ├── all_8.html
│ │ ├── all_9.html
│ │ ├── enums_0.html
│ │ ├── pages_0.html
│ │ ├── classes_0.html
│ │ ├── groups_0.html
│ │ ├── groups_1.html
│ │ ├── groups_2.html
│ │ ├── groups_3.html
│ │ ├── groups_4.html
│ │ ├── groups_5.html
│ │ ├── groups_6.html
│ │ ├── groups_7.html
│ │ ├── typedefs_0.html
│ │ ├── enumvalues_0.html
│ │ ├── functions_0.html
│ │ ├── variables_0.html
│ │ ├── variables_1.html
│ │ ├── variables_2.html
│ │ ├── variables_3.html
│ │ ├── variables_4.html
│ │ ├── typedefs_0.js
│ │ ├── mag_sel.svg
│ │ ├── enumvalues_0.js
│ │ ├── search.css
│ │ └── functions_0.js
│ ├── group__group__abstraction__rtos__time.js
│ ├── modules.js
│ ├── group__group__abstraction__rtos__mutex.js
│ ├── group__group__abstraction__rtos__common.js
│ ├── group__group__abstraction__rtos__semaphore.js
│ ├── menudata.js
│ ├── group__group__abstraction__rtos__event.js
│ ├── group__group__abstraction__rtos__scheduler.js
│ ├── group__group__abstraction__rtos__timer.js
│ ├── group__group__abstraction__rtos__queue.js
│ ├── navtreedata.js
│ ├── group__group__abstraction__rtos__port.js
│ ├── navtree.css
│ ├── group__group__worker__thread__util.js
│ ├── group__group__abstraction__rtos__threads.js
│ ├── dynsections.js
│ ├── resize.js
│ ├── menu.js
│ └── modules.html
└── api_reference_manual.html
├── props.json
├── include
├── COMPONENT_FREERTOS
│ ├── cyabs_rtos_dsram.h
│ ├── cyabs_rtos_impl.h
│ ├── cyabs_rtos_types.h
│ └── cyabs_rtos_hal_impl.h
├── COMPONENT_RTX
│ ├── cyabs_rtos_dsram.h
│ ├── cyabs_rtos_impl.h
│ └── cyabs_rtos_types.h
├── COMPONENT_THREADX
│ ├── cyabs_rtos_dsram.h
│ ├── cyabs_rtos_impl.h
│ ├── cyabs_rtos_types.h
│ └── COMPONENT_CAT5
│ │ └── cyabs_rtos_impl_cat5.h
├── cyabs_rtos_internal.h
├── Template
│ └── cyabs_rtos_impl.h
└── cy_worker_thread.h
├── source
├── COMPONENT_RTX
│ └── cyabs_rtos_dsram.c
├── COMPONENT_THREADX
│ └── cyabs_rtos_dsram.c
└── COMPONENT_FREERTOS
│ ├── cyabs_freertos_common.c
│ └── cyabs_rtos_dsram.c
├── RELEASE.md
└── README.md
/.cyignore:
--------------------------------------------------------------------------------
1 | docs
2 | include/Template
3 |
--------------------------------------------------------------------------------
/docs/html/bc_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infineon/abstraction-rtos/HEAD/docs/html/bc_s.png
--------------------------------------------------------------------------------
/docs/html/bdwn.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infineon/abstraction-rtos/HEAD/docs/html/bdwn.png
--------------------------------------------------------------------------------
/docs/html/doc.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infineon/abstraction-rtos/HEAD/docs/html/doc.png
--------------------------------------------------------------------------------
/docs/html/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infineon/abstraction-rtos/HEAD/docs/html/logo.png
--------------------------------------------------------------------------------
/docs/html/open.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infineon/abstraction-rtos/HEAD/docs/html/open.png
--------------------------------------------------------------------------------
/docs/html/closed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infineon/abstraction-rtos/HEAD/docs/html/closed.png
--------------------------------------------------------------------------------
/docs/html/nav_f.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infineon/abstraction-rtos/HEAD/docs/html/nav_f.png
--------------------------------------------------------------------------------
/docs/html/nav_g.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infineon/abstraction-rtos/HEAD/docs/html/nav_g.png
--------------------------------------------------------------------------------
/docs/html/nav_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infineon/abstraction-rtos/HEAD/docs/html/nav_h.png
--------------------------------------------------------------------------------
/docs/html/sync_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infineon/abstraction-rtos/HEAD/docs/html/sync_on.png
--------------------------------------------------------------------------------
/docs/html/tab_a.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infineon/abstraction-rtos/HEAD/docs/html/tab_a.png
--------------------------------------------------------------------------------
/docs/html/tab_b.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infineon/abstraction-rtos/HEAD/docs/html/tab_b.png
--------------------------------------------------------------------------------
/docs/html/tab_h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infineon/abstraction-rtos/HEAD/docs/html/tab_h.png
--------------------------------------------------------------------------------
/docs/html/tab_s.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infineon/abstraction-rtos/HEAD/docs/html/tab_s.png
--------------------------------------------------------------------------------
/docs/html/splitbar.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infineon/abstraction-rtos/HEAD/docs/html/splitbar.png
--------------------------------------------------------------------------------
/docs/html/sync_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infineon/abstraction-rtos/HEAD/docs/html/sync_off.png
--------------------------------------------------------------------------------
/docs/html/folderclosed.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infineon/abstraction-rtos/HEAD/docs/html/folderclosed.png
--------------------------------------------------------------------------------
/docs/html/folderopen.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infineon/abstraction-rtos/HEAD/docs/html/folderopen.png
--------------------------------------------------------------------------------
/docs/html/search/search_l.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infineon/abstraction-rtos/HEAD/docs/html/search/search_l.png
--------------------------------------------------------------------------------
/docs/html/search/search_m.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infineon/abstraction-rtos/HEAD/docs/html/search/search_m.png
--------------------------------------------------------------------------------
/docs/html/search/search_r.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Infineon/abstraction-rtos/HEAD/docs/html/search/search_r.png
--------------------------------------------------------------------------------
/docs/html/search/pages_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['rtos_20abstraction_0',['RTOS Abstraction',['../index.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/all_2.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['mutex_0',['Mutex',['../group__group__abstraction__rtos__mutex.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/all_5.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['queue_0',['Queue',['../group__group__abstraction__rtos__queue.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/groups_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['common_0',['Common',['../group__group__abstraction__rtos__common.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/groups_1.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['events_0',['Events',['../group__group__abstraction__rtos__event.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/groups_2.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['mutex_0',['Mutex',['../group__group__abstraction__rtos__mutex.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/groups_3.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['queue_0',['Queue',['../group__group__abstraction__rtos__queue.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/all_9.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['worker_20thread_20utility_0',['Worker Thread Utility',['../group__group__worker__thread__util.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/groups_7.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['worker_20thread_20utility_0',['Worker Thread Utility',['../group__group__worker__thread__util.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/props.json:
--------------------------------------------------------------------------------
1 | {
2 | "core": {
3 | "id": "83097955-1d6f-526e-97c4-75ce7920222f",
4 | "name": "abstraction-rtos",
5 | "version": "1.12.0.2401"
6 | }
7 | }
--------------------------------------------------------------------------------
/docs/html/search/all_4.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['priority_0',['priority',['../group__group__worker__thread__util.html#ae02e3a16a65e7bb72e10647beceb1fac',1,'cy_worker_thread_params_t']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/variables_4.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['thread_0',['thread',['../group__group__worker__thread__util.html#a1efa83728c9763f3738676b959236347',1,'cy_worker_thread_info_t']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/variables_2.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['priority_0',['priority',['../group__group__worker__thread__util.html#ae02e3a16a65e7bb72e10647beceb1fac',1,'cy_worker_thread_params_t']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/groups_4.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['rtos_20specific_20types_2c_20defines_20and_20statuses_0',['RTOS Specific Types, Defines and Statuses',['../group__group__abstraction__rtos__port.html',1,'']]]
4 | ];
5 |
--------------------------------------------------------------------------------
/docs/html/search/groups_5.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['scheduler_0',['Scheduler',['../group__group__abstraction__rtos__scheduler.html',1,'']]],
4 | ['semaphore_1',['Semaphore',['../group__group__abstraction__rtos__semaphore.html',1,'']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/all_6.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['rtos_20abstraction_0',['RTOS Abstraction',['../index.html',1,'']]],
4 | ['rtos_20specific_20types_2c_20defines_20and_20statuses_1',['RTOS Specific Types, Defines and Statuses',['../group__group__abstraction__rtos__port.html',1,'']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/groups_6.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['threads_0',['Threads',['../group__group__abstraction__rtos__threads.html',1,'']]],
4 | ['time_1',['Time',['../group__group__abstraction__rtos__time.html',1,'']]],
5 | ['timer_2',['Timer',['../group__group__abstraction__rtos__timer.html',1,'']]]
6 | ];
7 |
--------------------------------------------------------------------------------
/docs/html/search/all_3.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['name_0',['name',['../group__group__worker__thread__util.html#a31710f19616d90ca7ccd2076287bb028',1,'cy_worker_thread_params_t']]],
4 | ['num_5fentries_1',['num_entries',['../group__group__worker__thread__util.html#ae0bee3f6b0c9b3250e7b3bba2a6fb012',1,'cy_worker_thread_params_t']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/variables_1.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['name_0',['name',['../group__group__worker__thread__util.html#a31710f19616d90ca7ccd2076287bb028',1,'cy_worker_thread_params_t']]],
4 | ['num_5fentries_1',['num_entries',['../group__group__worker__thread__util.html#ae0bee3f6b0c9b3250e7b3bba2a6fb012',1,'cy_worker_thread_params_t']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/variables_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['enqueue_5fcount_0',['enqueue_count',['../group__group__worker__thread__util.html#ab2f74dcd0e41ac82b69e15317912dc56',1,'cy_worker_thread_info_t']]],
4 | ['event_5fqueue_1',['event_queue',['../group__group__worker__thread__util.html#af921b846c4cdb4ee1b4de6267ae2c2a2',1,'cy_worker_thread_info_t']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/classes_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['cy_5fworker_5fthread_5finfo_5ft_0',['cy_worker_thread_info_t',['../group__group__worker__thread__util.html#structcy__worker__thread__info__t',1,'']]],
4 | ['cy_5fworker_5fthread_5fparams_5ft_1',['cy_worker_thread_params_t',['../group__group__worker__thread__util.html#structcy__worker__thread__params__t',1,'']]]
5 | ];
6 |
--------------------------------------------------------------------------------
/docs/html/search/all_1.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['enqueue_5fcount_0',['enqueue_count',['../group__group__worker__thread__util.html#ab2f74dcd0e41ac82b69e15317912dc56',1,'cy_worker_thread_info_t']]],
4 | ['event_5fqueue_1',['event_queue',['../group__group__worker__thread__util.html#af921b846c4cdb4ee1b4de6267ae2c2a2',1,'cy_worker_thread_info_t']]],
5 | ['events_2',['Events',['../group__group__abstraction__rtos__event.html',1,'']]]
6 | ];
7 |
--------------------------------------------------------------------------------
/docs/html/search/all_8.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['thread_0',['thread',['../group__group__worker__thread__util.html#a1efa83728c9763f3738676b959236347',1,'cy_worker_thread_info_t']]],
4 | ['threads_1',['Threads',['../group__group__abstraction__rtos__threads.html',1,'']]],
5 | ['time_2',['Time',['../group__group__abstraction__rtos__time.html',1,'']]],
6 | ['timer_3',['Timer',['../group__group__abstraction__rtos__timer.html',1,'']]]
7 | ];
8 |
--------------------------------------------------------------------------------
/docs/html/group__group__abstraction__rtos__time.js:
--------------------------------------------------------------------------------
1 | var group__group__abstraction__rtos__time =
2 | [
3 | [ "cy_rtos_get_time", "group__group__abstraction__rtos__time.html#ga15de185db07e4563b8d93b37ac941c51", null ],
4 | [ "cy_rtos_time_get", "group__group__abstraction__rtos__time.html#ga50f9ef2bbd3c518e0bf43ee14085e8bc", null ],
5 | [ "cy_rtos_delay_milliseconds", "group__group__abstraction__rtos__time.html#gaa33d9f3026f722ac92950c6215e4283a", null ]
6 | ];
--------------------------------------------------------------------------------
/docs/html/search/variables_3.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['stack_0',['stack',['../group__group__worker__thread__util.html#a7dcafa34217aecb4f6745d162b20a256',1,'cy_worker_thread_params_t']]],
4 | ['stack_5fsize_1',['stack_size',['../group__group__worker__thread__util.html#a1ab40c8bd034655877e583026cfb20ff',1,'cy_worker_thread_params_t']]],
5 | ['state_2',['state',['../group__group__worker__thread__util.html#a684566a02021807ad40ebdddf3e38def',1,'cy_worker_thread_info_t']]]
6 | ];
7 |
--------------------------------------------------------------------------------
/docs/html/search/nomatches.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
12 |
13 |
14 |
--------------------------------------------------------------------------------
/docs/html/search/all_7.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['scheduler_0',['Scheduler',['../group__group__abstraction__rtos__scheduler.html',1,'']]],
4 | ['semaphore_1',['Semaphore',['../group__group__abstraction__rtos__semaphore.html',1,'']]],
5 | ['stack_2',['stack',['../group__group__worker__thread__util.html#a7dcafa34217aecb4f6745d162b20a256',1,'cy_worker_thread_params_t']]],
6 | ['stack_5fsize_3',['stack_size',['../group__group__worker__thread__util.html#a1ab40c8bd034655877e583026cfb20ff',1,'cy_worker_thread_params_t']]],
7 | ['state_4',['state',['../group__group__worker__thread__util.html#a684566a02021807ad40ebdddf3e38def',1,'cy_worker_thread_info_t']]]
8 | ];
9 |
--------------------------------------------------------------------------------
/docs/api_reference_manual.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | Redirect to API Reference Manual main page after 0 seconds
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 | If the automatic redirection is failing, click the following link to open API Reference Manual .
13 |
14 |
15 |
--------------------------------------------------------------------------------
/docs/html/search/searchdata.js:
--------------------------------------------------------------------------------
1 | var indexSectionsWithContent =
2 | {
3 | 0: "cemnpqrstw",
4 | 1: "c",
5 | 2: "c",
6 | 3: "enpst",
7 | 4: "c",
8 | 5: "c",
9 | 6: "c",
10 | 7: "cemqrstw",
11 | 8: "r"
12 | };
13 |
14 | var indexSectionNames =
15 | {
16 | 0: "all",
17 | 1: "classes",
18 | 2: "functions",
19 | 3: "variables",
20 | 4: "typedefs",
21 | 5: "enums",
22 | 6: "enumvalues",
23 | 7: "groups",
24 | 8: "pages"
25 | };
26 |
27 | var indexSectionLabels =
28 | {
29 | 0: "All",
30 | 1: "Data Structures",
31 | 2: "Functions",
32 | 3: "Variables",
33 | 4: "Typedefs",
34 | 5: "Enumerations",
35 | 6: "Enumerator",
36 | 7: "Modules",
37 | 8: "Pages"
38 | };
39 |
40 |
--------------------------------------------------------------------------------
/docs/html/search/enums_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['cy_5fscheduler_5fstate_5ft_0',['cy_scheduler_state_t',['../group__group__abstraction__rtos__scheduler.html#gaae80bd02ca4ff97c131716f4237d1645',1,'cyabs_rtos.h']]],
4 | ['cy_5fthread_5fpriority_5ft_1',['cy_thread_priority_t',['../group__group__abstraction__rtos__port.html#ga9f21bb78897c25df019b6e4286ecc7a0',1,'cyabs_rtos_impl.h']]],
5 | ['cy_5fthread_5fstate_5ft_2',['cy_thread_state_t',['../group__group__abstraction__rtos__threads.html#gacc555d9fef9df1454dbcc8e3bd3e4ee6',1,'cyabs_rtos.h']]],
6 | ['cy_5ftimer_5ftrigger_5ftype_5ft_3',['cy_timer_trigger_type_t',['../group__group__abstraction__rtos__timer.html#ga0606aecc2c90e9315f7da5e3daa3ffc1',1,'cyabs_rtos.h']]],
7 | ['cy_5fworker_5fthread_5fstate_5ft_4',['cy_worker_thread_state_t',['../group__group__worker__thread__util.html#ga514bc54aa543a69ce1768903b9851473',1,'cy_worker_thread.h']]]
8 | ];
9 |
--------------------------------------------------------------------------------
/docs/html/modules.js:
--------------------------------------------------------------------------------
1 | var modules =
2 | [
3 | [ "Common", "group__group__abstraction__rtos__common.html", "group__group__abstraction__rtos__common" ],
4 | [ "Events", "group__group__abstraction__rtos__event.html", "group__group__abstraction__rtos__event" ],
5 | [ "Mutex", "group__group__abstraction__rtos__mutex.html", "group__group__abstraction__rtos__mutex" ],
6 | [ "Queue", "group__group__abstraction__rtos__queue.html", "group__group__abstraction__rtos__queue" ],
7 | [ "Semaphore", "group__group__abstraction__rtos__semaphore.html", "group__group__abstraction__rtos__semaphore" ],
8 | [ "Threads", "group__group__abstraction__rtos__threads.html", "group__group__abstraction__rtos__threads" ],
9 | [ "Scheduler", "group__group__abstraction__rtos__scheduler.html", "group__group__abstraction__rtos__scheduler" ],
10 | [ "Time", "group__group__abstraction__rtos__time.html", "group__group__abstraction__rtos__time" ],
11 | [ "Timer", "group__group__abstraction__rtos__timer.html", "group__group__abstraction__rtos__timer" ],
12 | [ "Worker Thread Utility", "group__group__worker__thread__util.html", "group__group__worker__thread__util" ]
13 | ];
--------------------------------------------------------------------------------
/docs/html/group__group__abstraction__rtos__mutex.js:
--------------------------------------------------------------------------------
1 | var group__group__abstraction__rtos__mutex =
2 | [
3 | [ "cy_rtos_init_mutex2", "group__group__abstraction__rtos__mutex.html#ga971606a7b21c982c87a11933465110f9", null ],
4 | [ "cy_rtos_init_mutex", "group__group__abstraction__rtos__mutex.html#ga79fbca5c574d2bc617af90d4bff6c902", null ],
5 | [ "cy_rtos_get_mutex", "group__group__abstraction__rtos__mutex.html#ga5931cc662867a2ee281327506b4da85a", null ],
6 | [ "cy_rtos_set_mutex", "group__group__abstraction__rtos__mutex.html#ga4af2611cb8f459d1b3c2d872a2690bdf", null ],
7 | [ "cy_rtos_deinit_mutex", "group__group__abstraction__rtos__mutex.html#ga0f182fcf04af391bd073a2d17c4af716", null ],
8 | [ "cy_rtos_mutex_init", "group__group__abstraction__rtos__mutex.html#ga7bfc42214af6ee47e803e761c84beed5", null ],
9 | [ "cy_rtos_mutex_get", "group__group__abstraction__rtos__mutex.html#gaa40e24bd907a739e8fe012b53120cbcd", null ],
10 | [ "cy_rtos_mutex_set", "group__group__abstraction__rtos__mutex.html#ga295b4fe6576c3f86f2569e65cd70b84f", null ],
11 | [ "cy_rtos_mutex_deinit", "group__group__abstraction__rtos__mutex.html#gac001ff85c634852dde8671c5e9f7b542", null ]
12 | ];
--------------------------------------------------------------------------------
/docs/html/group__group__abstraction__rtos__common.js:
--------------------------------------------------------------------------------
1 | var group__group__abstraction__rtos__common =
2 | [
3 | [ "RTOS Specific Types, Defines and Statuses", "group__group__abstraction__rtos__port.html", "group__group__abstraction__rtos__port" ],
4 | [ "CY_RSLT_SUCCESS", "group__group__abstraction__rtos__common.html#gaf58fac450d9fff4472f03ad68f6e546e", null ],
5 | [ "CY_RTOS_NEVER_TIMEOUT", "group__group__abstraction__rtos__common.html#gab31d8535128df9506a4220c2b1f41a60", null ],
6 | [ "CY_RTOS_TIMEOUT", "group__group__abstraction__rtos__common.html#gafc6a1c6f563521d6c5555027d5d7bde8", null ],
7 | [ "CY_RTOS_NO_MEMORY", "group__group__abstraction__rtos__common.html#ga516d500bef7d6e6291f08485d0bc003b", null ],
8 | [ "CY_RTOS_GENERAL_ERROR", "group__group__abstraction__rtos__common.html#ga89a0a071bd7a41b5d1f3edb969ee1647", null ],
9 | [ "CY_RTOS_BAD_PARAM", "group__group__abstraction__rtos__common.html#ga3b106a6fcedd377b05769dbf2b6f97a9", null ],
10 | [ "CY_RTOS_ALIGNMENT_ERROR", "group__group__abstraction__rtos__common.html#ga7eac5e076f6f4b70e3478b507a9d90f2", null ],
11 | [ "CY_RTOS_UNSUPPORTED", "group__group__abstraction__rtos__common.html#ga02c5dfbf101b3f6dcbe1879466c74a1f", null ],
12 | [ "cy_rtos_last_error", "group__group__abstraction__rtos__common.html#ga3139176b7294e8b283d4f8b56dea3e54", null ]
13 | ];
--------------------------------------------------------------------------------
/docs/html/group__group__abstraction__rtos__semaphore.js:
--------------------------------------------------------------------------------
1 | var group__group__abstraction__rtos__semaphore =
2 | [
3 | [ "cy_rtos_init_semaphore", "group__group__abstraction__rtos__semaphore.html#ga7055cc8d6884cd2b93e2011ef08d84e4", null ],
4 | [ "cy_rtos_get_semaphore", "group__group__abstraction__rtos__semaphore.html#ga10f0ba0306c010872f8a38da2d1ccdd8", null ],
5 | [ "cy_rtos_set_semaphore", "group__group__abstraction__rtos__semaphore.html#gaec806e3bfa73d3a2cdfa556bd30b1a98", null ],
6 | [ "cy_rtos_get_count_semaphore", "group__group__abstraction__rtos__semaphore.html#ga1c755e4ab340acaf409e3c2698dc6174", null ],
7 | [ "cy_rtos_deinit_semaphore", "group__group__abstraction__rtos__semaphore.html#ga023920ded27d2f3f44296995b2a31b47", null ],
8 | [ "cy_rtos_semaphore_init", "group__group__abstraction__rtos__semaphore.html#gaf9b9e58ee67cbbe5fb53cedcaa01c318", null ],
9 | [ "cy_rtos_semaphore_get", "group__group__abstraction__rtos__semaphore.html#ga7e8127c90dc05dc9f066dcd5a936768c", null ],
10 | [ "cy_rtos_semaphore_set", "group__group__abstraction__rtos__semaphore.html#ga3ede561d7a78c573ef37251f979afda2", null ],
11 | [ "cy_rtos_semaphore_get_count", "group__group__abstraction__rtos__semaphore.html#ga2a8cda29a29325cd934bac2e6194dc51", null ],
12 | [ "cy_rtos_semaphore_deinit", "group__group__abstraction__rtos__semaphore.html#ga63e4f7e66731826f51867c5f9ab2be68", null ]
13 | ];
--------------------------------------------------------------------------------
/docs/html/search/close.svg:
--------------------------------------------------------------------------------
1 |
2 |
13 |
15 |
16 |
18 | image/svg+xml
19 |
21 |
22 |
23 |
24 |
25 |
27 |
31 |
32 |
--------------------------------------------------------------------------------
/docs/html/menudata.js:
--------------------------------------------------------------------------------
1 | /*
2 | @licstart The following is the entire license notice for the JavaScript code in this file.
3 |
4 | The MIT License (MIT)
5 |
6 | Copyright (C) 1997-2020 by Dimitri van Heesch
7 |
8 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software
9 | and associated documentation files (the "Software"), to deal in the Software without restriction,
10 | including without limitation the rights to use, copy, modify, merge, publish, distribute,
11 | sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in all copies or
15 | substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
18 | BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
20 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 |
23 | @licend The above is the entire license notice for the JavaScript code in this file
24 | */
25 | var menudata={children:[
26 | {text:"Home",url:"index.html"},
27 | {text:"API Reference",url:"modules.html"}]}
28 |
--------------------------------------------------------------------------------
/docs/html/group__group__abstraction__rtos__event.js:
--------------------------------------------------------------------------------
1 | var group__group__abstraction__rtos__event =
2 | [
3 | [ "cy_rtos_init_event", "group__group__abstraction__rtos__event.html#ga876c2431603a3078aa1a527069327230", null ],
4 | [ "cy_rtos_setbits_event", "group__group__abstraction__rtos__event.html#gaf44d3a1967f1acc4fa43f5b30f384aab", null ],
5 | [ "cy_rtos_clearbits_event", "group__group__abstraction__rtos__event.html#ga37b6d20124db4a5a662bbeb6615b059c", null ],
6 | [ "cy_rtos_getbits_event", "group__group__abstraction__rtos__event.html#gaa4359a5175007f43f1807928158de6df", null ],
7 | [ "cy_rtos_waitbits_event", "group__group__abstraction__rtos__event.html#ga9400f434cf250090f74fbf2b5395a6b1", null ],
8 | [ "cy_rtos_deinit_event", "group__group__abstraction__rtos__event.html#gad32ce50c58dfb3d0385254a2fab2ee84", null ],
9 | [ "cy_rtos_event_init", "group__group__abstraction__rtos__event.html#gad8d43f45c8ec30cda6d367b354b67c83", null ],
10 | [ "cy_rtos_event_setbits", "group__group__abstraction__rtos__event.html#ga4fc26a51459a1f7a7c69e8c2ae907f59", null ],
11 | [ "cy_rtos_event_clearbits", "group__group__abstraction__rtos__event.html#ga81ef80c66ff0781c02e75beb6e1f84b2", null ],
12 | [ "cy_rtos_event_getbits", "group__group__abstraction__rtos__event.html#ga07d7ef2ac2abc5691b1cd3ededdc4acb", null ],
13 | [ "cy_rtos_event_waitbits", "group__group__abstraction__rtos__event.html#ga03f1bf37c0723f8261c83acad5573025", null ],
14 | [ "cy_rtos_event_deinit", "group__group__abstraction__rtos__event.html#ga49e33889cccd7fa53243cf0d45007ced", null ]
15 | ];
--------------------------------------------------------------------------------
/docs/html/search/all_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/all_1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/all_2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/all_3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/all_4.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/all_5.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/all_6.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/all_7.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/all_8.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/all_9.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/enums_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/pages_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/classes_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/groups_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/groups_1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/groups_2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/groups_3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/groups_4.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/groups_5.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/groups_6.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/groups_7.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/typedefs_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/enumvalues_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/functions_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/variables_0.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/variables_1.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/variables_2.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/variables_3.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/search/variables_4.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
Loading...
13 |
14 |
19 |
Searching...
20 |
No Matches
21 |
35 |
36 |
37 |
38 |
--------------------------------------------------------------------------------
/docs/html/group__group__abstraction__rtos__scheduler.js:
--------------------------------------------------------------------------------
1 | var group__group__abstraction__rtos__scheduler =
2 | [
3 | [ "cy_scheduler_state_t", "group__group__abstraction__rtos__scheduler.html#gaae80bd02ca4ff97c131716f4237d1645", [
4 | [ "CY_SCHEDULER_STATE_NOT_STARTED", "group__group__abstraction__rtos__scheduler.html#ggaae80bd02ca4ff97c131716f4237d1645a84a073d2452b8ae5cca71e46bfc77242", null ],
5 | [ "CY_SCHEDULER_STATE_INACTIVE", "group__group__abstraction__rtos__scheduler.html#ggaae80bd02ca4ff97c131716f4237d1645a5801e4f5f63c70077b70c9a76be3f545", null ],
6 | [ "CY_SCHEDULER_STATE_LOCKED", "group__group__abstraction__rtos__scheduler.html#ggaae80bd02ca4ff97c131716f4237d1645a6ed064567a0ccad21758150cb5567313", null ],
7 | [ "CY_SCHEDULER_STATE_READY", "group__group__abstraction__rtos__scheduler.html#ggaae80bd02ca4ff97c131716f4237d1645ad1d31d8c4f4024294a34e583a93c7f5b", null ],
8 | [ "CY_SCHEDULER_STATE_SUSPENDED", "group__group__abstraction__rtos__scheduler.html#ggaae80bd02ca4ff97c131716f4237d1645aa2f87b6561949bc85070993e56d3dc8d", null ],
9 | [ "CY_SCHEDULER_STATE_RUNNING", "group__group__abstraction__rtos__scheduler.html#ggaae80bd02ca4ff97c131716f4237d1645a30ff479458cd9efde31576feb31a680a", null ],
10 | [ "CY_SCHEDULER_STATE_UNKNOWN", "group__group__abstraction__rtos__scheduler.html#ggaae80bd02ca4ff97c131716f4237d1645a2155088897bb9ebf86f72ac83fc87c4a", null ]
11 | ] ],
12 | [ "cy_rtos_scheduler_suspend", "group__group__abstraction__rtos__scheduler.html#ga61f383c18398803438e76f280e2ba003", null ],
13 | [ "cy_rtos_scheduler_resume", "group__group__abstraction__rtos__scheduler.html#ga9e704925c79ff121e69f3f96b810b41f", null ],
14 | [ "cy_rtos_scheduler_get_state", "group__group__abstraction__rtos__scheduler.html#ga5c4b8f8ce8f98d0bece44621fe194ac4", null ]
15 | ];
--------------------------------------------------------------------------------
/docs/html/group__group__abstraction__rtos__timer.js:
--------------------------------------------------------------------------------
1 | var group__group__abstraction__rtos__timer =
2 | [
3 | [ "cy_rtos_init_timer", "group__group__abstraction__rtos__timer.html#gae0634f5811ce7d7fff6e9aa7fc4a35dd", null ],
4 | [ "cy_rtos_start_timer", "group__group__abstraction__rtos__timer.html#ga301364ce1436e199f4287fea6babedb9", null ],
5 | [ "cy_rtos_stop_timer", "group__group__abstraction__rtos__timer.html#ga633bb9ee0729d1dd87da4bfa0c874c23", null ],
6 | [ "cy_rtos_is_running_timer", "group__group__abstraction__rtos__timer.html#ga3583611b63961c65a1bee5291ace6fbf", null ],
7 | [ "cy_rtos_deinit_timer", "group__group__abstraction__rtos__timer.html#ga9fa3d4fd5d73445a40f4dffd263d734e", null ],
8 | [ "cy_timer_callback_t", "group__group__abstraction__rtos__timer.html#ga92b29af1c848137e18dec1ae1cb5ffec", null ],
9 | [ "cy_timer_trigger_type_t", "group__group__abstraction__rtos__timer.html#ga0606aecc2c90e9315f7da5e3daa3ffc1", [
10 | [ "CY_TIMER_TYPE_PERIODIC", "group__group__abstraction__rtos__timer.html#gga0606aecc2c90e9315f7da5e3daa3ffc1af7a191ed0c1879be4d0840a166299839", null ],
11 | [ "CY_TIMER_TYPE_ONCE", "group__group__abstraction__rtos__timer.html#gga0606aecc2c90e9315f7da5e3daa3ffc1af554aa26a56ebee9da223be7c1f9d0e1", null ]
12 | ] ],
13 | [ "cy_rtos_timer_init", "group__group__abstraction__rtos__timer.html#ga4d679d61e091ef8abf70d95bc1496c91", null ],
14 | [ "cy_rtos_timer_start", "group__group__abstraction__rtos__timer.html#ga978c045f4f7bd1bc2dda5039426b2475", null ],
15 | [ "cy_rtos_timer_stop", "group__group__abstraction__rtos__timer.html#gab7aac5b6be6876806aed8e18f43ccc7f", null ],
16 | [ "cy_rtos_timer_is_running", "group__group__abstraction__rtos__timer.html#ga7bf456853b8b353bf19977381377322b", null ],
17 | [ "cy_rtos_timer_deinit", "group__group__abstraction__rtos__timer.html#ga1c9db37ed530cce390d282e224d3b1bf", null ]
18 | ];
--------------------------------------------------------------------------------
/include/COMPONENT_FREERTOS/cyabs_rtos_dsram.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************************************//**
2 | * \file cyabs_rtos_dsram.h
3 | *
4 | * \brief
5 | * Internal definitions for DSRAM implementation on Freertos
6 | *
7 | ***************************************************************************************************
8 | * \copyright
9 | * Copyright 2019-2021 Cypress Semiconductor Corporation (an Infineon company) or
10 | * an affiliate of Cypress Semiconductor Corporation
11 | *
12 | * SPDX-License-Identifier: Apache-2.0
13 | *
14 | * Licensed under the Apache License, Version 2.0 (the "License");
15 | * you may not use this file except in compliance with the License.
16 | * You may obtain a copy of the License at
17 | *
18 | * http://www.apache.org/licenses/LICENSE-2.0
19 | *
20 | * Unless required by applicable law or agreed to in writing, software
21 | * distributed under the License is distributed on an "AS IS" BASIS,
22 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 | * See the License for the specific language governing permissions and
24 | * limitations under the License.
25 | **************************************************************************************************/
26 |
27 | #pragma once
28 |
29 | #include
30 |
31 | #ifdef __cplusplus
32 | extern "C" {
33 | #endif
34 |
35 | /******************************************************
36 | * Function Declarations
37 | ******************************************************/
38 |
39 | /** Exits DS-RAM Low Power Mode.
40 | *
41 | */
42 | void cyabs_rtos_exit_dsram(void);
43 |
44 | /** Stores DS-RAM Context.
45 | *
46 | */
47 | void vStoreDSRAMContextWithWFI(void);
48 |
49 | /** Restores DS-RAM Context.
50 | *
51 | */
52 | void vRestoreDSRAMContext(void);
53 |
54 | #ifdef __cplusplus
55 | } // extern "C"
56 | #endif
57 |
--------------------------------------------------------------------------------
/include/COMPONENT_RTX/cyabs_rtos_dsram.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************************************//**
2 | * \file cyabs_rtos_dsram.h
3 | *
4 | * \brief
5 | * Internal definitions for DSRAM implementation on Freertos
6 | *
7 | ***************************************************************************************************
8 | * \copyright
9 | * Copyright 2019-2021 Cypress Semiconductor Corporation (an Infineon company) or
10 | * an affiliate of Cypress Semiconductor Corporation
11 | *
12 | * SPDX-License-Identifier: Apache-2.0
13 | *
14 | * Licensed under the Apache License, Version 2.0 (the "License");
15 | * you may not use this file except in compliance with the License.
16 | * You may obtain a copy of the License at
17 | *
18 | * http://www.apache.org/licenses/LICENSE-2.0
19 | *
20 | * Unless required by applicable law or agreed to in writing, software
21 | * distributed under the License is distributed on an "AS IS" BASIS,
22 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 | * See the License for the specific language governing permissions and
24 | * limitations under the License.
25 | **************************************************************************************************/
26 |
27 | #pragma once
28 |
29 | #ifdef __cplusplus
30 | extern "C" {
31 | #endif
32 |
33 |
34 | /******************************************************
35 | * Function Declarations
36 | ******************************************************/
37 | /** Enters DS-RAM Low Power Mode.
38 | *
39 | */
40 | void cyabs_rtos_enter_dsram(void);
41 |
42 | /** Exits DS-RAM Low Power Mode.
43 | *
44 | */
45 | void cyabs_rtos_exit_dsram(void);
46 |
47 | /** Stores DS-RAM Context.
48 | *
49 | */
50 | void vStoreDSRAMContextWithWFI(void);
51 |
52 | /** Restores DS-RAM Context.
53 | *
54 | */
55 | void vRestoreDSRAMContext(void);
56 |
57 | #ifdef __cplusplus
58 | } // extern "C"
59 | #endif
60 |
--------------------------------------------------------------------------------
/include/COMPONENT_THREADX/cyabs_rtos_dsram.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************************************//**
2 | * \file cyabs_rtos_dsram.h
3 | *
4 | * \brief
5 | * Internal definitions for DSRAM implementation on Freertos
6 | *
7 | ***************************************************************************************************
8 | * \copyright
9 | * Copyright 2019-2021 Cypress Semiconductor Corporation (an Infineon company) or
10 | * an affiliate of Cypress Semiconductor Corporation
11 | *
12 | * SPDX-License-Identifier: Apache-2.0
13 | *
14 | * Licensed under the Apache License, Version 2.0 (the "License");
15 | * you may not use this file except in compliance with the License.
16 | * You may obtain a copy of the License at
17 | *
18 | * http://www.apache.org/licenses/LICENSE-2.0
19 | *
20 | * Unless required by applicable law or agreed to in writing, software
21 | * distributed under the License is distributed on an "AS IS" BASIS,
22 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 | * See the License for the specific language governing permissions and
24 | * limitations under the License.
25 | **************************************************************************************************/
26 |
27 | #pragma once
28 |
29 | #ifdef __cplusplus
30 | extern "C" {
31 | #endif
32 |
33 |
34 | /******************************************************
35 | * Function Declarations
36 | ******************************************************/
37 | /** Enters DS-RAM Low Power Mode.
38 | *
39 | */
40 | void cyabs_rtos_enter_dsram(void);
41 |
42 | /** Exits DS-RAM Low Power Mode.
43 | *
44 | */
45 | void cyabs_rtos_exit_dsram(void);
46 |
47 | /** Stores DS-RAM Context.
48 | *
49 | */
50 | void vStoreDSRAMContextWithWFI(void);
51 |
52 | /** Restores DS-RAM Context.
53 | *
54 | */
55 | void vRestoreDSRAMContext(void);
56 |
57 | #ifdef __cplusplus
58 | } // extern "C"
59 | #endif
60 |
--------------------------------------------------------------------------------
/docs/html/group__group__abstraction__rtos__queue.js:
--------------------------------------------------------------------------------
1 | var group__group__abstraction__rtos__queue =
2 | [
3 | [ "CY_RTOS_QUEUE_FULL", "group__group__abstraction__rtos__queue.html#ga08fd892212aaa5c16099259f7eacccfe", null ],
4 | [ "cy_rtos_init_queue", "group__group__abstraction__rtos__queue.html#ga0d2885d8a840003a6d96bbad81d63b8c", null ],
5 | [ "CY_RTOS_QUEUE_EMPTY", "group__group__abstraction__rtos__queue.html#ga51d3ccf05a8e3c89a6075129074d1c60", null ],
6 | [ "cy_rtos_put_queue", "group__group__abstraction__rtos__queue.html#gad1dcaaaea352b0eb6c4fe11db65583ca", null ],
7 | [ "cy_rtos_get_queue", "group__group__abstraction__rtos__queue.html#ga0379a0fe175335b176f278cff0096581", null ],
8 | [ "cy_rtos_count_queue", "group__group__abstraction__rtos__queue.html#ga14d66b2b532abf96b2306cac512f555c", null ],
9 | [ "cy_rtos_space_queue", "group__group__abstraction__rtos__queue.html#gad422b381701118ff3f22bfdc3e89cd6f", null ],
10 | [ "cy_rtos_reset_queue", "group__group__abstraction__rtos__queue.html#ga577a15f469ab35e436eb928a5bafb242", null ],
11 | [ "cy_rtos_deinit_queue", "group__group__abstraction__rtos__queue.html#ga722817c669a90a1e0672b677e84244a4", null ],
12 | [ "cy_rtos_queue_init", "group__group__abstraction__rtos__queue.html#gab91ffe4236e50a9d38c8ee4f18d7d7c2", null ],
13 | [ "cy_rtos_queue_put", "group__group__abstraction__rtos__queue.html#ga45e5fda9a449d0cf3a859b06ad8af989", null ],
14 | [ "cy_rtos_queue_get", "group__group__abstraction__rtos__queue.html#ga799b29ec0a55325fe81c3fe0f4f61e33", null ],
15 | [ "cy_rtos_queue_count", "group__group__abstraction__rtos__queue.html#gaa9e756a6c3d0884d89ab2c84ba82ddfa", null ],
16 | [ "cy_rtos_queue_space", "group__group__abstraction__rtos__queue.html#ga43af25bb1f92654a59d7b724714a7345", null ],
17 | [ "cy_rtos_queue_reset", "group__group__abstraction__rtos__queue.html#gac4f95128753f27b3c4ff56e6774a2ddb", null ],
18 | [ "cy_rtos_queue_deinit", "group__group__abstraction__rtos__queue.html#ga86a8db88e4fb3b3d671754ff7902952c", null ]
19 | ];
--------------------------------------------------------------------------------
/include/COMPONENT_RTX/cyabs_rtos_impl.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************************************//**
2 | * \file cyabs_rtos_impl.h
3 | *
4 | * \brief
5 | * Internal definitions for RTOS abstraction layer
6 | *
7 | ***************************************************************************************************
8 | * \copyright
9 | * Copyright 2019-2025 Cypress Semiconductor Corporation (an Infineon company) or
10 | * an affiliate of Cypress Semiconductor Corporation
11 | *
12 | * SPDX-License-Identifier: Apache-2.0
13 | *
14 | * Licensed under the Apache License, Version 2.0 (the "License");
15 | * you may not use this file except in compliance with the License.
16 | * You may obtain a copy of the License at
17 | *
18 | * http://www.apache.org/licenses/LICENSE-2.0
19 | *
20 | * Unless required by applicable law or agreed to in writing, software
21 | * distributed under the License is distributed on an "AS IS" BASIS,
22 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 | * See the License for the specific language governing permissions and
24 | * limitations under the License.
25 | **************************************************************************************************/
26 |
27 | #pragma once
28 |
29 | #include "cmsis_os2.h"
30 | #include "rtx_os.h"
31 | #if !defined (COMPONENT_CAT5)
32 | #include
33 | #endif
34 | #include "cyabs_rtos_types.h"
35 |
36 | #ifdef __cplusplus
37 | extern "C"
38 | {
39 | #endif
40 |
41 | /******************************************************
42 | * Constants
43 | ******************************************************/
44 | #define CY_RTOS_MIN_STACK_SIZE 300 /** Minimum stack size in bytes */
45 | #define CY_RTOS_ALIGNMENT 0x00000008UL /** Minimum alignment for RTOS objects */
46 | #define CY_RTOS_ALIGNMENT_MASK 0x00000007UL /** Mask for checking the alignment of
47 | created RTOS objects */
48 |
49 | #ifdef __cplusplus
50 | } // extern "C"
51 | #endif
52 |
--------------------------------------------------------------------------------
/docs/html/search/typedefs_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['cy_5fevent_5ft_0',['cy_event_t',['../group__group__abstraction__rtos__port.html#ga7dc44a10637e29784bb57c8baa46524b',1,'cyabs_rtos_impl.h']]],
4 | ['cy_5fmutex_5ft_1',['cy_mutex_t',['../group__group__abstraction__rtos__port.html#ga20623d7ca01f21ec5ef09879eb2eb166',1,'cyabs_rtos_impl.h']]],
5 | ['cy_5fqueue_5ft_2',['cy_queue_t',['../group__group__abstraction__rtos__port.html#gac3dcb8e5a19cd138761a6548dd4de50f',1,'cyabs_rtos_impl.h']]],
6 | ['cy_5frtos_5ferror_5ft_3',['cy_rtos_error_t',['../group__group__abstraction__rtos__port.html#ga0161131d68376463dd91d0a2dfc39c60',1,'cyabs_rtos_impl.h']]],
7 | ['cy_5fsemaphore_5ft_4',['cy_semaphore_t',['../group__group__abstraction__rtos__port.html#ga97c7350dd41b5850577cc7667aee73d2',1,'cyabs_rtos_impl.h']]],
8 | ['cy_5fthread_5farg_5ft_5',['cy_thread_arg_t',['../group__group__abstraction__rtos__port.html#ga38237cfc682f2212e1ae11eb81a594b4',1,'cyabs_rtos_impl.h']]],
9 | ['cy_5fthread_5fentry_5ffn_5ft_6',['cy_thread_entry_fn_t',['../group__group__abstraction__rtos__threads.html#ga1e3db7a2b7a64fe9838804f049612d43',1,'cyabs_rtos.h']]],
10 | ['cy_5fthread_5ft_7',['cy_thread_t',['../group__group__abstraction__rtos__port.html#ga27c9e935c4c4f200d86a8484d3db08d3',1,'cyabs_rtos_impl.h']]],
11 | ['cy_5ftime_5ft_8',['cy_time_t',['../group__group__abstraction__rtos__port.html#ga141349b315f2266d5e0e8b8566eb608b',1,'cyabs_rtos_impl.h']]],
12 | ['cy_5ftimer_5fcallback_5farg_5ft_9',['cy_timer_callback_arg_t',['../group__group__abstraction__rtos__port.html#gaae8f42a65f808106d77113794ab7dd30',1,'cyabs_rtos_impl.h']]],
13 | ['cy_5ftimer_5fcallback_5ft_10',['cy_timer_callback_t',['../group__group__abstraction__rtos__timer.html#ga92b29af1c848137e18dec1ae1cb5ffec',1,'cyabs_rtos.h']]],
14 | ['cy_5ftimer_5ft_11',['cy_timer_t',['../group__group__abstraction__rtos__port.html#gacf9d99e8262de333b482417053756624',1,'cyabs_rtos_impl.h']]],
15 | ['cy_5fworker_5fthread_5ffunc_5ft_12',['cy_worker_thread_func_t',['../group__group__worker__thread__util.html#gaeb4fb0e41f7d0092cc135f7cc5e41250',1,'cy_worker_thread.h']]]
16 | ];
17 |
--------------------------------------------------------------------------------
/include/COMPONENT_THREADX/cyabs_rtos_impl.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************************************//**
2 | * \file cyabs_rtos_impl.h
3 | *
4 | * \brief
5 | * Internal definitions for RTOS abstraction layer.
6 | *
7 | ***************************************************************************************************
8 | * \copyright
9 | * Copyright 2019-2025 Cypress Semiconductor Corporation (an Infineon company) or
10 | * an affiliate of Cypress Semiconductor Corporation
11 | *
12 | * SPDX-License-Identifier: Apache-2.0
13 | *
14 | * Licensed under the Apache License, Version 2.0 (the "License");
15 | * you may not use this file except in compliance with the License.
16 | * You may obtain a copy of the License at
17 | *
18 | * http://www.apache.org/licenses/LICENSE-2.0
19 | *
20 | * Unless required by applicable law or agreed to in writing, software
21 | * distributed under the License is distributed on an "AS IS" BASIS,
22 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 | * See the License for the specific language governing permissions and
24 | * limitations under the License.
25 | **************************************************************************************************/
26 |
27 | #pragma once
28 |
29 | #include
30 | #include
31 | #include "tx_api.h"
32 |
33 | #ifdef __cplusplus
34 | extern "C"
35 | {
36 | #endif
37 |
38 | #if !defined (COMPONENT_CAT5)
39 | #include
40 | #else
41 | #include "cyabs_rtos_impl_cat5.h"
42 | #endif
43 | #include "cyabs_rtos_types.h"
44 |
45 |
46 | /******************************************************
47 | * Constants
48 | ******************************************************/
49 | #define CY_RTOS_MIN_STACK_SIZE TX_MINIMUM_STACK /**< Minimum stack size in bytes */
50 | #define CY_RTOS_ALIGNMENT 0x00000008UL /**< Minimum alignment for RTOS objects */
51 | #define CY_RTOS_ALIGNMENT_MASK 0x00000007UL /**< Checks for 8-byte alignment */
52 |
53 | #ifdef __cplusplus
54 | } // extern "C"
55 | #endif
56 |
--------------------------------------------------------------------------------
/include/cyabs_rtos_internal.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************************************//**
2 | * \file cyabs_rtos_internal.h
3 | *
4 | * \brief
5 | * Internal interface used for RTOS abstraction utilities.
6 | ***************************************************************************************************
7 | * \copyright
8 | * Copyright 2018-2022 Cypress Semiconductor Corporation (an Infineon company) or
9 | * an affiliate of Cypress Semiconductor Corporation
10 | *
11 | * SPDX-License-Identifier: Apache-2.0
12 | *
13 | * Licensed under the Apache License, Version 2.0 (the "License");
14 | * you may not use this file except in compliance with the License.
15 | * You may obtain a copy of the License at
16 | *
17 | * http://www.apache.org/licenses/LICENSE-2.0
18 | *
19 | * Unless required by applicable law or agreed to in writing, software
20 | * distributed under the License is distributed on an "AS IS" BASIS,
21 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22 | * See the License for the specific language governing permissions and
23 | * limitations under the License.
24 | **************************************************************************************************/
25 |
26 | #pragma once
27 |
28 | #ifdef __cplusplus
29 | extern "C" {
30 | #endif
31 |
32 | #include
33 | #if !defined (COMPONENT_CAT5)
34 | #include
35 | #endif
36 |
37 | /** Checks to see if code is currently executing within an interrupt context.
38 | *
39 | * @return Boolean indicating whether this was executed from an interrupt context.
40 | */
41 | static inline bool is_in_isr(void)
42 | {
43 | #if defined(COMPONENT_CR4) // Can work for any Cortex-A & Cortex-R
44 | uint32_t mode = __get_mode();
45 | return (mode == 0x11U /*FIQ*/) || (mode == 0x12U /*IRQ*/) || (mode == 0x13U /*SVC*/) ||
46 | (mode == 0x17U /*ABT*/) || (mode == 0x1BU /*UND*/);
47 | #elif defined(COMPONENT_CAT5)
48 | // This device does not allow calling from interrupt context.
49 | return false;
50 | #else // Cortex-M
51 | return (__get_IPSR() != 0);
52 | #endif
53 | }
54 |
55 |
56 | #if defined(__cplusplus)
57 | }
58 | #endif
59 |
--------------------------------------------------------------------------------
/docs/html/navtreedata.js:
--------------------------------------------------------------------------------
1 | /*
2 | @licstart The following is the entire license notice for the JavaScript code in this file.
3 |
4 | The MIT License (MIT)
5 |
6 | Copyright (C) 1997-2020 by Dimitri van Heesch
7 |
8 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software
9 | and associated documentation files (the "Software"), to deal in the Software without restriction,
10 | including without limitation the rights to use, copy, modify, merge, publish, distribute,
11 | sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in all copies or
15 | substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
18 | BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
20 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 |
23 | @licend The above is the entire license notice for the JavaScript code in this file
24 | */
25 | var NAVTREE =
26 | [
27 | [ "Abstraction RTOS", "index.html", [
28 | [ "RTOS Abstraction", "index.html", [
29 | [ "Overview", "index.html#autotoc_md1", null ],
30 | [ "Getting Started", "index.html#autotoc_md2", null ],
31 | [ "Features", "index.html#autotoc_md3", null ],
32 | [ "RTOS Configuration Requirements", "index.html#autotoc_md4", [
33 | [ "FreeRTOS", "index.html#autotoc_md5", [
34 | [ "Low Power Configuration", "index.html#autotoc_md6", null ],
35 | [ "Known Limitations", "index.html#autotoc_md7", null ]
36 | ] ],
37 | [ "RTX / ThreadX", "index.html#autotoc_md8", null ]
38 | ] ],
39 | [ "Porting Notes", "index.html#autotoc_md9", null ],
40 | [ "More information", "index.html#autotoc_md10", null ]
41 | ] ],
42 | [ "API Reference", "modules.html", "modules" ]
43 | ] ]
44 | ];
45 |
46 | var NAVTREEINDEX =
47 | [
48 | "group__group__abstraction__rtos__common.html"
49 | ];
50 |
51 | var SYNCONMSG = 'click to disable panel synchronisation';
52 | var SYNCOFFMSG = 'click to enable panel synchronisation';
--------------------------------------------------------------------------------
/include/COMPONENT_FREERTOS/cyabs_rtos_impl.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************************************//**
2 | * \file cyabs_rtos_impl.h
3 | *
4 | * \brief
5 | * Internal definitions for RTOS abstraction layer
6 | *
7 | ***************************************************************************************************
8 | * \copyright
9 | * Copyright 2019-2021 Cypress Semiconductor Corporation (an Infineon company) or
10 | * an affiliate of Cypress Semiconductor Corporation
11 | *
12 | * SPDX-License-Identifier: Apache-2.0
13 | *
14 | * Licensed under the Apache License, Version 2.0 (the "License");
15 | * you may not use this file except in compliance with the License.
16 | * You may obtain a copy of the License at
17 | *
18 | * http://www.apache.org/licenses/LICENSE-2.0
19 | *
20 | * Unless required by applicable law or agreed to in writing, software
21 | * distributed under the License is distributed on an "AS IS" BASIS,
22 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 | * See the License for the specific language governing permissions and
24 | * limitations under the License.
25 | **************************************************************************************************/
26 |
27 | #pragma once
28 |
29 | #include
30 | #include
31 | #include
32 | #include
33 | #include
34 | #include "stdbool.h"
35 | #if !defined (COMPONENT_CAT5)
36 | #include
37 | #endif
38 | #include "cyabs_rtos_types.h"
39 | #include "cyabs_rtos_hal_impl.h"
40 |
41 | #ifdef __cplusplus
42 | extern "C" {
43 | #endif
44 |
45 | /******************************************************
46 | * Constants
47 | ******************************************************/
48 | #define CY_RTOS_MIN_STACK_SIZE 300 /**< Minimum stack size in bytes */
49 | #define CY_RTOS_ALIGNMENT 0x00000008UL /**< Minimum alignment for RTOS objects */
50 | #define CY_RTOS_ALIGNMENT_MASK 0x00000007UL /**< Mask for checking the alignment of
51 | created RTOS objects */
52 | #if !defined(CY_RTOS_MAX_SUSPEND_NESTING)
53 | #define CY_RTOS_MAX_SUSPEND_NESTING 3 /**< Maximum nesting allowed for calls
54 | to scheduler suspend from ISR */
55 | #endif
56 |
57 | cy_time_t convert_ms_to_ticks(cy_time_t timeout_ms);
58 |
59 | #ifdef __cplusplus
60 | } // extern "C"
61 | #endif
62 |
--------------------------------------------------------------------------------
/docs/html/search/mag_sel.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
19 |
21 |
22 |
24 | image/svg+xml
25 |
27 |
28 |
29 |
30 |
31 |
33 |
57 |
63 |
69 |
74 |
75 |
--------------------------------------------------------------------------------
/source/COMPONENT_RTX/cyabs_rtos_dsram.c:
--------------------------------------------------------------------------------
1 | /***********************************************************************************************//**
2 | * \file cyabs_freertos_dsram.c
3 | *
4 | * \brief
5 | * Provides implementations for functions required to enable deepsleep ram.
6 | *
7 | ***************************************************************************************************
8 | * \copyright
9 | * Copyright 2018-2022 Cypress Semiconductor Corporation (an Infineon company) or
10 | * an affiliate of Cypress Semiconductor Corporation
11 | *
12 | * SPDX-License-Identifier: Apache-2.0
13 | *
14 | * Licensed under the Apache License, Version 2.0 (the "License");
15 | * you may not use this file except in compliance with the License.
16 | * You may obtain a copy of the License at
17 | *
18 | * http://www.apache.org/licenses/LICENSE-2.0
19 | *
20 | * Unless required by applicable law or agreed to in writing, software
21 | * distributed under the License is distributed on an "AS IS" BASIS,
22 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 | * See the License for the specific language governing permissions and
24 | * limitations under the License.
25 | **************************************************************************************************/
26 | #include
27 | #include "cy_utils.h"
28 | #include "cyabs_rtos.h"
29 | #include "cyabs_rtos_dsram.h"
30 |
31 | //--------------------------------------------------------------------------------------------------
32 | // vStoreDSRAMContextWithWFI
33 | //--------------------------------------------------------------------------------------------------
34 | void vStoreDSRAMContextWithWFI(void) /* __attribute__ (( naked )) PRIVILEGED_FUNCTION */
35 | {
36 | CY_ASSERT(0);
37 | }
38 |
39 |
40 | //--------------------------------------------------------------------------------------------------
41 | // vRestoreDSRAMContext
42 | //--------------------------------------------------------------------------------------------------
43 | void vRestoreDSRAMContext(void)
44 | {
45 | CY_ASSERT(0);
46 | }
47 |
48 |
49 | //--------------------------------------------------------------------------------------------------
50 | // cyabs_dsram_enter_dsram
51 | //--------------------------------------------------------------------------------------------------
52 | void cyabs_rtos_enter_dsram(void)
53 | {
54 | vStoreDSRAMContextWithWFI();
55 | }
56 |
57 |
58 | //--------------------------------------------------------------------------------------------------
59 | // cyabs_dsram_exit_dsram
60 | //--------------------------------------------------------------------------------------------------
61 | void cyabs_rtos_exit_dsram(void)
62 | {
63 | vRestoreDSRAMContext();
64 | }
65 |
--------------------------------------------------------------------------------
/source/COMPONENT_THREADX/cyabs_rtos_dsram.c:
--------------------------------------------------------------------------------
1 | /***********************************************************************************************//**
2 | * \file cyabs_freertos_dsram.c
3 | *
4 | * \brief
5 | * Provides implementations for functions required to enable deepsleep ram.
6 | *
7 | ***************************************************************************************************
8 | * \copyright
9 | * Copyright 2018-2022 Cypress Semiconductor Corporation (an Infineon company) or
10 | * an affiliate of Cypress Semiconductor Corporation
11 | *
12 | * SPDX-License-Identifier: Apache-2.0
13 | *
14 | * Licensed under the Apache License, Version 2.0 (the "License");
15 | * you may not use this file except in compliance with the License.
16 | * You may obtain a copy of the License at
17 | *
18 | * http://www.apache.org/licenses/LICENSE-2.0
19 | *
20 | * Unless required by applicable law or agreed to in writing, software
21 | * distributed under the License is distributed on an "AS IS" BASIS,
22 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 | * See the License for the specific language governing permissions and
24 | * limitations under the License.
25 | **************************************************************************************************/
26 | #include
27 | #include "cy_utils.h"
28 | #include "cyabs_rtos.h"
29 | #include "cyabs_rtos_dsram.h"
30 |
31 | //--------------------------------------------------------------------------------------------------
32 | // vStoreDSRAMContextWithWFI
33 | //--------------------------------------------------------------------------------------------------
34 | void vStoreDSRAMContextWithWFI(void) /* __attribute__ (( naked )) PRIVILEGED_FUNCTION */
35 | {
36 | CY_ASSERT(0);
37 | }
38 |
39 |
40 | //--------------------------------------------------------------------------------------------------
41 | // vRestoreDSRAMContext
42 | //--------------------------------------------------------------------------------------------------
43 | void vRestoreDSRAMContext(void)
44 | {
45 | CY_ASSERT(0);
46 | }
47 |
48 |
49 | //--------------------------------------------------------------------------------------------------
50 | // cyabs_dsram_enter_dsram
51 | //--------------------------------------------------------------------------------------------------
52 | void cyabs_rtos_enter_dsram(void)
53 | {
54 | vStoreDSRAMContextWithWFI();
55 | }
56 |
57 |
58 | //--------------------------------------------------------------------------------------------------
59 | // cyabs_dsram_exit_dsram
60 | //--------------------------------------------------------------------------------------------------
61 | void cyabs_rtos_exit_dsram(void)
62 | {
63 | vRestoreDSRAMContext();
64 | }
65 |
--------------------------------------------------------------------------------
/docs/html/group__group__abstraction__rtos__port.js:
--------------------------------------------------------------------------------
1 | var group__group__abstraction__rtos__port =
2 | [
3 | [ "CY_RTOS_MIN_STACK_SIZE", "group__group__abstraction__rtos__port.html#ga8cb68f0797eec0941d819cb03dee3f8e", null ],
4 | [ "CY_RTOS_ALIGNMENT_MASK", "group__group__abstraction__rtos__port.html#ga03f4b97a8323f791fe6b8113bac20610", null ],
5 | [ "cy_thread_t", "group__group__abstraction__rtos__port.html#ga27c9e935c4c4f200d86a8484d3db08d3", null ],
6 | [ "cy_thread_arg_t", "group__group__abstraction__rtos__port.html#ga38237cfc682f2212e1ae11eb81a594b4", null ],
7 | [ "cy_mutex_t", "group__group__abstraction__rtos__port.html#ga20623d7ca01f21ec5ef09879eb2eb166", null ],
8 | [ "cy_semaphore_t", "group__group__abstraction__rtos__port.html#ga97c7350dd41b5850577cc7667aee73d2", null ],
9 | [ "cy_event_t", "group__group__abstraction__rtos__port.html#ga7dc44a10637e29784bb57c8baa46524b", null ],
10 | [ "cy_queue_t", "group__group__abstraction__rtos__port.html#gac3dcb8e5a19cd138761a6548dd4de50f", null ],
11 | [ "cy_timer_t", "group__group__abstraction__rtos__port.html#gacf9d99e8262de333b482417053756624", null ],
12 | [ "cy_timer_callback_arg_t", "group__group__abstraction__rtos__port.html#gaae8f42a65f808106d77113794ab7dd30", null ],
13 | [ "cy_time_t", "group__group__abstraction__rtos__port.html#ga141349b315f2266d5e0e8b8566eb608b", null ],
14 | [ "cy_rtos_error_t", "group__group__abstraction__rtos__port.html#ga0161131d68376463dd91d0a2dfc39c60", null ],
15 | [ "cy_thread_priority_t", "group__group__abstraction__rtos__port.html#ga9f21bb78897c25df019b6e4286ecc7a0", [
16 | [ "CY_RTOS_PRIORITY_MIN", "group__group__abstraction__rtos__port.html#gga9f21bb78897c25df019b6e4286ecc7a0acc5a695124ae1d0da2abe6e8fb8bcc6e", null ],
17 | [ "CY_RTOS_PRIORITY_LOW", "group__group__abstraction__rtos__port.html#gga9f21bb78897c25df019b6e4286ecc7a0adb7152d4d80f56bb5c88570769f219d8", null ],
18 | [ "CY_RTOS_PRIORITY_BELOWNORMAL", "group__group__abstraction__rtos__port.html#gga9f21bb78897c25df019b6e4286ecc7a0a3184787379faa0701717fa2b13c71132", null ],
19 | [ "CY_RTOS_PRIORITY_NORMAL", "group__group__abstraction__rtos__port.html#gga9f21bb78897c25df019b6e4286ecc7a0a106f914a7dedbee23fe1560be2e9839d", null ],
20 | [ "CY_RTOS_PRIORITY_ABOVENORMAL", "group__group__abstraction__rtos__port.html#gga9f21bb78897c25df019b6e4286ecc7a0aba8fa5ad998aad406aa120cd32c371e4", null ],
21 | [ "CY_RTOS_PRIORITY_HIGH", "group__group__abstraction__rtos__port.html#gga9f21bb78897c25df019b6e4286ecc7a0a2b2471ff20337e6efd1f55b241765951", null ],
22 | [ "CY_RTOS_PRIORITY_REALTIME", "group__group__abstraction__rtos__port.html#gga9f21bb78897c25df019b6e4286ecc7a0ab5a62a719e4035d1aeb480a5071e4acb", null ],
23 | [ "CY_RTOS_PRIORITY_MAX", "group__group__abstraction__rtos__port.html#gga9f21bb78897c25df019b6e4286ecc7a0a3ab1fe19a851c645d3ac8f5a2c1e1be2", null ]
24 | ] ]
25 | ];
--------------------------------------------------------------------------------
/docs/html/navtree.css:
--------------------------------------------------------------------------------
1 | #nav-tree .children_ul {
2 | margin:0;
3 | padding:4px;
4 | }
5 |
6 | #nav-tree ul {
7 | list-style:none outside none;
8 | margin:0px;
9 | padding:0px;
10 | }
11 |
12 | #nav-tree li {
13 | white-space:nowrap;
14 | margin:0px;
15 | padding:0px;
16 | }
17 |
18 | #nav-tree .plus {
19 | margin:0px;
20 | }
21 |
22 | #nav-tree .selected {
23 | background-image: url('tab_a.png');
24 | background-repeat:repeat-x;
25 | color: #fff;
26 | text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0);
27 | }
28 |
29 | #nav-tree img {
30 | margin:0px;
31 | padding:0px;
32 | border:0px;
33 | vertical-align: middle;
34 | }
35 |
36 | #nav-tree a {
37 | text-decoration:none;
38 | padding:0px;
39 | margin:0px;
40 | outline:none;
41 | }
42 |
43 | #nav-tree .label {
44 | margin:0px;
45 | padding:0px;
46 | font: 12px 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif;
47 | }
48 |
49 | #nav-tree .label a {
50 | padding:2px;
51 | }
52 |
53 | #nav-tree .selected a {
54 | text-decoration:none;
55 | color:#fff;
56 | }
57 |
58 | #nav-tree .children_ul {
59 | margin:0px;
60 | padding:0px;
61 | }
62 |
63 | #nav-tree .item {
64 | margin:0px;
65 | padding:0px;
66 | }
67 |
68 | #nav-tree {
69 | padding: 0px 0px;
70 | background-color: #FAFAFF;
71 | font-size:14px;
72 | overflow:auto;
73 | }
74 |
75 | #doc-content {
76 | overflow:auto;
77 | display:block;
78 | padding:0px;
79 | margin:0px;
80 | -webkit-overflow-scrolling : touch; /* iOS 5+ */
81 | }
82 |
83 | #side-nav {
84 | padding:0 6px 0 0;
85 | margin: 0px;
86 | display:block;
87 | position: absolute;
88 | left: 0px;
89 | width: 250px;
90 | overflow : hidden;
91 | }
92 |
93 | .ui-resizable .ui-resizable-handle {
94 | display:block;
95 | }
96 |
97 | .ui-resizable-e {
98 | background-image:url("splitbar.png");
99 | background-size:100%;
100 | background-repeat:repeat-y;
101 | background-attachment: scroll;
102 | cursor:ew-resize;
103 | height:100%;
104 | right:0;
105 | top:0;
106 | width:6px;
107 | }
108 |
109 | .ui-resizable-handle {
110 | display:none;
111 | font-size:0.1px;
112 | position:absolute;
113 | z-index:1;
114 | }
115 |
116 | #nav-tree-contents {
117 | margin: 6px 0px 0px 0px;
118 | }
119 |
120 | #nav-tree {
121 | background-image:url('nav_h.png');
122 | background-repeat:repeat-x;
123 | background-color: #F9FAFC;
124 | -webkit-overflow-scrolling : touch; /* iOS 5+ */
125 | }
126 |
127 | #nav-sync {
128 | position:absolute;
129 | top:5px;
130 | right:24px;
131 | z-index:0;
132 | }
133 |
134 | #nav-sync img {
135 | opacity:0.3;
136 | }
137 |
138 | #nav-sync img:hover {
139 | opacity:0.9;
140 | }
141 |
142 | @media print
143 | {
144 | #nav-tree { display: none; }
145 | div.ui-resizable-handle { display: none; position: relative; }
146 | }
147 |
148 |
--------------------------------------------------------------------------------
/docs/html/group__group__worker__thread__util.js:
--------------------------------------------------------------------------------
1 | var group__group__worker__thread__util =
2 | [
3 | [ "cy_worker_thread_params_t", "group__group__worker__thread__util.html#structcy__worker__thread__params__t", [
4 | [ "priority", "group__group__worker__thread__util.html#ae02e3a16a65e7bb72e10647beceb1fac", null ],
5 | [ "stack_size", "group__group__worker__thread__util.html#a1ab40c8bd034655877e583026cfb20ff", null ],
6 | [ "stack", "group__group__worker__thread__util.html#a7dcafa34217aecb4f6745d162b20a256", null ],
7 | [ "name", "group__group__worker__thread__util.html#a31710f19616d90ca7ccd2076287bb028", null ],
8 | [ "num_entries", "group__group__worker__thread__util.html#ae0bee3f6b0c9b3250e7b3bba2a6fb012", null ]
9 | ] ],
10 | [ "cy_worker_thread_info_t", "group__group__worker__thread__util.html#structcy__worker__thread__info__t", [
11 | [ "event_queue", "group__group__worker__thread__util.html#af921b846c4cdb4ee1b4de6267ae2c2a2", null ],
12 | [ "enqueue_count", "group__group__worker__thread__util.html#ab2f74dcd0e41ac82b69e15317912dc56", null ],
13 | [ "thread", "group__group__worker__thread__util.html#a1efa83728c9763f3738676b959236347", null ],
14 | [ "state", "group__group__worker__thread__util.html#a684566a02021807ad40ebdddf3e38def", null ]
15 | ] ],
16 | [ "CY_WORKER_THREAD_DEFAULT_NAME", "group__group__worker__thread__util.html#gae45bcc8cd62f58eb236ef486b4d5558c", null ],
17 | [ "CY_WORKER_DEFAULT_ENTRIES", "group__group__worker__thread__util.html#gae442fac806ebf74e3ba623a2c2e2ae1b", null ],
18 | [ "CY_WORKER_THREAD_ERR_THREAD_INVALID", "group__group__worker__thread__util.html#gaad1bf39d72a75351866a1871779dcaf8", null ],
19 | [ "cy_worker_thread_func_t", "group__group__worker__thread__util.html#gaeb4fb0e41f7d0092cc135f7cc5e41250", null ],
20 | [ "cy_worker_thread_state_t", "group__group__worker__thread__util.html#ga514bc54aa543a69ce1768903b9851473", [
21 | [ "CY_WORKER_THREAD_INVALID", "group__group__worker__thread__util.html#gga514bc54aa543a69ce1768903b9851473a0d938b2d088126d6d47c936040e843c2", null ],
22 | [ "CY_WORKER_THREAD_VALID", "group__group__worker__thread__util.html#gga514bc54aa543a69ce1768903b9851473aec127b9642db106c61c3c32106fb69fb", null ],
23 | [ "CY_WORKER_THREAD_ENQUEUING", "group__group__worker__thread__util.html#gga514bc54aa543a69ce1768903b9851473a5b1b5a7751c0460c908bfbb65cb7be08", null ],
24 | [ "CY_WORKER_THREAD_TERMINATING", "group__group__worker__thread__util.html#gga514bc54aa543a69ce1768903b9851473a79db794eee56f8188a116ed31ae5b1d4", null ],
25 | [ "CY_WORKER_THREAD_JOIN_COMPLETE", "group__group__worker__thread__util.html#gga514bc54aa543a69ce1768903b9851473a8685271e73d4fc9bc13e62a58a8431c8", null ]
26 | ] ],
27 | [ "cy_worker_thread_create", "group__group__worker__thread__util.html#ga383f418c20f7ae9d2eb184722b7bbd04", null ],
28 | [ "cy_worker_thread_delete", "group__group__worker__thread__util.html#gae4a9787d87626fefc16e328754182c37", null ],
29 | [ "cy_worker_thread_enqueue", "group__group__worker__thread__util.html#ga4a582d807e3b7d4fa0bf7ee770af9015", null ]
30 | ];
--------------------------------------------------------------------------------
/include/COMPONENT_FREERTOS/cyabs_rtos_types.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************************************//**
2 | * \file cyabs_rtos_types.h
3 | *
4 | * \brief
5 | * Internal type definitions for RTOS abstraction layer
6 | *
7 | ***************************************************************************************************
8 | * \copyright
9 | * Copyright 2019-2025 Cypress Semiconductor Corporation (an Infineon company) or
10 | * an affiliate of Cypress Semiconductor Corporation
11 | *
12 | * SPDX-License-Identifier: Apache-2.0
13 | *
14 | * Licensed under the Apache License, Version 2.0 (the "License");
15 | * you may not use this file except in compliance with the License.
16 | * You may obtain a copy of the License at
17 | *
18 | * http://www.apache.org/licenses/LICENSE-2.0
19 | *
20 | * Unless required by applicable law or agreed to in writing, software
21 | * distributed under the License is distributed on an "AS IS" BASIS,
22 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 | * See the License for the specific language governing permissions and
24 | * limitations under the License.
25 | **************************************************************************************************/
26 |
27 | #pragma once
28 |
29 | #include
30 | #include
31 | #include
32 | #include
33 | #include
34 | #include "stdbool.h"
35 | #if !defined (COMPONENT_CAT5)
36 | #include
37 | #endif
38 |
39 | #ifdef __cplusplus
40 | extern "C" {
41 | #endif
42 |
43 | /******************************************************
44 | * Enumerations
45 | ******************************************************/
46 |
47 | typedef enum cy_thread_priority
48 | {
49 | CY_RTOS_PRIORITY_MIN = 0,
50 | CY_RTOS_PRIORITY_LOW = (configMAX_PRIORITIES * 1 / 7),
51 | CY_RTOS_PRIORITY_BELOWNORMAL = (configMAX_PRIORITIES * 2 / 7),
52 | CY_RTOS_PRIORITY_NORMAL = (configMAX_PRIORITIES * 3 / 7),
53 | CY_RTOS_PRIORITY_ABOVENORMAL = (configMAX_PRIORITIES * 4 / 7),
54 | CY_RTOS_PRIORITY_HIGH = (configMAX_PRIORITIES * 5 / 7),
55 | CY_RTOS_PRIORITY_REALTIME = (configMAX_PRIORITIES * 6 / 7),
56 | CY_RTOS_PRIORITY_MAX = configMAX_PRIORITIES - 1
57 | } cy_thread_priority_t;
58 |
59 | /******************************************************
60 | * Type Definitions
61 | ******************************************************/
62 |
63 | typedef struct
64 | {
65 | SemaphoreHandle_t mutex_handle;
66 | bool is_recursive;
67 | } cy_mutex_t;
68 |
69 | typedef QueueHandle_t cy_queue_t;
70 | typedef SemaphoreHandle_t cy_semaphore_t;
71 | typedef TaskHandle_t cy_thread_t;
72 | typedef EventGroupHandle_t cy_event_t;
73 | typedef TimerHandle_t cy_timer_t;
74 | typedef uint32_t cy_timer_callback_arg_t;
75 | typedef void* cy_thread_arg_t;
76 | typedef uint32_t cy_time_t;
77 | typedef BaseType_t cy_rtos_error_t;
78 |
79 | #ifdef __cplusplus
80 | } // extern "C"
81 | #endif
82 |
--------------------------------------------------------------------------------
/source/COMPONENT_FREERTOS/cyabs_freertos_common.c:
--------------------------------------------------------------------------------
1 | /***********************************************************************************************//**
2 | * \file cyabs_freertos_common.c
3 | *
4 | * \brief
5 | * Provides implementations for common functions in FreeRTOS abstraction.
6 | *
7 | ***************************************************************************************************
8 | * \copyright
9 | * Copyright 2022 Cypress Semiconductor Corporation (an Infineon company) or
10 | * an affiliate of Cypress Semiconductor Corporation
11 | *
12 | * SPDX-License-Identifier: Apache-2.0
13 | *
14 | * Licensed under the Apache License, Version 2.0 (the "License");
15 | * you may not use this file except in compliance with the License.
16 | * You may obtain a copy of the License at
17 | *
18 | * http://www.apache.org/licenses/LICENSE-2.0
19 | *
20 | * Unless required by applicable law or agreed to in writing, software
21 | * distributed under the License is distributed on an "AS IS" BASIS,
22 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 | * See the License for the specific language governing permissions and
24 | * limitations under the License.
25 | **************************************************************************************************/
26 | #include "cyabs_rtos.h"
27 |
28 | #if defined(CY_USING_HAL)
29 | //--------------------------------------------------------------------------------------------------
30 | // _cyhal_system_irq_clear_disabled_in_pending
31 | //--------------------------------------------------------------------------------------------------
32 | __WEAK void _cyhal_system_irq_clear_disabled_in_pending(void)
33 | {
34 | /*
35 | * The weak implementation for function that
36 | * clears disabled interrupts in pending state
37 | */
38 | }
39 |
40 |
41 | #endif /* defined(CY_USING_HAL) */
42 |
43 |
44 | #if defined(FREERTOS_COMMON_SECTION_BEGIN)
45 | FREERTOS_COMMON_SECTION_BEGIN
46 | #endif
47 | //--------------------------------------------------------------------------------------------------
48 | // convert_ms_to_ticks
49 | //--------------------------------------------------------------------------------------------------
50 | cy_time_t convert_ms_to_ticks(cy_time_t timeout_ms)
51 | {
52 | // Don't convert away from CY_RTOS_NEVER_TIMEOUT due to it being max value
53 | // Also, skip conversion if timeout_ms is 0
54 | if (timeout_ms == CY_RTOS_NEVER_TIMEOUT)
55 | {
56 | return CY_RTOS_NEVER_TIMEOUT;
57 | }
58 | else if (timeout_ms == 0)
59 | {
60 | return 0;
61 | }
62 | else
63 | {
64 | // Convert using our conversion to avoid overflow
65 | uint64_t ticks =
66 | ((uint64_t)(((uint64_t)(timeout_ms) * (uint64_t)configTICK_RATE_HZ) /
67 | (uint64_t)1000));
68 |
69 | if (ticks >= UINT32_MAX)
70 | {
71 | // if ticks if more than 32 bits, change ticks to max possible value
72 | // that isn't CY_RTOS_NEVER_TIMEOUT.
73 | ticks = UINT32_MAX - 1;
74 | }
75 | return (cy_time_t)ticks;
76 | }
77 | }
78 |
79 |
80 | #if defined(FREERTOS_COMMON_SECTION_END)
81 | FREERTOS_COMMON_SECTION_END
82 | #endif
83 |
--------------------------------------------------------------------------------
/include/COMPONENT_FREERTOS/cyabs_rtos_hal_impl.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************************************//**
2 | * \file cyabs_rtos_hal_impl.h
3 | *
4 | * \brief
5 | * Internal definitions for RTOS abstraction layer for working with HAL
6 | *
7 | ***************************************************************************************************
8 | * \copyright
9 | * Copyright 2019-2025 Cypress Semiconductor Corporation (an Infineon company) or
10 | * an affiliate of Cypress Semiconductor Corporation
11 | *
12 | * SPDX-License-Identifier: Apache-2.0
13 | *
14 | * Licensed under the Apache License, Version 2.0 (the "License");
15 | * you may not use this file except in compliance with the License.
16 | * You may obtain a copy of the License at
17 | *
18 | * http://www.apache.org/licenses/LICENSE-2.0
19 | *
20 | * Unless required by applicable law or agreed to in writing, software
21 | * distributed under the License is distributed on an "AS IS" BASIS,
22 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 | * See the License for the specific language governing permissions and
24 | * limitations under the License.
25 | **************************************************************************************************/
26 |
27 | #pragma once
28 |
29 | #include
30 | #include
31 | #include
32 | #include
33 | #include
34 | #include "stdbool.h"
35 | #if !defined (COMPONENT_CAT5)
36 | #include
37 | #endif
38 | #include "cyabs_rtos_impl.h"
39 |
40 | #if defined(CY_USING_HAL)
41 | #include "cyhal.h"
42 | #elif defined(COMPONENT_MTB_HAL)
43 | #include "mtb_hal.h"
44 | #endif
45 |
46 | #if defined(CYHAL_DRIVER_AVAILABLE_LPTIMER) && (CYHAL_DRIVER_AVAILABLE_LPTIMER)
47 | /** Stores a reference to an lptimer instance for use with vApplicationSleep().
48 | *
49 | * @param[in] timer Pointer to the lptimer handle
50 | */
51 | void cyabs_rtos_set_lptimer(cyhal_lptimer_t* timer);
52 |
53 | /** Gets a reference to the lptimer instance object used by vApplicationSleep(). This instance is
54 | * what was explicitly set by @ref cyabs_rtos_set_lptimer or, if none was set, what was
55 | * automatically allocated by the first call to vApplicationSleep().
56 | *
57 | * @return Pointer to the lptimer handle
58 | */
59 | cyhal_lptimer_t* cyabs_rtos_get_lptimer(void);
60 |
61 | #endif // defined(CYHAL_DRIVER_AVAILABLE_LPTIMER) && (CYHAL_DRIVER_AVAILABLE_LPTIMER)
62 |
63 | #if defined(MTB_HAL_DRIVER_AVAILABLE_LPTIMER) && (MTB_HAL_DRIVER_AVAILABLE_LPTIMER)
64 | /** Stores a reference to an lptimer instance for use with vApplicationSleep().
65 | *
66 | * @param[in] timer Pointer to the lptimer handle
67 | */
68 | void cyabs_rtos_set_lptimer(mtb_hal_lptimer_t* timer);
69 |
70 | /** Gets a reference to the lptimer instance object used by vApplicationSleep(). This instance is
71 | * what was explicitly set by @ref cyabs_rtos_set_lptimer or, if none was set, what was
72 | * automatically allocated by the first call to vApplicationSleep().
73 | *
74 | * @return Pointer to the lptimer handle
75 | */
76 | mtb_hal_lptimer_t* cyabs_rtos_get_lptimer(void);
77 |
78 | #endif // defined(MTB_HAL_DRIVER_AVAILABLE_LPTIMER) && (MTB_HAL_DRIVER_AVAILABLE_LPTIMER)
79 |
--------------------------------------------------------------------------------
/include/COMPONENT_RTX/cyabs_rtos_types.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************************************//**
2 | * \file cyabs_rtos_types.h
3 | *
4 | * \brief
5 | * Internal type definitions for RTOS abstraction layer
6 | *
7 | ***************************************************************************************************
8 | * \copyright
9 | * Copyright 2019-2025 Cypress Semiconductor Corporation (an Infineon company) or
10 | * an affiliate of Cypress Semiconductor Corporation
11 | *
12 | * SPDX-License-Identifier: Apache-2.0
13 | *
14 | * Licensed under the Apache License, Version 2.0 (the "License");
15 | * you may not use this file except in compliance with the License.
16 | * You may obtain a copy of the License at
17 | *
18 | * http://www.apache.org/licenses/LICENSE-2.0
19 | *
20 | * Unless required by applicable law or agreed to in writing, software
21 | * distributed under the License is distributed on an "AS IS" BASIS,
22 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 | * See the License for the specific language governing permissions and
24 | * limitations under the License.
25 | **************************************************************************************************/
26 |
27 | #pragma once
28 |
29 | #include "cmsis_os2.h"
30 | #include "rtx_os.h"
31 | #if !defined (COMPONENT_CAT5)
32 | #include
33 | #endif
34 |
35 | #ifdef __cplusplus
36 | extern "C"
37 | {
38 | #endif
39 |
40 | /******************************************************
41 | * Type Definitions
42 | ******************************************************/
43 |
44 | // RTOS thread priority
45 | typedef enum
46 | {
47 | CY_RTOS_PRIORITY_MIN = osPriorityNone,
48 | CY_RTOS_PRIORITY_LOW = osPriorityLow,
49 | CY_RTOS_PRIORITY_BELOWNORMAL = osPriorityBelowNormal,
50 | CY_RTOS_PRIORITY_NORMAL = osPriorityNormal,
51 | CY_RTOS_PRIORITY_ABOVENORMAL = osPriorityAboveNormal,
52 | CY_RTOS_PRIORITY_HIGH = osPriorityHigh,
53 | CY_RTOS_PRIORITY_REALTIME = osPriorityRealtime,
54 | CY_RTOS_PRIORITY_MAX = osPriorityRealtime7
55 | } cy_thread_priority_t;
56 |
57 | typedef osThreadId_t cy_thread_t; /** CMSIS definition of a thread handle */
58 | typedef void* cy_thread_arg_t; /** Argument passed to the entry function of
59 | a thread */
60 | typedef osMutexId_t cy_mutex_t; /** CMSIS definition of a mutex */
61 | typedef osSemaphoreId_t cy_semaphore_t; /** CMSIS definition of a semaphore */
62 | typedef osEventFlagsId_t cy_event_t; /** CMSIS definition of an event */
63 | typedef osMessageQueueId_t cy_queue_t; /** CMSIS definition of a message queue */
64 | typedef osTimerId_t cy_timer_t; /** CMSIS definition of a timer */
65 | typedef void* cy_timer_callback_arg_t; /** Argument passed to the timer callback
66 | function */
67 | typedef uint32_t cy_time_t; /** Time in milliseconds */
68 | typedef osStatus_t cy_rtos_error_t; /** CMSIS definition of a error status */
69 |
70 |
71 | #ifdef __cplusplus
72 | } // extern "C"
73 | #endif
74 |
--------------------------------------------------------------------------------
/docs/html/group__group__abstraction__rtos__threads.js:
--------------------------------------------------------------------------------
1 | var group__group__abstraction__rtos__threads =
2 | [
3 | [ "cy_rtos_create_thread", "group__group__abstraction__rtos__threads.html#ga9e7b9e7ffe531ff74a9a9cf8ebf18593", null ],
4 | [ "cy_rtos_is_thread_running", "group__group__abstraction__rtos__threads.html#gab8a7dde2fb560de10e0b5aceac27c0e3", null ],
5 | [ "cy_rtos_set_thread_notification", "group__group__abstraction__rtos__threads.html#ga3455fc6cd006539be342e42c760b6849", null ],
6 | [ "cy_rtos_wait_thread_notification", "group__group__abstraction__rtos__threads.html#ga6c74f900aebffdcd84476780e37a175a", null ],
7 | [ "cy_rtos_get_thread_state", "group__group__abstraction__rtos__threads.html#ga4b55ac8054378295182c3dbcf3e074e9", null ],
8 | [ "cy_rtos_join_thread", "group__group__abstraction__rtos__threads.html#gae23dd3f99a850bb005b39a7236932ba1", null ],
9 | [ "cy_rtos_get_thread_handle", "group__group__abstraction__rtos__threads.html#gaf720f35084c7c48ddf8ec82b338cc88a", null ],
10 | [ "cy_rtos_terminate_thread", "group__group__abstraction__rtos__threads.html#ga56c82d11b9d311fde17cc766f73d203d", null ],
11 | [ "cy_rtos_exit_thread", "group__group__abstraction__rtos__threads.html#ga1c017c0618c4b4755b2df2c14ad6115b", null ],
12 | [ "cy_thread_entry_fn_t", "group__group__abstraction__rtos__threads.html#ga1e3db7a2b7a64fe9838804f049612d43", null ],
13 | [ "cy_thread_state_t", "group__group__abstraction__rtos__threads.html#gacc555d9fef9df1454dbcc8e3bd3e4ee6", [
14 | [ "CY_THREAD_STATE_INACTIVE", "group__group__abstraction__rtos__threads.html#ggacc555d9fef9df1454dbcc8e3bd3e4ee6a19af6e196af4c8cbe3d162f070892877", null ],
15 | [ "CY_THREAD_STATE_READY", "group__group__abstraction__rtos__threads.html#ggacc555d9fef9df1454dbcc8e3bd3e4ee6a8efc8355c0ce19bbc62e1e19950afc94", null ],
16 | [ "CY_THREAD_STATE_RUNNING", "group__group__abstraction__rtos__threads.html#ggacc555d9fef9df1454dbcc8e3bd3e4ee6a2b2a8db515615c92ad655cbb1ee3183e", null ],
17 | [ "CY_THREAD_STATE_BLOCKED", "group__group__abstraction__rtos__threads.html#ggacc555d9fef9df1454dbcc8e3bd3e4ee6a1188aa9968e841190908389b93a28cc2", null ],
18 | [ "CY_THREAD_STATE_TERMINATED", "group__group__abstraction__rtos__threads.html#ggacc555d9fef9df1454dbcc8e3bd3e4ee6aa5113cb861c5e7a6b1ee48f9eacf3b87", null ],
19 | [ "CY_THREAD_STATE_UNKNOWN", "group__group__abstraction__rtos__threads.html#ggacc555d9fef9df1454dbcc8e3bd3e4ee6a858524ed8b50486ec25c0949e6c443fd", null ]
20 | ] ],
21 | [ "cy_rtos_thread_create", "group__group__abstraction__rtos__threads.html#gaf0721c9708baff03b7ba01213e3693c5", null ],
22 | [ "cy_rtos_thread_exit", "group__group__abstraction__rtos__threads.html#gafdf08459efae892545782d13b2840ba6", null ],
23 | [ "cy_rtos_thread_terminate", "group__group__abstraction__rtos__threads.html#ga68dc2ce563e9ac1f31e2c2a3ea1c2fa7", null ],
24 | [ "cy_rtos_thread_join", "group__group__abstraction__rtos__threads.html#gabb5be1db099f0c85ec1156670d34763c", null ],
25 | [ "cy_rtos_thread_is_running", "group__group__abstraction__rtos__threads.html#ga88fcc6b322f83b515d4b049fca54a202", null ],
26 | [ "cy_rtos_thread_get_state", "group__group__abstraction__rtos__threads.html#gab587210336d9a91d51686150577615dd", null ],
27 | [ "cy_rtos_thread_get_handle", "group__group__abstraction__rtos__threads.html#ga2db2a0b5c73d1042313d229bf9fde18a", null ],
28 | [ "cy_rtos_thread_wait_notification", "group__group__abstraction__rtos__threads.html#ga48c657566a9d85d8003c8c8784907c0d", null ],
29 | [ "cy_rtos_thread_set_notification", "group__group__abstraction__rtos__threads.html#gaa29bd111d0e71594887f83e8a2ef5874", null ],
30 | [ "cy_rtos_thread_get_name", "group__group__abstraction__rtos__threads.html#ga69c4cc657945f9cc8aaf1ee3667fd004", null ]
31 | ];
--------------------------------------------------------------------------------
/source/COMPONENT_FREERTOS/cyabs_rtos_dsram.c:
--------------------------------------------------------------------------------
1 | /***********************************************************************************************//**
2 | * \file cyabs_freertos_dsram.c
3 | *
4 | * \brief
5 | * Provides implementations for functions required to enable deepsleep ram.
6 | *
7 | ***************************************************************************************************
8 | * \copyright
9 | * Copyright 2018-2022 Cypress Semiconductor Corporation (an Infineon company) or
10 | * an affiliate of Cypress Semiconductor Corporation
11 | *
12 | * SPDX-License-Identifier: Apache-2.0
13 | *
14 | * Licensed under the Apache License, Version 2.0 (the "License");
15 | * you may not use this file except in compliance with the License.
16 | * You may obtain a copy of the License at
17 | *
18 | * http://www.apache.org/licenses/LICENSE-2.0
19 | *
20 | * Unless required by applicable law or agreed to in writing, software
21 | * distributed under the License is distributed on an "AS IS" BASIS,
22 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 | * See the License for the specific language governing permissions and
24 | * limitations under the License.
25 | **************************************************************************************************/
26 | #include // For __WEAK
27 | #include "FreeRTOS.h"
28 | #include "cyabs_rtos.h"
29 | #include "cyabs_rtos_dsram.h"
30 | #if defined(COMPONENT_CAT1B)
31 | #include "cy_syslib.h"
32 | #endif
33 | #if defined(COMPONENT_CAT1E)
34 | #include "system_cat1e.h"
35 | #endif
36 |
37 | void vPortSetupTimerInterrupt(void);
38 | void Cy_SysPm_StoreDSContext_Wfi(void);
39 |
40 | #if defined (COMPONENT_CAT1B) || defined (COMPONENT_CAT1E)
41 | //--------------------------------------------------------------------------------------------------
42 | // vStoreDSRAMContextWithWFI
43 | //--------------------------------------------------------------------------------------------------
44 | __WEAK void vStoreDSRAMContextWithWFI(void)
45 | {
46 | }
47 |
48 |
49 | //--------------------------------------------------------------------------------------------------
50 | // vRestoreDSRAMContext
51 | //--------------------------------------------------------------------------------------------------
52 | __WEAK void vRestoreDSRAMContext(void)
53 | {
54 | }
55 |
56 |
57 | CY_RAMFUNC_BEGIN
58 | //--------------------------------------------------------------------------------------------------
59 | // Cy_SysPm_StoreDSContext_Wfi
60 | // Cy_SysPm_StoreDSContext_Wfi is defined as a weak function in pdl.
61 | // This implementation under abstraction rtos implements FreeRTOS
62 | // specific context store required for deep sleep entry.
63 | //--------------------------------------------------------------------------------------------------
64 | void Cy_SysPm_StoreDSContext_Wfi(void)
65 | {
66 | System_Store_NVIC_Reg();
67 | /* Clear the Warm Boot Entry status Flag */
68 | #if !defined(CYBSP_FREERTOS_DSRAM_WARMBOOT_SUPPORT) || \
69 | (defined(CYBSP_FREERTOS_DSRAM_WARMBOOT_SUPPORT) && \
70 | (CYBSP_FREERTOS_DSRAM_WARMBOOT_SUPPORT))
71 | Cy_SysLib_ClearDSRAMWarmBootEntryStatus();
72 | #endif \
73 | // !defined(CYBSP_FREERTOS_DSRAM_WARMBOOT_SUPPORT) ||
74 | // (defined(CYBSP_FREERTOS_DSRAM_WARMBOOT_SUPPORT) &&
75 | // (CYBSP_FREERTOS_DSRAM_WARMBOOT_SUPPORT)
76 | vStoreDSRAMContextWithWFI();
77 | System_Restore_NVIC_Reg();
78 | }
79 |
80 |
81 | CY_RAMFUNC_END
82 |
83 |
84 | //--------------------------------------------------------------------------------------------------
85 | // cyabs_dsram_exit_dsram
86 | //--------------------------------------------------------------------------------------------------
87 | __WEAK void cyabs_rtos_exit_dsram(void)
88 | {
89 | vPortSetupTimerInterrupt();
90 |
91 | vRestoreDSRAMContext();
92 | }
93 |
94 |
95 | #endif // if defined(COMPONENT_CAT1B)
96 |
--------------------------------------------------------------------------------
/include/COMPONENT_THREADX/cyabs_rtos_types.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************************************//**
2 | * \file cyabs_rtos_types.h
3 | *
4 | * \brief
5 | * Internal type definitions for RTOS abstraction layer
6 | *
7 | ***************************************************************************************************
8 | * \copyright
9 | * Copyright 2019-2025 Cypress Semiconductor Corporation (an Infineon company) or
10 | * an affiliate of Cypress Semiconductor Corporation
11 | *
12 | * SPDX-License-Identifier: Apache-2.0
13 | *
14 | * Licensed under the Apache License, Version 2.0 (the "License");
15 | * you may not use this file except in compliance with the License.
16 | * You may obtain a copy of the License at
17 | *
18 | * http://www.apache.org/licenses/LICENSE-2.0
19 | *
20 | * Unless required by applicable law or agreed to in writing, software
21 | * distributed under the License is distributed on an "AS IS" BASIS,
22 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
23 | * See the License for the specific language governing permissions and
24 | * limitations under the License.
25 | **************************************************************************************************/
26 |
27 | #pragma once
28 |
29 | #include
30 | #include
31 | #include "tx_api.h"
32 |
33 | #ifdef __cplusplus
34 | extern "C"
35 | {
36 | #endif
37 |
38 | #if !defined (COMPONENT_CAT5)
39 | #include
40 | #else
41 | #include "cyabs_rtos_impl_cat5.h"
42 | #endif
43 |
44 | /******************************************************
45 | * Type Definitions
46 | ******************************************************/
47 |
48 | #if !defined (COMPONENT_CAT5)
49 | // RTOS thread priority. See /ref cy_thread_priority_t in the
50 | // cyabs_rtos_impl_cat5.h for the CAT5 thread priority definitions
51 | typedef enum
52 | {
53 | CY_RTOS_PRIORITY_MIN = TX_MAX_PRIORITIES - 1, /**< Minumum allowable Thread
54 | priority */
55 | CY_RTOS_PRIORITY_LOW = (TX_MAX_PRIORITIES * 6 / 7), /**< A low priority Thread */
56 | CY_RTOS_PRIORITY_BELOWNORMAL = (TX_MAX_PRIORITIES * 5 / 7), /**< A slightly below normal
57 | Thread priority */
58 | CY_RTOS_PRIORITY_NORMAL = (TX_MAX_PRIORITIES * 4 / 7), /**< The normal Thread priority */
59 | CY_RTOS_PRIORITY_ABOVENORMAL = (TX_MAX_PRIORITIES * 3 / 7), /**< A slightly elevated Thread
60 | priority */
61 | CY_RTOS_PRIORITY_HIGH = (TX_MAX_PRIORITIES * 2 / 7), /**< A high priority Thread */
62 | CY_RTOS_PRIORITY_REALTIME = (TX_MAX_PRIORITIES * 1 / 7), /**< Realtime Thread priority */
63 | CY_RTOS_PRIORITY_MAX = 0 /**< Maximum allowable Thread
64 | priority */
65 | } cy_thread_priority_t;
66 | #endif // if !defined (COMPONENT_CAT5)
67 |
68 | typedef struct
69 | {
70 | uint32_t maxcount;
71 | TX_SEMAPHORE tx_semaphore;
72 | } cy_semaphore_t;
73 |
74 | typedef struct
75 | {
76 | ULONG* mem;
77 | // ThreadX buffer size is a power of 2 times word size,
78 | // this is used to prevent memory corruption when get message from queue.
79 | size_t itemsize;
80 | TX_QUEUE tx_queue;
81 | } cy_queue_t;
82 |
83 | typedef struct
84 | {
85 | bool oneshot;
86 | TX_TIMER tx_timer;
87 | } cy_timer_t;
88 |
89 | typedef TX_THREAD* cy_thread_t;
90 | typedef ULONG cy_thread_arg_t;
91 | typedef TX_MUTEX cy_mutex_t;
92 | typedef TX_EVENT_FLAGS_GROUP cy_event_t;
93 | typedef ULONG cy_timer_callback_arg_t;
94 | typedef uint32_t cy_time_t;
95 | typedef UINT cy_rtos_error_t;
96 |
97 | #ifdef __cplusplus
98 | } // extern "C"
99 | #endif
100 |
--------------------------------------------------------------------------------
/docs/html/dynsections.js:
--------------------------------------------------------------------------------
1 | /*
2 | @licstart The following is the entire license notice for the JavaScript code in this file.
3 |
4 | The MIT License (MIT)
5 |
6 | Copyright (C) 1997-2020 by Dimitri van Heesch
7 |
8 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software
9 | and associated documentation files (the "Software"), to deal in the Software without restriction,
10 | including without limitation the rights to use, copy, modify, merge, publish, distribute,
11 | sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in all copies or
15 | substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
18 | BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
20 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 |
23 | @licend The above is the entire license notice for the JavaScript code in this file
24 | */
25 | function toggleVisibility(linkObj)
26 | {
27 | var base = $(linkObj).attr('id');
28 | var summary = $('#'+base+'-summary');
29 | var content = $('#'+base+'-content');
30 | var trigger = $('#'+base+'-trigger');
31 | var src=$(trigger).attr('src');
32 | if (content.is(':visible')===true) {
33 | content.hide();
34 | summary.show();
35 | $(linkObj).addClass('closed').removeClass('opened');
36 | $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png');
37 | } else {
38 | content.show();
39 | summary.hide();
40 | $(linkObj).removeClass('closed').addClass('opened');
41 | $(trigger).attr('src',src.substring(0,src.length-10)+'open.png');
42 | }
43 | return false;
44 | }
45 |
46 | function updateStripes()
47 | {
48 | $('table.directory tr').
49 | removeClass('even').filter(':visible:even').addClass('even');
50 | }
51 |
52 | function toggleLevel(level)
53 | {
54 | $('table.directory tr').each(function() {
55 | var l = this.id.split('_').length-1;
56 | var i = $('#img'+this.id.substring(3));
57 | var a = $('#arr'+this.id.substring(3));
58 | if (l= REALTIME >= HIGH >= ABOVENORMAL >= NORMAL >= BELOWNORMAL >= LOW >= MIN
77 | */
78 | typedef enum
79 | {
80 | CY_RTOS_PRIORITY_MIN = 0, /**< Minumum allowable Thread priority */
81 | CY_RTOS_PRIORITY_LOW = 1, /**< A low priority Thread */
82 | CY_RTOS_PRIORITY_BELOWNORMAL = 2, /**< A slightly below normal Thread priority */
83 | CY_RTOS_PRIORITY_NORMAL = 3, /**< The normal Thread priority */
84 | CY_RTOS_PRIORITY_ABOVENORMAL = 4, /**< A slightly elevated Thread priority */
85 | CY_RTOS_PRIORITY_HIGH = 5, /**< A high priority Thread */
86 | CY_RTOS_PRIORITY_REALTIME = 6, /**< Realtime Thread priority */
87 | CY_RTOS_PRIORITY_MAX = 7 /**< Maximum allowable Thread priority */
88 | } cy_thread_priority_t;
89 |
90 | /** Alias for the RTOS specific definition of a thread handle */
91 | typedef void* /* TODO: Replace with RTOS specific type*/ cy_thread_t;
92 | /** Alias for the RTOS specific argument passed to the entry function of a thread */
93 | typedef void* /* TODO: Replace with RTOS specific type*/ cy_thread_arg_t;
94 | /** Alias for the RTOS specific definition of a mutex */
95 | typedef void* /* TODO: Replace with RTOS specific type*/ cy_mutex_t;
96 | /** Alias for the RTOS specific definition of a semaphore */
97 | typedef void* /* TODO: Replace with RTOS specific type*/ cy_semaphore_t;
98 | /** Alias for the RTOS specific definition of an event */
99 | typedef void* /* TODO: Replace with RTOS specific type*/ cy_event_t;
100 | /** Alias for the RTOS specific definition of a message queue */
101 | typedef void* /* TODO: Replace with RTOS specific type*/ cy_queue_t;
102 | /** Alias for the RTOS specific definition of a timer */
103 | typedef void* /* TODO: Replace with RTOS specific type*/ cy_timer_t;
104 | /** Alias for the RTOS specific argument passed to the timer callback function */
105 | typedef void* /* TODO: Replace with RTOS specific type*/ cy_timer_callback_arg_t;
106 | /** Alias for the RTOS specific time unit (in milliseconds) */
107 | typedef void* /* TODO: Replace with RTOS specific type*/ cy_time_t;
108 | /** Alias for the RTOS specific definition of a error status */
109 | typedef void* /* TODO: Replace with RTOS specific type*/ cy_rtos_error_t;
110 |
111 | /** \} group_abstraction_rtos_port */
112 |
113 | #ifdef __cplusplus
114 | } // extern "C"
115 | #endif
116 |
117 | #endif // defined(DOXYGEN)
118 |
--------------------------------------------------------------------------------
/RELEASE.md:
--------------------------------------------------------------------------------
1 | # RTOS Abstraction Library
2 | The RTOS Abstraction APIs allow middleware to be written to be RTOS aware, but not need to care about what the actual RTOS is.
3 |
4 | ### What's Included?
5 | The this release of the RTOS Abstraction API includes support for the following:
6 | * APIs for interacting with common RTOS Features including:
7 | * Threads
8 | * Mutexes
9 | * Semaphores
10 | * Timers
11 | * Queues
12 | * Events
13 | * Implementations are provided for
14 | * FreeRTOS
15 | * RTX (CMSIS RTOS)
16 | * ThreadX
17 |
18 | ### What Changed?
19 | #### v1.12.0
20 | - Documentation updates
21 | #### v1.11.0
22 | FreeRTOS:
23 | - DSRAM Warmboot: added macro CYBSP_FREERTOS_DSRAM_WARMBOOT_SUPPORT support to avoid warmboot flag to be cleared.
24 | - Scheduler: added new scheduler function, cy_rtos_scheduler_get_state, to retrieve current scheduler state.
25 | #### v1.10.0
26 | FreeRTOS:
27 | - Enabled support for HAL interface 3.0 LPTimer to allow tickless (Deep)Sleep.
28 | - In vApplicationSleep, variables renamed to better describe actual idle times.
29 | #### v1.9.0
30 | FreeRTOS:
31 | - Added compatibility with HAL 3.X API changes
32 | - In vApplicationSleep, enter basic CPU sleep (WFI) if it is not possible to enter tickless (Deep)Sleep.
33 | #### v1.8.2
34 | FreeRTOS: Fix start and stop of timer from within an ISR
35 | #### v1.8.1
36 | Extended full support on CAT5.
37 | #### v1.8.0
38 | Pre-production release for CAT5 only. Only one application thread is supported. The Scheduler API functions are not supported.
39 | #### v1.7.6
40 | * FreeRTOS: vApplicationSleep issue fixed where sleep could not be entered in non-deeplseep idle mode.
41 | #### v1.7.5
42 | * FreeRTOS: On devices that support DeepSleep, allow the application to specify a separate latency value for DeepSleep and normal Sleep, by defining `CY_CFG_PWR_SLEEP_LATENCY`.
43 | #### v1.7.4
44 | * FreeRTOS: On devices that support DeepSleep-RAM, allow the application to specify a separate latency value for DeepSleep-RAM (vs. DeepSleep), by defining `CY_CFG_PWR_DEEPSLEEP_RAM_LATENCY`.
45 | * FreeRTOS: Simplify flow for storing and restoring context during entry/exit from DeepSleep-RAM.
46 | #### v1.7.3
47 | FreeRTOS: Improve context switching speed when an ISR unblocks a thread.
48 | #### v1.7.2
49 | Expanded FreeRTOS support for DS RAM
50 | #### v1.7.1
51 | Explicitly include cmsis_compiler.h where required.
52 | #### v1.7.0
53 | * FreeRTOS: When DeepSleep is locked, the default idle loop will attempt to enter Sleep instead.
54 | * FreeRTOS: Add pre-production support for warm-boot after wake from DeepSleep-RAM power state (currently only present on CAT1B devices).
55 | #### v1.6.0
56 | * Removed the explicit in_isr argument from all functions. CPU status registers are used to automatically determine whether a function is executing in an interrupt context.
57 | * Renamed all functions in order to make grouping more clear. The original function names are deprecated.
58 | #### v1.5.0
59 | * Added additional parameter validation for ThreadX
60 | #### v1.4.0
61 | * Added new thread functions: cy_rtos_wait_thread_notification and cy_rtos_set_thread_notification
62 | * Minor documentation updates for clarity
63 | #### v1.3.1
64 | * Fixed a couple bugs in the FreeRTOS port
65 | #### v1.3.0
66 | * Update to work with a wider range of MCUs
67 | * Fixed a race condition in the worker thread
68 | * Fixed possible issue with thread priorities
69 | * Minor documentation updates
70 | #### v1.2.2
71 | * Minor update for documentation & branding
72 | #### v1.2.1
73 | * Fixed possible race condition in cy_rtos_join_thread for FreeRTOS
74 | * Minor documentation updates
75 | #### v1.2.0
76 | * Added utility library for for creating background worker threads: cy_worker_thread.h
77 | * Added support for getting a semaphore's count: cy_rtos_get_count_semaphore()
78 | * Added support for non-recursive mutexes: cy_rtos_init_mutex2()
79 | * Added default implementations for FreeRTOS vApplicationGetIdleTaskMemory, vApplicationGetTimerTaskMemory, and vApplicationSleep
80 | * Added support for ThreadX
81 | NOTE: The vApplicationSleep implementation for FreeRTOS depends on the psoc6hal 1.2.0 or later.
82 | #### v1.1.0
83 | * Fixed an issue with the FreeRTOS implementation where it would always allocate memory for the thread stack, even if a pre-allocated buffer was provided.
84 | * Removed usage of assert() and replaced with CY_ASSERT()
85 | #### v1.0.1
86 | * Added a new function to get the ID of the currently running thread.
87 | * A few minor updates to avoid possible warnings depending on compiler.
88 | * Minor documentation updates
89 | #### v1.0.0
90 | * Initial release supporting FreeRTOS & RTX
91 |
92 | ### Supported Software and Tools
93 | This version of the RTOS Abstraction API was validated for compatibility with the following Software and Tools:
94 |
95 | | Software and Tools | Version |
96 | | :--- | :----: |
97 | | ModusToolbox™ Software Environment | 2.4.0 |
98 | | GCC Compiler | 10.3.1 |
99 | | IAR Compiler | 9.40.2 |
100 | | ARM Compiler | 6.16 |
101 |
102 | Minimum required ModusToolbox™ Software Environment: v2.0
103 |
104 | ### More information
105 | Use the following links for more information, as needed:
106 | * [API Reference Guide](https://infineon.github.io/abstraction-rtos/html/modules.html)
107 | * [Cypress Semiconductor, an Infineon Technologies Company](http://www.cypress.com)
108 | * [Infineon GitHub](https://github.com/infineon)
109 | * [ModusToolbox™](https://www.cypress.com/products/modustoolbox-software-environment)
110 |
111 | ---
112 | © Cypress Semiconductor Corporation (an Infineon company) or an affiliate of Cypress Semiconductor Corporation, 2019-2023.
113 |
--------------------------------------------------------------------------------
/include/COMPONENT_THREADX/COMPONENT_CAT5/cyabs_rtos_impl_cat5.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************************************//**
2 | * \file cyabs_rtos_impl_cat5.h
3 | *
4 | * \brief
5 | * Internal definitions for RTOS abstraction layer specific to CAT5.
6 | ***************************************************************************************************
7 | * \copyright
8 | * Copyright 2018-2022 Cypress Semiconductor Corporation (an Infineon company) or
9 | * an affiliate of Cypress Semiconductor Corporation
10 | *
11 | * SPDX-License-Identifier: Apache-2.0
12 | *
13 | * Licensed under the Apache License, Version 2.0 (the "License");
14 | * you may not use this file except in compliance with the License.
15 | * You may obtain a copy of the License at
16 | *
17 | * http://www.apache.org/licenses/LICENSE-2.0
18 | *
19 | * Unless required by applicable law or agreed to in writing, software
20 | * distributed under the License is distributed on an "AS IS" BASIS,
21 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22 | * See the License for the specific language governing permissions and
23 | * limitations under the License.
24 | **************************************************************************************************/
25 |
26 | #pragma once
27 |
28 | #ifdef __cplusplus
29 | extern "C" {
30 | #endif
31 |
32 | #include
33 | #include "tx_api.h"
34 | #include "cyhal_system.h"
35 |
36 |
37 | /******************************************************
38 | * Type Definitions
39 | ******************************************************/
40 | #if defined (CYW55500A0)
41 | // RTOS thread priority. Main thread priority is 24.
42 | typedef enum
43 | {
44 | CY_RTOS_PRIORITY_MIN = 0, /**< Minimum allowable Thread priority */
45 | CY_RTOS_PRIORITY_LOW = 1, /**< A low priority Thread */
46 | CY_RTOS_PRIORITY_BELOWNORMAL = 2, /**< A slightly below normal Thread priority */
47 | CY_RTOS_PRIORITY_NORMAL = 3, /**< The normal Thread priority */
48 | CY_RTOS_PRIORITY_ABOVENORMAL = 4, /**< A slightly elevated Thread priority */
49 | CY_RTOS_PRIORITY_HIGH = 5, /**< A high priority Thread */
50 | CY_RTOS_PRIORITY_REALTIME = 6, /**< Realtime Thread priority */
51 | CY_RTOS_PRIORITY_MAX = 7 /**< Maximum allowable Thread priority */
52 | } cy_thread_priority_t;
53 | #else // if defined (CYW55500A0)
54 | #if defined (CYW55500A1) //Main thread priority is 24.Range from 24-31
55 | #define MULTIPLY_FACTOR (1U)
56 | #else
57 | #define MULTIPLY_FACTOR (3U) //Main thread priority is 10.Range from 10-31
58 | #endif
59 | // RTOS thread priority.
60 | typedef enum
61 | {
62 | CY_RTOS_PRIORITY_MIN = (TX_MAX_PRIORITIES-1), /**< Minimum
63 | allowable
64 | Thread
65 | priority */
66 | CY_RTOS_PRIORITY_LOW = ((TX_MAX_PRIORITIES-1) - (MULTIPLY_FACTOR*1)), /**< A low
67 | priority
68 | Thread */
69 | CY_RTOS_PRIORITY_BELOWNORMAL = ((TX_MAX_PRIORITIES-1) - (MULTIPLY_FACTOR*2)), /**< A slightly
70 | below normal
71 | Thread
72 | priority
73 | */
74 | CY_RTOS_PRIORITY_NORMAL = ((TX_MAX_PRIORITIES-1) - (MULTIPLY_FACTOR*3)), /**< The normal
75 | Thread
76 | priority */
77 | CY_RTOS_PRIORITY_ABOVENORMAL = ((TX_MAX_PRIORITIES-1) - (MULTIPLY_FACTOR*4)), /**< A slightly
78 | elevated
79 | Thread
80 | priority
81 | */
82 | CY_RTOS_PRIORITY_HIGH = ((TX_MAX_PRIORITIES-1) - (MULTIPLY_FACTOR*5)), /**< A high
83 | priority
84 | Thread */
85 | CY_RTOS_PRIORITY_REALTIME = ((TX_MAX_PRIORITIES-1) - (MULTIPLY_FACTOR*6)), /**< Realtime
86 | Thread
87 | priority
88 | */
89 | CY_RTOS_PRIORITY_MAX = ((TX_MAX_PRIORITIES-1) - (MULTIPLY_FACTOR*7)) /**< Maximum
90 | allowable
91 | Thread
92 | priority */
93 | } cy_thread_priority_t;
94 | #endif // if defined (CYW55500)
95 |
96 | #if defined(__cplusplus)
97 | }
98 | #endif
99 |
--------------------------------------------------------------------------------
/docs/html/search/enumvalues_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['cy_5frtos_5fpriority_5fabovenormal_0',['CY_RTOS_PRIORITY_ABOVENORMAL',['../group__group__abstraction__rtos__port.html#gga9f21bb78897c25df019b6e4286ecc7a0aba8fa5ad998aad406aa120cd32c371e4',1,'cyabs_rtos_impl.h']]],
4 | ['cy_5frtos_5fpriority_5fbelownormal_1',['CY_RTOS_PRIORITY_BELOWNORMAL',['../group__group__abstraction__rtos__port.html#gga9f21bb78897c25df019b6e4286ecc7a0a3184787379faa0701717fa2b13c71132',1,'cyabs_rtos_impl.h']]],
5 | ['cy_5frtos_5fpriority_5fhigh_2',['CY_RTOS_PRIORITY_HIGH',['../group__group__abstraction__rtos__port.html#gga9f21bb78897c25df019b6e4286ecc7a0a2b2471ff20337e6efd1f55b241765951',1,'cyabs_rtos_impl.h']]],
6 | ['cy_5frtos_5fpriority_5flow_3',['CY_RTOS_PRIORITY_LOW',['../group__group__abstraction__rtos__port.html#gga9f21bb78897c25df019b6e4286ecc7a0adb7152d4d80f56bb5c88570769f219d8',1,'cyabs_rtos_impl.h']]],
7 | ['cy_5frtos_5fpriority_5fmax_4',['CY_RTOS_PRIORITY_MAX',['../group__group__abstraction__rtos__port.html#gga9f21bb78897c25df019b6e4286ecc7a0a3ab1fe19a851c645d3ac8f5a2c1e1be2',1,'cyabs_rtos_impl.h']]],
8 | ['cy_5frtos_5fpriority_5fmin_5',['CY_RTOS_PRIORITY_MIN',['../group__group__abstraction__rtos__port.html#gga9f21bb78897c25df019b6e4286ecc7a0acc5a695124ae1d0da2abe6e8fb8bcc6e',1,'cyabs_rtos_impl.h']]],
9 | ['cy_5frtos_5fpriority_5fnormal_6',['CY_RTOS_PRIORITY_NORMAL',['../group__group__abstraction__rtos__port.html#gga9f21bb78897c25df019b6e4286ecc7a0a106f914a7dedbee23fe1560be2e9839d',1,'cyabs_rtos_impl.h']]],
10 | ['cy_5frtos_5fpriority_5frealtime_7',['CY_RTOS_PRIORITY_REALTIME',['../group__group__abstraction__rtos__port.html#gga9f21bb78897c25df019b6e4286ecc7a0ab5a62a719e4035d1aeb480a5071e4acb',1,'cyabs_rtos_impl.h']]],
11 | ['cy_5fscheduler_5fstate_5finactive_8',['CY_SCHEDULER_STATE_INACTIVE',['../group__group__abstraction__rtos__scheduler.html#ggaae80bd02ca4ff97c131716f4237d1645a5801e4f5f63c70077b70c9a76be3f545',1,'cyabs_rtos.h']]],
12 | ['cy_5fscheduler_5fstate_5flocked_9',['CY_SCHEDULER_STATE_LOCKED',['../group__group__abstraction__rtos__scheduler.html#ggaae80bd02ca4ff97c131716f4237d1645a6ed064567a0ccad21758150cb5567313',1,'cyabs_rtos.h']]],
13 | ['cy_5fscheduler_5fstate_5fnot_5fstarted_10',['CY_SCHEDULER_STATE_NOT_STARTED',['../group__group__abstraction__rtos__scheduler.html#ggaae80bd02ca4ff97c131716f4237d1645a84a073d2452b8ae5cca71e46bfc77242',1,'cyabs_rtos.h']]],
14 | ['cy_5fscheduler_5fstate_5fready_11',['CY_SCHEDULER_STATE_READY',['../group__group__abstraction__rtos__scheduler.html#ggaae80bd02ca4ff97c131716f4237d1645ad1d31d8c4f4024294a34e583a93c7f5b',1,'cyabs_rtos.h']]],
15 | ['cy_5fscheduler_5fstate_5frunning_12',['CY_SCHEDULER_STATE_RUNNING',['../group__group__abstraction__rtos__scheduler.html#ggaae80bd02ca4ff97c131716f4237d1645a30ff479458cd9efde31576feb31a680a',1,'cyabs_rtos.h']]],
16 | ['cy_5fscheduler_5fstate_5fsuspended_13',['CY_SCHEDULER_STATE_SUSPENDED',['../group__group__abstraction__rtos__scheduler.html#ggaae80bd02ca4ff97c131716f4237d1645aa2f87b6561949bc85070993e56d3dc8d',1,'cyabs_rtos.h']]],
17 | ['cy_5fscheduler_5fstate_5funknown_14',['CY_SCHEDULER_STATE_UNKNOWN',['../group__group__abstraction__rtos__scheduler.html#ggaae80bd02ca4ff97c131716f4237d1645a2155088897bb9ebf86f72ac83fc87c4a',1,'cyabs_rtos.h']]],
18 | ['cy_5fthread_5fstate_5fblocked_15',['CY_THREAD_STATE_BLOCKED',['../group__group__abstraction__rtos__threads.html#ggacc555d9fef9df1454dbcc8e3bd3e4ee6a1188aa9968e841190908389b93a28cc2',1,'cyabs_rtos.h']]],
19 | ['cy_5fthread_5fstate_5finactive_16',['CY_THREAD_STATE_INACTIVE',['../group__group__abstraction__rtos__threads.html#ggacc555d9fef9df1454dbcc8e3bd3e4ee6a19af6e196af4c8cbe3d162f070892877',1,'cyabs_rtos.h']]],
20 | ['cy_5fthread_5fstate_5fready_17',['CY_THREAD_STATE_READY',['../group__group__abstraction__rtos__threads.html#ggacc555d9fef9df1454dbcc8e3bd3e4ee6a8efc8355c0ce19bbc62e1e19950afc94',1,'cyabs_rtos.h']]],
21 | ['cy_5fthread_5fstate_5frunning_18',['CY_THREAD_STATE_RUNNING',['../group__group__abstraction__rtos__threads.html#ggacc555d9fef9df1454dbcc8e3bd3e4ee6a2b2a8db515615c92ad655cbb1ee3183e',1,'cyabs_rtos.h']]],
22 | ['cy_5fthread_5fstate_5fterminated_19',['CY_THREAD_STATE_TERMINATED',['../group__group__abstraction__rtos__threads.html#ggacc555d9fef9df1454dbcc8e3bd3e4ee6aa5113cb861c5e7a6b1ee48f9eacf3b87',1,'cyabs_rtos.h']]],
23 | ['cy_5fthread_5fstate_5funknown_20',['CY_THREAD_STATE_UNKNOWN',['../group__group__abstraction__rtos__threads.html#ggacc555d9fef9df1454dbcc8e3bd3e4ee6a858524ed8b50486ec25c0949e6c443fd',1,'cyabs_rtos.h']]],
24 | ['cy_5ftimer_5ftype_5fonce_21',['CY_TIMER_TYPE_ONCE',['../group__group__abstraction__rtos__timer.html#gga0606aecc2c90e9315f7da5e3daa3ffc1af554aa26a56ebee9da223be7c1f9d0e1',1,'cyabs_rtos.h']]],
25 | ['cy_5ftimer_5ftype_5fperiodic_22',['CY_TIMER_TYPE_PERIODIC',['../group__group__abstraction__rtos__timer.html#gga0606aecc2c90e9315f7da5e3daa3ffc1af7a191ed0c1879be4d0840a166299839',1,'cyabs_rtos.h']]],
26 | ['cy_5fworker_5fthread_5fenqueuing_23',['CY_WORKER_THREAD_ENQUEUING',['../group__group__worker__thread__util.html#gga514bc54aa543a69ce1768903b9851473a5b1b5a7751c0460c908bfbb65cb7be08',1,'cy_worker_thread.h']]],
27 | ['cy_5fworker_5fthread_5finvalid_24',['CY_WORKER_THREAD_INVALID',['../group__group__worker__thread__util.html#gga514bc54aa543a69ce1768903b9851473a0d938b2d088126d6d47c936040e843c2',1,'cy_worker_thread.h']]],
28 | ['cy_5fworker_5fthread_5fjoin_5fcomplete_25',['CY_WORKER_THREAD_JOIN_COMPLETE',['../group__group__worker__thread__util.html#gga514bc54aa543a69ce1768903b9851473a8685271e73d4fc9bc13e62a58a8431c8',1,'cy_worker_thread.h']]],
29 | ['cy_5fworker_5fthread_5fterminating_26',['CY_WORKER_THREAD_TERMINATING',['../group__group__worker__thread__util.html#gga514bc54aa543a69ce1768903b9851473a79db794eee56f8188a116ed31ae5b1d4',1,'cy_worker_thread.h']]],
30 | ['cy_5fworker_5fthread_5fvalid_27',['CY_WORKER_THREAD_VALID',['../group__group__worker__thread__util.html#gga514bc54aa543a69ce1768903b9851473aec127b9642db106c61c3c32106fb69fb',1,'cy_worker_thread.h']]]
31 | ];
32 |
--------------------------------------------------------------------------------
/docs/html/search/search.css:
--------------------------------------------------------------------------------
1 | /*---------------- Search Box */
2 |
3 | #MSearchBox {
4 | white-space : nowrap;
5 | background: white;
6 | border-radius: 0.65em;
7 | box-shadow: inset 0.5px 0.5px 3px 0px #555;
8 | z-index: 102;
9 | }
10 |
11 | #MSearchBox .left {
12 | display: inline-block;
13 | vertical-align: middle;
14 | height: 1.4em;
15 | }
16 |
17 | #MSearchSelect {
18 | display: inline-block;
19 | vertical-align: middle;
20 | height: 19px;
21 | padding: 0 0 0 0.3em;
22 | margin: 0;
23 | }
24 |
25 | #MSearchField {
26 | display: inline-block;
27 | vertical-align: middle;
28 | width: 7.5em;
29 | height: 19px;
30 | margin: 0 0.15em;
31 | padding: 0;
32 | line-height: 1em;
33 | border:none;
34 | color: #909090;
35 | outline: none;
36 | font-family: Arial, Verdana, sans-serif;
37 | -webkit-border-radius: 0px;
38 | border-radius: 0px;
39 | background: none;
40 | }
41 |
42 | @media(hover: none) {
43 | /* to avoid zooming on iOS */
44 | #MSearchField {
45 | font-size: 16px;
46 | }
47 | }
48 |
49 | #MSearchBox .right {
50 | display: inline-block;
51 | vertical-align: middle;
52 | width: 1.4em;
53 | height: 1.4em;
54 | }
55 |
56 | #MSearchClose {
57 | display: none;
58 | font-size: inherit;
59 | background : none;
60 | border: none;
61 | margin: 0;
62 | padding: 0;
63 | outline: none;
64 |
65 | }
66 |
67 | #MSearchCloseImg {
68 | height: 1.4em;
69 | padding: 0.3em;
70 | margin: 0;
71 | }
72 |
73 | .MSearchBoxActive #MSearchField {
74 | color: #000000;
75 | }
76 |
77 | #main-menu > li:last-child {
78 | /* This object is the parent of the search bar */
79 | display: flex;
80 | justify-content: center;
81 | align-items: center;
82 | height: 36px;
83 | margin-right: 1em;
84 | }
85 |
86 | /*---------------- Search filter selection */
87 |
88 | #MSearchSelectWindow {
89 | display: none;
90 | position: absolute;
91 | left: 0; top: 0;
92 | border: 1px solid #90A5CE;
93 | background-color: #F9FAFC;
94 | z-index: 10001;
95 | padding-top: 4px;
96 | padding-bottom: 4px;
97 | -moz-border-radius: 4px;
98 | -webkit-border-top-left-radius: 4px;
99 | -webkit-border-top-right-radius: 4px;
100 | -webkit-border-bottom-left-radius: 4px;
101 | -webkit-border-bottom-right-radius: 4px;
102 | -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15);
103 | }
104 |
105 | .SelectItem {
106 | font: 8pt Arial, Verdana, sans-serif;
107 | padding-left: 2px;
108 | padding-right: 12px;
109 | border: 0px;
110 | }
111 |
112 | span.SelectionMark {
113 | margin-right: 4px;
114 | font-family: monospace;
115 | outline-style: none;
116 | text-decoration: none;
117 | }
118 |
119 | a.SelectItem {
120 | display: block;
121 | outline-style: none;
122 | color: #000000;
123 | text-decoration: none;
124 | padding-left: 6px;
125 | padding-right: 12px;
126 | }
127 |
128 | a.SelectItem:focus,
129 | a.SelectItem:active {
130 | color: #000000;
131 | outline-style: none;
132 | text-decoration: none;
133 | }
134 |
135 | a.SelectItem:hover {
136 | color: #FFFFFF;
137 | background-color: #3D578C;
138 | outline-style: none;
139 | text-decoration: none;
140 | cursor: pointer;
141 | display: block;
142 | }
143 |
144 | /*---------------- Search results window */
145 |
146 | iframe#MSearchResults {
147 | /*width: 60ex;*/
148 | height: 15em;
149 | }
150 |
151 | #MSearchResultsWindow {
152 | display: none;
153 | position: absolute;
154 | left: 0; top: 0;
155 | border: 1px solid #000;
156 | background-color: #EEF1F7;
157 | z-index:10000;
158 | }
159 |
160 | /* ----------------------------------- */
161 |
162 |
163 | #SRIndex {
164 | clear:both;
165 | padding-bottom: 15px;
166 | }
167 |
168 | .SREntry {
169 | font-size: 10pt;
170 | padding-left: 1ex;
171 | }
172 |
173 | .SRPage .SREntry {
174 | font-size: 8pt;
175 | padding: 1px 5px;
176 | }
177 |
178 | body.SRPage {
179 | margin: 5px 2px;
180 | }
181 |
182 | .SRChildren {
183 | padding-left: 3ex; padding-bottom: .5em
184 | }
185 |
186 | .SRPage .SRChildren {
187 | display: none;
188 | }
189 |
190 | .SRSymbol {
191 | font-weight: bold;
192 | color: #425E97;
193 | font-family: Arial, Verdana, sans-serif;
194 | text-decoration: none;
195 | outline: none;
196 | }
197 |
198 | a.SRScope {
199 | display: block;
200 | color: #425E97;
201 | font-family: Arial, Verdana, sans-serif;
202 | text-decoration: none;
203 | outline: none;
204 | }
205 |
206 | a.SRSymbol:focus, a.SRSymbol:active,
207 | a.SRScope:focus, a.SRScope:active {
208 | text-decoration: underline;
209 | }
210 |
211 | span.SRScope {
212 | padding-left: 4px;
213 | font-family: Arial, Verdana, sans-serif;
214 | }
215 |
216 | .SRPage .SRStatus {
217 | padding: 2px 5px;
218 | font-size: 8pt;
219 | font-style: italic;
220 | font-family: Arial, Verdana, sans-serif;
221 | }
222 |
223 | .SRResult {
224 | display: none;
225 | }
226 |
227 | div.searchresults {
228 | margin-left: 10px;
229 | margin-right: 10px;
230 | }
231 |
232 | /*---------------- External search page results */
233 |
234 | .searchresult {
235 | background-color: #F0F3F8;
236 | }
237 |
238 | .pages b {
239 | color: white;
240 | padding: 5px 5px 3px 5px;
241 | background-image: url("../tab_a.png");
242 | background-repeat: repeat-x;
243 | text-shadow: 0 1px 1px #000000;
244 | }
245 |
246 | .pages {
247 | line-height: 17px;
248 | margin-left: 4px;
249 | text-decoration: none;
250 | }
251 |
252 | .hl {
253 | font-weight: bold;
254 | }
255 |
256 | #searchresults {
257 | margin-bottom: 20px;
258 | }
259 |
260 | .searchpages {
261 | margin-top: 10px;
262 | }
263 |
264 |
--------------------------------------------------------------------------------
/docs/html/resize.js:
--------------------------------------------------------------------------------
1 | /*
2 | @licstart The following is the entire license notice for the JavaScript code in this file.
3 |
4 | The MIT License (MIT)
5 |
6 | Copyright (C) 1997-2020 by Dimitri van Heesch
7 |
8 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software
9 | and associated documentation files (the "Software"), to deal in the Software without restriction,
10 | including without limitation the rights to use, copy, modify, merge, publish, distribute,
11 | sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in all copies or
15 | substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
18 | BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
20 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 |
23 | @licend The above is the entire license notice for the JavaScript code in this file
24 | */
25 | function initResizable()
26 | {
27 | var cookie_namespace = 'doxygen';
28 | var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight;
29 |
30 | function readCookie(cookie)
31 | {
32 | var myCookie = cookie_namespace+"_"+cookie+"=";
33 | if (document.cookie) {
34 | var index = document.cookie.indexOf(myCookie);
35 | if (index != -1) {
36 | var valStart = index + myCookie.length;
37 | var valEnd = document.cookie.indexOf(";", valStart);
38 | if (valEnd == -1) {
39 | valEnd = document.cookie.length;
40 | }
41 | var val = document.cookie.substring(valStart, valEnd);
42 | return val;
43 | }
44 | }
45 | return 0;
46 | }
47 |
48 | function writeCookie(cookie, val, expiration)
49 | {
50 | if (val==undefined) return;
51 | if (expiration == null) {
52 | var date = new Date();
53 | date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week
54 | expiration = date.toGMTString();
55 | }
56 | document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; SameSite=Lax; expires=" + expiration+"; path=/";
57 | }
58 |
59 | function resizeWidth()
60 | {
61 | var windowWidth = $(window).width() + "px";
62 | var sidenavWidth = $(sidenav).outerWidth();
63 | content.css({marginLeft:parseInt(sidenavWidth)+"px"});
64 | writeCookie('width',sidenavWidth-barWidth, null);
65 | }
66 |
67 | function restoreWidth(navWidth)
68 | {
69 | var windowWidth = $(window).width() + "px";
70 | content.css({marginLeft:parseInt(navWidth)+barWidth+"px"});
71 | sidenav.css({width:navWidth + "px"});
72 | }
73 |
74 | function resizeHeight()
75 | {
76 | var headerHeight = header.outerHeight();
77 | var footerHeight = footer.outerHeight();
78 | var windowHeight = $(window).height();
79 | var contentHeight,navtreeHeight,sideNavHeight;
80 | if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */
81 | contentHeight = windowHeight - headerHeight - footerHeight;
82 | navtreeHeight = contentHeight;
83 | sideNavHeight = contentHeight;
84 | } else if (page_layout==1) { /* DISABLE_INDEX=YES */
85 | contentHeight = windowHeight - footerHeight;
86 | navtreeHeight = windowHeight - headerHeight;
87 | sideNavHeight = windowHeight;
88 | }
89 | content.css({height:contentHeight + "px"});
90 | navtree.css({height:navtreeHeight + "px"});
91 | sidenav.css({height:sideNavHeight + "px"});
92 | var width=$(window).width();
93 | if (width!=collapsedWidth) {
94 | if (width=desktop_vp) {
95 | if (!collapsed) {
96 | collapseExpand();
97 | }
98 | } else if (width>desktop_vp && collapsedWidth0) {
113 | restoreWidth(0);
114 | collapsed=true;
115 | }
116 | else {
117 | var width = readCookie('width');
118 | if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); }
119 | collapsed=false;
120 | }
121 | }
122 |
123 | header = $("#top");
124 | sidenav = $("#side-nav");
125 | content = $("#doc-content");
126 | navtree = $("#nav-tree");
127 | footer = $("#nav-path");
128 | $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } });
129 | $(sidenav).resizable({ minWidth: 0 });
130 | $(window).resize(function() { resizeHeight(); });
131 | var device = navigator.userAgent.toLowerCase();
132 | var touch_device = device.match(/(iphone|ipod|ipad|android)/);
133 | if (touch_device) { /* wider split bar for touch only devices */
134 | $(sidenav).css({ paddingRight:'20px' });
135 | $('.ui-resizable-e').css({ width:'20px' });
136 | $('#nav-sync').css({ right:'34px' });
137 | barWidth=20;
138 | }
139 | var width = readCookie('width');
140 | if (width) { restoreWidth(width); } else { resizeWidth(); }
141 | resizeHeight();
142 | var url = location.href;
143 | var i=url.indexOf("#");
144 | if (i>=0) window.location.hash=url.substr(i);
145 | var _preventDefault = function(evt) { evt.preventDefault(); };
146 | $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault);
147 | $(".ui-resizable-handle").dblclick(collapseExpand);
148 | $(window).on('load',resizeHeight);
149 | }
150 | /* @license-end */
151 |
--------------------------------------------------------------------------------
/docs/html/menu.js:
--------------------------------------------------------------------------------
1 | /*
2 | @licstart The following is the entire license notice for the JavaScript code in this file.
3 |
4 | The MIT License (MIT)
5 |
6 | Copyright (C) 1997-2020 by Dimitri van Heesch
7 |
8 | Permission is hereby granted, free of charge, to any person obtaining a copy of this software
9 | and associated documentation files (the "Software"), to deal in the Software without restriction,
10 | including without limitation the rights to use, copy, modify, merge, publish, distribute,
11 | sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
12 | furnished to do so, subject to the following conditions:
13 |
14 | The above copyright notice and this permission notice shall be included in all copies or
15 | substantial portions of the Software.
16 |
17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
18 | BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
19 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
20 | DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 |
23 | @licend The above is the entire license notice for the JavaScript code in this file
24 | */
25 | function initMenu(relPath,searchEnabled,serverSide,searchPage,search) {
26 | function makeTree(data,relPath) {
27 | var result='';
28 | if ('children' in data) {
29 | result+='';
36 | }
37 | return result;
38 | }
39 | var searchBox;
40 | if (searchEnabled) {
41 | if (serverSide) {
42 | searchBox=''+
43 | '
'+
52 | '
'+
53 | '
';
54 | } else {
55 | searchBox=''+
56 | '
'+
57 | ' '+
60 | ' '+
64 | ' '+
65 | '
'+
67 | ' '
69 | ''
70 | '
';
71 | }
72 | }
73 |
74 | $('#main-nav').before(' '+
75 | ''+
76 | ' '+
77 | 'Toggle main menu visibility '+
78 | ' '+
79 | '
');
80 | $('#main-nav').append(makeTree(menudata,relPath));
81 | $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu');
82 | if (searchBox) {
83 | $('#main-menu').append(' ');
84 | }
85 | var $mainMenuState = $('#main-menu-state');
86 | var prevWidth = 0;
87 | if ($mainMenuState.length) {
88 | function initResizableIfExists() {
89 | if (typeof initResizable==='function') initResizable();
90 | }
91 | // animate mobile menu
92 | $mainMenuState.change(function(e) {
93 | var $menu = $('#main-menu');
94 | var options = { duration: 250, step: initResizableIfExists };
95 | if (this.checked) {
96 | options['complete'] = function() { $menu.css('display', 'block') };
97 | $menu.hide().slideDown(options);
98 | } else {
99 | options['complete'] = function() { $menu.css('display', 'none') };
100 | $menu.show().slideUp(options);
101 | }
102 | });
103 | // set default menu visibility
104 | function resetState() {
105 | var $menu = $('#main-menu');
106 | var $mainMenuState = $('#main-menu-state');
107 | var newWidth = $(window).outerWidth();
108 | if (newWidth!=prevWidth) {
109 | if ($(window).outerWidth()<768) {
110 | $mainMenuState.prop('checked',false); $menu.hide();
111 | $('#searchBoxPos1').html(searchBox);
112 | $('#searchBoxPos2').hide();
113 | } else {
114 | $menu.show();
115 | $('#searchBoxPos1').empty();
116 | $('#searchBoxPos2').html(searchBox);
117 | $('#searchBoxPos2').show();
118 | }
119 | prevWidth = newWidth;
120 | }
121 | }
122 | $(window).ready(function() { resetState(); initResizableIfExists(); });
123 | $(window).resize(resetState);
124 | }
125 | $('#main-menu').smartmenus();
126 | }
127 | /* @license-end */
128 |
--------------------------------------------------------------------------------
/include/cy_worker_thread.h:
--------------------------------------------------------------------------------
1 | /***********************************************************************************************//**
2 | * \file cy_worker_thread.h
3 | *
4 | * \brief
5 | * Defines the interface for the worker thread utility. Provides prototypes for
6 | * functions that allow creating/deleting worker threads and queueing work to
7 | * a worker thread.
8 | ***************************************************************************************************
9 | * \copyright
10 | * Copyright 2018-2022 Cypress Semiconductor Corporation (an Infineon company) or
11 | * an affiliate of Cypress Semiconductor Corporation
12 | *
13 | * SPDX-License-Identifier: Apache-2.0
14 | *
15 | * Licensed under the Apache License, Version 2.0 (the "License");
16 | * you may not use this file except in compliance with the License.
17 | * You may obtain a copy of the License at
18 | *
19 | * http://www.apache.org/licenses/LICENSE-2.0
20 | *
21 | * Unless required by applicable law or agreed to in writing, software
22 | * distributed under the License is distributed on an "AS IS" BASIS,
23 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24 | * See the License for the specific language governing permissions and
25 | * limitations under the License.
26 | **************************************************************************************************/
27 |
28 | #pragma once
29 |
30 | #ifdef __cplusplus
31 | extern "C" {
32 | #endif
33 |
34 | #include
35 |
36 | #include "cy_result.h"
37 | #include "cyabs_rtos.h"
38 |
39 | /**
40 | * \addtogroup group_worker_thread_util Worker Thread Utility
41 | * \{
42 | * Worker thread utility that allows functions to be run a different thread context.
43 | * This utility can be used to delegate work that is not timing critical. For example,
44 | * scheduling work in interrupt handlers to keep handler execution times low or if some
45 | * work needs to be done at a different priority.
46 | */
47 |
48 | /**< Default worker thread name */
49 | #define CY_WORKER_THREAD_DEFAULT_NAME "CYWorker"
50 | /** Default number of work items in the queue */
51 | #define CY_WORKER_DEFAULT_ENTRIES (16)
52 |
53 | /** Additional work cannot be enqueued because the worker thread has been terminated.
54 | * This can occur if \ref cy_worker_thread_create was not called or \ref cy_worker_thread_delete was
55 | * called before calling \ref cy_worker_thread_enqueue
56 | */
57 | #define CY_WORKER_THREAD_ERR_THREAD_INVALID \
58 | CY_RSLT_CREATE(CY_RSLT_TYPE_ERROR, CY_RSLT_MODULE_ABSTRACTION_OS, 32)
59 |
60 | /** Worker thread function call prototype */
61 | typedef void (cy_worker_thread_func_t)(void* arg);
62 |
63 | /** Thread state enumeration */
64 | typedef enum
65 | {
66 | CY_WORKER_THREAD_INVALID, /**< Worker Thread is in invalid state */
67 | CY_WORKER_THREAD_VALID, /**< Worker Thread is in valid state */
68 | CY_WORKER_THREAD_ENQUEUING, /**< Worker Thread is adding to the queue */
69 | CY_WORKER_THREAD_TERMINATING, /**< Worker Thread is starting to terminate */
70 | CY_WORKER_THREAD_JOIN_COMPLETE /**< Worker Thread join is complete */
71 | } cy_worker_thread_state_t;
72 |
73 | /** Worker Thread Parameters. */
74 | typedef struct
75 | {
76 | cy_thread_priority_t priority; /**< Requested thread priority. */
77 | uint32_t stack_size; /**< Size of stack for new thread.
78 | Note that this must be atleast CY_RTOS_MIN_STACK_SIZE */
79 | uint8_t* stack; /**< Pointer to stack. If this is NULL a stack of
80 | size \ref stack_size will be allocated. */
81 | const char* name; /**< Thread name. If set to NULL,
82 | \ref CY_WORKER_THREAD_DEFAULT_NAME will be used. */
83 | uint32_t num_entries; /**< Maximum number of enteries the worker thread can queue.
84 | If set to 0, \ref CY_WORKER_DEFAULT_ENTRIES
85 | will be used. */
86 | } cy_worker_thread_params_t;
87 |
88 | /** Worker Thread Information. */
89 | typedef struct
90 | {
91 | cy_queue_t event_queue; /**< Event Queue for this thread */
92 | uint32_t enqueue_count; /**< Number of conccurent enqueue requests */
93 | cy_thread_t thread; /**< Thread object */
94 | cy_worker_thread_state_t state; /**< State of the worker thread */
95 | } cy_worker_thread_info_t;
96 |
97 | /** Create worker thread to handle running callbacks in a separate thread.
98 | *
99 | * @note Calling this function twice on the same thread object ( \ref cy_worker_thread_info_t)
100 | * without
101 | * calling \ref cy_worker_thread_delete will cause memory leakage.
102 | *
103 | * @param[out] new_worker pointer to cy_worker_thread_info_t structure to be filled when created.
104 | * @param[in] params pointer to requested parameters for starting worker thread.
105 | *
106 | * @return The status of the worker thread creation request.
107 | */
108 | cy_rslt_t cy_worker_thread_create(cy_worker_thread_info_t* new_worker,
109 | const cy_worker_thread_params_t* params);
110 |
111 | /** Delete worker thread.
112 | *
113 | * @note This function will wait for the thread to complete all pending work in the
114 | * queue and exit before returning.
115 | *
116 | * @param[in] old_worker pointer to cy_worker_thread_info_t structure to be deleted.
117 | *
118 | * @return The status of the deletion of the worker thread.
119 | */
120 | cy_rslt_t cy_worker_thread_delete(cy_worker_thread_info_t* old_worker);
121 |
122 | /** Queue work on a worker thread.
123 | *
124 | * Call the given function in the worker thread context.
125 | *
126 | * @note If the thread priority is below that of the current thread, you must yield to allow
127 | * the worker thread to run. This can be done by calling \ref cy_rtos_delay_milliseconds or
128 | * by waiting on an RTOS object in all higher priority threads.
129 | *
130 | * @param[in] worker_info pointer to worker_thread used to run function
131 | * @param[in] work_func function to run
132 | * @param[in] arg opaque arg to be used in function call
133 | *
134 | * @return The status of the queueing of work.
135 | */
136 | cy_rslt_t cy_worker_thread_enqueue(cy_worker_thread_info_t* worker_info,
137 | cy_worker_thread_func_t* work_func, void* arg);
138 |
139 | /** @} */
140 |
141 | #ifdef __cplusplus
142 | }
143 | #endif
144 |
--------------------------------------------------------------------------------
/docs/html/modules.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | Abstraction RTOS
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 | Abstraction RTOS
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
43 |
44 |
45 |
53 |
54 |
55 |
65 |
70 |
71 |
72 |
76 |
77 |
78 |
79 |
80 |
83 |
84 |
85 |
88 |
89 |
The following provides a list of API documentation
90 |
[detail level 1 2 ]
91 | ▼ Common General types and defines for working with the RTOS abstraction layer
92 | RTOS Specific Types, Defines and Statuses The following defines, types and return statuses have values that are specific to each RTOS port
93 | Events APIs for acquiring and working with Events
94 | Mutex APIs for acquiring and working with Mutexes
95 | Queue APIs for creating and working with Queues
96 | Semaphore APIs for acquiring and working with Semaphores
97 | Threads APIs for creating and working with Threads
98 | Scheduler APIs for working with Scheduler
99 | Time APIs for getting the current time and waiting
100 | Timer APIs for creating and working with Timers
101 | Worker Thread Utility Worker thread utility that allows functions to be run a different thread context
102 |
103 |
104 |
105 |
106 |
116 |
117 |
118 |
--------------------------------------------------------------------------------
/docs/html/search/functions_0.js:
--------------------------------------------------------------------------------
1 | var searchData=
2 | [
3 | ['cy_5frtos_5fdelay_5fmilliseconds_0',['cy_rtos_delay_milliseconds',['../group__group__abstraction__rtos__time.html#gaa33d9f3026f722ac92950c6215e4283a',1,'cyabs_rtos.h']]],
4 | ['cy_5frtos_5fevent_5fclearbits_1',['cy_rtos_event_clearbits',['../group__group__abstraction__rtos__event.html#ga81ef80c66ff0781c02e75beb6e1f84b2',1,'cyabs_rtos.h']]],
5 | ['cy_5frtos_5fevent_5fdeinit_2',['cy_rtos_event_deinit',['../group__group__abstraction__rtos__event.html#ga49e33889cccd7fa53243cf0d45007ced',1,'cyabs_rtos.h']]],
6 | ['cy_5frtos_5fevent_5fgetbits_3',['cy_rtos_event_getbits',['../group__group__abstraction__rtos__event.html#ga07d7ef2ac2abc5691b1cd3ededdc4acb',1,'cyabs_rtos.h']]],
7 | ['cy_5frtos_5fevent_5finit_4',['cy_rtos_event_init',['../group__group__abstraction__rtos__event.html#gad8d43f45c8ec30cda6d367b354b67c83',1,'cyabs_rtos.h']]],
8 | ['cy_5frtos_5fevent_5fsetbits_5',['cy_rtos_event_setbits',['../group__group__abstraction__rtos__event.html#ga4fc26a51459a1f7a7c69e8c2ae907f59',1,'cyabs_rtos.h']]],
9 | ['cy_5frtos_5fevent_5fwaitbits_6',['cy_rtos_event_waitbits',['../group__group__abstraction__rtos__event.html#ga03f1bf37c0723f8261c83acad5573025',1,'cyabs_rtos.h']]],
10 | ['cy_5frtos_5flast_5ferror_7',['cy_rtos_last_error',['../group__group__abstraction__rtos__common.html#ga3139176b7294e8b283d4f8b56dea3e54',1,'cyabs_rtos.h']]],
11 | ['cy_5frtos_5fmutex_5fdeinit_8',['cy_rtos_mutex_deinit',['../group__group__abstraction__rtos__mutex.html#gac001ff85c634852dde8671c5e9f7b542',1,'cyabs_rtos.h']]],
12 | ['cy_5frtos_5fmutex_5fget_9',['cy_rtos_mutex_get',['../group__group__abstraction__rtos__mutex.html#gaa40e24bd907a739e8fe012b53120cbcd',1,'cyabs_rtos.h']]],
13 | ['cy_5frtos_5fmutex_5finit_10',['cy_rtos_mutex_init',['../group__group__abstraction__rtos__mutex.html#ga7bfc42214af6ee47e803e761c84beed5',1,'cyabs_rtos.h']]],
14 | ['cy_5frtos_5fmutex_5fset_11',['cy_rtos_mutex_set',['../group__group__abstraction__rtos__mutex.html#ga295b4fe6576c3f86f2569e65cd70b84f',1,'cyabs_rtos.h']]],
15 | ['cy_5frtos_5fqueue_5fcount_12',['cy_rtos_queue_count',['../group__group__abstraction__rtos__queue.html#gaa9e756a6c3d0884d89ab2c84ba82ddfa',1,'cyabs_rtos.h']]],
16 | ['cy_5frtos_5fqueue_5fdeinit_13',['cy_rtos_queue_deinit',['../group__group__abstraction__rtos__queue.html#ga86a8db88e4fb3b3d671754ff7902952c',1,'cyabs_rtos.h']]],
17 | ['cy_5frtos_5fqueue_5fget_14',['cy_rtos_queue_get',['../group__group__abstraction__rtos__queue.html#ga799b29ec0a55325fe81c3fe0f4f61e33',1,'cyabs_rtos.h']]],
18 | ['cy_5frtos_5fqueue_5finit_15',['cy_rtos_queue_init',['../group__group__abstraction__rtos__queue.html#gab91ffe4236e50a9d38c8ee4f18d7d7c2',1,'cyabs_rtos.h']]],
19 | ['cy_5frtos_5fqueue_5fput_16',['cy_rtos_queue_put',['../group__group__abstraction__rtos__queue.html#ga45e5fda9a449d0cf3a859b06ad8af989',1,'cyabs_rtos.h']]],
20 | ['cy_5frtos_5fqueue_5freset_17',['cy_rtos_queue_reset',['../group__group__abstraction__rtos__queue.html#gac4f95128753f27b3c4ff56e6774a2ddb',1,'cyabs_rtos.h']]],
21 | ['cy_5frtos_5fqueue_5fspace_18',['cy_rtos_queue_space',['../group__group__abstraction__rtos__queue.html#ga43af25bb1f92654a59d7b724714a7345',1,'cyabs_rtos.h']]],
22 | ['cy_5frtos_5fscheduler_5fget_5fstate_19',['cy_rtos_scheduler_get_state',['../group__group__abstraction__rtos__scheduler.html#ga5c4b8f8ce8f98d0bece44621fe194ac4',1,'cyabs_rtos.h']]],
23 | ['cy_5frtos_5fscheduler_5fresume_20',['cy_rtos_scheduler_resume',['../group__group__abstraction__rtos__scheduler.html#ga9e704925c79ff121e69f3f96b810b41f',1,'cyabs_rtos.h']]],
24 | ['cy_5frtos_5fscheduler_5fsuspend_21',['cy_rtos_scheduler_suspend',['../group__group__abstraction__rtos__scheduler.html#ga61f383c18398803438e76f280e2ba003',1,'cyabs_rtos.h']]],
25 | ['cy_5frtos_5fsemaphore_5fdeinit_22',['cy_rtos_semaphore_deinit',['../group__group__abstraction__rtos__semaphore.html#ga63e4f7e66731826f51867c5f9ab2be68',1,'cyabs_rtos.h']]],
26 | ['cy_5frtos_5fsemaphore_5fget_23',['cy_rtos_semaphore_get',['../group__group__abstraction__rtos__semaphore.html#ga7e8127c90dc05dc9f066dcd5a936768c',1,'cyabs_rtos.h']]],
27 | ['cy_5frtos_5fsemaphore_5fget_5fcount_24',['cy_rtos_semaphore_get_count',['../group__group__abstraction__rtos__semaphore.html#ga2a8cda29a29325cd934bac2e6194dc51',1,'cyabs_rtos.h']]],
28 | ['cy_5frtos_5fsemaphore_5finit_25',['cy_rtos_semaphore_init',['../group__group__abstraction__rtos__semaphore.html#gaf9b9e58ee67cbbe5fb53cedcaa01c318',1,'cyabs_rtos.h']]],
29 | ['cy_5frtos_5fsemaphore_5fset_26',['cy_rtos_semaphore_set',['../group__group__abstraction__rtos__semaphore.html#ga3ede561d7a78c573ef37251f979afda2',1,'cyabs_rtos.h']]],
30 | ['cy_5frtos_5fthread_5fcreate_27',['cy_rtos_thread_create',['../group__group__abstraction__rtos__threads.html#gaf0721c9708baff03b7ba01213e3693c5',1,'cyabs_rtos.h']]],
31 | ['cy_5frtos_5fthread_5fexit_28',['cy_rtos_thread_exit',['../group__group__abstraction__rtos__threads.html#gafdf08459efae892545782d13b2840ba6',1,'cyabs_rtos.h']]],
32 | ['cy_5frtos_5fthread_5fget_5fhandle_29',['cy_rtos_thread_get_handle',['../group__group__abstraction__rtos__threads.html#ga2db2a0b5c73d1042313d229bf9fde18a',1,'cyabs_rtos.h']]],
33 | ['cy_5frtos_5fthread_5fget_5fname_30',['cy_rtos_thread_get_name',['../group__group__abstraction__rtos__threads.html#ga69c4cc657945f9cc8aaf1ee3667fd004',1,'cyabs_rtos.h']]],
34 | ['cy_5frtos_5fthread_5fget_5fstate_31',['cy_rtos_thread_get_state',['../group__group__abstraction__rtos__threads.html#gab587210336d9a91d51686150577615dd',1,'cyabs_rtos.h']]],
35 | ['cy_5frtos_5fthread_5fis_5frunning_32',['cy_rtos_thread_is_running',['../group__group__abstraction__rtos__threads.html#ga88fcc6b322f83b515d4b049fca54a202',1,'cyabs_rtos.h']]],
36 | ['cy_5frtos_5fthread_5fjoin_33',['cy_rtos_thread_join',['../group__group__abstraction__rtos__threads.html#gabb5be1db099f0c85ec1156670d34763c',1,'cyabs_rtos.h']]],
37 | ['cy_5frtos_5fthread_5fset_5fnotification_34',['cy_rtos_thread_set_notification',['../group__group__abstraction__rtos__threads.html#gaa29bd111d0e71594887f83e8a2ef5874',1,'cyabs_rtos.h']]],
38 | ['cy_5frtos_5fthread_5fterminate_35',['cy_rtos_thread_terminate',['../group__group__abstraction__rtos__threads.html#ga68dc2ce563e9ac1f31e2c2a3ea1c2fa7',1,'cyabs_rtos.h']]],
39 | ['cy_5frtos_5fthread_5fwait_5fnotification_36',['cy_rtos_thread_wait_notification',['../group__group__abstraction__rtos__threads.html#ga48c657566a9d85d8003c8c8784907c0d',1,'cyabs_rtos.h']]],
40 | ['cy_5frtos_5ftime_5fget_37',['cy_rtos_time_get',['../group__group__abstraction__rtos__time.html#ga50f9ef2bbd3c518e0bf43ee14085e8bc',1,'cyabs_rtos.h']]],
41 | ['cy_5frtos_5ftimer_5fdeinit_38',['cy_rtos_timer_deinit',['../group__group__abstraction__rtos__timer.html#ga1c9db37ed530cce390d282e224d3b1bf',1,'cyabs_rtos.h']]],
42 | ['cy_5frtos_5ftimer_5finit_39',['cy_rtos_timer_init',['../group__group__abstraction__rtos__timer.html#ga4d679d61e091ef8abf70d95bc1496c91',1,'cyabs_rtos.h']]],
43 | ['cy_5frtos_5ftimer_5fis_5frunning_40',['cy_rtos_timer_is_running',['../group__group__abstraction__rtos__timer.html#ga7bf456853b8b353bf19977381377322b',1,'cyabs_rtos.h']]],
44 | ['cy_5frtos_5ftimer_5fstart_41',['cy_rtos_timer_start',['../group__group__abstraction__rtos__timer.html#ga978c045f4f7bd1bc2dda5039426b2475',1,'cyabs_rtos.h']]],
45 | ['cy_5frtos_5ftimer_5fstop_42',['cy_rtos_timer_stop',['../group__group__abstraction__rtos__timer.html#gab7aac5b6be6876806aed8e18f43ccc7f',1,'cyabs_rtos.h']]],
46 | ['cy_5fworker_5fthread_5fcreate_43',['cy_worker_thread_create',['../group__group__worker__thread__util.html#ga383f418c20f7ae9d2eb184722b7bbd04',1,'cy_worker_thread.h']]],
47 | ['cy_5fworker_5fthread_5fdelete_44',['cy_worker_thread_delete',['../group__group__worker__thread__util.html#gae4a9787d87626fefc16e328754182c37',1,'cy_worker_thread.h']]],
48 | ['cy_5fworker_5fthread_5fenqueue_45',['cy_worker_thread_enqueue',['../group__group__worker__thread__util.html#ga4a582d807e3b7d4fa0bf7ee770af9015',1,'cy_worker_thread.h']]]
49 | ];
50 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # RTOS Abstraction
2 |
3 | ## Overview
4 |
5 | The RTOS abstraction layer provides simple RTOS services like threads, semaphores, mutexes, queues, and timers. It is not intended to be a full features RTOS interface, but the provide just enough support to allow for RTOS independent drivers and middleware. This allows middleware applications to be as portable as possible within ModusToolbox™. This library provides a unified API around the actual RTOS. This allows middleware libraries to be written once independent of the RTOS actually selected for the application. The abstraction layer provides access to all the standard RTOS resources listed in the feature section below.
6 |
7 | While the primary purpose of the library is for middleware, the abstraction layer can be used by the application code. However, since this API does not provide all RTOS features and the application generally knows what RTOS is being used, this is typically an unnecessary overhead.
8 |
9 | All the RTOS abstraction layer functions generally all work the same way. The basic process is:
10 | 1. Include the cyabs_rtos.h header file so that you have access to the RTOS functions.
11 | 2. Declare a variable of the right type (e.g. cy_mutex_t)
12 | 3. Call the appropriate create or initialize function (e.g. cy_rtos_init_mutex()). Provide it with a reference to the variable that was created in step 2.
13 | 4. Access the RTOS object using one of the access functions. e.g. cy_rtos_set_mutex().
14 | 5. If you don't need it anymore, free up the pointer with the appropriate de-init function (e.g. cy_rtos_deinit_mutex()).
15 |
16 | NOTE: All these functions need a pointer, so it is generally best to declare these "shared" resources as static global variables within the file that they are used.
17 |
18 | ## Getting Started
19 |
20 | To use the RTOS Abstraction, simply include a reference to `cyabs_rtos.h` and update the application's makefile to include the appropriate component. e.g. one of:
21 | * COMPONENTS+=RTX
22 | * COMPONENTS+=FREERTOS
23 | * COMPONENTS+=THREADX
24 |
25 | ## Features
26 |
27 | * APIs for interacting with common RTOS Features including:
28 | * Threads
29 | * Mutexes
30 | * Semaphores
31 | * Timers
32 | * Queues
33 | * Events
34 | * Implementations are provided for
35 | * FreeRTOS
36 | * RTX (CMSIS RTOS)
37 | * ThreadX
38 | * WICED RTOS
39 |
40 | ## RTOS Configuration Requirements
41 | ### FreeRTOS
42 | To enable all functionality when using with FreeRTOS, the following configuration options must be enabled in FreeRTOSConfig.h:
43 | * configSUPPORT_DYNAMIC_ALLOCATION
44 | * configSUPPORT_STATIC_ALLOCATION
45 | * configUSE_COUNTING_SEMAPHORES
46 | * configUSE_MUTEXES
47 | * configUSE_NEWLIB_REENTRANT
48 | * configUSE_RECURSIVE_MUTEXES
49 | * configUSE_TASK_NOTIFICATIONS
50 | * configUSE_TICKLESS_IDLE
51 | * configUSE_TIMERS
52 | * configUSE_TRACE_FACILITY
53 |
54 | * INCLUDE_vTaskDelay
55 | * INCLUDE_vTaskDelete
56 | * INCLUDE_vTaskPrioritySet
57 | * INCLUDE_uxTaskPriorityGet
58 | * INCLUDE_xTimerPendFunctionCall
59 | * INCLUDE_vTaskSuspend
60 |
61 | Enabling configSUPPORT_STATIC_ALLOCATION requires the application to provide implementations for `vApplicationGetIdleTaskMemory` and
62 | `vApplicationGetTimerTaskMemory`functions. Weak implementations for these functions are provided as a part of this library. These can
63 | be overridden by the application if custom implementations of these functions are desired.
64 |
65 | #### Low Power Configuration
66 | This library provides an API `vApplicationSleep` which can be used to enable tickless support in FreeRTOS. In order to enable tickless mode with this API, the following changes need to be made in `FreeRTOSConfig.h`:
67 | * Enables tickless mode with user specified `portSUPPRESS_TICKS_AND_SLEEP` implementation.
68 | \c \#define `configUSE_TICKLESS_IDLE 2`
69 | * Hook `portSUPPRESS_TICKS_AND_SLEEP` macro to `vApplicationSleep` implementation.
70 | \c \#define `portSUPPRESS_TICKS_AND_SLEEP( xIdleTime ) vApplicationSleep( xIdleTime )`
71 |
72 | In tickless mode `vApplicationSleep` updates the number of RTOS ticks that have passed since the tick interrupt was stopped using `vTaskStepTick`, taking into account the sleep/deepsleep latency.
73 | * The maximum tickless idle time can be calculated as follow:
74 | * `MaxIdleTime = LPtimerDelay + latency` where: `latency = PreSleepLatency + PostSleepLatency`, `LPtimerDelay = xExpectedIdleTime - latency`.
75 |
76 | **Note**: The `LPtimerDelay` represents the duration in which the IP is configured to Wake-up the device. Wake-up can happen before its expiration if one other configured interrupt triggers during this time.
77 |
78 | * In case of `xExpectedIdleTime <= latency` WFI is executed instead, and normal sleep is expected to be reached (SCR->SLEEPDEEP = 0).
79 |
80 | * The actual Idle time for which the Systick timer is disabled, is always update in vTaskStepTick to keep the RTOS alwyas up to date, independently from if the tickless sleep is reached or not successfully. The reason for this is to find in the sequence of operations to reach the sleep, the Systick is disabled before the (deep)sleep callbacks are called, so if one of them will not allow (deep)sleep, the ticks for which the check is performed needs to be anyway counted in the RTOS.
81 |
82 | Functions cy_rtos_scheduler_suspend/cy_rtos_scheduler_resume can be called from ISR but calls need to be paired to restore the saved interrupt status correctly so a structure to save these values has been implemented.
83 | The size of this structure can be controlled with CY_RTOS_MAX_SUSPEND_NESTING. This macro is overridable and its default value is 3.
84 |
85 | For further details on Low power support in FreeRTOS please refer to documentation [here](https://www.freertos.org/low-power-tickless-rtos.html)
86 |
87 | #### Known Limitations
88 | The cy_rtos_event_* functions accept a 32-bit event as an argument. However, FreeRTOS requires 8-bits(`configUSE_16_BIT_TICKS` == 1) or 24-bits (`configUSE_16_BIT_TICKS` == 0) to run successfully. Hence the application should not reference these unsupported bits. Check the FreeRTOS implementation of `eventEVENT_BITS_CONTROL_BYTES` in event_group.c for internal details.
89 |
90 | ### RTX / ThreadX
91 | No specific requirements exist
92 |
93 | ## Porting Notes
94 | In order to port to a new environment, the file cyabs_rtos_impl.h must be provided with definitions of some basic types for the abstraction layer. The types expected to be defined are:
95 |
96 | - `cy_thread_t` : typedef from underlying RTOS thread type
97 | - `cy_thread_arg_t` : typedef from the RTOS type that is passed to the entry function of a thread.
98 | - `cy_mutex_t` : typedef from the underlying RTOS mutex type
99 | - `cy_semaphore_t`: typedef from the underlying RTOS semaphore type
100 | - `cy_event_t` : typedef from the underlying RTOS event type
101 | - `cy_queue_t` : typedef from the underlying RTOS queue type
102 | - `cy_timer_callback_arg_t` : typedef from the RTOS type that is passed to the timer callback function
103 | - `cy_timer_t` : typedef from the underlying RTOS timer type
104 | - `cy_time_t` : count of time in milliseconds
105 | - `cy_rtos_error_t` : typedef from the underlying RTOS error type
106 |
107 | The enum `cy_thread_priority_t` needs to have the following priority values defined and mapped to RTOS specific values:
108 | - `CY_RTOS_PRIORITY_MIN`
109 | - `CY_RTOS_PRIORITY_LOW`
110 | - `CY_RTOS_PRIORITY_BELOWNORMAL`
111 | - `CY_RTOS_PRIORITY_NORMAL`
112 | - `CY_RTOS_PRIORITY_ABOVENORMAL`
113 | - `CY_RTOS_PRIORITY_HIGH`
114 | - `CY_RTOS_PRIORITY_REALTIME`
115 | - `CY_RTOS_PRIORITY_MAX`
116 |
117 | Finally, the following macros need to be defined for memory allocations:
118 | - `CY_RTOS_MIN_STACK_SIZE`
119 | - `CY_RTOS_ALIGNMENT`
120 | - `CY_RTOS_ALIGNMENT_MASK`
121 |
122 | ## More information
123 | * [API Reference Guide](https://infineon.github.io/abstraction-rtos/html/modules.html)
124 | * [Cypress Semiconductor, an Infineon Technologies Company](http://www.cypress.com)
125 | * [Infineon GitHub](https://github.com/infineon)
126 | * [ModusToolbox™](https://www.cypress.com/products/modustoolbox-software-environment)
127 |
128 | ---
129 | © Cypress Semiconductor Corporation (an Infineon company) or an affiliate of Cypress Semiconductor Corporation, 2019-2022.
130 |
--------------------------------------------------------------------------------