43 #if !defined(CH_FREQUENCY) || defined(__DOXYGEN__)
44 #define CH_FREQUENCY 1000
58 #if !defined(CH_TIME_QUANTUM) || defined(__DOXYGEN__)
59 #define CH_TIME_QUANTUM 1
73 #if !defined(CH_MEMCORE_SIZE) || defined(__DOXYGEN__)
74 #define CH_MEMCORE_SIZE 0
90 #if !defined(CH_NO_IDLE_THREAD) || defined(__DOXYGEN__)
91 #define CH_NO_IDLE_THREAD FALSE
111 #if !defined(CH_OPTIMIZE_SPEED) || defined(__DOXYGEN__)
112 #define CH_OPTIMIZE_SPEED FALSE
130 #if !defined(CH_USE_REGISTRY) || defined(__DOXYGEN__)
131 #define CH_USE_REGISTRY TRUE
141 #if !defined(CH_USE_WAITEXIT) || defined(__DOXYGEN__)
142 #define CH_USE_WAITEXIT TRUE
151 #if !defined(CH_USE_SEMAPHORES) || defined(__DOXYGEN__)
152 #define CH_USE_SEMAPHORES TRUE
163 #if !defined(CH_USE_SEMAPHORES_PRIORITY) || defined(__DOXYGEN__)
164 #define CH_USE_SEMAPHORES_PRIORITY FALSE
175 #if !defined(CH_USE_SEMSW) || defined(__DOXYGEN__)
176 #define CH_USE_SEMSW TRUE
185 #if !defined(CH_USE_MUTEXES) || defined(__DOXYGEN__)
186 #define CH_USE_MUTEXES TRUE
197 #if !defined(CH_USE_CONDVARS) || defined(__DOXYGEN__)
198 #define CH_USE_CONDVARS FALSE
209 #if !defined(CH_USE_CONDVARS_TIMEOUT) || defined(__DOXYGEN__)
210 #define CH_USE_CONDVARS_TIMEOUT FALSE
219 #if !defined(CH_USE_EVENTS) || defined(__DOXYGEN__)
220 #define CH_USE_EVENTS FALSE
231 #if !defined(CH_USE_EVENTS_TIMEOUT) || defined(__DOXYGEN__)
232 #define CH_USE_EVENTS_TIMEOUT FALSE
242 #if !defined(CH_USE_MESSAGES) || defined(__DOXYGEN__)
243 #define CH_USE_MESSAGES FALSE
254 #if !defined(CH_USE_MESSAGES_PRIORITY) || defined(__DOXYGEN__)
255 #define CH_USE_MESSAGES_PRIORITY FALSE
266 #if !defined(CH_USE_MAILBOXES) || defined(__DOXYGEN__)
267 #define CH_USE_MAILBOXES TRUE
276 #if !defined(CH_USE_QUEUES) || defined(__DOXYGEN__)
277 #define CH_USE_QUEUES FALSE
287 #if !defined(CH_USE_MEMCORE) || defined(__DOXYGEN__)
288 #define CH_USE_MEMCORE FALSE
301 #if !defined(CH_USE_HEAP) || defined(__DOXYGEN__)
302 #define CH_USE_HEAP FALSE
315 #if !defined(CH_USE_MALLOC_HEAP) || defined(__DOXYGEN__)
316 #define CH_USE_MALLOC_HEAP FALSE
326 #if !defined(CH_USE_MEMPOOLS) || defined(__DOXYGEN__)
327 #define CH_USE_MEMPOOLS TRUE
339 #if !defined(CH_USE_DYNAMIC) || defined(__DOXYGEN__)
340 #define CH_USE_DYNAMIC FALSE
359 #if !defined(CH_DBG_SYSTEM_STATE_CHECK) || defined(__DOXYGEN__)
360 #define CH_DBG_SYSTEM_STATE_CHECK FALSE
370 #if !defined(CH_DBG_ENABLE_CHECKS) || defined(__DOXYGEN__)
371 #define CH_DBG_ENABLE_CHECKS FALSE
382 #if !defined(CH_DBG_ENABLE_ASSERTS) || defined(__DOXYGEN__)
383 #define CH_DBG_ENABLE_ASSERTS FALSE
393 #if !defined(CH_DBG_ENABLE_TRACE) || defined(__DOXYGEN__)
394 #define CH_DBG_ENABLE_TRACE FALSE
407 #if !defined(CH_DBG_ENABLE_STACK_CHECK) || defined(__DOXYGEN__)
408 #define CH_DBG_ENABLE_STACK_CHECK FALSE
419 #if !defined(CH_DBG_FILL_THREADS) || defined(__DOXYGEN__)
420 #define CH_DBG_FILL_THREADS TRUE
432 #if !defined(CH_DBG_THREADS_PROFILING) || defined(__DOXYGEN__)
433 #define CH_DBG_THREADS_PROFILING FALSE
467 #define halGetCounterValue() hal_lld_get_counter_value()
479 #define hal_lld_get_counter_value() DWT_CYCCNT
485 #if !defined(THREAD_EXT_FIELDS) || defined(__DOXYGEN__)
486 #define THREAD_EXT_FIELDS \
487 halrtcnt_t ticks_switched_in; \
488 halrtcnt_t ticks_total; \
499 #if !defined(THREAD_EXT_INIT_HOOK) || defined(__DOXYGEN__)
500 #define THREAD_EXT_INIT_HOOK(tp) { \
513 #if !defined(THREAD_EXT_EXIT_HOOK) || defined(__DOXYGEN__)
514 #define THREAD_EXT_EXIT_HOOK(tp) { \
523 #if !defined(THREAD_CONTEXT_SWITCH_HOOK) || defined(__DOXYGEN__)
524 #define THREAD_CONTEXT_SWITCH_HOOK(ntp, otp) { \
525 ntp->ticks_switched_in = halGetCounterValue(); \
526 otp->ticks_total += ntp->ticks_switched_in - otp->ticks_switched_in; \
535 #if !defined(IDLE_LOOP_HOOK) || defined(__DOXYGEN__)
536 #define IDLE_LOOP_HOOK() { \
537 extern void vApplicationIdleHook(void); \
538 vApplicationIdleHook(); \
547 #if !defined(SYSTEM_TICK_EVENT_HOOK) || defined(__DOXYGEN__)
548 #define SYSTEM_TICK_EVENT_HOOK() { \
558 #if !defined(SYSTEM_HALT_HOOK) || defined(__DOXYGEN__)
559 #define SYSTEM_HALT_HOOK() { \
uint32_t halrtcnt_t
Type of the realtime free counter value.