DSP/BIOS

1、

DSP/BIOS 提供丰富的确定性内核服务集,使开发者能创建尖端的应用,而不会影响实时最终期限。DSP/BIOS 高度可伸缩,要求低至 1K 字的多线程配置。内核服务可通过 C 函数或汇编语言宏接口调用。

图形配置
类似所有传统的实时操作系统,DSP/BIOS 使应用能在程序执行期间的任何时候动态地创建操作系统对象(如任务或信标)。除这种方法之外,DSP/BIOS 还提供基于主机的图形配置工具,它支持 DSP/BIOS 图像的简单指点配置以针对应用需求进行定制。此静态配置过程不仅清除了应用程序中未使用的内核函数,还清除了动态创建操作系统对象(如线程和信标)所需要的代码,从而极大地降低了内存空间。

内核服务
除了分析和外设配置支持之外,DSP/BIOS 还包括以下内核模块:

硬件中断 - 从硬件中断至 DSP/BIOS 内核的接口
软件中断 - 使用程序堆栈但无法放弃的轻量级抢先式线程
任务 - 可以放弃处理器的执行的独立线程
周期功能 - 时间触发的轻量级线程
邮箱 - 任务间的同步数据交换
信标 - 统计信标
队列 - 原子链路列表
时钟 - 与硬件定时器的接口
流 - 任务的流输入/输出
管道 - 软件中断的流输入/输出
内存管理器 - 低开销动态内存分配
为提供 DSP 应用需要的快速响应,DSP/BIOS 使用附加的线程机制对传统的任务模型进行了补充。软件中断是共享通用堆栈的轻量级抢先式线程。这使内存开销更低,上下文切换次数更快,因为不需要保存和恢复任务堆栈。周期功能是时间触发的高优先级线程,可以轻松地设置该功能来处理固定时间间隔内到达的数据样本,从而简化了多速率系统的设计。为方便尖端应用的设计,DSP/BIOS 提供了多种任务间通信服务,其中包括信标、邮箱和队列。

高效中断管理
DSP/BIOS 提供两个处理中断选项 — 中断调度和宏。在这两种实现中,最小化禁用中断次数以优化中断延迟时应特别小心。通过执行如上下文保存和恢复以及临时禁用调度程序等操作(确保 ISR 可以正确地与内核进行交互),中断调度使 ISR 能使用 C 进行编写。此方法通过省去给每个 ISP 专门添加这类代码,来简化了代码。为进一步降低内存要求,所有 ISR 都使用一个通用堆栈,而不是使用 ISR 所中断的任务的堆栈。可以给 ISR 添加一个进入和退出宏来执行中断调度所执行的操作。虽然必须复制每个 ISR 中的宏函数,但这些函数使开发者能仅给特定 ISR 所使用的函数优化寄存器保存和恢复操作,从而最小化中断响应时间。DSP/BIOS 使宏和中断调度能在同一个应用程序中使用以便获得性能和内存空间的最佳平衡。

硬件抽象
除调度和任务间通信服务之外,DSP/BIOS 还提供实时时钟管理、内存管理以及设备独立输入/输出。DSP/BIOS 内存管理器提供可重入动态内存管理,该管理方式会通过使用逻辑内存段来移走 DSP 应用特有的分段式内存配置。DSP/BIOS 提供设备无关的优化输入/输出模型,能高效地处理实时数据流。通过移走外围设备和内存配置上的特定相关性,DSP/BIOS 使将应用移植到新的 DSP 处理器或电路板设计变得更简单。

 

 

 

 

  2:嵌入失操作系统原理(DSP/BIOS)

   这部分就有嵌入式操作系统知识了,DSP/BIOS是不开源的,如果想对操作系统的知识了解深入的话可以看看uc/os-II的原代码。嵌入式操作系统的基本原理都一样。这个完成后在把Ti关于DSP/BISO的列子程序跑一便熟悉操作系统中各个模块,如TSK, TIMER…..。

   在熟悉完操作系统后,剩下的就是对DSP/BISO的驱动模型了,TI 的驱动模型采用的是class-mini driver模式,其中class driver就是一些函数接口,提供到mini driver的访问。其中mini driver实现方式根据不同的板子和芯片会不一样,建议选取一个外设资源,看懂其源代码,这些代码一般都在几个c 文件内,其中最主要是5-7个函数的实现;

   mdBindDev()

   mdUnBindDev()

   mdControlChan();

………………….

DSP/BIOS的驱动比较简单,总得来说驱动可以分为2个部分,一部分函数硬件的初始化和控制工作,这部分相对交简单;另外一部分函数负责 I/O,buffer的同步工作,这部分通常要复杂的多,而且这部分函数常常和中断牵涉在一起,所以在看驱动源代码时一定要时刻知道中断什么时候发生,中断服务函数里面做了些什么,对其他函数的影响是什么等。如果能把驱动代码看一遍对于C语言提高是很大的。

这部分的参考资料可以查看

  (1)       DSP/BIOS user guide

        (2)   How to write DSP device driver

     http://www.embedded.com/columns/technicalinsights/16700665?_requestid=176707

          (3)  嵌入式实时操作系统UC/OS-II

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值