创建 Base 工程
选择菜单 File > New > Project ,弹出窗口中列出了 SylixOS 支持的工程类型。选择 SylixOS Base 如下图所示。
单击 Next ,进入下图所示配置页面。在 Project Name 输入框输入工程名,工程名称不允许包含空格,取消勾选 Use default location ,可在默认 Workspace 之外的位置创建工程。
单击 Next 进入 Base 类型选择页面,选择 SylixOS version 类型,这里包括的类型: default ,如下图所示。
Base 类型的选择决定了对应其它工程的类型(例如:SylixOS App 工程类型由依赖的 SylixOS Base 工程的类型决定)。
- SylixOS Lite Base 类型详细见 SylixOS Lite 工程。
- SylixOS Tiny Base 工程是在 SylixOS Lite 类型工程基础做的进一步精简版本,创建方式与使用方式与 SylixOS Lite Base 工程相同。
- SylixOS DSP 工程与标准 SylixOS 工程的创建和部署方式相同,因此下文不再针对 DSP 工程的使用方法做详细的介绍。
- SylixOS Lite DSP 与 SylixOS Lite 不同的是没有 Externsion 工程类型的支持,工程的创建于编译方式与 SylixOS DSP 类型的工程相似。另外,需要提出的是,如果需要 SylixOS Lite DSP 类型的工程支持C++,则需要将 C++代码编译到 BSP 中去。
- 工程一旦成功创建,请不要再重命名工程,也不要重命名与工程名同名的
.mk
文件。
注意:
由于DSPCCS 编译器限制,不允许在库之间,操作系统与库之间相互调用对方的 static 函数,所以操作系统、库、应用程序之间有回调性质的函数,例如定时器服务函数、线程函数等,不能带有 static 属性。下面列出了操作系统中具有这些特性的函数,这些函数传入的回调函数不能带有 static 属性:
- API_InterVectorMeasureHook
- API_GuiInputDevKeyboardHookSet
- API_GuiInputDevMouseHookSet
- API_CoroutineCreate
- API_TimerCreate
- API_TimerStart
- API_TimerStartEx
- API_ThreadCleanupPush
- API_ThreadCleanupPushEx
- API_ThreadCreate
- API_ThreadInit
- API_ThreadOnce
- API_ThreadOnce2
- pthread_key_create
- sigaction
- bsd_signal
- signal
- sigvec
单击 Next 进入 Base 设置页面,如下图所示。
配置项解析:
- Multi architrctue: 多架构编译。可参考下图勾选复选框。多架构模式支持单 Base 编译多个编译链,后续依赖此 Base 的工程,皆支持编译多个编译链( BSP 工程除外)。
- SylixOS Base Project:依赖的 SylixOS Base 工程路径,此项对 SylixOS Base 工程本身无意义,不允许设置。
- Toolchain:工具链。
- Debug Level:调试级别,SylixOS 提供 Debug 和 Release 两种配置。
- CPUType:处理器类型。
- FPU Type:浮点类型。
- Custom Makefile configuration:专家模式,用户自定义 Makefile,如果选中,则用户在界面上进行的所有配置,除本页所示工具链配置外,其它配置均不会被写入 Makefile 中,这里所述 Makefile 包含工程目录下文件名为 Makefile 的文件以及所有后缀名为
.mk
的文件。专家模式需要用户自己修改 Makefile,一般用户不推荐使用专家模式,SylixOS Base 工程不允许编辑此项。 - Do not scan source files:不扫描源码文件。RealEvo-IDE 会在每次用户编译时扫描工程目录下的源码文件列表并更新 Makefile,如有特殊需求可不扫描,一般用户不推荐使用。SylixOS Base 工程不允许编辑此项。Custom Makefile configuration 为本选项的超集,如果选中,RealEvo-IDE 也不会扫描源码文件列表。
单击 Next进入组件选择页面,SylixOS 包含大量可选组件,选择 Select All 按钮可选中全部组件。这里点 Finish 即可完成工程创建。如下图所示。
列表项解析:
- libsylixos:SylixOS 内核组件,SylixOS Base 工程必选。
- libcextern:SylixOS 的 c 库,可选组件,一般也推荐包含在 SylixOS Base 工程中。
- libVxWorks:VxWorks 兼容库,可选组件。
- libreadline:命令行编辑器支持库。
- liblua:lua 脚本库。
- libsqlite3:SQLite 数据库。
- pciutils:PCIe 工具集。
- libzmodem:Zmodem 协议工具,用于串口文件传输。
- libexpat:xml解析库。
- libluaplugin:lua 插件库,为 lua 脚本提供大量基础库。
- libsunrpc:SUNRPC库,为网络文件系统(NFS)提供支持。
- libpcap:网络包抓取依赖库。
- libsalsa:ALSA 声卡库。
- openssl:开源 SSL 加密实现库。
- unfsd:NFS 服务器程序。
- tcpdump:网络抓包程序。
- trace:可视化内核监控。
说明:
- 开发 Qt 应用程序时,必须要选择并编译:libsylixos、libcextern、libsalsa、openssl 四个组件。
- SylixOSDSPBase 工程仅包括 libsylixos 和 libVxWorks(不包括其他第三方的库文件)。
- SylixOS ECS Base 工程暂不支持 trace 中间件。
- 若选择编译 trace 组件,需修改 libsylixos/SylixOS/config/kernel 目录下的 kernel_cfg.h 文件,修改为允许系统提供监控信息,如下图所示。
工程向导结束后可在 Project Explorer 中看到新建的 SylixOS 工程,展开可看到 libsylixos 和 libcextern 组件的源码。选中新建的 SylixOS 工程,右击选择 Build Project 编译工程,编译时间由系统配置决定,大约需要几分钟,如下图所示。
编译完成后会生成以下文件。
在 libsylixos/Debug 文件夹会生成如下文件:
- libsylixos.a:内核库文件。
- libvpmpdm.so:进程补丁。
- symbol.c,symbol.h:内核导出符号表,构建 bsp 时需要用到。
- xinput.ko:系统输入框架内核模块,用来支持键盘鼠标等输入设备。
- xsiipc.ko:IPC 内核模块,qt 会使用该模块进行进程间通信。
- libdsohandle.a:C++支持库。
在 libcextern/Debug 文件夹会生成如下文件:
- libcextern.so:C 库。
在 libVxWorks/Debug 文件夹会生成如下文件:
- libVxWorks.so:VxWorks 兼容库。
在 libreadline/Debug 文件夹下会生成如下文件:
- libreadline.so:命令行编辑器支持库。
在 liblua/Debug 文件夹下会生成如下文件:
- liblua.so:lua 脚本库。
- lua:lua 脚本解析器。
- luac:lua 编译器 。
在 libsqlite3/Debug 文件夹下会生成如下文件:
- libsqlite3.so:SQLite 数据库。
- sqlite3:SQLite 数据库命令行工具。
在 pciutils/Debug 文件夹下会生成如下文件:
- lspci:PCIe 枚举工具。
- setpci:PCIe 设置工具。
- pci.ids:PCIe 配置文件。
在 libzmodem/Debug 文件夹下会生成如下文件:
- rz:文件接收程序。
- sz:文件发送程序。
在 libexpat/Debug 文件夹下会生成如下文件:
- libexpat.so:xml解析库。
在 libsunrpc/Debug 文件夹下会生成如下文件。
- libsunrpc.so:SUNRPC解析库。
- portmap:端口映射工具。
在 libpcap/Debug 文件夹下会生成如下文件:
- libpcap.so:网络包抓取依赖库文件。
在 libsalsa/Debug 文件夹下会生成如下文件:
- libsalsa.so:ALSA 声卡库文件。
在 openssl/Debug 文件夹下会生成如下文件:
- openssl:加密证书生成工具。
- 其它加密依赖库文件。
在 unfsd/Debug 文件夹下会生成如下文件:
- unfsd:NFS 服务器程序。
在 tcpdump 文件夹下会生产如下文件:
- tcpdump:网络抓包程序。
所有组件同时会在 组件名称/Debug/strip 文件夹下生成经过 strip 处理的目标文件,如下图所示。
注意:
对于第一次编译BASE工程可能编译失败,由于缺少环境变量造成编译器工具不能正常使用,这种情况下需要手动安装“vc2015_redist_x86.exe”工具(可以在安装包的Tools文件夹下发现)。如下图所示。
弹出安装界面,点击安装,如下图所示,可以重新编译BASE工程。