VxWorks 程序到 SylixOS 之移植指南

VxWorks 程序到 SylixOS 之移植指南

一般来说,VxWorks程序又可分为内核程序和应用程序,内核程序又可分为BSP程序和内核模块程序。

本文重点阐述内核程序的移植。
SylixOS如何操作硬件:

VxWorks如何操作硬件:






1、工程的选择
VxWorks 工程类型:


SylixOS 工程类型:





2、VxWorksBSP中自定义函数被外部模块使用,在SylixOS中需要增加到符号表中,可以通过API_SymbolAddStatic或者LW_SYMBOL宏修饰方式增加。

3、根据原始程序有无需硬浮点,有无大量内存申请,有无大量接口被调用

1)原始程序无需硬浮点,无大量内存申请,无大量接口被调用
•VxWorks下原来的DKM工程可以选择SylixOS内核模块工程
•初始化调用的函数可以写在内核模块的module_init()里,然后在startup.sh中加载内核模块
•内核模块中的少量接口需要导出时用LW_SYMBOL_EXPORT修饰
•初始化调用的函数可以写在app里,然后在startup.sh中先加载内核模块,再后台运行app程序
•不用startup.sh的话也可以再代码中使用system()方式

2) 原始程序需要硬浮点,有大量内存申请,有大量接口被调用

•VxWorks下原来的DKM工程可以选择SylixOS动态库工程
•初始化调用的函数可以写在app里,然后在startup.sh中先加载内核模块,再后台运行app程序
•不用startup.sh的话也可以再代码中使用system()方式
4、接口替换
       内核程序无法直接引用SylixOS的VxWorks兼容库生成的.a和.so,
        需要在IDE中建一个SylixOS Kernel Static Lib工程,并将源代码加入工程中,编译出内核库,再在内核程序中进行引用。

移植注意事项:
1、volatile优化问题


2、延时优化问题




    • Related Articles

    • Qt 应用程序移植到 SylixOS

      Q:Qt 应用程序移植到 SylixOS 需要多大的工作量? SylixOS 对 Qt 接口的支持是全功能支持的,只需要在SylixOS系统下重新编译就可以了,基本没有工作量。
    • 字符设备网卡移植

      目  录 1. 适用范围 2. 移植概述 3. 准备工作 3.1 环境准备 3.2 资源准备 4. 技术实现 4.1 了解网络协议栈网卡驱动框架 4.2 修改为字符设备网卡驱动代码 5. 编写测试程序 6. 调试代码 7. 总结 8. 参考资料 9. 免责声明 1. 适用范围 适用于客户要求SylixOS不使用网络协议栈的情形下,网卡驱动通过字符设备驱动实现。 2. 移植概述 本次移植是以普通版本的SylixOS CPSW网卡,移植步骤如下: ...
    • Linux工程移植笔记-基于arping案例

      1. arping简介 arp(Address Resultion Protocol)地址解析协议,是通过解析网络层地址来找寻数据链路层地址。 ...
    • libamp_virnetdrv 虚拟网卡在 T3 AMP 上的移植案例

      libamp_virnetdrv 可以方便的移植到各种平台,为 AMP 架构提供简单、高效的核间通信机制。下面以 T3 AMP(SylixOS + SylixOS)为例介绍具体的移植过程。 1、驱动支持 虚拟网卡包含 libamp_virnetdrv与 libamp_virnetdrv_config 两个部分。T3 是 ARM 平台,因此首先拷贝 libamp_virnetdrv\src\demo\arm_aarch64 下的四个文件到 T3 每个系统的 BSP 目录 ...
    • IDE 中如何屏蔽单个工程文件

      问:IDE 中如何屏蔽单个工程文件? 在工程中右键选择 Properties 会弹出如图所示属性库,在 SylixOS Pro 选项卡中禁能所有架构的选项,即可达到暂时屏蔽单个工程或工程文件夹的作用。  该方法的好处在于: (1 )移植中间件,保留中间件源码工程样式并且又屏蔽不需要的工程; (2)移植中间件过程可以暂时屏蔽编译不通过想要裁剪的工程,如果选择的是自定义 Makefile 模式,需要删除文件或删除 Makefile 中的 sourcelist,并且人工记录,从而造成 SylixOS ...