void fi_init(void) { m_active = false; memset(m_probes, 0, sizeof(m_probes)); terminal_register_command_callback( "fi_set_enabled", "Enable or disable fault injection.\n" " 0 - Disabled\n" " 1 - Enabled", "[enabled]", cmd_terminal_set_enabled); terminal_register_command_callback( "fi_add_fault", "Add fault to probe", "[probe_id] [type] [param] [start_it] [duration]", cmd_terminal_add_fault); terminal_register_command_callback( "fi_clear_faults", "Clear all faults", 0, cmd_terminal_clear_faults); terminal_register_command_callback( "fi_print_faults", "Print all active faults", 0, cmd_terminal_print_faults); terminal_register_command_callback( "fi_reset_cnt", "Reset all probe iteration counters", 0, cmd_terminal_reset_cnt); }
void icm20948_init(ICM20948_STATE *s, i2c_bb_state *i2c_state, int ad0_val, stkalign_t *work_area, size_t work_area_size) { s->i2cs = i2c_state; s->i2c_address = ad0_val ? 0x69 : 0x68; s->read_callback = 0; if (reset_init_icm(s)) { chThdCreateStatic(work_area, work_area_size, NORMALPRIO, icm_thread, s); } // Only register terminal command for the first instance of this driver. if (m_terminal_state == 0) { m_terminal_state = s; terminal_register_command_callback( "icm_read_reg", "Read register of the ICM-20948", "[bank] [reg]", terminal_read_reg); } }