适配外设驱动和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中:

      1. /*
      2. int atiny_random(void *output, size_t len)
      3. {
      4. return hal_rng_generate_buffer(output, len);
      5. }
      6. */
    • Src\main.c中:

      1. VOID HardwareInit(VOID)
      2. {
      3. SystemClock_Config();
      4. MX_USART1_UART_Init();
      5. // hal_rng_config();
      6. dwt_delay_init(SystemCoreClock);
      7. }
  4. 在STM32F407_OpenEdv\Src\main.c硬件初始化函数的第一行,添加初始化HAL库的函数HAL_Init():

    1. VOID HardwareInit(VOID)
    2. {
    3. HAL_Init();
    4. SystemClock_Config();
    5. MX_USART1_UART_Init();
    6. // hal_rng_config();
    7. dwt_delay_init(SystemCoreClock);
    8. }