网站公告列表

  没有公告

加入收藏
设为首页
联系本站
您现在的位置: AnalogCN安诺电子 >> 文章 >> 技术交流 >> 文章正文
  开放原始码热力延烧DSP支援uClinux正当红           ★★★ 【字体:
开放原始码热力延烧DSP支援uClinux正当红
作者:Dipl.-In…    文章来源:Internet    点击数:    更新时间:2008-5-14    
过去两年,随着嵌入式设备的发展,Linux作业系统受到了越来越多的青睐,尤其是用于消费产品、电讯路由器和交换机、网路产品、工业和汽车等应用。最近,一些大的消费电子公司协议建立消费者电子Linux论坛(CELF),以进一步开发家庭数位电子设备的Linux平台。最近,一些大的消费电子公司协议建立消费者电子Linux论坛(CELF),以进一步开发家庭数位电子设备的Linux平台。

嵌入式Linux的优点在于版权免费、源码开放、结构紧凑,为日益增长的应用软体基础提供了坚实的后盾。嵌入式Linux的优点在于版权免费、源码开放、结构紧凑,为日益增长的应用软体基础提供了坚实的后盾。 Linux是一个全功能的作业系统,支援各种网路和文件处理协定,可在任何时间任何地点进行计算。 Linux是一个全功能的作业系统,支援各种网路和文件处理协定,可在任何时间任何地点进行计算。近来DSP和uClinux的结合为新趋势之一,以Analog Device的Blackin处理器为例,集合了DSP的计算能力和微控制器的功能,可应用于数位音频、视频和通讯等领域。近来DSP和uClinux的结合为新趋势之一,以Analog Device的Blackin处理器为例,集合了DSP的计算能力和微控制器的功能,可应用于数位音频、视频和通讯等领域。

这个单晶片结合DSP核心和传统微控制器的体系结构,避免了其他传统复合处理器系统的限制性、复杂性和高成本的问题。这个单晶片结合DSP核心和传统微控制器的体系结构,避免了其他传统复合处理器系统的限制性、复杂性和高成本的问题。在已有的外部设备(SPI、带IrDa功能的UART、计时器、即时时钟(RTC)、看门狗(watchdog)和事件控制器(event controller))的基础上,所有Blackfin处理器家族提供双通道串列介面(SPORTs)—每个串列介面支援4个身历声I2S通道,资料速率达100MBits/s。在已有的外部设备(SPI、带IrDa功能的UART、计时器、即时时钟(RTC)、看门狗(watchdog)和事件控制器(event controller))的基础上,所有Blackfin处理器家族提供双通道串列介面(SPORTs)—每个串列介面支援4个身历声I2S通道,资料速率达100MBits/s。而且Blackfin处理器家族的最新成员(ADSP-BF531、ADSP-BF532、ADSP-BF533和ADSP- BF561)提供并行外部介面(PPI),实现TFT平板显示器和视讯转换器的无缝连接,或者作为AD/DA转换器的平行介面,速率达65MSPS。而且Blackfin处理器家族的最新成员(ADSP-BF531、ADSP-BF532、ADSP-BF533和ADSP- BF561)提供并行外部介面(PPI),实现TFT平板显示器和视讯转换器的无缝连接,或者作为AD/DA转换器的平行介面,速率达65MSPS。

可选择其他封装可选择其他封装

Blackfin处理器整合信号处理引擎、清晰正交的类RISC微处理器指令集以及支援SIMD单指令多资料的多媒体功能,成为一套单指令集结构,称之为微信号结构(MSA)。 Blackfin处理器整合信号处理引擎、清晰正交的类RISC微处理器指令集以及支援SIMD单指令多资料的多媒体功能,成为一套单指令集结构,称之为微信号结构(MSA)。该核心是调整的双MAC Harvard结构,旨在实现音频和视频演算法的非平行计算,以及作业系统中标准的程式流和常用的仲裁操作。该核心是调整的双MAC Harvard结构,旨在实现音频和视频演算法的非平行计算,以及作业系统中标准的程式流和常用的仲裁操作。

Blackfin处理器采用低电压,低功耗的设计,具备动态电源管理功能,并配有多重且高度灵活和独立的直接存取控制器(DMA),用来支援自动资料传输,使处理器核心受到的间接影响达到最小。 Blackfin处理器采用低电压,低功耗的设计,具备动态电源管理功能,并配有多重且高度灵活和独立的直接存取控制器(DMA),用来支援自动资料传输,使处理器核心受到的间接影响达到最小。 DMA的传输操作可以发生在ADSP-BF531/BF532/BF533处理器的内部记忆体到与有DMA能力的外部设备之间。 DMA的传输操作可以发生在ADSP-BF531/BF532/BF533处理器的内部记忆体到与有DMA能力的外部设备之间。而且,DMA传输也能够在DMA外部设备和连接到外部记忆体介面的外部设备(包括SDRAM控制器和非同步存储控制器)之间进行。而且,DMA传输也能够在DMA外部设备和连接到外部记忆体介面的外部设备(包括SDRAM控制器和非同步存储控制器)之间进行。

Linux和uClinux的区别Linux和uClinux的区别

Linux和UNIX相似,是多用户、多工的作业系统,核心必须采取特殊的防范措施,以保证同一系统内来自不同用户的上千个操作正确安全地运行。 Linux和UNIX相似,是多用户、多工的作业系统,核心必须采取特殊的防范措施,以保证同一系统内来自不同用户的上千个操作正确安全地运行。 UNIX的安全模型(即Linux之前的设计)能够保护每个用户操作的自身环境和位址空间。 UNIX的安全模型(即Linux之前的设计)能够保护每个用户操作的自身环境和位址空间。每个用户操作都受到保护,防止被其他用户唤醒,而且,虚拟记忆体(VM)系统对现代CPU还有另外的要求,比如在个人处理记忆体中实现动态记忆体分配和随机记忆体区域规划。每个用户操作都受到保护,防止被其他用户唤醒,而且,虚拟记忆体(VM)系统对现代CPU还有另外的要求,比如在个人处理记忆体中实现动态记忆体分配和随机记忆体区域规划。

有一些设备,如Blackfin处理器,没有提供全功能的MMU记忆体管理单元,因为开发者的应用程式并不使用作业系统,通常也不需要MMU,而且,Blackfin的弱MMU的处理器往往具有更高的效率,其价格也明显低于其他产品。有一些设备,如Blackfin处理器,没有提供全功能的MMU记忆体管理单元,因为开发者的应用程式并不使用作业系统,通常也不需要MMU,而且,Blackfin的弱MMU的处理器往往具有更高的效率,其价格也明显低于其他产品。

为使Linux与这些设备相适应,必须进行一些改动:为使Linux与这些设备相适应,必须进行一些改动:

◆没有实际的记忆体保护(一个错误的环节可以让整个系统停机)
◆没有实际的记忆体保护(一个错误的环节可以让整个系统停机)
◆没有交叉(fork)系统调用
◆没有交叉(fork)系统调用
◆只有简单的记忆体分配
◆只有简单的记忆体分配
◆其他一些较小的区别
◆其他一些较小的区别

记忆体保护对大多数嵌入式系统来说不是很大的问题,Linux是一个很稳定的平台,尤其是在嵌入式系统中,软体崩溃的情况很少发生。记忆体保护对大多数嵌入式系统来说不是很大的问题,Linux是一个很稳定的平台,尤其是在嵌入式系统中,软体崩溃的情况很少发生。第二点的问题要大一些,在为UNIX和Linux编写的软体中,开发者常常使用fork系统调用来实现并行处理,fork调用可以准确拷贝原始程式并同时予以执行。第二点的问题要大一些,在为UNIX和Linux编写的软体中,开发者常常使用fork系统调用来实现并行处理,fork调用可以准确拷贝原始程式并同时予以执行。为了提高效率,使用MMU映射到副程式,并只拷贝写入副程式的记忆体区。为了提高效率,使用MMU映射到副程式,并只拷贝写入副程式的记忆体区。因此uClinux不能提供fork系统调用。因此uClinux不能提供fork系统调用。它提供vfork,一种特殊版本的fork,在vfork程式中当副程式执行时父程式即会终止,因此,使用fork系统的软体在使用uClinux支援的vfork或线程时必须重写,因为其使用相同的记忆体空间,包括堆叠。它提供vfork,一种特殊版本的fork,在vfork程式中当副程式执行时父程式即会终止,因此,使用fork系统的软体在使用uClinux支援的vfork或线程时必须重写,因为其使用相同的记忆体空间,包括堆叠。就第三点来说,一般情况下支援uClinux的malloc系统不会有问题,但是,有些时候必须进行小的调整。就第三点来说,一般情况下支援uClinux的malloc系统不会有问题,但是,有些时候必须进行小的调整。

大部分适用于UNIX和uClinux的软体能够直接在uClinux上编译,其他的则可使用微小的移植或调整(tweaking)。大部分适用于UNIX和uClinux的软体能够直接在uClinux上编译,其他的则可使用微小的移植或调整(tweaking)。只有少部分应用软体不能在uClinux上运行,无法作为嵌入式应用软体。只有少部分应用软体不能在uClinux上运行,无法作为嵌入式应用软体。

uClinux开发实务uClinux开发实务

在选择开发硬体时,开发者不应只考虑价格和可用性方面,同时也应考虑源代码驱动和文档的易获取性。在选择开发硬体时,开发者不应只考虑价格和可用性方面,同时也应考虑源代码驱动和文档的易获取性。一个uClinux Blackfin处理器开发环境包括GNU编译器、(gcc交叉编译器cross Compiler)和binutils(链结器linker、汇编器assembler等)。一个uClinux Blackfin处理器开发环境包括GNU编译器、(gcc交叉编译器cross Compiler)和binutils(链结器linker、汇编器assembler等)。一些GNU工具诸如awk、sed、make、bash,还有plus tcl/tk是必须的,这些程式通常在桌面linux的安装套件中。一些GNU工具诸如awk、sed、make、bash,还有plus tcl/tk是必须的,这些程式通常在桌面linux的安装套件中。安装好uClinux安装包的桌面环境和解压后,开发工作就可以进行了。安装好uClinux安装包的桌面环境和解压后,开发工作就可以进行了。

第一步,开发者利用图形配置软体,为目标硬体选择合适的板极支援包。第一步,开发者利用图形配置软体,为目标硬体选择合适的板极支援包。开发者要利用自己的硬体,以便在EZ-KIT Lite为评估板或STAMP硬体板上进行开发。开发者要利用自己的硬体,以便在EZ-KIT Lite为评估板或STAMP硬体板上进行开发。然后他们可以开始编写驱动程式,透过拷贝已有的BSP并调整一些参数来制作BSP。然后他们可以开始编写驱动程式,透过拷贝已有的BSP并调整一些参数来制作BSP。大多数的开发工作包括选择合适的驱动程式,去除专案不需要的核心特征,然后选择特征库和用户程式空间。大多数的开发工作包括选择合适的驱动程式,去除专案不需要的核心特征,然后选择特征库和用户程式空间。

uClinux的安装套件中提供广泛的实用程式和电脑程式供选择,且根据大小和效率的要求特别设计,例如busybox,一种多重调用二进位元,该程式包括一系列小程式,用正确的名字调用时就能发挥相应的作用。 uClinux的安装套件中提供广泛的实用程式和电脑程式供选择,且根据大小和效率的要求特别设计,例如busybox,一种多重调用二进位元,该程式包括一系列小程式,用正确的名字调用时就能发挥相应的作用。例如如果busybox链结到/s(DOS中的目录命令)并包含/s代码,那么它的作用就和/s一样。例如如果busybox链结到/s(DOS中的目录命令)并包含/s代码,那么它的作用就和/s一样。这样做的优点是busybox节省了唯一二进位的管理费用,并且那些小的模组可以共用相同的代码。这样做的优点是busybox节省了唯一二进位的管理费用,并且那些小的模组可以共用相同的代码。

在所有的选项均选取并且正确编译后,可以在VisualDSP++的帮助下,将Linux核心和ramdisc图像调到目标硬体中。在所有的选项均选取并且正确编译后,可以在VisualDSP++的帮助下,将Linux核心和ramdisc图像调到目标硬体中。操作成功后就可进行下一步开发了。操作成功后就可进行下一步开发了。下一步是使用串口或网路启动的bootloader取代JTAG介面来调入。下一步是使用串口或网路启动的bootloader取代JTAG介面来调入。例如,U-boot提供一系列的特征,可以用于嵌入式快闪记忆体(flash on-board)记忆体设备。例如,U-boot提供一系列的特征,可以用于嵌入式快闪记忆体(flash on-board)记忆体设备。对于那些不能承担Analog在线类比设备的用户,可以选择低价的JTAG硬体和软体操作。对于那些不能承担Analog在线类比设备的用户,可以选择低价的JTAG硬体和软体操作。这可以在程式开始时将bootloader装入到目标存储设备之中。这可以在程式开始时将bootloader装入到目标存储设备之中。但是要注意到该工作环境不能提供VisualDSP++的调试和类比功能。但是要注意到该工作环境不能提供VisualDSP++的调试和类比功能。一旦该核心投入运行,可使用GDB来调试用户应用程式。一旦该核心投入运行,可使用GDB来调试用户应用程式。

下一步是为目标硬体开发特殊应用软体或附加软体埠,一些开发可使用shell脚本或其他语言如Perl或Python来完成。下一步是为目标硬体开发特殊应用软体或附加软体埠,一些开发可使用shell脚本或其他语言如Perl或Python来完成。使用C语言编程时, linux带有特别的协定和设备驱动支援,能提供强有力的开发环境。使用C语言编程时, linux带有特别的协定和设备驱动支援,能提供强有力的开发环境。从表3可以看出AC’97音频CODEC和Blackfin处理器的接线是相当容易的,它不需要任何附加的硬体设备。从表3可以看出AC’97音频CODEC和Blackfin处理器的接线是相当容易的,它不需要任何附加的硬体设备。下面是从codec中读取资料的一个简单的程式(假设AC’97的驱动已经编译到核心中)。下面是从codec中读取资料的一个简单的程式(假设AC’97的驱动已经编译到核心中)。

为什么在DSP上使用Linux为什么在DSP上使用Linux

DSP被大量用在音效卡、数据机、电讯设备、医疗设备和其他的纯信号处理设备。 DSP被大量用在音效卡、数据机、电讯设备、医疗设备和其他的纯信号处理设备。那些DSP设备是为那些应用软体专门设计的,并且因为成本和规模的限制,只具备基本的功能。那些DSP设备是为那些应用软体专门设计的,并且因为成本和规模的限制,只具备基本的功能。当DSP变得更加强大和灵活时,就能够为军事,医疗,通讯等领域的用户提供更高级的服务,但是仍然缺乏运行高级作业系统的能力。当DSP变得更加强大和灵活时,就能够为军事,医疗,通讯等领域的用户提供更高级的服务,但是仍然缺乏运行高级作业系统的能力。传统的DSP功能强大、灵活,但是价格很高,多用在特别的信号处理硬体上,这类应用不须要像Linux这样的在DSP上运行的作业系统。传统的DSP功能强大、灵活,但是价格很高,多用在特别的信号处理硬体上,这类应用不须要像Linux这样的在DSP上运行的作业系统。因为在那些系统中, DSP从附近的中央处理单元获取资料,只需要将基本的系统软体写入DSP。因为在那些系统中, DSP从附近的中央处理单元获取资料,只需要将基本的系统软体写入DSP。

随着多媒体的日益集中和多媒体及通讯设备的增长,新型的DSP有着巨大的市场。随着多媒体的日益集中和多媒体及通讯设备的增长,新型的DSP有着巨大的市场。目前在市场中广泛使用的常规处理器和用传统DSP作为辅助处理器。目前在市场中广泛使用的常规处理器和用传统DSP作为辅助处理器。这种情况下,作业系统在主处理器上运行,而信号在DSP上处理。这种情况下,作业系统在主处理器上运行,而信号在DSP上处理。这种类型的双处理器并不理想,因为其在费用、功耗、和大小上均缺乏效益。这种类型的双处理器并不理想,因为其在费用、功耗、和大小上均缺乏效益。

硬即时系统强化uClinux即时性硬即时系统强化uClinux即时性

由于uClinux最初是为伺服器和桌面用户而设计,没有像其他同等规模和复杂性的作业系统一样严格的即时能力。由于uClinux最初是为伺服器和桌面用户而设计,没有像其他同等规模和复杂性的作业系统一样严格的即时能力。然而Linux特别是uClinux具有软即时(Soft real time)能力,这意谓着尽管Linux或uClinux不能保证一些中断或调度程式时间,他们同样具有很好的性能特点。然而Linux特别是uClinux具有软即时(Soft real time)能力,这意谓着尽管Linux或uClinux不能保证一些中断或调度程式时间,他们同样具有很好的性能特点。如果需要硬即时(Hard real time)系统来保证调度程式和中断latency时间,可透过下面方法来实现:如果需要硬即时(Hard real time)系统来保证调度程式和中断latency时间,可透过下面方法来实现:

◆使用另外的作业系统,有很多满足要求的RTOS系统可供选择(VisualDSP++ kernel、Nucleus PLUS、ThreadX、uITRON)。
◆使用另外的作业系统,有很多满足要求的RTOS系统可供选择(VisualDSP++ kernel、Nucleus PLUS、ThreadX、uITRON)。
◆通过即时核心RT-Linux或RTAI来提供即时能力。
◆通过即时核心RT-Linux或RTAI来提供即时能力。两种核心均使用小的即时核心,其作为具有低优先顺序的即时任务运行Linux。两种核心均使用小的即时核心,其作为具有低优先顺序的即时任务运行Linux。那些需要运行在即时核心上的程式则透过特别的编码进行。那些需要运行在即时核心上的程式则透过特别的编码进行。其他的任务和服务在Linux核心上运行,并可使用Linux提供的一切功能。其他的任务和服务在Linux核心上运行,并可使用Linux提供的一切功能。这种方法可保证确定中断等待时间,同时保留Linux的灵活性。这种方法可保证确定中断等待时间,同时保留Linux的灵活性。
◆改变Linux的核心可改善硬即时中断的等待时间,Bernhard Kuhn开发了一个Linux核心的补丁,将来有可能加到uClinux Blackfin的目录结构上。
◆改变Linux的核心可改善硬即时中断的等待时间,Bernhard Kuhn开发了一个Linux核心的补丁,将来有可能加到uClinux Blackfin的目录结构上。

在很多情况下,硬即时不是必要的,特别是对于多媒体应用程式来说,其时间约束由用户在识别音频或视频中的微小错误的能力来规定。在很多情况下,硬即时不是必要的,特别是对于多媒体应用程式来说,其时间约束由用户在识别音频或视频中的微小错误的能力来规定。这些可被检测的时间约束要在小达几十毫秒的范围内监测到,这对于像Blackfin处理器这样的高阶商业晶片来说不是问题。这些可被检测的时间约束要在小达几十毫秒的范围内监测到,这对于像Blackfin处理器这样的高阶商业晶片来说不是问题。严格的时间需求可以透过简单的微调(tweaking)和调度程式变化获得。严格的时间需求可以透过简单的微调(tweaking)和调度程式变化获得。在2.6.x核心中,新的稳定核心已经改进了新的O(1)调度程式和核心抢占权。在2.6.x核心中,新的稳定核心已经改进了新的O(1)调度程式和核心抢占权。

Blackfin处理器支援uClinux资源Blackfin处理器支援uClinux资源

为了使用binary rpm,须配有Linux安装套件(如Red Hat或SuSE)的电脑,不能在Windows环境下安装Linux的电脑可调整如下:为了使用binary rpm,须配有Linux安装套件(如Red Hat或SuSE)的电脑,不能在Windows环境下安装Linux的电脑可调整如下:

◆购买能够运行Linux的电脑,该电脑能够为公司的整个开发工作提供Linux服务。
◆购买能够运行Linux的电脑,该电脑能够为公司的整个开发工作提供Linux服务。带有Xserver的windows电脑和samba的Linux电脑能够无缝地整合到现有的windows开发工具上,Samba是开放的源代码,所有的Linux安装包里都有提供。带有Xserver的windows电脑和samba的Linux电脑能够无缝地整合到现有的windows开发工具上,Samba是开放的源代码,所有的Linux安装包里都有提供。
◆在Windows机器上使用UNIX:有很多程式允许在Windows(2000,XP)环境上使用整个Linux安装包。
◆在Windows机器上使用UNIX:有很多程式允许在Windows(2000,XP)环境上使用整个Linux安装包。这些程式在Windows作业系统上类比一个PC,不用调整用户端作业系统就可以执行。这些程式在Windows作业系统上类比一个PC,不用调整用户端作业系统就可以执行。例如VMWare和Virtual PC。例如VMWare和Virtual PC。
◆使用Windows埠开发工具。
◆使用Windows埠开发工具。

out-of-the-box解决方案利用cygwin环境,并采用完全的Blackfin uClinux安装套件,包括所有的用户空间应用程式和图形化Window形式的安装方式。 out-of-the-box解决方案利用cygwin环境,并采用完全的Blackfin uClinux安装套件,包括所有的用户空间应用程式和图形化Window形式的安装方式。系统要求PC配置至少为Windows 2000(NT也许可使用,但是没有经过测试)。系统要求PC配置至少为Windows 2000(NT也许可使用,但是没有经过测试)。采用Uclinux安装包的驱动器应该使用NTFS(FAT32也可使用,不过有一些速度限制)。采用Uclinux安装包的驱动器应该使用NTFS(FAT32也可使用,不过有一些速度限制)。

是否支援主流应用程式左右DSP普及率是否支援主流应用程式左右DSP普及率

Blickfin处理器有很高的性价比(800 MMAC @ 400 MHz批发价不超过$5/片)。 Blickfin处理器有很高的性价比(800 MMAC @ 400 MHz批发价不超过$5/片)。这意谓着可以使用低功耗和高空间效率来实施大的专案。这意谓着可以使用低功耗和高空间效率来实施大的专案。 Blackfin的高级DSP和多媒体性能不仅适用于音频、视频应用程式,同样可以用于工厂、汽车、通讯领域的各种设备。 Blackfin的高级DSP和多媒体性能不仅适用于音频、视频应用程式,同样可以用于工厂、汽车、通讯领域的各种设备。支援Blackfin处理器的另外一个优点是适用于广泛的应用程式、驱动程式、协定,通常是充当开放资源和免费软体。支援Blackfin处理器的另外一个优点是适用于广泛的应用程式、驱动程式、协定,通常是充当开放资源和免费软体。在大多数情况下,仅仅只有一些编辑或小的调整(tweaking)需要载入运行。在大多数情况下,仅仅只有一些编辑或小的调整(tweaking)需要载入运行。将之与Perl、Python、和PHP等宝贵的开发工具相整合,开发者就有机会在很短的时间内开发最多性能的应用程式,并留有足够的剩余处理能力,为将来的改进作准备。将之与Perl、Python、和PHP等宝贵的开发工具相整合,开发者就有机会在很短的时间内开发最多性能的应用程式,并留有足够的剩余处理能力,为将来的改进作准备。

最新的2.6.6版核心即将发布,采用了新的gcc 3.3.3工具链。最新的2.6.6版核心即将发布,采用了新的gcc 3.3.3工具链。 Blackfin补丁已经写入uClinux的核心目录结构,并且可以在ADSP-BF531/BF532/BF533/ADSP- BF535系列Blackfin处理器上使用。 Blackfin补丁已经写入uClinux的核心目录结构,并且可以在ADSP-BF531/BF532/BF533/ADSP- BF535系列Blackfin处理器上使用。由于Blackfin是一个新结构的品牌,许多其他的单双核心系列都将采用该结构。由于Blackfin是一个新结构的品牌,许多其他的单双核心系列都将采用该结构。已有工程师开始把uClinux移植到新的双核心处理器ADSP-BF561上。已有工程师开始把uClinux移植到新的双核心处理器ADSP-BF561上。这种做法意在让uClinux在一个核心上运行,同时在另外一个核心上进行高性能的即时视频编码或解码工作。这种做法意在让uClinux在一个核心上运行,同时在另外一个核心上进行高性能的即时视频编码或解码工作。
文章录入:admin    责任编辑:admin 
  • 上一篇文章:

  • 下一篇文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    前置放大器在移动医疗服务系
    便携式多通道大容量生理信号
    防腐监测仪的设计与应用
    基于AD1674的酶标仪的设计
    基于C/S模式的JRTPLIB库的测
    ffmpeg与jrtplib相结合应用
    blackfin模拟摄像头驱动中的
    可编程逻辑在数字信号处理系
    发现VDSP4.5一个BUG:单步调
    VDSP5.0双核工程下sml3中的变
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    版权所有:AnalogCN安诺电子 湘ICP备06016315号