创建 Base 工程

更新时间:
2024-05-09
下载文档

创建 Base 工程

  1. 选择菜单 File > New > Project ,弹出窗口中列出了 SylixOS 支持的工程类型。选择 SylixOS Base 如下图所示。

  2. 单击 Next ,进入下图所示配置页面。在 Project Name 输入框输入工程名,工程名称不允许包含空格,取消勾选 Use default location ,可在默认 Workspace 之外的位置创建工程。

  3. 单击 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 DSPSylixOS 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
  4. 单击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 也不会扫描源码文件列表。
  5. 单击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工程。

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