zoukankan      html  css  js  c++  java
  • DSP/BIOS用户手册与驱动开发阅读笔记1

    1. BIOS 分析工具在空闲任分析务中完成,因此DSP太忙时,分析工具可能暂停工作.

    2. API函数调用有约束条件.

    3. 建议用图形配置工具(相对tcf文件编辑)设置BIOS对象的属性,因为配置工具提供了校验错误的功能.

    4. 用户的函数,变量命名应回避BIOS中已有的模块名字.

    5. std.h文件应包含在其他头文件前面.

    6. 用户应用程序中不应调用以MOD_F开头的内建函数,这些函数被保留由系统内部使用.

    7. 配置工具会自动生成一个头文件<program>cfg.h的文件,包含了已创建的BIOS对象的声明.
    配置工具自动生成的文件需要加入到项目中去.

    8. C6000的小模式与大模式(注意:不是大\小端):
    用户若使用小模式,则需要确保全局数据位于.bss段的起始32K字节内. 为了消除这种隐患,可使用以下方法:用far 关键字声明对象.

    9. 自动生成的cmd文件和自定义的cmd文件似乎可以共存?


    10. 并非所有BIOS模块的对象可以动态创建.

    11. 链接项-x:强迫链接器重新读取库文件(链接时某些库函数没有包含进来时有用)

    12. 由于printf函数会影响RTDX和实时分析工具功能,因此应用LOG_printf代替printf功能.

    13. BIOS库和运行支持库都包含了 malloc\free函数,建议使用BIOS库中的.

    14. 某些BIOS API函数不能在main函数中调用(重要),API手册中有说明.

    15. LOG对象:其缓存区大小有限,有固定和循环2种工作模式.
    LOG_event和 LOG_printf执行时,中断都是被禁止的.主机是采用轮询方式读取target上的log数据的,并清零.用户可以设置主机轮询的频率.如
    果log缓存区不够大或轮询频率不够高,可能会丢失某些LOG信息,这时用户就会看到LOG的编号有间隔了.

    16. TRC模块可以控制LOG\STS模块的使能或关闭,比如收到软件中断时使能LOG\STS.

    17. 对HWI的隐式监测:比如可以硬件中断的开始检查栈是否溢出,最大堆栈深度等.

    内核对象观察窗口的数据不会在运行中通过BIOS空闲循环发送到主机中,而只在目标DSP暂停时才更新.
    在CCS中
    使用手动刷新实际也是在短时间内停止目标DSP来进行数据的更新,因此影响了DSP的实时运行.

    18. 目标DSP运行遇到断点也会更新数据.

    19. BIOS支持线程调试功能,实际上有什么用处呢?

    20. HWI函数应在2~100US内完成.

    21. 所有SWI使用同一堆栈,而每个TASK则有自己的堆栈.

    22. TSK可以被阻塞,而SWI不可以.

    23. 硬件中断一直运行到结束,在此过程中可以被抢占,抢占玩继续执行完.如果一个硬件中断在其ISR函数得到运行机会之前被多次触发,该ISR
    也只运行一次.

    24. HWI调度程序是处理中断的首选方式.
    25. HWI_enter\HWI_exit宏的作用: 环境保护和中断禁止.HWI调度程序时只允许一对HWI_enter\HWI_exit宏.

  • 相关阅读:
    还在使用golang 的map 做Json编码么?
    Golang 性能测试(2) 性能分析
    golang 性能测试 (1) 基准性能测试
    消息队列 NSQ 源码学习笔记 (五)
    消息队列 NSQ 源码学习笔记 (四)
    消息队列 NSQ 源码学习笔记 (三)
    消息队列 NSQ 源码学习笔记 (二)
    消息队列 NSQ 源码学习笔记 (一)
    你不知道的空格
    Supervisor 使用和进阶4 (Event 的使用)
  • 原文地址:https://www.cnblogs.com/qiuhong/p/2677903.html
Copyright © 2011-2022 走看看