文档首页/ LiteOS/ 移植教程/ 移植适配/ 适配外设驱动和HAL库配置文件
更新时间:2021-07-08 GMT+08:00
分享

适配外设驱动和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);
    }

相关文档