摘 要:介绍了TIDSP算法标准及其相关背景,重点阐述了算法标准中对于处理多线程、多任务时算法编写的相关规定,并从多线程、多任务的角度论述了这些规定的必要性,最后介绍了笔者的算法开发环境并论述了在该环境中如何从算法标准的角度做的整体设计,描述了在实际的软件开发中如何应用这些规定。
关键词:DSP;算法标准;占先式内核;可重入性
1 引 言
DSP[1](DigitalSignalProcessor)自从诞生以来,由于其在数字信号处理方面专用的结构和硬件逻辑,比如,处理器使用不同于普通处理器的哈佛结构,独特的桶型移位器等CONTROL ENGINEERING China版权所有,使其在某些特定的领域的应用得到了飞速的发展。DSP在某些功能上与普通的嵌入式处理器相似,因而通常以传统嵌入式处理器编程的方法来编程,即,使用C语言和汇编语言混合编程,直接访问硬件外设,并且由于性能的原因,总是很少使用标准操作系统的支持。这样,像传统的微处理器一样,几乎没有零售的DSP中间件可用。然而,DSP又不同于通用的嵌入式处理器,他是用来运行复杂的信号处理算法的。这些成熟的算法通常是多年的博士研究的成果。
由于DSP算法缺乏统一
为改变这种状况,TI公司推出了一套编写和使用DSP算法的标准,让系统集成商可以快速集成和使用已有的商用DSP算法软件,可以大大减少基于DSP产品的上市时间。
2 DSP算法标准的相关背景和概念
2.1 通用算法的特征
由于DSP应用十分广泛,支持数字信号处理器的平台或操作系统又很多,这些复杂的平台对于算法标准就提出了很高的要求。一个算法要真正实现“即插即用”或应用于多种操作系统,他必须具备几个基本的特征。
(1)算法对于应用程序透明,相同的算法可以用于任何应用程序。
(2)算法既能用于静态系统,又能用于动态系统。
(3)算法必须能用二进制形式分发,即能以目标文件发行。
(4)算法既能用于单任务,也能用于多任务,即
(5)算法的使用不需要重新编译,但可以重新连接和配置。
(6)算法是C语言可调用的。
(7)算法独立于任何特殊的I/O设备。
算法要具有上述特征,在编码上就必须遵循一定的规范www.cechina.cn,在处理器资源的使用上,也必须作一些限制,这些规范和限制就是算法标准。有关算法标准的详细规定,可参阅文献[1]。
2.2 算法标准的分级
在算法标准出来之前www.cechina.cn,DSP算法开发商已开发了大量的算法,有些算法在一定程度上遵循了标准;有些算法由于应用领域的不同CONTROL ENGINEERING China版权所有,移植(指相同DSP,不同软件平台)时的限制不同,这就提出了算法标准的等级问题。通常算法标准分为4级,每一级标准对算法编写的要求和限制不同,级数越高,限制越严格,其中第4级是具体到各种特殊行业的。比如,语音编码器有语音编码器的行业标准和特征;电机控制算法有电机控制方面的特殊要求等等,如此细致的规定不可能上升为通用的标准,所以通用的算法只要遵循前三级即可。下面是各等级分别包含的范围:
第1级 包含适用于各种DSP结构,而不管应用领域的各种算法的编程准则。几乎所有近来开发的软件模块都已经遵循了这些准则,所以该级别只是将他们规范化。
第2级 包含可使所有算法和谐运行于单一系统的编程规则和准则。例如,约定用于数据内存算法和外部标示的统一命名等。此外,还规定了算法如何封装的规范。
第3级 包含具体DSP系列的算法编程准则。如C54XX,C6X等。现在关于处理器资源的使用还没有统一的准则。由于不同的DSP结构不同,因而总有偏离准则的情况,标准要求算法提供商必须清楚地在相关头文件和文档中标注这种偏差。
2.3 基于DSP算法标准的通用软件结构和相关概念
算法标准如何在实际中应用,TI公司给出了一个通用的软件编程思路。将一个基于DSP的软件分成了若干模块,每一个模块都有严格的定义,使得模块之间有明确的界线。图1是一个基于主机-目标机的软件结构图(图中主机端没有画出)。从中可以清楚地看到通用的DSP程序分为4个部分:FrameWork,ALGwww.cechina.cn,Core run time Support,CMDand Status。
FRAM