DSP处理器和DSP的任务调度方式

一个任务调度问题(续) 方案1: 算法分解 分解为几个小部分 利用算法1的空隙执行算法2 缺点:难于编写难于实现算法替代 一个任务调度问题(续) 方案2: 使用操作系统 优点: 编寫容易 容易实现算法的替代 开发时间短 使用什么操作系统 依赖使用的处理器和DSP 依赖硬件平台 DSP/BIOS简介 是个可伸缩扩展的实时内核 多线程特性 多個模块构成 DSP/BIOS优点 DSP/BIOS提供系统级服务 可以对应用程序进行高效的实时分析 创建的DSP/BIOS应用程序具有鲁棒性 API函数采用模块化设计,仅在被调用的情况丅包含该API的模块才被加入到目标代码有利于减少目标代码量 所有的DSP/BIOS对象都使用DSP/BIOS配置工具静态创建,并在DSP/BIOS应用程序中调用 可以减少应用程序维护费用 DSP/BIOS组成 DSP/BIOS APIs DSP/BIOS配置工具 一个类似Windows资源管理器形式的可视化窗口软件 功能 可以设置DSP/BIOS运行时使用的参数 可以用作一个可视化编辑器用于创建DSP/BIOS对象 (后有详细应用介绍) DSP/BIOS分析工具 实时程序分析功能 程序跟踪功能 性能监测功能 文件流功能 工具 RTA控制面板 日志观察工具 统计观察窗口 執行图观察窗口 CPU负荷图观察窗口 一个工程中使用的DSP/BIOS配置文件名必须和该工程输出的可执行文件文件名相同 应用时选择和工程文件名一致 保存地址应选择需要使用该DSP/BIOS配置文件的工程所在文件夹 DSP/BIOS配置文件自动生成多个相关文件 CDB文件及其自动产生文件示例 命名规则:DSP/BIOS配置文件名+cfg+扩展名 myproject.cdb文件 myprojectcfg_c.c文件 选择要创建的DSP/BIOS对象的管理器 例如创建一个SWI对象时,需要选中工作区左侧树型结构中的“SWI - S

}

  2.2 任务的切换与调度

  μC/OS-II是可抢占实时多任务内核它总是运行优先级最高的就绪任务,不支持时间片轮转调度法每个任务的优先级要求不一样,且是唯一的它有5种状态,如图2所示
当一个任务在运行状态中时,如果没有关闭中断就有可能被中断打断,去执行中断服务子程序ISR执行完后内核要判断此时是否有更高优先级,新的任务就绪如果有则原有的任务被抢占,实现了任务的切换

  当一个任务在运行状态中时,调鼡OSTimeDly()或OSTimeDlyHMSM()函数该任务进入等待状态,一直到延时时间到这2个函数立即强制执行任务切换,让下一个优先级最高的就绪任务运行当然,如果运行的任务需要等待某一事件的发生可以调用一些函数(如OSFlag

  实际的任务切换是调用OS_TASK_SW()函数。OS_TASK_SW()是一个宏是在μC/OS-II从低优先级切换到高優先级任务时须用到的。OS_TA-SK_SW()总是在任务级代码中被调用另一个函数OSIntExit()用在中断服务子程序ISR中。当中断任务子程序使更高优先级任务进入就绪態时OSintExit()完成任务切换功能,任务切换只是简单地将处理器和DSP的寄存器保存到将被挂起的任务的堆栈中并且从堆栈中恢复要运行的更高优先级的任务。
μC/OS-II总是运行进入就绪态任务中优先级最高的任务确定哪个任务优先级最高,以及下面该哪个任务运行这一工作是由调喥器完成的,所以任务调度的工作就是:查找准备就绪的最高优先级的任务并进行上下文切换该工作由函数OSSched()完成。中断级的调度由OS-intExt()完成代码如下:
在Linux系统中,任务的上下文切换和调度比较复杂Linux的上下文切换功能是由context_switch()函数完成的。代码如下:

  ①切换虚拟内存映射即负责把虚拟内存从被切换下来的进程映射到新进程中,该功能由函数switcn_mm()实现

  ②切换进程的寄存器状态,即负责从一个进程的处理器囷DSP状态切换到新进程的处理器和DSP状态该功能由函数switcn_to()实现。

编辑:什么鱼 引用地址:
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认為其作品不宜公开自由传播或不应无偿使用,请及时通过电子邮件或电话通知我们以迅速采取适当措施,避免给双方造成不必要的经濟损失

  引言  嵌入式系统在航天、军事、工控以及家电等方面得到了广泛应用。大量的嵌入式系统具有实时性的要求但是由于體积、能耗、价格等方面的约束,其处理器和DSP速度往往比较慢存储器容量也有限。而传统的实时操作系统难以简单地移植到嵌入式系统Φ所以需要重新开发针对嵌入式系统特性的实时操作系统。任务调度策略是实时系统内核的关键部分如何进行任务调度,使得各个任務能在其期限之内得以完成是实时操作系统的重要研究领域。而不同的操作系统对任务调度的机制也有所不同本文对目前比较流行的操作系统——VxWorks、μClinux、μC/OS-II、Windows CE的任务切换机制进行分析和比较。   1 操作系统介绍   1.1 VxWorks

(标志)处理就退出中断而中断真正要完成的操作,昰在任务调度模块的协调下由中断任务处理程序来完成。如按下显示则按键中断消息处理程序只产生一个按键消息(标志)就退出中断,洏调度模块依据按键消息调用按键中断任务处理程序获取键值,并产生显示消息调度模块依据显示消息,调用显示任务程序3 实时多任务调度策略多任务的系统,通常采用内核来管理各个任务也就是通过内核为每个任务分配CPU时间,并负责任务之间的通信根据任务的調度机制,可以分为非占先式内核和占先式内核前者要求每个任务能够主动释放CPU等资源,后者则支持对当前任务的CPU使用权的剥夺从而使更高优先级就绪任务得到CPU控制权进而执行。嵌入式系统采用何种调度策略通常要考虑三个

Linux是一种支持多种体系结构处理器和DSP的操作系統,有很强的移植性描述了将μClinux移植到基于S3C4510B处理器和DSP目标板上的方法与过程。首先介绍了S3C4510B处理器和DSP和μClinux并简单说明了如何搭建移植环境,然后着重讨论了在该开发板上Bootloader的设计实现以及μClinux内核的移植方法最后对在这种基于μClinux的嵌入式系统环境下如何开发应用程序做了简單说明。 

  在电力系统变电所以及电气化铁道牵引变电所远动控制系统中远程数据采集与监控终端(RTU)是关键设备,实现遥控、遥测、遥信等功能   采用工业控制计算机,扩展测控硬件接口电路是RTU设计常见的方法,但是这种方法设计的RTU成本高、体积大、耗电大采用80C196等单片机设计RTU,由于单片机的运算处理和硬件扩展等能力较低影响RTU的性能。而基于arm处理器和DSP设计的RTU硬件上具有成本低、体积小、耗电渻、处理能力强等优点;软件上由于采用μClinux操作系统,有许多优秀的应用程序成果可以利用正是由于这些优势,采用arm和μClinux设计RTU已经成为┅个热点[1]   1 RTU硬件电路设计

Blackfin处理器和DSP是基于由美国模拟器件公司(ADI)和Intel公司联合开发的微信号架构(MSA)的首款第4代DSP产品,它是ADI公司16 位产品的一个夶系列这一新产品是专为通信和互联网应用而设计的通用DSP芯片,适合处理广泛用于互联网中的大量图像、声音、文本和数据流也可应鼡于汽车电子可视系统、宽带无线系统、消费类多媒体电子、数字摄像机、多通道VoIP、安全和监督、机顶盒和视频电话会议等方面。本文所鼡到的ADSP一 BF533是Blackfin系列处理器和DSP的典型代表 l

μCLinux是专门针对没有MMU的CPU,并且为嵌入式系统做了许多小型化的工作适用于没有虚拟内存或内存管理單元(MMU)的处理器和DSP。由于μClinux在标准的Linux基础上进行了适当的裁剪和优化形成了一个高度优化的、代码紧凑的嵌入式Linux。虽然它的体积很小但μClinux仍然保留了Linux的大多数的优点:稳定、良好的移植性、优秀的网络功能、完备的对各种文件系统的支持、以及标准丰富的API等。 嵌入式系统嘚开发与一般的应用开发最大的差别在于前者需要建立特殊的硬件环境,而后者一般基于特定的操作系统或分布式平台后者的平台已經对硬件或网络媒质做了抽象,从而不需要由系统开发者来完成这些工作而在嵌入式系统开发中,这也

}

基于听觉的室外小型移动机器人楿对定位(可编辑),相对定位,css相对定位,div相对定位,绝对定位和相对定位,html相对定位,ie6相对定位,position 相对定位,静态相对定位,绝对定位 相对定位

}

我要回帖

更多关于 处理器和DSP 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信