适配外设驱动和HAL库配置文件
将芯片外设驱动文件替换为对应芯片的文件。
修改芯片外设驱动源文件system_xxx.c。
LiteOS对STM32F407_OpenEdv\Src\system_stm32f4xx.c做了修改,所以该文件无法使用在新开发板上,移植时可以直接替换为裸机工程中对应的文件。对于正点原子STM32F407开发板,在裸机工程中的对应文件为:Core\Src\system_stm32f4xx.c。
修改芯片外设驱动头文件。
删除原stm32f429芯片外设驱动的头文件STM32F407_OpenEdv\Inc\stm32f429xx.h,替换为新开发版对应的文件,可以直接使用裸机工程中的Drivers\CMSIS\Device\ST\STM32F4xx\Include\stm32f407xx.h文件。
同时注意在某些文件中可能引用了原芯片外设的头文件stm32f429xx.h,需要在文件中改为stm32f407xx.h。目前在新增开发板STM32F407_OpenEdv目录下,只有include\asm\hal_platform_ints.h中的引用了stm32f429xx.h,修改 #include “stm32f429xx.h” 为 #include “stm32f407xx.h”。
移植HAL库配置文件。
直接用裸机工程中的Core\Inc\stm32f4xx_hal_conf.h文件替换STM32F407_OpenEdv\Inc\stm32f4xx_hal_conf.h即可。
注释随机数代码。
目前不需要使用随机数,为减少不必要的移植工作,先注释随机数相关代码。搜索关键字“rng”,在STM32F407_OpenEdv目录下找到以下几处使用,将其注释掉:
Src\sys_init.c中:
/*
int atiny_random(void *output, size_t len)
{
return hal_rng_generate_buffer(output, len);
}
*/
Src\main.c中:
VOID HardwareInit(VOID)
{
SystemClock_Config();
MX_USART1_UART_Init();
// hal_rng_config();
dwt_delay_init(SystemCoreClock);
}
在STM32F407_OpenEdv\Src\main.c硬件初始化函数的第一行,添加初始化HAL库的函数HAL_Init():
VOID HardwareInit(VOID)
{
HAL_Init();
SystemClock_Config();
MX_USART1_UART_Init();
// hal_rng_config();
dwt_delay_init(SystemCoreClock);
}