创建应用

更新时间:
2024-03-14
下载文档

创建应用

本节以 helloworld 工程为例介绍 SylixOS 应用程序工程的创建、编辑和编译。

创建 SylixOS Base 工程

  1. 打开 RealEvo-IDE,在菜单栏中选择 File > New > SylixOS Base ,打开 SylixOS Base 对话框。

  2. 在 SylixOS Base 对话框中,自定义 Project name 并且 Location 保持默认,单击 Next 进入 Base 类型选择页面。

  3. 在 Base 类型选择页面中,选择 SylixOS Standard base 工程,单击 Next 进入工程设置对话框。

  4. 此对话框中可以选择编译工具链类型、编译代码的调试级别以及 CPU Type 等。这部分配置与实际硬件息息相关,由于本章节以 RealEvo-Simulator 中的“zcu102”虚拟板卡进行演示,所以按下图配置工程,单击 Next 进入库选择对话框。

  5. SylixOS Base 默认包含 libsylixoslibcextern(其他库文件的说明见下表)。单击 Finish,完成 SylixOS Base 工程的创建。

  6. 大部分库是可选的,可根据实际需求进行选择,各库的说明如下:

    库名说明是否必选
    libsylixosSylixOS 内核源码库必选
    libcexternSylixOS 的 c 库必选
    libVxWorksVxWorks 兼容库非必选
    libreadline命令行编辑器支持库非必选
    liblualua 脚本库非必选
    libsqlite3SQLite 数据库非必选
    pciutilsPCIe 工具集非必选
    libzmodemZmodem 协议工具,用于串口文件传输非必选
    libexpatxml 解析库非必选
    libluapluginlua 插件库,为 lua 脚本提供大量基础库非必选
    libsunrpcSUN RPC 库,为网络文件系统(NFS)提供支持非必选
    unfsdNFS 服务器程序非必选
    libsalsaALSA 声卡库非必选
    libpcap网络包抓取依赖库非必选
    openssl开源 SSL 加密实现库非必选
    libffi可移植的外部函数接口库非必选
    libwaylandWayland 是一个用于合成程序与客户端通信的协议非必选
    libgtest谷歌测试框架,包括 GoogleTest 和 GoogleMock非必选
    tcpdump一个强大的命令行包分析器非必选

编译 SylixOS Base 工程

创建完 SylixOS Base 工程后需要对其进行编译。RealEvo-IDE 提供 2 种编译方式,分别如下:

  • 方式一:选中新建的 SylixOS Base 工程,单击 RealEvo-IDE 工具栏的一键编译按钮进行工程编译。

  • 方式二:选中新建的 SylixOS Base 工程,单击右键选择 Build Project ,进行工程编译。

说明:
SylixOS Base 工程编译完成后会生成基础库和驱动模块文件,编译生成的文件需要部署到目标板卡上,部署方法请参考部署应用。“zcu102”虚拟板卡上已经部署了 SylixOS Base 工程,所以无需再部署 SylixOS Base 工程。

创建 SylixOS App 工程

  1. 打开 RealEvo-IDE,在菜单栏中选择 File > New > SylixOS App,打开 SylixOS App 对话框。

  2. 在 SylixOS App 对话框中,自定义 Project name 并且 Location 保持默认,单击 Next 进入工程设置对话框。

  3. 在工程设置对话框中,点击 Workspace 进入 Project base 工程选择对话框。

  4. 在 Project base 工程选择对话框中选择上文创建的 Project base 工程。单击 OK,回到工程设置对话框。

  5. 单击 Finish,完成 SylixOS App 工程的创建。

编辑 SylixOS App 工程

创建的 SylixOS App 工程中包含默认 C 文件“src/helloworld.c”,其内容如下所示:

#include <stdio.h>

int main (int argc, char **argv)
{
    printf("Hello SylixOS!\n");

    return  (0);
}

为使程序运行效果更明显,可参考如下示例将程序修改为每秒打印一次 “Hello World!” 信息。

#include <unistd.h>
#include <stdio.h>

int main (int argc, char *argv[])
{
    while (1) {
        printf("Hello World!\n");
        sleep(1);
    }

    return (0);
}

编译 SylixOS App 工程

修改完 SylixOS App 工程后需要对其进行编译,方法同编译 Base 工程一样。编译成功后生成的 helloworld 可执行文件保存在 helloworld 工程的 Debug 文件夹中。

文档内容是否对您有所帮助?
有帮助
没帮助