移植指南
本文说明 xfusion 如何添加新的平台或芯片支持、外设驱动或组件对接支持。
阅读对象:
- 想要添加新的平台或芯片支持/外设驱动支持的移植开发者。
概述
为 xfusion 移植通常分为两个部分:
移植新的平台或芯片。
比如添加 stm32f103ze、esp32、at32f407vgt7 等新的芯片及其原始工程。
移植外设驱动或组件对接。
比如添加 xf_hal 中驱动的实现。
如图所示:
xfusion/ xfusion/ xfusion/
┗ boards/ ┗ ports/ ┗ components/
┗ st/ (对应) ┗ st/ (对接) ┃
┣ stm32f103c8/ ───>─┬──────╊ stm32f1xx/ ───>─┬───────╊ xf_hal/
┣ stm32f103ze/ ───>─┤ ┃ │ ┗ .../
┣ stm32f1..../ ───>─┘ ┃ │
┃ ┃ │ ┃
┣ stm32f407zg/ ───>─┬──────┺ stm32f4xx/ ───>─┘ ┃
┣ stm32f411ce/ ───>─┤ ┃ ┃
┗ stm32f4..../ ───>─┘ ┃ ┃
┃ ┃ ┃
┃ 原始工程 sdk 代码可存在的范围 ┃ ┃
┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ ┃
┃ xfusion/components 代码可存在的范围 ┃
┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛
根据上图,为 xfusion 移植的两个部分可重新解释为:
移植新的平台或芯片。
即图中左侧的
boards
和ports
部分,一是添加适配 xfusion 环境变量的原始工程,如stm32f103c8
;二是创建原始工程stm32f103c8/
和实现对接的代码stm32f1xx/
(本质上是原始工程的组件)的关系,即将实现对接的代码加入编译或调用。移植外设驱动或组件对接。
即图中右侧的
ports
和components
部分。 也就是在ports
内,根据components
内的组件的接口要求实现components
内组件的对接。