
# 适配外设驱动和HAL库配置文件
1. 将芯片外设驱动文件替换为对应芯片的文件。
   - 修改芯片外设驱动源文件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"**。
     
    
2. 移植HAL库配置文件。 直接用裸机工程中的**Core\\Inc\\stm32f4xx_hal_conf.h** 文件替换**STM32F407_OpenEdv\\Inc\\stm32f4xx_hal_conf.h**即可。
   
3. 注释随机数代码。 目前不需要使用随机数，为减少不必要的移植工作，先注释随机数相关代码。搜索关键字"**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);
     }
     ```
     
    
4. 在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);
   }
   ```
   
 
