├── .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 |
10 |
No Matches
11 |
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 | 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 | '
    '+ 44 | '
    '+ 47 | ''+ 50 | '
    '+ 51 | '
    '+ 52 | '
    '+ 53 | '
    '; 54 | } else { 55 | searchBox='
    '+ 56 | ''+ 57 | ''+ 60 | ''+ 64 | ''+ 65 | ''+ 67 | '' 69 | '' 70 | '
    '; 71 | } 72 | } 73 | 74 | $('#main-nav').before('
    '+ 75 | ''+ 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 | 32 | 33 | 34 |
    30 |
    Abstraction RTOS
    31 |
    35 |
    36 | 37 | 38 | 43 | 44 | 45 | 53 | 54 |
    55 |
    56 | 61 |
    63 |
    64 |
    65 | 70 |
    71 | 72 |
    76 |
    77 | 78 | 79 |
    80 | 83 |
    84 | 85 |
    86 |
    API Reference
    87 |
    88 |
    89 |
    The following provides a list of API documentation
    90 |
    [detail level 12]
    91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 |
     CommonGeneral types and defines for working with the RTOS abstraction layer
     RTOS Specific Types, Defines and StatusesThe following defines, types and return statuses have values that are specific to each RTOS port
     EventsAPIs for acquiring and working with Events
     MutexAPIs for acquiring and working with Mutexes
     QueueAPIs for creating and working with Queues
     SemaphoreAPIs for acquiring and working with Semaphores
     ThreadsAPIs for creating and working with Threads
     SchedulerAPIs for working with Scheduler
     TimeAPIs for getting the current time and waiting
     TimerAPIs for creating and working with Timers
     Worker Thread UtilityWorker thread utility that allows functions to be run a different thread context
    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 | --------------------------------------------------------------------------------