diff --git a/sw/airborne/arch/lpc21/i2c_hw.c b/sw/airborne/arch/lpc21/i2c_hw.c index b3e0c54281..d91352db4b 100644 --- a/sw/airborne/arch/lpc21/i2c_hw.c +++ b/sw/airborne/arch/lpc21/i2c_hw.c @@ -33,16 +33,16 @@ // I2C Automaton // /////////////////// -static inline void I2cSendStart(struct i2c_periph* p) { +__attribute__ ((always_inline)) static inline void I2cSendStart(struct i2c_periph* p) { p->status = I2CStartRequested; ((i2cRegs_t *)(p->reg_addr))->conset = _BV(STA); } -static inline void I2cSendAck(void* reg) { +__attribute__ ((always_inline)) static inline void I2cSendAck(void* reg) { ((i2cRegs_t *)reg)->conset = _BV(AA); } -static inline void I2cEndOfTransaction(struct i2c_periph* p) { +__attribute__ ((always_inline)) static inline void I2cEndOfTransaction(struct i2c_periph* p) { // handle fifo here p->trans_extract_idx++; if (p->trans_extract_idx >= I2C_TRANSACTION_QUEUE_LEN) @@ -56,18 +56,18 @@ static inline void I2cEndOfTransaction(struct i2c_periph* p) { } } -static inline void I2cFinished(struct i2c_periph* p, struct i2c_transaction* t) { +__attribute__ ((always_inline)) static inline void I2cFinished(struct i2c_periph* p, struct i2c_transaction* t) { // transaction finished with success t->status = I2CTransSuccess; I2cEndOfTransaction(p); } -static inline void I2cSendStop(struct i2c_periph* p, struct i2c_transaction* t) { +__attribute__ ((always_inline)) static inline void I2cSendStop(struct i2c_periph* p, struct i2c_transaction* t) { ((i2cRegs_t *)(p->reg_addr))->conset = _BV(STO); I2cFinished(p,t); } -static inline void I2cFail(struct i2c_periph* p, struct i2c_transaction* t) { +__attribute__ ((always_inline)) static inline void I2cFail(struct i2c_periph* p, struct i2c_transaction* t) { ((i2cRegs_t *)(p->reg_addr))->conset = _BV(STO); t->status = I2CTransFailed; p->status = I2CFailed; @@ -75,24 +75,24 @@ static inline void I2cFail(struct i2c_periph* p, struct i2c_transaction* t) { I2cEndOfTransaction(p); } -static inline void I2cSendByte(void* reg, uint8_t b) { +__attribute__ ((always_inline)) static inline void I2cSendByte(void* reg, uint8_t b) { ((i2cRegs_t *)reg)->dat = b; } -static inline void I2cReceive(void* reg, bool_t ack) { +__attribute__ ((always_inline)) static inline void I2cReceive(void* reg, bool_t ack) { if (ack) ((i2cRegs_t *)reg)->conset = _BV(AA); else ((i2cRegs_t *)reg)->conclr = _BV(AAC); } -static inline void I2cClearStart(void* reg) { +__attribute__ ((always_inline)) static inline void I2cClearStart(void* reg) { ((i2cRegs_t *)reg)->conclr = _BV(STAC); } -static inline void I2cClearIT(void* reg) { +__attribute__ ((always_inline)) static inline void I2cClearIT(void* reg) { ((i2cRegs_t *)reg)->conclr = _BV(SIC); } -static inline void I2cAutomaton(int32_t state, struct i2c_periph* p) { +__attribute__ ((always_inline)) static inline void I2cAutomaton(int32_t state, struct i2c_periph* p) { struct i2c_transaction* trans = p->trans[p->trans_extract_idx]; switch (state) { case I2C_START: diff --git a/sw/airborne/firmwares/rotorcraft/actuators/supervision.c b/sw/airborne/firmwares/rotorcraft/actuators/supervision.c index 9a114641ee..012b2402a0 100644 --- a/sw/airborne/firmwares/rotorcraft/actuators/supervision.c +++ b/sw/airborne/firmwares/rotorcraft/actuators/supervision.c @@ -59,13 +59,13 @@ void supervision_init(void) { supervision.nb_failure = 0; } -static inline void offset_commands(int32_t offset) { +__attribute__ ((always_inline)) static inline void offset_commands(int32_t offset) { uint8_t j; for (j=0; j>(GV_Z_REF_FRAC - INT32_POS_FRAC); diff --git a/sw/airborne/firmwares/rotorcraft/guidance/guidance_v_ref.h b/sw/airborne/firmwares/rotorcraft/guidance/guidance_v_ref.h index dba603bddb..bcdd473413 100644 --- a/sw/airborne/firmwares/rotorcraft/guidance/guidance_v_ref.h +++ b/sw/airborne/firmwares/rotorcraft/guidance/guidance_v_ref.h @@ -96,14 +96,14 @@ int64_t gv_z_ref; int32_t gv_zd_ref; int32_t gv_zdd_ref; -static inline void gv_set_ref(int32_t alt, int32_t speed, int32_t accel) { +__attribute__ ((always_inline)) static inline void gv_set_ref(int32_t alt, int32_t speed, int32_t accel) { int64_t new_z = ((int64_t)alt)<<(GV_Z_REF_FRAC - INT32_POS_FRAC); gv_z_ref = new_z; gv_zd_ref = speed>>(INT32_SPEED_FRAC - GV_ZD_REF_FRAC); gv_zdd_ref = accel>>(INT32_ACCEL_FRAC - GV_ZDD_REF_FRAC); } -static inline void gv_update_ref_from_z_sp(int32_t z_sp) { +__attribute__ ((always_inline)) static inline void gv_update_ref_from_z_sp(int32_t z_sp) { gv_z_ref += gv_zd_ref; gv_zd_ref += gv_zdd_ref; @@ -135,7 +135,7 @@ static inline void gv_update_ref_from_z_sp(int32_t z_sp) { } -static inline void gv_update_ref_from_zd_sp(int32_t zd_sp) { +__attribute__ ((always_inline)) static inline void gv_update_ref_from_zd_sp(int32_t zd_sp) { gv_z_ref += gv_zd_ref; gv_zd_ref += gv_zdd_ref; diff --git a/sw/airborne/subsystems/ahrs/ahrs_int_cmpl_euler.c b/sw/airborne/subsystems/ahrs/ahrs_int_cmpl_euler.c index 80bdfaa72d..546159d568 100644 --- a/sw/airborne/subsystems/ahrs/ahrs_int_cmpl_euler.c +++ b/sw/airborne/subsystems/ahrs/ahrs_int_cmpl_euler.c @@ -154,7 +154,7 @@ void ahrs_update_mag(void) { } /* measures phi and theta assuming no dynamic acceleration ?!! */ -static inline void get_phi_theta_measurement_fom_accel(int32_t* phi_meas, int32_t* theta_meas, struct Int32Vect3 accel) { +__attribute__ ((always_inline)) static inline void get_phi_theta_measurement_fom_accel(int32_t* phi_meas, int32_t* theta_meas, struct Int32Vect3 accel) { INT32_ATAN2(*phi_meas, -accel.y, -accel.z); int32_t cphi; @@ -167,7 +167,7 @@ static inline void get_phi_theta_measurement_fom_accel(int32_t* phi_meas, int32_ } /* measure psi by projecting magnetic vector in local tangeant plan */ -static inline void get_psi_measurement_from_mag(int32_t* psi_meas, int32_t phi_est, int32_t theta_est, struct Int32Vect3 mag) { +__attribute__ ((always_inline)) static inline void get_psi_measurement_from_mag(int32_t* psi_meas, int32_t phi_est, int32_t theta_est, struct Int32Vect3 mag) { int32_t sphi; PPRZ_ITRIG_SIN(sphi, phi_est); @@ -196,7 +196,7 @@ static inline void get_psi_measurement_from_mag(int32_t* psi_meas, int32_t phi_e /* Compute ltp to imu rotation in quaternion and rotation matrice representation from the euler angle representation */ -static inline void compute_imu_quat_and_rmat_from_euler(void) { +__attribute__ ((always_inline)) static inline void compute_imu_quat_and_rmat_from_euler(void) { /* Compute LTP to IMU quaternion */ INT32_QUAT_OF_EULERS(ahrs.ltp_to_imu_quat, ahrs.ltp_to_imu_euler); @@ -205,7 +205,7 @@ static inline void compute_imu_quat_and_rmat_from_euler(void) { } -static inline void compute_body_orientation(void) { +__attribute__ ((always_inline)) static inline void compute_body_orientation(void) { /* Compute LTP to BODY quaternion */ INT32_QUAT_COMP_INV(ahrs.ltp_to_body_quat, ahrs.ltp_to_imu_quat, imu.body_to_imu_quat); diff --git a/sw/airborne/subsystems/ins/vf_float.c b/sw/airborne/subsystems/ins/vf_float.c index bc33bb0fcf..8638b93035 100644 --- a/sw/airborne/subsystems/ins/vf_float.c +++ b/sw/airborne/subsystems/ins/vf_float.c @@ -122,7 +122,7 @@ void vff_propagate(float accel) { // update covariance Pp = Pm - K*H*Pm; */ -static inline void update_z_conf(float z_meas, float conf) { +__attribute__ ((always_inline)) static inline void update_z_conf(float z_meas, float conf) { vff_z_meas = z_meas; const float y = z_meas - vff_z; @@ -179,7 +179,7 @@ void vff_update_z_conf(float z_meas, float conf) { // update covariance Pp = Pm - K*H*Pm; */ -static inline void update_vz_conf(float vz, float conf) { +__attribute__ ((always_inline)) static inline void update_vz_conf(float vz, float conf) { const float yd = vz - vff_zdot; const float S = vff_P[1][1] + conf; const float K1 = vff_P[0][1] * 1/S;