1. 概述
     针对低端处理器(如ARM M系列处理器)的开发工作,翼辉信息推出了SylixOS Lite工程版本。SylixOS Lite版本工程属于SylixOS轻量级工程,与标准的SylixOS工程相比裁剪掉部分功能(如GDB调试、虚拟内存管理、动态装载、部分网络功能等)。
    由于SylixOS Lite版本不支持动态装载,本文档介绍基于SylixOS标准开发环境下的中间件移植到SylixOS Lite版本的方法,如在标准版本下开发内核模块工程、动态库工程移植到Lite版本的方法。本文档以在标准版本下开发的uORB中间件为例,介绍如何移植该中间件到Lite版本。
2. 实例
    本实例以uORB为例,介绍标准版本移植到Lite版本的过程。
2.1 标准开发版本
    uORB标准版本下由内核模块和动态库组成,即内核模块工程和动态库工程,如图 2.1所示。
 

sylixos标准工程移植到Lite版本_第1张图片

图 2.1 标准开发版本

2.2 内核模块移植到Lite版本
    由于SylixOS Lite版本不支持动态装载,所以Lite版本不支持内核模块工程。内核模块移植到Lite版本需将该工程加载到Lite版本BSP工程目录下,同时在系统启动时加载该模块。
    将内核模块代码放到BSP工程目录下参与编译,如图 2.2所示。 

sylixos标准工程移植到Lite版本_第2张图片

图 2.2  BSP工程结构


    同时在系统启动时加载该模块,如图 2.3所示在系统启动函数中调用初始化接口。 

3.png

图 2.3  系统启动加载内核模块


2.3 移植动态库到Lite版本
    移植动态库到Lite版本,需将代码移植到Lite版本BSP工程中参与编译,如图 2.2所示。
    动态库在BSP工程中参与编译后,需将动态库提供的接口加入符号表中,应用程序即可以调用符号表中的函数接口。SylixOS下将函数接口添加到符号表中需在函数定义前添加“LW_SYMBOL_EXPORT”符号,uORB动态库移植过程中需在相应的函数接口前添加此符号,如图 2.4所示。 

sylixos标准工程移植到Lite版本_第3张图片

图 2.4  添加导入符号表命令

    添加到符号表编译后,应用程序即可调用该库中的函数接口。