DSP/BIOS II简述 TI公司的DSP/BIOS II 是在DSP/BIOS I 基础上的扩展。它支持更多的软件模块,通过修改内核提供抢先式多任务服务;它把传统并行处理系统的内核服务集成为可测试内核;它增加了设备独立的I/O数据流模型,继续保留已有的数据管道;它增加了动态内存分配与内存管理。 TI的开发平台CCS IDE 2.0中集成了DSP/BIOS II,可以对程序进行实时跟踪与分析,提高应用程序开发的可靠性。可以在CCS插件中实时观察DSP/BIOS内核中各线程的执行状态与对象的当前属性。通过设置工具,开发者可以对各个模块实行配置。
DSP/BIOS II 核心API技术 目标应用程序通过调用DSP/BIOS II的API来获得运行时的服务。一个单个DSP/BIOS II 模块可以管理多种类的内核对象,并且依据全局参量的设定来控制整个行为。DSP/BIOS II 可以归纳为六大种类: 内核执行线程
图1 DSP/BIOS 部件结构图
图2 线程优先级示意图
图3 数据流示意图
图4 数据管道示意图
DSP/BIOS II提供四类不同的执行线程。每一类线程又具有不同的执行、抢先和悬挂特性。DSP/BIOS II 支持两个高优先级的中断线程和事先备好的后台空闲过程循环。内核执行线程通过HWI, SWI和IDL模块进行管理。另外,DSP/BIOS II新提供了多任务线程类,能较好的完成任务间的同步,它由TSK模块管理,在任何执行时刻为悬挂和恢复执行同步,包括调整自身或其他任务的优先级。这种同步化的任务给并发系统设计提供了良好的基础。 硬件抽象 DSP/BIOS II 提供硬件的逻辑接口。它独立于硬件实现。它对硬件部分的访问、配置,内存映射、片内定时器和硬件中断等进行抽象,简化了应用的移植。它通过可视化的设置工具定义内存映射、中断向量表,对定时器编程,和完成动态的内存分配与释放。 设备独立I/O 设备独立I/O模块执行数据传输服务,传输可以在DSP与外设之间和多线程之间进行。DSP/BIOS II 支持数据管道(pipe)和数据流(stream)两种传送方式。数据管道是在读写线程之间快速传送数据的小型统一部件。数据流为缓冲方案增加了灵活性使之适应更广的需求。数据流依靠多个潜在的设备驱动器,这种设备驱动器封装了设备独立的属性与方法。在数据通过堆叠(stacking)机制传送时,设备驱动器能够执行数据处理操作,驱动器在数据通道中实行流水线处理。PIP和SIO模块分别管理目标应用中的数据管道和流的传送服务。SIO同DEV模块结合,使DEV通过SIO发送和接收数据。 线程间的通信和同步 DSP/BIOS II 中的线程间通信和同步模块支持多任务。信号量(semaphores)是最主要的同步方式。任务运用信号量保持同步资源访问的同步。访问外设的数据缓冲区,以及访问共享存储区都是资源同步的典型事例。信号量还控制着多任务执行的同步。信号量由SEM模块管理,而LCK模块提供共享资源的判优和互斥。数据队列可用于线程间通信。邮箱(mailbox)类似于数据队列,能够理想的完成任务通信。数据队列由QUE模块管理,邮箱模块由MBX管理。 实时分析 实时分析(TRA)模块在应用程序执行期间与DSP项目实时交互和诊断。LOG,STS和TRC模块对这些功能进行管理。主机与目标板之间的数据传输能力对实施分析是非常关键的。DSP/BIOS提供HST和RTDX模块来管理这些功能。CCS IDE中提供了以下六种实时分析工具: —CPU负载图 负载图提供的是目标CPU的负载曲线。CPU负载的定义是除去执行最低优先级任务以外的时间量。最低优先级任务是只在其他线程都不运行时才执行的任务。因此,CPU负载包括从目标向主机传送数据和执行附加后台任务所需的时间。 ——执行图示 在执行图示窗口中,我们可以看到各个线程的活动方式。执行图的刷新速率可以通过RTA控制版设定。图形中还包括了信号量的活动,周期性函数标记(tick),和时钟模块标记。执行图示能从整体上看到项目所有线程的活动状态。 ——主机通道控制 利用信道控制窗口可以把文件绑定在定义的主机通道上,启动信道上的数据传输以及监测数据传输流量。 ——信息记录 选定某一记录名,从此窗口可看到程序运行的信息记录。主机从目标板获取DSP/BIOS数据期间的记录信息将显示在此窗口中。开发者定义的记录信息也显示在窗口中。 ——统计观察 统计观察窗可以计算出事件、变量出现的次数,给出其最大值,最小值和平均值,监测定时时间和变量的增值的实际值和期望值差。 ——实时控制面板 它对运行时间中不同类型进行追踪控制,在默认情况下,所有类型的跟踪都是允许的。为跟踪任意一种类型,必须使能全局主机(GLOBAL HOST)。通过实时改变控制版的属性,还可以设定实时分析工具的刷新频率。 ——内核/对象观察 内核/对象观察窗可观察当前的配置,状态和运行在目标板上的DSP/BIOS对象状况,此工具对动态和静态配置的对象都可以进行观测。 其它系统服务 DSP/BIOS II 仿照标准的C语言库,把程序错误处理与终止,组装到其它系统服务模块。这些功能函数由SYS模块管理。SYS中还包括各种printf()的变体形式。 原子(atomic)函数是非抢先式操作,比如AND, OR, INC, DEC, SET 和 CLEAR,使用它们时不允许中断。原子函数由ATM模块管理。
结语 TI公司的TMS320系列DSP已被多家电子通信厂商作为信号处理的首选芯片,所以如何更好的使用,以实现整体项目的可靠性和最优化成为我们关心的问题。基于TMS320系列的DSP/BIOS II 为开发人员提供了合理的解决方案。DSP/BIOS的优越性主要体现在它的多任务规划和实时分析上,而且CCS中提供的DSP/BIOS设置工具使开发人员可以可视化的进行程序编排。DSP/BIOS II 的应用可以有效的缩短项目开发周期。