DSP BIOS
2019-07-13 11:39发布
生成海报
1.BIOS概述
BIOS作为TI DSP 嵌入式抢占式操作系统,永远保证最高优先级的任务先执行。它有一个尺寸可伸缩的实时内核,是为那些需要实时线程调度与同步、主机与目标DSP间通信或实时监测的应用而设计的。它采用了很多优良的技术来保证最小化目标DSP上存储器的需求与CPU开销。主要体现在:
1.所有的DSP/BIOS对象都可以通过配置工具来静态创立并绑定到可执行程序中,以此减少代码量和优化内部数据结构。
2.被监控数据(日志和统计数据)在主机端而不是DSP端被格式化处理。且一般在后台空闲时完成。
3.API函数被模块化,只有被用到的API才会被绑定到程序中。
4.大部分API以汇编实现,使执行所需的指令周期最小成为可能。
通过配置工具体现,主要包含System、Instrumentation、Scheduling、Synchronization、Input/Output五部分接口及应用。
图1.1 DSP BIOS对外提供模块
1.1系统基础(System)模块
可视化的编辑器可以来定义目标系统的全局类属性,系统内存映射,中断向量表以及对片上定时器进行编程,也可以对内存进行动态的分配和释放:
1)全局设置(GBL):可以设置整个目标DSP系统的参数,直接影响应用代码的效率和大小。
2)存储器管理(MEM):提供DSP目标系统的存储器管理。
3)系统服务管理(SYS):管理系统服务,提供类似标准C运行库函数系统服务,如系统错误,终止等。
4)钩子函数管理(HOOK):对任务钩子函数的延伸,可以使用HOOK在重要的执行点上执行多重的钩子函数。
1.2实时监测(Instrumentation)模块
程序运行时,DSP/BIOS提供的调试模块,可对程序的运行状态进行实时监控和数据分析。体现在以下方面:
1)信息输出管理(LOG),用于调试信息输出。
2)统计对象管理(STS):用于了解中断,任务和特定代码段的运行时间,结果可通过DSP/BIOS菜单下Statistics Views窗口来显示。
3)跟踪管理器(TRC):决定应用程序是否通过LOG和STS对程序运行数据进行实时才采集。
1.3实时线程类(Scheduling)模块
主要是对实时应用程序中不同的函数运行时间进行优化分配。包含四种优先级:硬件中断,软件中断,任务和后台线程。
1)硬件中断管理(HWI):最高优先级线程,由片上外围器件或外部设备引起的。中断触发后,处理器将转向相应的中断向量表。
2)软件中断管理(SWI):软件中断是优先级仅低于硬件中断的线程,由用户程序引发。
3)任务管理(TSK):通过TSK_Handle句柄函数来接触任务对象。
4)后台循环管理(IDL):优先级最低的线程,后台任务执行。
1.4线程调度类(Synchronization)模块
线程调度类主要用于线程任务的调度控制,可以协调多任务的运行,主要包括:
1)队列管理(QUE):管理一组QUE元素
2)旗语管理(SEM):通过旗语对象句柄来管理旗语的使用
3)邮箱管理(MBX):一个任务向另一个任务发送消息,通过邮箱来完成数据交换。
1.5输入输出类(Input/Output)模块
输入输出类主要使用PIP(带缓冲管道管理模块)和SIO(流输入输出模块)来实现DSP与外设之间的数据传输。还可通过RTDX来管理主机/目标系统间的数据传输。
1)管道传输(PIP):管理线程间的数据交换,用于管理块I/O,又称基于流的和异步的I/O。
2)流传输管理(SIO):数据通过”流”在应用程序与I/O设备间传输,流模块通过驱动程序来与不同类型的设备相连接。
3)设备驱动管理(DEV):管理一类设备的软件模块,这些模块遵从通用接口(由DEV)提供,因此流函数能发出普通请求,与设备进行交互。
4)主机通道管理(HST):管理者主机通道对象,允许应用程序在DSP目标系统和主机间传递流式数据。
5)实时数据交换RTDX(Real-Time-Data-Exchange):提供实时连续的DSP与PC主机间的数据传输。
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮