修改工程通用设置

更新时间:
2024-07-04
下载文档

修改工程通用设置

RealEvo-IDE 使用 Makefile 方式管理工程,Makefile 在创建工程时生成,在非专家模式下不需要用户手动维护。RealEvo-IDE 提供规范简单的 Makefile 模板,在专家模式下用户可以很方便的对 Makefile 进行修改。

通过图形界面修改工程设置的流程如下:

  1. 右键需要修改的工程,选择菜单 Properties 打开工程属性页,选择 SylixOS Project

  2. 在弹出对话框中可以更改 SylixOS Base ProjectDebug LevelExpert Mode Setting ,如下图所示。为了保证通用设置与 SylixOS Base Project 选项指定的 SylixOS Base 工程保持一致,其他选项默认不可更改。

    配置项解析:

    • SylixOS Base Project:依赖的 SylixOS Base Project 工程路径,单击 File System 按钮或 Workspace 按钮分别在文件系统和当前工作空间查找 Base Project,本例选择创建 Base 工程所创建的名为 SylixOS 的工程。
    • Toolchain:工具链名称,与选择的 Base 工程一致,不能手动更改。
    • Debug Level:调试级别,SylixOS 提供 Debug 和 Release 两种配置。
    • CPUType:处理器类型,与选择的 Base 工程一致,不能手动更改。
    • FPU Type:浮点类型,与选择的 Base 工程一致,不能手动更改。
    • Custom Makefile configuration:专家模式,用户可手动配置 Makefile,详情请参见 创建 Base 工程。
    • Do not scan source files:RealEvo-IDE 将不自动扫描源码文件,详情请参见 创建 Base 工程。
  3. (可选)单击 OKApply 按钮确认更改,RealEvo-IDE 会自动生成 Makefile 配置。RealEvo-IDE 重新生成工程根目录下的 config.mk 文件,工程根目录下的 config.mk 文件不允许手动修改。

  4. 通过下面操作对编译选项进行配置,选择需要设置的工程,右键选择菜单 Properties ,选择 SylixOS Project 下的 Compiler Setting ,单击 Compiler Setting 选项卡,如下图所示。

    选项说明如下:

    • Enable gcov (Code coverage analysis):使用代码分析功能(对应专家模式:“LOCAL_USE_GCOV”),详细见"代码分析",注意 SylixOS DSP 工程不支持该选项的设置;
    • Enable OpenMP:使能 OpenMP 功能(对应专家模式:“LOCAL_USE_OMP”);
    • Do not allow unresolved refences:是否运行未解析的引用;
    • Enable short command:是否使能短命令支持,因为源文件数量问题导致编译失败时可打开此选项;
    • EnableC++exception:使能C++异常功能(对应专家模式:“LOCAL_USE_CXX_EXCEPT”);
    • C Flags:设置编译C程序的编译标志(对应专家模式:“LOCAL_CFLAGS”);
    • C++Flags:设置编译C++程序的编译标志(对应专家模式:“LOCAL_CXXFLAGS”);
    • Macro Name:增加宏定义(添加方法如上图所示)(对应专家模式:“LOCAL_DSYMBOL”)。

    注意:

    • SylixOS Base工程不包含该设置,该部分的功能通常情况保持默认即可。
    • 对于x86平台,如果FPU_TYPE选择了“hard-float”,在C Flags中可以组合使用以下选项中的一个或者多个:-mmmx、-mavx、-mavx2、-mavx512f、-mavx512cd、-mavx512er、-mavx512pf、-msse、-msse2、-msse3、-mssse3、-msse4、-msse4.1、-msse4.2、-msse4a、-m3dnow。
    • Enable OpenMP选项仅对RealEvo-IDE 3.2.1及以后版本创建的应用程序和动态链接库工程有效,SylixOSDSP工程不支持该功能,如下图所示。
    • 对于“SylixOSDSP”类型的C++App工程和C++ Shared Lib工程不能使能“C++ exception”,否则,将会出现未知的错误,这是由于DSP CCS编译器自身的BUG所致。
    • 在编译 SylixOS App 工程和 SylixOS Shared Lib 等带 PIC 特性的工程时,DSPCCS 编译器存在 bug,编译同时以static和const修饰的数组或结构体存在问题。所以当代码中存在这类代码时需要去掉const修饰符进行编译。

    代码示例如下:

    static const int a[10];        //常量数组
    static const struct A a;       //常量结构体变量
    

    可以选择不修改代码,而在RealEvo-IDE编译参数配置界面增加“-Dconst=”参数。

    需要注意的是,DSP应用程序为了能够进行远程调试,在编译Debug版本时需要使用gcc编译器进行编译,为了提高应用程序的运行效率,在编译Release版本时可以使用TI cl6x编译器进行编译。SylixOS操作系统则始终使用TI cl6x编译器编译,虽然TI cl6x编译器支持 –gcc选项来兼容gcc,但TI cl6x编译器的整型提升规则与gcc的不同,这将导致uint8(无符号的8位)和uint16(无符号的16位)类型参数在传递时会出现问题,我司已经第一时间向TI官方报告了该BUG,但由于TI官方确认与修改该BUG需要时间,因此,这里建议用户在TI官方和我司正式修正该BUG前,需要谨慎使用Debug版本和调试功能。

由于上面BUG的存在,在编程时需要注意,如果函数含有uint8或者uint16类型的变量,在调用该函数时,需要首先将以上类型的变量定义为uint32(无符号的32位)类型,然后再将其传入函数,否则将会出现错误。

注意
C FLAGS中填写的编译选项需要与选择的编译器正确匹配,否则编译将会出错,如下图所示。

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