diff --git a/bsp/fh8620/drivers/pwm.c b/bsp/fh8620/drivers/pwm.c index a9d2645631675d56c5104e2afa47bc212c7d4178..58c9703d78245bcb524ad53edaf0b6dd38562dd6 100644 --- a/bsp/fh8620/drivers/pwm.c +++ b/bsp/fh8620/drivers/pwm.c @@ -29,6 +29,7 @@ #include "interrupt.h" #include "board_info.h" #include "inc/fh_driverlib.h" +#include #include #ifdef FH_PWM_DEBUG #define PRINT_PWM_DBG(fmt, args...) \ @@ -185,14 +186,14 @@ int fh_pwm_probe(void *priv_data) PWM_Enable(pwm_obj, RT_FALSE); - pwm_dev = rt_malloc(sizeof(struct rt_device)); - rt_memset(pwm_dev, 0, sizeof(struct rt_device)); + pwm_dev = rt_calloc(1,sizeof(struct rt_device)); if (pwm_dev == RT_NULL) { - rt_kprintf("ERROR: %s rt_device malloc failed\n", __func__); + rt_kprintf("ERROR: %s rt_device calloc failed\n", __func__); + return -RT_ENOMEM; } - + pwm_dev->user_data = &pwm_drv; pwm_dev->open =fh_pwm_open; pwm_dev->close = fh_pwm_close;