DSP

千万别舍弃DSP/BIOS!!

2019-07-13 10:12发布

大家都知道6000系列有个bios,可很多人不知道这东东咋用。
说白了,他就是个嵌入式的操作系统,而且6000做东西离开他基本上是不可能的,哈哈!!!
下面根据个人的理解对bios的应用做个简单的介绍,如果要想深入的的学习并灵活的应用,建议还是去ti网站去下有关这方面的资料,静下心来好好研究研究。
不过个人认为TI提供的全是英文的,理解起来可能会有些困难(当然如果你鹰语超牛就不存在这问题了),不过好在TI已经认识到这个问题,找来国内几个牛x的人物编了个汉语版的,大家可以去书店买本回来看看。---好像是清华版的,书名是DSP/BIOS使用手册。

    DSP/BIOS 是一个功能丰富、可扩展的内核服务集,开发人员可以用来管理系统级的资源和构建DSP应用的基础架构。也可以说通过bios我们可以不用管很多底层的东西,可以让我们省出来很多精力来专注与算法和系统集成。再结合ti提供的函数库,我们能很方便、快捷的做出系统框架,是缩短我们的系统开发的时间。

   DSP/BIOS 内核实质上是可以从C 源程序或者汇编源程序中调用的函数库,目标应用程序通过在源程序中嵌入相应的APIs调用从而唤醒DSP/BIOS 的运行时刻服务。该函数库提供如下服务或者功能: 
* 一个小型的抢占式的实时应用程序线程调度器,支持多任务功能; 
* 对片上定时器和硬件中断的硬件抽象; 
* 与设备无关的管理实时数据流的I/O模块; 
* 捕获目标程序线程实时运行期间生成的实时信息的一系列函数,从而可以分析目标程序实时运行期间的一些信息。
    具体说来,bios有分为6个组件或服务(系统服务组件、实时分析组件、调度组件、输入/输出组件和芯片支持库)。其中,每类组件或服务又包括数个功能模块,每个模块一般管理相关内核对象类一个或者多个实例。这方面只要稍微接触过bios的都应有点印象,如果真的没印象的话,打开ccs,新建一个dsp/bios文件,呵呵,下面的就不用我说了。。。。。
    如何应用bios来开发东西才是我们最关心的。
    BIOS是可扩展的组件化的系统服务集,在使用过程中可以对所使用的组件进行完全控制。当需要开发应用程序或者要把以前的应用程序导入到BIOs时,只选择我们的程序所需要的那些组件即可,其他的可以不用管,因为只有我们选择的那些组件才会被包含在用户的目标应用程序中,这样就使得bios占用最少的内存和代码空间。
   一般地,应用程序使用bios来配置系统中断向量表和系统内存映像图。在开发期间,大多数开发者利用构建在bios中的实时分析功能来对用户应用程序运行时刻的行为进行查看或监控。此外,人们还利用bios的调度器来优化和管理DSP处理。每一个应用程序都可以利用BIOs中的特征或功能。先前的应用程序可以利用BIOS,以使得向其所支持的TMS320 DSP的移植更加容易。
   当然使用bios我们也要知道一些必须的系统参数:如包括DSP设备、CPU时钟速度、Endian模式、缓存设置以及其他一些参数等等。
与传统的嵌入式开发不同,用户不需要在其程序当中进行初始化或者设置,这些绝大多数的参数初始化或者设置都可以通过其配置工具来完成。当然,其中有一些用户既可以通过配置工具也可以在其程序中设置或者配置,但由于BIOS对通过配置工具生成的代码进行了专门优化,因此使用配置工具使得所生成的代码既短小同时系统资源消耗又少。由于嵌入式资源一般都比较紧张,建议尽可能利用其配置工具静态地生成所使用的系统对象,以减少系统资源的开销。
   开发BIOS 应用需要以下几个步骤:
* 使用配置工具选择和配置目标应用程序所需的DSP/BIOSⅡ运行时刻支持对象; 
* 使用配置工具指定目标应用程序的线程类型、优先级以及激活时所调用的函数; 
* 使用配置工具创建系统内存映像图; 
* 使用配置工具创建中断向量表; 
* 使用配置工具对片上定时器进行编程。 
配置过程结束后,开发人员就可以在其程序中像调用常规数据对象一样来调用DSP/BIOS API,以访问和操作DSP/BIOS的对象了。