最近开始用华大的单片机,按照官方的例程做了一个工程模板,结果直接编译不过,而且一口气有30个错误,提示内容如下:
__WEAK void I2c0_IRQHandler(void);
..\..\..\..\mcu\common\interrupts_hc32l13x.c(77): error: #65: expected a ";"
__WEAK void I2c0_IRQHandler(void);
..\..\..\..\mcu\common\interrupts_hc32l13x.c(78): error: #77-D: this declaration has no storage class or type specifier
__WEAK void I2c1_IRQHandler(void);
..\..\..\..\mcu\common\interrupts_hc32l13x.c(78): error: #65: expected a ";"
__WEAK void I2c1_IRQHandler(void);
..\..\..\..\mcu\common\interrupts_hc32l13x.c: 1 warning, 30 errors
查了一下,处理方法如下:
在头文件中定义__WEAKDEF如下(把下面这段代码放到前面),并且将报错的地方__WEAK修改为__WEAKDEF。
#if defined (__ICCARM__)
#define __WEAKDEF __WEAK __ATTRIBUTES
#elif defined (__CC_ARM)
#define __WEAKDEF __weak
#else
#error "unsupported compiler!!"
#endif
问题解决