基于vdk的ad系列dsp软件开发技术

基于vdk的ad系列dsp软件开发技术

ID:23929147

大小:54.50 KB

页数:7页

时间:2018-11-11

基于vdk的ad系列dsp软件开发技术_第1页
基于vdk的ad系列dsp软件开发技术_第2页
基于vdk的ad系列dsp软件开发技术_第3页
基于vdk的ad系列dsp软件开发技术_第4页
基于vdk的ad系列dsp软件开发技术_第5页
资源描述:

《基于vdk的ad系列dsp软件开发技术》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于VDK的AD系列DSP软件开发技术

2、第1内容加载中...摘 要:作为AD系列DSP软件开发环境VisualDSP的一个重要组成部分,VDK特别适合用于开发需要精巧控制代码的系统。本文介绍了VDK的原理及基于他开发应用系统的优点。最后给出了一个基于VDK开发应用系统的简单例子。关键词:VDK;ADSP软件设计;VisualDSP;A/D当前数字信号处理器(DSP)已广泛应用于图像处理、智能化仪表、通信、自动控制等许多领域。AD公司是全球通用DSP领域最有影响力的厂家之一,VDK(VisualDSPKernel)是AD公司DSP软件开发工具VisualDSP的一个重要组成部分,他特

3、别适合用来编写需要精巧控制代码的应用程序。某些大型系统可能需要许多算法完成,而每个算法还可能包含许多功能模块,这要由控制代码加以组织。处理器日益强大功能的发挥也需要精巧的控制代码。基于VDK开发的程序中,这些控制码是由一个叫“内核”的程序管理的,内核常驻在DSP中。1 VDK的原理VDK实际上是一种带API(ApplicationProgramInterface)函数库的实时操作系统内核。下面先对VDK的各个组成部分加以介绍,然后总体描述其工作原理。文中所述的被调用的函数均在API函数库中。1.1 线 程一个应用程序可以划分为多个功能模块,每个模块可以用一个线程实现,线程之间可以互

4、相通信。线程并不是直接定义的,而是先定义线程类型,再由线程类型例化得到。一个线程类型可以有多个例化,也就是说一个系统中多个线程可以属于相同的线程类型。线程类型实质上是各空间VDK下线程类的子类,而线程是该子类例化得到的对象。线程类型创建时被分配一个默认的优先级,该优先级可以通过调用函数SetPriority()改变,同一类型的线程具有相同的优先级。每个线程包含5个成员函数:创建函数、初始化函数、运行函数、错误处理函数和销毁函数。创建函数类似于C++中类的构造函数,用于创建一个线程并为他分配资源。销毁函数类似于C++中类的析构函数,用于销毁一个线程并释放其所占资源。包含线程所要完成算

5、法的运行函数是线程的核心部分,类似于C中的main()函数。1.2 调 度调度是一种管理和协调线程的机制,他保证优先级最高的就绪线程能够最早占用处理器来运行。所谓就绪,就是线程已经具备运行所需的所有数据、参数等资源。调度在具有最高优先级的线程改变时被激发。调度的实现基于一种被称为就绪队列的内部数据结构。就绪队列中的就绪线程先按优先级排队,然后遵循先进先服务的原则占用处理器,如图1所示。线程最高优先级为0,是保留的;最低优先级为DSP数据字宽减去2,如32bDSP为30。具有最低优先级的线程是预定义的IDLE线程,他在就绪队列为空时自动运行,使得DSP处于低功耗状态。1.3 信号信号

6、是线程之间进行通信和同步的桥梁。(Semaphore)、事件位和事件(EventandEventBit)、设备标志(DeviceFlag)。500)this.style.ouseg(this)">信标是应用系统中所有线程都可访问的全局资源的抽象,VisualDSP2.0中他有2个值:真和假。他的值为真时,表示该资源可用,所有正在等待该信标的线程中优先级最高的那一个进入就绪队列等候运行;他的值为假时,表示该资源已被占用。线程或者中断服务程序利用信标所代表的资源完成自己的任务后调用API函数释放该资源以便其他线程或者中断服务程序使用。事件和事件位是标识系统状态的信号,用于协调线程的执行

7、。事件位用来指示系统某一要素所处状态;事件是所有事件位按照指定规则进行布尔操作的结果。任何一个事件位改变都会导致事件的值被重新计算。信标标识系统资源是否可用,而事件位和事件标识线程中的操作主体利用系统资源完成其工作后所处的状态。线程可以调用PendEvent()等候一个事件发生。设备标志是设备驱动与线程之间联系的纽带。例如他可以将A/D采样数据的到来这一事件通知多个等待这些数据的线程,而信标、事件和事件位就不能描述他。由于和设备驱动息息相关,后面将会结合设备驱动对设备标志进行详细介绍。1.4 中断服务程序VDK的中断服务程序必须用汇编语言编写而且应该比较短小,完成释放信标、改变事件

8、位、激活设备驱动、与线程交换数据等工作,而所有的计算应该在线程域完成。中断可以调用API函数被允许或禁止。1.5 设备驱动基于VDK的应用程序可以分解为2个域:线程域和中断域。图2所示线程域中对线程进行管理的机制称为软件调度,也就是前文所述的调度,由内核完成;中断域中对中断进行管理的机制称为硬件调度,由DSP硬件(中断控制器)完成。硬件调度和软件调度是并行的,但中断发生时硬件调度抢先发生,这时软件调度和线程的优先级是无意义的。500)this.style.ouseg(

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。