Skip to content

移植指南

本文说明 xfusion 如何添加新的平台或芯片支持、外设驱动或组件对接支持。


阅读对象:

  • 想要添加新的平台或芯片支持/外设驱动支持的移植开发者。

概述

为 xfusion 移植通常分为两个部分:

  1. 移植新的平台或芯片。

    比如添加 stm32f103ze、esp32、at32f407vgt7 等新的芯片及其原始工程。

  2. 移植外设驱动或组件对接。

    比如添加 xf_hal 中驱动的实现。

如图所示:

xfusion/                   xfusion/                   xfusion/
┗ boards/                  ┗ ports/                    ┗ components/
  ┗ st/             (对应)   ┗ st/           (对接)      ┃
    ┣ stm32f103c8/ ───>─┬──────╊ stm32f1xx/ ───>─┬───────╊ xf_hal/
    ┣ stm32f103ze/ ───>─┤      ┃                 │       ┗ .../
    ┣ stm32f1..../ ───>─┘      ┃                 │
    ┃                          ┃                 │                ┃
    ┣ stm32f407zg/ ───>─┬──────┺ stm32f4xx/ ───>─┘                ┃
    ┣ stm32f411ce/ ───>─┤                ┃                        ┃
    ┗ stm32f4..../ ───>─┘                ┃                        ┃
      ┃                                  ┃                        ┃
      ┃   原始工程 sdk 代码可存在的范围   ┃                        ┃
      ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛                        ┃
      ┃            xfusion/components 代码可存在的范围             ┃
      ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛

根据上图,为 xfusion 移植的两个部分可重新解释为:

  1. 移植新的平台或芯片。

    即图中左侧的boardsports部分,一是添加适配 xfusion 环境变量的原始工程,如stm32f103c8;二是创建原始工程stm32f103c8/和实现对接的代码stm32f1xx/(本质上是原始工程的组件)的关系,即将实现对接的代码加入编译或调用。

  2. 移植外设驱动或组件对接。

    即图中右侧的portscomponents部分。 也就是在ports内,根据components内的组件的接口要求实现components内组件的对接。

子文档