概述

什么是移植,为什么要移植

对于嵌入式设备,由于芯片型号和外设差异较大,且资源有限,所以物联网操作系统无法像 Windows/Linux 那样适配集成所有驱动,因此通常会先适配部分芯片/开发板。为了让操作系统运行在其他芯片/开发板上,此时就需要移植。

开发板的移植包括 CPU架构移植、板级/外设驱动移植和操作系统的移植。

指南适用范围

本指南基于STM32芯片平台,以正点原子STM32F407开发板为例介绍如何快速移植LiteOS,其中并不涉及CPU架构移植。

移植目录结构

表格列出了LiteOS源码的目录,其中加粗字体的目录/文件在移植过程中需要修改。

表 1 LiteOS源码目录

一级目录二级目录/文件说明
arch芯片架构支持
buildLiteOS编译系统需要的配置及脚本
compatLiteOS提供的CMSIS-RTOS 1.0和2.0接口
components组件代码
demos组件和内核的demo
docLiteOS使用文档
includecomponents中各模块的头文件
kernel内核代码
liblibc/zlib/posix接口
osdependsLiteOS提供的部分OS适配接口
targetsbsp通用板级支持包
Cloud_STM32F429IGTx_FIRE野火STM32F429(ARM Cortex M4)开发板的开发工程源码包
STM32F769IDISCOVERYSTM32F769IDISCOVERY(ARM Cortex M7)开发板的开发工程源码包
STM32L431_BearPi小熊派STM32L431(ARM Cortex M4)开发板的开发工程源码包
Kconfig
Makefile
targets.mk
tests内核及系统库的参考测试代码
toolsbuild/configLiteOS支持的各开发板的编译配置文件,移植新的开发板时,需要在这个目录下增加这个新开发板的编译配置文件
menuconfigLiteOS编译所需的menuconfig脚本
stackusageLiteOS栈使用估算工具
Makefile整个LiteOS的Makefile
.config开发板的编译配置文件,默认为Cloud_STM32F429IGTx_FIRE开发板的配置文件,移植时需要替换成新开发板的编译配置文件

target目录下保存了当前已经支持的开发板工程源码。当移植新开发板时,应该在target目录下增加该开发板的目录,目录结构和代码可以参考当前已支持的开发板的目录。例如:

  • STM32F4系列的移植可以参考Cloud_STM32F429IGTx_FIRE工程。
  • STM32F7系列的移植可以参考STM32F769IDISCOVERY工程。
  • STM32L4系列的移植可以参考STM32L431_BearPi工程。