DSP/BIOS 提供丰富的确定性内核服务集,使开发者能创建尖端的应用,而不会影响实时最终期限。DSP/BIOS 高度可伸缩,要求低至 1K 字的多线程配置。内核服务可通过 C 函数或汇编语言宏接口调用。
类似所有传统的实时操作系统,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 处理器或电路板设计变得更简单。
文章评论(0条评论)
登录后参与讨论