35 #if CH_CFG_USE_DYNAMIC == TRUE 58 sizeof(_timer_thread_wa),
65 _uavcan_thread_ctx = chThdCreateStatic(_uavcan_thread_wa,
66 sizeof(_uavcan_thread_wa),
73 sizeof(_rcin_thread_wa),
81 sizeof(_toneAlarm_thread_wa),
88 sizeof(_io_thread_wa),
95 sizeof(_storage_thread_wa),
110 ticks = US2ST64(usec);
126 #if APM_MAIN_PRIORITY_BOOST != APM_MAIN_PRIORITY 136 #if APM_MAIN_PRIORITY_BOOST != APM_MAIN_PRIORITY 277 }
else if (called_from_timer_thread) {
286 #if HAL_USE_ADC == TRUE 297 chRegSetThreadName(
"apm_timer");
313 void Scheduler::_uavcan_thread(
void *arg)
316 chRegSetThreadName(
"apm_uavcan");
322 for (
int i = 0; i < MAX_NUMBER_OF_CAN_INTERFACES; i++) {
323 if(hal.
can_mgr[i] !=
nullptr) {
324 CANManager::from(hal.
can_mgr[i])->_timer_tick();
334 chRegSetThreadName(
"apm_rcin");
348 chRegSetThreadName(
"toneAlarm");
382 chRegSetThreadName(
"apm_io");
397 chRegSetThreadName(
"apm_storage");
430 return (
void *)(uintptr_t)chSysGetStatusAndLockX();
438 chSysRestoreStatusX((syssts_t)(uintptr_t)state);
441 #endif // CH_CFG_USE_DYNAMIC #define APM_RCIN_PRIORITY
void suspend_timer_procs() override
void resume_timer_procs() override
virtual void force_safety_no_wait(void)
void delay_microseconds_boost(uint16_t us) override
#define APM_UAVCAN_PRIORITY
AP_HAL::UARTDriver * console
virtual void _toneAlarm_timer_tick()
thread_t * _rcin_thread_ctx
#define APM_MAIN_PRIORITY_BOOST
#define APM_MAIN_PRIORITY
void restore_interrupts(void *) override
volatile bool _timer_event_missed
void register_timer_process(AP_HAL::MemberProc) override
static void _io_thread(void *arg)
volatile bool _in_timer_proc
thread_t * get_main_thread()
static void _toneAlarm_thread(void *arg)
void register_timer_failsafe(AP_HAL::Proc, uint32_t period_us) override
volatile bool _hal_initialized
AP_HAL::CANManager ** can_mgr
#define CHIBIOS_SCHEDULER_MAX_TIMER_PROCS
void hal_chibios_set_priority(uint8_t priority)
void delay(uint16_t ms) override
virtual void _timer_tick(void)
static void set_high_priority()
virtual void printf(const char *,...) FMT_PRINTF(2
bool in_main_thread() const override
static void _timer_thread(void *arg)
virtual void timer_tick(void)
thread_t * _timer_thread_ctx
static void _storage_thread(void *arg)
bool check_called_boost(void)
volatile bool _in_io_proc
AP_HAL::Storage * storage
static void _rcin_thread(void *arg)
thread_t * _toneAlarm_thread_ctx
#define APM_TONEALARM_PRIORITY
virtual void call_delay_cb()
static Util * from(AP_HAL::Util *util)
virtual bool force_safety_on(void)
uint16_t _min_delay_cb_ms
thread_t * _storage_thread_ctx
static void lock_all(void)
volatile bool _timer_suspended
thread_t * _io_thread_ctx
void boost_end(void) override
#define APM_STORAGE_PRIORITY
AP_HAL::MemberProc _timer_proc[CHIBIOS_SCHEDULER_MAX_TIMER_PROCS]
void register_io_process(AP_HAL::MemberProc) override
void reboot(bool hold_in_bootloader) override
void panic(const char *errormsg,...) FMT_PRINTF(1
#define APM_TIMER_PRIORITY
THD_WORKING_AREA(_timer_thread_wa, 2048)
void delay_microseconds(uint16_t us) override
void _run_timers(bool called_from_timer_thread)
void system_initialized()
void * disable_interrupts_save(void) override
AP_HAL::MemberProc _io_proc[CHIBIOS_SCHEDULER_MAX_TIMER_PROCS]
AP_HAL::AnalogIn * analogin