创建应用
本节以 helloworld 工程为例介绍 SylixOS 应用程序工程的创建、编辑和编译。
创建 SylixOS Base 工程
打开 RealEvo-IDE,在菜单栏中选择 File > New > SylixOS Base ,打开 SylixOS Base 对话框。
在 SylixOS Base 对话框中,自定义 Project name 并且 Location 保持默认,单击 Next 进入 Base 类型选择页面。
在 Base 类型选择页面中,选择 SylixOS Standard base 工程,单击 Next 进入工程设置对话框。
此对话框中可以选择编译工具链类型、编译代码的调试级别以及 CPU Type 等。这部分配置与实际硬件息息相关,由于本章节以 RealEvo-Simulator 中的“zcu102”虚拟板卡进行演示,所以按下图配置工程,单击 Next 进入库选择对话框。
SylixOS Base 默认包含 libsylixos 和 libcextern(其他库文件的说明见下表)。单击 Finish,完成 SylixOS Base 工程的创建。
大部分库是可选的,可根据实际需求进行选择,各库的说明如下:
库名 说明 是否必选 libsylixos SylixOS 内核源码库 必选 libcextern SylixOS 的 c 库 必选 libVxWorks VxWorks 兼容库 非必选 libreadline 命令行编辑器支持库 非必选 liblua lua 脚本库 非必选 libsqlite3 SQLite 数据库 非必选 pciutils PCIe 工具集 非必选 libzmodem Zmodem 协议工具,用于串口文件传输 非必选 libexpat xml 解析库 非必选 libluaplugin lua 插件库,为 lua 脚本提供大量基础库 非必选 libsunrpc SUN RPC 库,为网络文件系统(NFS)提供支持 非必选 unfsd NFS 服务器程序 非必选 libsalsa ALSA 声卡库 非必选 libpcap 网络包抓取依赖库 非必选 openssl 开源 SSL 加密实现库 非必选 libffi 可移植的外部函数接口库 非必选 libwayland Wayland 是一个用于合成程序与客户端通信的协议 非必选 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 工程
打开 RealEvo-IDE,在菜单栏中选择 File > New > SylixOS App,打开 SylixOS App 对话框。
在 SylixOS App 对话框中,自定义 Project name 并且 Location 保持默认,单击 Next 进入工程设置对话框。
在工程设置对话框中,点击 Workspace 进入 Project base 工程选择对话框。
在 Project base 工程选择对话框中选择上文创建的 Project base 工程。单击 OK,回到工程设置对话框。
单击 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 文件夹中。