zoukankan      html  css  js  c++  java
  • CCS5 编译器手动设置dsp支持可变参数宏等问题

    IDE:CSS5.4,compiler不支持可变参数宏。需要手动设置编译器相关选项:

    Language Option-》Language Mode —》no strict ANSI。

    1.#pragma DATA_ALIGN( rxdata_stream,   128)
    就是让rxdata_stream地址的末尾7位是0(二进制地址),就是128字节对齐。
    对齐的目的,一般是位了CACHE读写外存。
    如果一个CACHE的line是128字节。这样,如果数据128字节对齐,那么取一个128字节的数据,只使用一个CACHE行就够了。

    2.dsp中的near和far关键字

    near和far中意味着,near是指同一个段,far是指的不同段。
    far int *p.
    意味着p指针是指向一个int的远指针,即p能访问更大的数据空间,如不同的section等。


    3. burst 突发模式
    4.dm6437中的中断函数不加关键字interrupt时,进入中断向量表,可以定位、找到服务程序,程序执行一次后,由于没有B IRP,进行中断返回,程序结束以后CPU和其他正常,但DSP的中断由于没有执行B IRP,使得中断环境破坏,使得其他中断都不会再次响应。

    5.CCS提供了4级的文件优化方案,分别是O0、O1、O2、O3,以下具体说明。

    (1) O0 寄存器级别

    ● 执行控制流程简化
    ● 用寄存器分配变量
    ● 执行交替循环
    ● 排除未用的代码
    ● 简化公式和表述
    ● 扩大对内连函数的调用

    (2) O1 局部级别

    执行所有O0级别的优化,并且:

    ● 执行局部常量的传播
    ● 排除未用的赋值
    ● 排除局部共用表达式

    (3) O2 函数级别

    执行所有O1级别的优化,并且:

    ● 执行循环优化
    ● 排除全局共用子表达式
    ● 排除全局不用的赋值
    ● 执行打开循环

    (4) O3 文件级别

    执行所有O1级别的优化,并且:

    ● 排除未被调用的函数
    ● 简化返回值没被使用的函数
    ● 让小函数变成内联调用
    ● 保存函数说明,以便主函数被优化时知道被调用 函数的属性
    ● 识别文件级别的变量的特性

    在使用O3级别的优化时,还可以使用别的选项执行更细致的优化

    ● OLN 得到标准库函数的文件
    ● ONN 创造优化信息文件
    ● PM 执行程序级别优化,编译多个源文件


    而我们在做优化时,选的是O2级别的优化,因为使用O2级别优化后产生的汇编文件带有比较多的注释信息,比较容易看懂程序,建议对程序不太熟和对汇编语言不太熟练的人使用。

  • 相关阅读:
    Alice and Bob(博弈)
    Cuckoo for Hashing(hash)hunnuoj
    Median(vector+二分)
    Open Credit System(UVA11078)
    First Date (hnoj12952)日期计算
    Inviting Friends(hdu3244 && zoj3187)完全背包+二分
    Factorial Problem in Base K(zoj3621)
    吉哥系列故事——临时工计划(dp)
    密码是我的QQ号
    Beans Game(博弈 | | DP)zoj 3057
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3370811.html
Copyright © 2011-2022 走看看