TuyaOSTuyaOS 移植

TuyaOS 移植

更新时间:2024-01-08 10:29:25

移植 TuyaOS 是通过适配 TuyaOS 依赖的相关接口,让 TuyaOS 能够在各种硬件平台上正常运行的过程。本文主要介绍如何适配 TuyaOS 最小集的依赖接口,让 TuyaOS 在您的芯片平台上快速的运行起来。

准备工作

获取开发框架

获取开发框架的步骤如下:

  1. 按照《涂鸦开发者论坛》TuyaOS SDK 模式自主接入 进行第三方平台自主接入的流程,申请需要的 TuyaOS 开发框架。

  2. 申请通过之后,通过 Tuya Wind IDE 下载到对应的开发框架。此开发框架包含了 TuyaOS 的头文件、库文件、快速体验的示例程序。

  3. 完成开发框架下载之后,需要执行一次编译,才能获取到涂鸦提供的 TuyaOS Kernel 适配模板,编译操作请参考 Tuya Wind IDE 编译操作

    执行编译操作的时候,Tuya Wind IDE 会下载适配模板,VSCode 会有类似如下日志输出:

    =========开始:tuyaos kernel 下载,请耐心等待 5 分钟=========
    --2023-06-15 10:11:46-- https://airtake-public-data-1254153901.cos.ap-shanghai.myqcloud.com/smart/embed/pruduct/gcc-sigmastar-9-1-0-2020-07-x86_64_arm-linux-gnueabihf_0.0.2.zip
    Resolving airtake-public-data-1254153901.cos.ap-shanghai.myqcloud.com (airtake-public-data-1254153901.cos.ap-shanghai.myqcloud.com)... 58.217.250.19, 58.217.250.16, 58.217.250.17, ...
    Connecting to airtake-public-data-1254153901.cos.ap-shanghai.myqcloud.com (airtake-public-data-1254153901.cos.ap-shanghai.myqcloud.com)|58.217.250.19|:443... connected.
    HTTP request sent, awaiting response... 200 OK
    Length: 2523458755 (2.3G) [application/zip]
    Saving to: ‘gcc-sigmastar-9-1-0-2020-07-x86_64_arm-linux-gnueabihf_0.0.2.zip’
    
    -linux-gnueabihf_0.0.2.zip               1%[>                                                                            ] 41.75M 3.81MB/s    eta 11m 26s
    
  4. 下载、解压完成之后,开发框架内会额外新增一个目录 software/TuyaOS/vendor,涂鸦提供的适配模板就保存在此目录下。目录结构如下:

    |---software/TuyaOS/vendor                              # Tuyaos Kernel 保存路径
       |---gcc-sigmastar-9-1-0-2020-07-x86_64_arm-linux-gnueabihf   # 一个特定的原厂 SDK
           |---toolchain                                    # 三方平台自主接入过程提供的工具链
           |---tuyaos                                       # Tuyaos Kernel adapter,包含脚本、源码
               |---build_path                               # 三方平台自主接入过程提供的工具链前缀
               |---platform.mk                              # 三方平台自主接入过程提供的编译选项
               |---tuyaos_adapter                           # Tuyaos Kernel 适配模板,会按照功能需求生成文件、函数
                   |---include
                   |---src
                   |---local.mk                             # Tuyaos adapter 编译描述
               |---build.sh                                 # Tuyaos 固件编译入口。注意,最终编译固件/可执行文件时会调用。
               |---makefile                                 # Linux 系统特有,可以直接编译可执行程序,RTOS系统没有这个文件
               |---tuyaos_kernel.config                     # Tuyaos Kernel 功能配置,如要修改非外设相关功能,
    

准备硬件环境

准备目标平台的开发板,方便您在适配的过程中,及时的调试、验证您调试的结果。

开始移植

针对不同系统,适配的内容和工作量有一些不同,因此涂鸦将分别介绍如何在 Linux 和 RTOS 系统下,完成 TuyaOS Kernel 模板的适配工作。