libdsp: introduce libdsp-specific debug assertion (LIBDSP_DEBUGASSERT)
This commit is contained in:
parent
66972d947e
commit
5034e4d8ba
8 changed files with 69 additions and 68 deletions
|
@ -44,9 +44,10 @@
|
|||
# ifndef CONFIG_DEBUG_ASSERTIONS
|
||||
# warning "Need CONFIG_DEBUG_ASSERTIONS to work properly"
|
||||
# endif
|
||||
# define LIBDSP_DEBUGASSERT(x) DEBUGASSERT(x)
|
||||
#else
|
||||
# undef DEBUGASSERT
|
||||
# define DEBUGASSERT(x)
|
||||
# undef LIBDSP_DEBUGASSERT
|
||||
# define LIBDSP_DEBUGASSERT(x)
|
||||
#endif
|
||||
|
||||
#ifndef CONFIG_LIBDSP_PRECISION
|
||||
|
|
|
@ -233,9 +233,9 @@ void foc_process(FAR struct foc_data_f32_s *foc,
|
|||
FAR abc_frame_f32_t *i_abc,
|
||||
FAR phase_angle_f32_t *angle)
|
||||
{
|
||||
DEBUGASSERT(foc != NULL);
|
||||
DEBUGASSERT(i_abc != NULL);
|
||||
DEBUGASSERT(angle != NULL);
|
||||
LIBDSP_DEBUGASSERT(foc != NULL);
|
||||
LIBDSP_DEBUGASSERT(i_abc != NULL);
|
||||
LIBDSP_DEBUGASSERT(angle != NULL);
|
||||
|
||||
/* Copy ABC current to foc data */
|
||||
|
||||
|
|
|
@ -435,7 +435,7 @@ void angle_norm_2pi(FAR float *angle, float bottom, float top)
|
|||
|
||||
void phase_angle_update(FAR struct phase_angle_f32_s *angle, float val)
|
||||
{
|
||||
DEBUGASSERT(angle != NULL);
|
||||
LIBDSP_DEBUGASSERT(angle != NULL);
|
||||
|
||||
/* Normalize angle to <0.0, 2PI> */
|
||||
|
||||
|
|
|
@ -53,9 +53,9 @@
|
|||
void motor_openloop_init(FAR struct openloop_data_f32_s *op, float max,
|
||||
float per)
|
||||
{
|
||||
DEBUGASSERT(op != NULL);
|
||||
DEBUGASSERT(max > 0.0f);
|
||||
DEBUGASSERT(per > 0.0f);
|
||||
LIBDSP_DEBUGASSERT(op != NULL);
|
||||
LIBDSP_DEBUGASSERT(max > 0.0f);
|
||||
LIBDSP_DEBUGASSERT(per > 0.0f);
|
||||
|
||||
/* Reset openloop structure */
|
||||
|
||||
|
@ -86,9 +86,9 @@ void motor_openloop_init(FAR struct openloop_data_f32_s *op, float max,
|
|||
void motor_openloop(FAR struct openloop_data_f32_s *op, float speed,
|
||||
float dir)
|
||||
{
|
||||
DEBUGASSERT(op != NULL);
|
||||
DEBUGASSERT(speed >= 0.0f);
|
||||
DEBUGASSERT(dir == DIR_CW || dir == DIR_CCW);
|
||||
LIBDSP_DEBUGASSERT(op != NULL);
|
||||
LIBDSP_DEBUGASSERT(speed >= 0.0f);
|
||||
LIBDSP_DEBUGASSERT(dir == DIR_CW || dir == DIR_CCW);
|
||||
|
||||
float phase_step = 0.0f;
|
||||
|
||||
|
@ -130,7 +130,7 @@ void motor_openloop(FAR struct openloop_data_f32_s *op, float speed,
|
|||
|
||||
float motor_openloop_angle_get(FAR struct openloop_data_f32_s *op)
|
||||
{
|
||||
DEBUGASSERT(op != NULL);
|
||||
LIBDSP_DEBUGASSERT(op != NULL);
|
||||
|
||||
return op->angle;
|
||||
}
|
||||
|
@ -182,8 +182,8 @@ float motor_openloop_angle_get(FAR struct openloop_data_f32_s *op)
|
|||
|
||||
void motor_angle_init(FAR struct motor_angle_f32_s *angle, uint8_t p)
|
||||
{
|
||||
DEBUGASSERT(angle != NULL);
|
||||
DEBUGASSERT(p > 0);
|
||||
LIBDSP_DEBUGASSERT(angle != NULL);
|
||||
LIBDSP_DEBUGASSERT(p > 0);
|
||||
|
||||
/* Reset structure */
|
||||
|
||||
|
@ -217,9 +217,9 @@ void motor_angle_init(FAR struct motor_angle_f32_s *angle, uint8_t p)
|
|||
void motor_angle_e_update(FAR struct motor_angle_f32_s *angle,
|
||||
float angle_new, float dir)
|
||||
{
|
||||
DEBUGASSERT(angle != NULL);
|
||||
DEBUGASSERT(angle_new >= 0.0f && angle_new <= MOTOR_ANGLE_E_MAX);
|
||||
DEBUGASSERT(dir == DIR_CW || dir == DIR_CCW);
|
||||
LIBDSP_DEBUGASSERT(angle != NULL);
|
||||
LIBDSP_DEBUGASSERT(angle_new >= 0.0f && angle_new <= MOTOR_ANGLE_E_MAX);
|
||||
LIBDSP_DEBUGASSERT(dir == DIR_CW || dir == DIR_CCW);
|
||||
|
||||
/* Check if we crossed electrical angle boundaries */
|
||||
|
||||
|
@ -286,9 +286,9 @@ void motor_angle_e_update(FAR struct motor_angle_f32_s *angle,
|
|||
void motor_angle_m_update(FAR struct motor_angle_f32_s *angle,
|
||||
float angle_new, float dir)
|
||||
{
|
||||
DEBUGASSERT(angle != NULL);
|
||||
DEBUGASSERT(angle_new >= 0.0f && angle_new <= MOTOR_ANGLE_E_MAX);
|
||||
DEBUGASSERT(dir == DIR_CW || dir == DIR_CCW);
|
||||
LIBDSP_DEBUGASSERT(angle != NULL);
|
||||
LIBDSP_DEBUGASSERT(angle_new >= 0.0f && angle_new <= MOTOR_ANGLE_E_MAX);
|
||||
LIBDSP_DEBUGASSERT(dir == DIR_CW || dir == DIR_CCW);
|
||||
|
||||
float angle_el = 0.0f;
|
||||
|
||||
|
@ -325,7 +325,7 @@ void motor_angle_m_update(FAR struct motor_angle_f32_s *angle,
|
|||
|
||||
float motor_angle_m_get(FAR struct motor_angle_f32_s *angle)
|
||||
{
|
||||
DEBUGASSERT(angle != NULL);
|
||||
LIBDSP_DEBUGASSERT(angle != NULL);
|
||||
|
||||
return angle->anglem;
|
||||
}
|
||||
|
@ -346,7 +346,7 @@ float motor_angle_m_get(FAR struct motor_angle_f32_s *angle)
|
|||
|
||||
float motor_angle_e_get(FAR struct motor_angle_f32_s *angle)
|
||||
{
|
||||
DEBUGASSERT(angle != NULL);
|
||||
LIBDSP_DEBUGASSERT(angle != NULL);
|
||||
|
||||
return angle->angle_el.angle;
|
||||
}
|
||||
|
@ -372,7 +372,7 @@ float motor_angle_e_get(FAR struct motor_angle_f32_s *angle)
|
|||
void motor_phy_params_init(FAR struct motor_phy_params_f32_s *phy,
|
||||
uint8_t poles, float res, float ind)
|
||||
{
|
||||
DEBUGASSERT(phy != NULL);
|
||||
LIBDSP_DEBUGASSERT(phy != NULL);
|
||||
|
||||
phy->p = poles;
|
||||
phy->res_base = res;
|
||||
|
@ -404,7 +404,7 @@ void motor_phy_params_init(FAR struct motor_phy_params_f32_s *phy,
|
|||
void motor_phy_params_temp_set(FAR struct motor_phy_params_f32_s *phy,
|
||||
float res_alpha, float res_temp_ref)
|
||||
{
|
||||
DEBUGASSERT(phy != NULL);
|
||||
LIBDSP_DEBUGASSERT(phy != NULL);
|
||||
|
||||
phy->res_alpha = res_alpha;
|
||||
phy->res_temp_ref = res_temp_ref;
|
||||
|
|
|
@ -54,10 +54,10 @@
|
|||
void motor_observer_init(FAR struct motor_observer_f32_s *observer,
|
||||
FAR void *ao, FAR void *so, float per)
|
||||
{
|
||||
DEBUGASSERT(observer != NULL);
|
||||
DEBUGASSERT(ao != NULL);
|
||||
DEBUGASSERT(so != NULL);
|
||||
DEBUGASSERT(per > 0.0f);
|
||||
LIBDSP_DEBUGASSERT(observer != NULL);
|
||||
LIBDSP_DEBUGASSERT(ao != NULL);
|
||||
LIBDSP_DEBUGASSERT(so != NULL);
|
||||
LIBDSP_DEBUGASSERT(per > 0.0f);
|
||||
|
||||
/* Reset observer data */
|
||||
|
||||
|
@ -95,9 +95,9 @@ void motor_observer_init(FAR struct motor_observer_f32_s *observer,
|
|||
void motor_observer_smo_init(FAR struct motor_observer_smo_f32_s *smo,
|
||||
float kslide, float err_max)
|
||||
{
|
||||
DEBUGASSERT(smo != NULL);
|
||||
DEBUGASSERT(kslide > 0.0f);
|
||||
DEBUGASSERT(err_max > 0.0f);
|
||||
LIBDSP_DEBUGASSERT(smo != NULL);
|
||||
LIBDSP_DEBUGASSERT(kslide > 0.0f);
|
||||
LIBDSP_DEBUGASSERT(err_max > 0.0f);
|
||||
|
||||
/* Reset structure */
|
||||
|
||||
|
@ -170,10 +170,10 @@ void motor_observer_smo(FAR struct motor_observer_f32_s *o,
|
|||
FAR ab_frame_f32_t *i_ab, FAR ab_frame_f32_t *v_ab,
|
||||
FAR struct motor_phy_params_f32_s *phy, float dir)
|
||||
{
|
||||
DEBUGASSERT(o != NULL);
|
||||
DEBUGASSERT(i_ab != NULL);
|
||||
DEBUGASSERT(v_ab != NULL);
|
||||
DEBUGASSERT(phy != NULL);
|
||||
LIBDSP_DEBUGASSERT(o != NULL);
|
||||
LIBDSP_DEBUGASSERT(i_ab != NULL);
|
||||
LIBDSP_DEBUGASSERT(v_ab != NULL);
|
||||
LIBDSP_DEBUGASSERT(phy != NULL);
|
||||
|
||||
FAR struct motor_observer_smo_f32_s *smo =
|
||||
(FAR struct motor_observer_smo_f32_s *)o->ao;
|
||||
|
@ -382,9 +382,9 @@ void motor_observer_smo(FAR struct motor_observer_f32_s *o,
|
|||
void motor_sobserver_div_init(FAR struct motor_sobserver_div_f32_s *so,
|
||||
uint8_t samples, float filter, float per)
|
||||
{
|
||||
DEBUGASSERT(so != NULL);
|
||||
DEBUGASSERT(samples > 0);
|
||||
DEBUGASSERT(filter > 0.0f);
|
||||
LIBDSP_DEBUGASSERT(so != NULL);
|
||||
LIBDSP_DEBUGASSERT(samples > 0);
|
||||
LIBDSP_DEBUGASSERT(filter > 0.0f);
|
||||
|
||||
/* Reset observer data */
|
||||
|
||||
|
@ -421,9 +421,9 @@ void motor_sobserver_div_init(FAR struct motor_sobserver_div_f32_s *so,
|
|||
void motor_sobserver_div(FAR struct motor_observer_f32_s *o,
|
||||
float angle, float dir)
|
||||
{
|
||||
DEBUGASSERT(o != NULL);
|
||||
DEBUGASSERT(angle >= 0.0f && angle <= 2*M_PI_F);
|
||||
DEBUGASSERT(dir == DIR_CW || dir == DIR_CCW);
|
||||
LIBDSP_DEBUGASSERT(o != NULL);
|
||||
LIBDSP_DEBUGASSERT(angle >= 0.0f && angle <= 2*M_PI_F);
|
||||
LIBDSP_DEBUGASSERT(dir == DIR_CW || dir == DIR_CCW);
|
||||
|
||||
FAR struct motor_sobserver_div_f32_s *so =
|
||||
(FAR struct motor_sobserver_div_f32_s *)o->so;
|
||||
|
@ -515,7 +515,7 @@ void motor_sobserver_div(FAR struct motor_observer_f32_s *o,
|
|||
|
||||
float motor_observer_speed_get(FAR struct motor_observer_f32_s *o)
|
||||
{
|
||||
DEBUGASSERT(o != NULL);
|
||||
LIBDSP_DEBUGASSERT(o != NULL);
|
||||
|
||||
return o->speed;
|
||||
}
|
||||
|
@ -536,7 +536,7 @@ float motor_observer_speed_get(FAR struct motor_observer_f32_s *o)
|
|||
|
||||
float motor_observer_angle_get(FAR struct motor_observer_f32_s *o)
|
||||
{
|
||||
DEBUGASSERT(o != NULL);
|
||||
LIBDSP_DEBUGASSERT(o != NULL);
|
||||
|
||||
return o->angle;
|
||||
}
|
||||
|
|
|
@ -49,7 +49,7 @@
|
|||
void pid_controller_init(FAR pid_controller_f32_t *pid, float KP, float KI,
|
||||
float KD)
|
||||
{
|
||||
DEBUGASSERT(pid != NULL);
|
||||
LIBDSP_DEBUGASSERT(pid != NULL);
|
||||
|
||||
/* Reset controller data */
|
||||
|
||||
|
@ -81,7 +81,7 @@ void pid_controller_init(FAR pid_controller_f32_t *pid, float KP, float KI,
|
|||
|
||||
void pi_controller_init(FAR pid_controller_f32_t *pid, float KP, float KI)
|
||||
{
|
||||
DEBUGASSERT(pid != NULL);
|
||||
LIBDSP_DEBUGASSERT(pid != NULL);
|
||||
|
||||
/* Reset controller data */
|
||||
|
||||
|
@ -114,8 +114,8 @@ void pi_controller_init(FAR pid_controller_f32_t *pid, float KP, float KI)
|
|||
|
||||
void pid_saturation_set(FAR pid_controller_f32_t *pid, float min, float max)
|
||||
{
|
||||
DEBUGASSERT(pid != NULL);
|
||||
DEBUGASSERT(min < max);
|
||||
LIBDSP_DEBUGASSERT(pid != NULL);
|
||||
LIBDSP_DEBUGASSERT(min < max);
|
||||
|
||||
pid->sat.max = max;
|
||||
pid->sat.min = min;
|
||||
|
@ -138,8 +138,8 @@ void pid_saturation_set(FAR pid_controller_f32_t *pid, float min, float max)
|
|||
|
||||
void pi_saturation_set(FAR pid_controller_f32_t *pid, float min, float max)
|
||||
{
|
||||
DEBUGASSERT(pid != NULL);
|
||||
DEBUGASSERT(min < max);
|
||||
LIBDSP_DEBUGASSERT(pid != NULL);
|
||||
LIBDSP_DEBUGASSERT(min < max);
|
||||
|
||||
pid_saturation_set(pid, min, max);
|
||||
}
|
||||
|
@ -179,7 +179,7 @@ void pi_integral_reset(FAR pid_controller_f32_t *pid)
|
|||
|
||||
float pi_controller(FAR pid_controller_f32_t *pid, float err)
|
||||
{
|
||||
DEBUGASSERT(pid != NULL);
|
||||
LIBDSP_DEBUGASSERT(pid != NULL);
|
||||
|
||||
/* Store error in controller structure */
|
||||
|
||||
|
@ -254,7 +254,7 @@ float pi_controller(FAR pid_controller_f32_t *pid, float err)
|
|||
|
||||
float pid_controller(FAR pid_controller_f32_t *pid, float err)
|
||||
{
|
||||
DEBUGASSERT(pid != NULL);
|
||||
LIBDSP_DEBUGASSERT(pid != NULL);
|
||||
|
||||
/* Get PI output */
|
||||
|
||||
|
|
|
@ -195,7 +195,7 @@ static void svm3_duty_calc(FAR struct svm3_state_f32_s *s,
|
|||
{
|
||||
/* We should not get here */
|
||||
|
||||
DEBUGASSERT(0);
|
||||
LIBDSP_DEBUGASSERT(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -260,7 +260,7 @@ static void svm3_duty_calc(FAR struct svm3_state_f32_s *s,
|
|||
{
|
||||
/* We should not get here */
|
||||
|
||||
DEBUGASSERT(0);
|
||||
LIBDSP_DEBUGASSERT(0);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
@ -323,8 +323,8 @@ static void svm3_duty_calc(FAR struct svm3_state_f32_s *s,
|
|||
|
||||
void svm3(FAR struct svm3_state_f32_s *s, FAR ab_frame_f32_t *v_ab)
|
||||
{
|
||||
DEBUGASSERT(s != NULL);
|
||||
DEBUGASSERT(v_ab != NULL);
|
||||
LIBDSP_DEBUGASSERT(s != NULL);
|
||||
LIBDSP_DEBUGASSERT(v_ab != NULL);
|
||||
|
||||
abc_frame_f32_t ijk;
|
||||
|
||||
|
@ -435,8 +435,8 @@ void svm3_current_correct(FAR struct svm3_state_f32_s *s,
|
|||
|
||||
void svm3_init(FAR struct svm3_state_f32_s *s, float min, float max)
|
||||
{
|
||||
DEBUGASSERT(s != NULL);
|
||||
DEBUGASSERT(max > min);
|
||||
LIBDSP_DEBUGASSERT(s != NULL);
|
||||
LIBDSP_DEBUGASSERT(max > min);
|
||||
|
||||
memset(s, 0, sizeof(struct svm3_state_f32_s));
|
||||
|
||||
|
|
|
@ -53,8 +53,8 @@
|
|||
void clarke_transform(FAR abc_frame_f32_t *abc,
|
||||
FAR ab_frame_f32_t *ab)
|
||||
{
|
||||
DEBUGASSERT(abc != NULL);
|
||||
DEBUGASSERT(ab != NULL);
|
||||
LIBDSP_DEBUGASSERT(abc != NULL);
|
||||
LIBDSP_DEBUGASSERT(ab != NULL);
|
||||
|
||||
ab->a = abc->a;
|
||||
ab->b = ONE_BY_SQRT3_F*abc->a + TWO_BY_SQRT3_F*abc->b;
|
||||
|
@ -78,8 +78,8 @@ void clarke_transform(FAR abc_frame_f32_t *abc,
|
|||
void inv_clarke_transform(FAR ab_frame_f32_t *ab,
|
||||
FAR abc_frame_f32_t *abc)
|
||||
{
|
||||
DEBUGASSERT(ab != NULL);
|
||||
DEBUGASSERT(abc != NULL);
|
||||
LIBDSP_DEBUGASSERT(ab != NULL);
|
||||
LIBDSP_DEBUGASSERT(abc != NULL);
|
||||
|
||||
/* Assume non-power-invariant transform and balanced system */
|
||||
|
||||
|
@ -108,9 +108,9 @@ void park_transform(FAR phase_angle_f32_t *angle,
|
|||
FAR ab_frame_f32_t *ab,
|
||||
FAR dq_frame_f32_t *dq)
|
||||
{
|
||||
DEBUGASSERT(angle != NULL);
|
||||
DEBUGASSERT(ab != NULL);
|
||||
DEBUGASSERT(dq != NULL);
|
||||
LIBDSP_DEBUGASSERT(angle != NULL);
|
||||
LIBDSP_DEBUGASSERT(ab != NULL);
|
||||
LIBDSP_DEBUGASSERT(dq != NULL);
|
||||
|
||||
dq->d = angle->cos * ab->a + angle->sin * ab->b;
|
||||
dq->q = angle->cos * ab->b - angle->sin * ab->a;
|
||||
|
@ -136,9 +136,9 @@ void inv_park_transform(FAR phase_angle_f32_t *angle,
|
|||
FAR dq_frame_f32_t *dq,
|
||||
FAR ab_frame_f32_t *ab)
|
||||
{
|
||||
DEBUGASSERT(angle != NULL);
|
||||
DEBUGASSERT(dq != NULL);
|
||||
DEBUGASSERT(ab != NULL);
|
||||
LIBDSP_DEBUGASSERT(angle != NULL);
|
||||
LIBDSP_DEBUGASSERT(dq != NULL);
|
||||
LIBDSP_DEBUGASSERT(ab != NULL);
|
||||
|
||||
ab->a = angle->cos * dq->d - angle->sin * dq->q;
|
||||
ab->b = angle->cos * dq->q + angle->sin * dq->d;
|
||||
|
|
Loading…
Reference in a new issue