高级 RTOS 解决方案 DSP/BIOS 6.x 是一种可扩展的高级实时操作系统,它提供了 DSP/BIOS 5.x 的所有多任务操作,具有众多增强的功能和性能。DSP/BIOS 6.x 目前可用于 TI TMS32064x+,包括 OMAP3x 和 DaVinci™ 系列、TMS320C674x、OMAP-L13x、TMS320C672x、TMS320C28x™、ARM926 和基于 ARM Cortex M3 的器件。DSP/BIOS 6.x 与 DSP/BIOS 5.x 内核具有高度的源码兼容性,使应用程序能够轻松植入。DSP/BIOS 6.x 附带有完整源码,无需任何运行许可费用。 DSP/BIOS 6.x 既可独立使用,又可作为 Code Composer Studio 4.0 交互式开发环境 (IDE) 的核心部分使用。图形工具支持包括配置工具、运行时对象查看程序 (ROV) 以及专用于调试和调优多任务应用程序的实时分析工具。DSP/BIOS 6.x 以经验丰富的开发、培训和支持组织为后盾,确保了最新款 TI 器件的产品质量和供货。
特性DSP/BIOS 6.x 概述 DSP/BIOS 6.x及其关联 IPC 和 XDC 运行时软件包提供了丰富的 C 调用确定性内核服务集,使开发者能创建尖端的应用,而不会影响实时最终期限。
在 DSP/BIOS 6.x 中,DSP/BIOS 5.x 提供的服务分为三个独立的软件包。XDC 运行时软件包提供了记录、跟踪和内存管理服务,无论应用程序是否基于多任务调度程序,它都可以使用这些服务。与提供消息传递和其它 IPC 机制的 IPC 软件包类似,可单独使用核心的 DSP/BIOS 6.x 内核功能。因此,如果希望简化基于不同处理器/操作系统组合的不同子系统之间的通信,开发者可以在其它操作系统上使用 IPC API。
这三个软件包中的对象都是使用常用工具基础设施进行配置、检查和跟踪的,可提供类似于 DSP/BIOS 5.x 的无缝用户体验。
与 DSP/BIOS 5.x 相比,DSP/BIOS 6.x 具有以下增强功能: - 更快的多任务操作性能
- 关键中断延迟减少
- 事件对象
- 可自定义的内存管理器
- 更快、更具确定性的可变大小内存分配
- 优先级继承门
- HWI 和 SWI Hook 函数
- 多达 32 个优先级
- 可扩展工具
- 每任务的 CPU 负载
- 执行图中支持中断和动态创建的对象
- API 参数检查
开发者可使用图形工具或脚本来配置 DSP/BIOS 6.x 和最小化内存占用的空间。可通过图形或脚本工具以静态方式创建对象,也可通过操作系统调用以动态方式创建对象。除了排除未使用的模块,静态配置还通过省去动态创建和删除操作系统对象(如线程和信标)所需的代码,进一步减少目标内存占用的空间。 | DSP/BIOS 6.x、IPC 和 XDC 运行时对象 | DSP/BIOS 6.x 对象 | 描述 | 事件 | 等待多个 DSP/BIOS 6.x 或自定义事件的任意组合 | 硬件中断 (HWI) | 从硬件中断至 DSP/BIOS 6.x 内核的接口 | 软件中断 (SWI) | 使用程序堆栈但无法放弃的轻量级抢先式线程 | 任务 | 可以放弃处理器的执行的独立线程 | 计时器 | 与硬件定时器的接口 | 邮箱 | 任务间的同步数据交换 | GateMutex | 优先级继承的二进制互斥体 | 信标 | 统计信标 | 时钟 | 时间触发函数 | HeapMem | 可变大小动态堆 | HeapBuf | 快速、可确定的固定大小缓冲池 | HeapMultiBuf | 基于多个缓冲池的可变大小、可确定的动态堆 | 高速缓存 | 高速缓存配置和管理 | XDC 运行时对象 | 描述 | 诊断 | 用户配置跟踪,包括进行参数和状态检查 | 错误 | 定义、增强和检查错误处理程序 | 日志 | 低开销记录和打印语句 | 内存 | 与 DSP/BIOS 6.x 和用户定义堆的内存分配接口 | 系统 | 常规系统功能,例如中止、退出和系统打印 | 时间戳 | 32 位和 64 位时间戳服务 | IPC 对象 | 描述 | HeapBuf | HeapBuf 的多核/处理器安全共享存储器实施 | HeapMultiBuf | HeapMultiBuf 的多核/处理器安全共享存储器实施 | 列表 | 原子链路列表 | ListMP | 多处理器原子链路列表 | MessageQ | 透明可变长度消息 | Multiproc | 处理器识别 | NameServer | 可在多核/处理器拓扑中定位 IPC 对象 | 通知 | 与其它处理器的低延迟异步中断 | SharedRegion | 可定义不同处理器/内核之间的共享指针 | 流 | 与外设驱动程序的读/写或缓冲流接口 | |
DSP/BIOS 6.x 多线程 为提供实时应用需要的快速响应,DSP/BIOS 6.x 使用附加的线程机制对传统的任务模型进行了补充。软件中断是共享通用堆栈的轻量级抢先式线程。这使内存开销更低,上下文切换次数更快,因为不需要保存和恢复任务堆栈。时钟功能是时间触发的高优先级线程,可以轻松设置为按固定时间间隔执行。 DSP/BIOS 6.x IPC 机制 DSP/BIOS 6.x 和 IPC 软件包可为线程间通信提供多种 IPC 机制。信标和门可提供基本的同步和资源锁定。GateMutex 提供了优先级继承互斥体,当资源必须在高优先级与低优先级任务之间共享时,可防止优先级反转。邮箱可在任务之间同步传输固定大小的消息。事件可让任务在多个不同事件上等待,如 MessageQ 帖子、信标帖子或 IO 活动。任务可在任何不同事件(包括用户自定义的事件)的“与”或“或”组合上暂挂。 MessageQ 对象可在任何 SYS/BIOS 线程类型之间实现零拷贝、可变长度消息传递。当需要发送消息时,将为每条消息分配的确切存储器。 DSP/BIOS 6.x 多核和多处理器支持 DSP/BIOS 6.x 完全支持 TI 的多核 DSP 解决方案。对于设计为在多个内核上处理同一图像的器件,DSP/BIOS 6.x 提供了共享图像支持,从而最大化用于存储数据的本地内核存储器的容量。 MessageQ 对象可在应用程序层提供透明通信,无论应用程序是在单个处理器、多个离散处理器还是多核器件上运行。对于多个内核或处理器之间的通信,需要消息队列传输 (MQT)。IPC 软件包包含 MessageQ,它还为多核器件上的内核与内核之间的通信提供了共享存储器传输。此 MQT 利用原子访问监视器或硬件信标等基本硬件功能来实现最高效的实施。IPC 软件包包含多处理器/内核应用所需的附加模块,例如共享链接列表、唯一处理器标识和处理器间路由。 DSP/BIOS 6.x 内存管理 内存管理通常特定于应用程序,且可能对系统性能产生重大影响。通过利用 XDC 运行时软件包的标准内存分配 API 集合(该集合支持使用多个并发堆),DSP/BIOS 6.x 可以满足这些要求。这确保开发者能够轻松添加自定义内存管理器,以便优化其应用中特定部件的内存管理。除了任何自定义开发的内存管理器之外,DSP/BIOS 6.x 还提供了三种预先测试的动态堆实施供开发者选择: - HeapMem:可变大小、非确定性内存分配器,类似于标准的 C malloc 实施。
- HeapBuf:固定大小的缓冲器、确定性内存分配器。分配效能比 HeapMem 更快。
- HeapMultiBuf:可变大小、确定性内存分配器,可从一组固定大小的缓冲池中分配不同大小的内存。开发者可以配置最适合应用的缓冲大小范围和缓冲池数量。
|