适配外设驱动和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"。
- 修改芯片外设驱动源文件system_xxx.c。
- 移植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); }
- Src\sys_init.c中:
- 在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); }