为什么在DSP上使用Linux
过去,DSP被用在在很多应用程序中,包括声卡、调制解调器、电讯设备、医疗设备、军事设备和其他的纯信号处理设备。那些DSP设备一般是为那些应用软件专门设计的,并且因为成本和规模的限制,只具备基本的功能。当DSP变得更加强大和灵活时,就能够为军事,医疗,通讯等领域的用户提供更高级的服务。但是它们仍然缺乏运行高级
操作系统的能力。传统的DSP功能强大、灵活,但是价格很高。他们经常用在特别的信号处理硬件上,这里不需要像Linux这样的在DSP上运行的操作系统。因为在那些系统中,DSP从附近的中央处理单元获取数据,只需要将基本的系统软件写入DSP即可。
随着多媒体的日益集中和多媒体及通讯设备的增长,新型的DSP有着巨大的市场。目前在市场中广泛使用的常规处理器和用传统DSP作为辅助处理器。这种情况下,操作系统在主处理器上运行,而信号在DSP上处理。这种类型的双处理器不是很理想,因为其在费用、功耗、和大小上均不是很有效。
uClinux的实时性
由于最初是为服务器和桌面用户而设计,它没有像其他同等规模和复杂性的操作系统一样严格的实时能
力。然而Linux特别是uClinux具有软实时能力,这意味着尽管Linux或uClinux不能保证一些中断或调度程序时间,他们同样具有很好的性能特点。如果需要硬实时系统来保证调度程序和中断latency时间,可通过下面方法来实现:使用另外的操作系统,有很多满足要求的RTOS系统可供选择((VisualDSP++ kernel、 Nucleus PLUS、ThreadX、uITRON)。
通过实时内核RT-Linux (
http://www.rtlinux.org) 或 RTAI (
http://www.rtai.org).来提供实时能力。两种内核均使用小的实时内核,其作为具有低优先级的实时任务运行Linux。那些需要运行在实时内核上的程序则由特别的编码实现。其他的任务和服务在Linux内核上运行,并可使用Linux提供的一切功能。这种方法可保证确定中断等待时间,同时保留Linux的灵活性。
改变Linux的内核可改善硬实时中断的等待时间,Bernhard Kuhn开发了一个Linux内核的补丁,可以在(
http://linuxdevices.com/articles/AT6105045931.html)上获取。将来有可能加到uClinux Blackfin的目录结构上。
在很多情况下,硬实时不是必要的,特别是对于多媒体应用程序来说,其时间约束由用户在识别音频或视频中的微小错误的能力来规定。这些可被检测的时间约束要在小达几十毫秒的范围内监测到--这对于像Blackfin处理器这样的高端商业芯片来说不是问题。严格的时间需求可以通过微小调整(tweaking)和调度程序的简单变化来获得。在2.6.x内核中,新的稳定内核已经改进了新的O(1)调度程序和内核抢占权。
很多情况下,有足够的剩余处理能力来保证调度程序有足够的时间来处理通常运行在此类设备上的数字信号程序。 因此,在web servers、snmp、ppp 或pppoe、firewall上使用Perl、Python、和PHP等语言程序是没有问题的,运行程序的同时进行音频和视频解码。
所以,没有必要采用硬实时操作系统,它没有Linux这样功能强大的操作系统所提供的高级特性。
Blackfin处理器的uClinux资源
所有在Blackfin处理器上创建uClinux内核所需的资源和工具(compiler、binutils)都可以
http://www.blackfin.uclinux.org上获得。为了使用binary rpm,你需要带有Linux安装套件(如Red Hat 或 SuSE)的计算机。