开发环境: stm32f407+freertos
今天把一个工程从Keil4上转移到Keil5,遇到了原本在Keil4上编译可以通过的内敛函数报错的问题。
特此记录,以作总结。
以delay_ms函数为例,在Keil 4下内敛函数可以通过编译并正确使用的方法:
在delay.h头文件中写入下述代码,需要调用delay_ms函数的c文件包含此头文件即可
__inline void delay_ms(int t)
{
vTaskDelay(t/portTICK_PERIOD_MS);
}
在Keil5下内敛函数可以通过编译并正确使用的方法:
(1) 在delay.h头文件中声明函数原型:
void delay_ms(int t); // 注意不要加__inline
(2) 在delay.c文件中定义函数,代码如下:
__inline void delay_ms(int t)
{
vTaskDelay(t/portTICK_PERIOD_MS);
}
(3) 其它需要调用delay_ms函数的c文件包含此头文件即可