DSP芯片的内核动态切换方法及控制系统技术方案

技术编号:8735064 阅读:198 留言:0更新日期:2013-05-26 11:43
本发明专利技术公开了DSP芯片的内核动态切换方法及控制系统。该方法包括:根据预配置的DSP内核程序的数目,划分该DSP芯片的片上存储空间及相应的地址映射;按照所述地址映射编译所述DSP内核程序,并为每一个DSP内核程序设置对应的中断向量表;通过接收输入输出管脚(GPIO)的状态信号触发所述中断向量表的程序指针跳转位置。采用本发明专利技术,可以在不增加系统软硬件复杂性的前提下,仅依靠单核DSP芯片来实现多个DSP内核程序的动态无缝切换。而且,切换效率高,升级方便,程序升级只需替换FLASH中不同的段即可,工程无需整体重新编译。

【技术实现步骤摘要】

本专利技术涉及嵌入式应用领域,特别是涉及DSP芯片的内核动态切换方法及控制系统
技术介绍
在嵌入式系统开发中,DSP芯片以其高效的运算能力而被广泛应用。由于不同的运算功能需求,经常需要在同一块DSP芯片上运行多个不同的DSP内核程序,现有技术一般有两种方式达到这个目的,即DSP内核程序重新加载或者不重新加载而采用多任务的处理方式。对于DSP内核程序重新加载方式,常见的方法是使用ARM芯片或其它器件来动态加载DSP内核程序,这样做的缺点在于:1)软硬件结构复杂,需要增加一块专用芯片来控制程序加载,程序运行过程过分依赖于其它器件,在用户对系统需求不是很复杂的情况下增加了设计难度;2)由于DSP芯片被重新加载,被重新加载的DSP内核程序无法被保存加载前的运行环境,造成数据丢失。对于多任务方式,其缺点也很明显,首先软件代码量会比较大,因为要把各种功能编译到一起,也很不利于某个功能模块的升级(因需要全部重新编译);其次每个任务切换时都要保护好其运行环境,势必会导致定义大量的全局变量和结构体,从而大大降低模块的可移植性。
技术实现思路
基于此,有必要针对上述问题,提供一种DSP芯片的内核动态切换方法及控制系统,能够在不增加系统软硬件复杂性的前提下,仅依靠DSP芯片本身来实现多个DSP内核程序的动态切换。一种DSP芯片的内核动态切换方法,包括:根据预配置的DSP内核程序的数目,划分该DSP芯片内部的存储空间及相应的地址映射;按照所述地址映射编译所述DSP内核程序,并为每一个DSP内核程序设置对应的中断向量表;通过接收输入输出管脚的状态信号触发所述中断向量表的程序指针跳转位置。相应地,一种DSP芯片的内核动态切换控制系统,包括:内存划分单元,用于根据预配置的DSP内核程序的数目,划分该DSP芯片内部的存储空间及相应的地址映射;与所述内存划分单元相连的程序编译单元,用于按照所述地址映射编译所述DSP内核程序,并为每一个DSP内核程序设置对应的中断向量表;与所述程序编译单元相连的状态检测单元,用于通过接收输入输出管脚的状态信号触发所述中断向量表的程序指针跳转位置。实施本专利技术,具有如下有益效果:本专利技术采用的多程序动态切换方法相比以上传统方式,仅需借助芯片自带的加载程序完成芯片启动,并通过在内核线程中动态进行程序指针的跳转实现程序运行状态的切换操作,该技术可以同时克服以上两种传统方法的缺点,并且多内核程序之间切换效率高。因为各个内核程序在上电初期就被加载到了芯片RAM内部,仅通过程序指针的跳转来实现程序动态切换,无论在流程还是速度上都优于以上两种方式。采用该方法升级方便,程序升级只需替换FLASH中不同的段即可,工程无需整体重新编译。同时,这也非常有利于移植,由于各个程序升级都是直接替换FLASH中对应位置的二进制文件,不需要重新编译生成完整的out文件。附图说明图1为本专利技术DSP芯片的内核动态切换方法的流程图;图2为本专利技术DSP芯片的内核动态切换方法的示意图;图3为本专利技术DSP芯片的内核动态切换方法的实施例流程图;图4为本专利技术DSP芯片的内核动态切换控制系统的示意图;图5为本专利技术DSP芯片的内核动态切换控制系统的实施例示意图。具体实施例方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步地详细描述。图1为本专利技术DSP芯片的内核动态切换方法的流程图,包括:SlOl:根据预配置的DSP内核程序的数目,划分该DSP芯片内部的存储空间及相应的地址映射;S102:按照所述地址映射编译所述DSP内核程序,并为每一个DSP内核程序设置对应的中断向量表;S103:通过接收输入输出管脚的状态信号触发所述中断向量表的程序指针跳转位置。在脱机运行的DSP系统中,用户代码往往都需要在上电后自动装载运行,目前,大多数DSP内部都有固化的引导装载(BootLoader),它能够在系统加电时,自动将一段存储在FLASH的程序代码移植到内部的高速存储单元里面去执行。本设计方法就是针对DSP芯片BootLoader的这个特性,在DSP芯片上使用DSP/B10S操作系统,将DSP芯片的RAM分成多个独立的运行区域,并通过对DSP芯片的输入输出管脚的控制操作来实现DSP内核程序的无缝切换,使得程序的动态切换不依赖于其它芯片的支持,简化了系统的软硬件设计的同时,有效地保护了切换前后每个程序的运行环境。本专利技术采用的多程序动态切换方法相比以上传统方式,仅使用芯片自带的BootLoader完成芯片启动,并通过在IDLE线程中动态进行程序指针的跳转进行程序运行状态的切换操作,该方法可以同时克服以上两种传统方法的缺点,并且多程序之间切换效率高,由于程序在上电初期就被加载到了芯片RM内部,仅通过程序指针的跳转来实现程序动态切换,无论在流程还是速度上都优于以上两种方式。采用该方法升级方便,程序升级只需替换FLASH中不同的段即可,工程无需整体重新编译。同时,这也非常有利于知识产权保护和单独的DSP内核程序的移植,由于各个内核程序升级都是直接替换FLASH中对应位置的二进制文件,不需要重新编译生成完整的out文件。具体地,与现有技术相比,本专利技术具有优势是明显的。例如,根据DSP内核程序的数目来划分存储空间,使得各个内核程序拥有一个相对独立的运行环境,程序的加载与运行不需依赖于其他器件,故而软硬件结构简单。DSP内核程序的编译也是按照相应的地址映射进行的,在程序升级时,无需整体重新编译,只需按照地址映射更改应对的程序段,由于各个程序段按照步骤要求独立编写而成,屏蔽了不同内核程序源码的编译综合阶段,有利于各内核程序知识产权保护和单独的DSP内核程序的移植。需要补充说明的是,DSP内核程序是通过程序指针的跳转来实现程序动态切换,流程简单且切换速度快,因而切换效率高。另外,由于各程序运行在片内各自独立的内存空间,因此程序的动态切换仅涉及到程序指针在不同程序的中断向量表之间跳转,各内核程序之间进行切换不会覆盖其他程序的运行空间,避免了由于DSP芯片被重新加载造成的程序运行状态数据丢失,维护了程序的运行现场。图2为本专利技术DSP芯片的内核动态切换方法的示意图。图3为本专利技术DSP芯片的内核动态切换方法的实施例流程图。与图1相比,图3为本专利技术的具体实施例示意图。下面结合图2、图3对本专利技术具体实施例做详细介绍,本设计的实施例以2个程序切换为例,但不限于2个。S201:根据预配置的DSP内核程序的数目,划分该DSP芯片内部的存储空间及相应的地址映射;S202:根据预配置的DSP内核程序的大小,配置该内核程序的存储空间大小;S203:按照所述地址映射编译所述DSP内核程序,并为每一个DSP内核程序设置对应的中断向量表;S204:给每一个DSP内核程序配置对应的IDLE线程,监测所述输入输出管脚的状态信号;S205:根据所述内核数目配置所需的输入输出管脚最少数量,其中,η个输入输出管脚与最大的内核数目m之间满足m=2n的映射关系;S206:读取各个输入输出管脚的端口状态,通过接收由各个端口状态组成的状态信号;S207:判断DSP内核程序的切换状态,触发程序指针重置到相应的DSP内核程序的中断向量表入口地址;S208:将开机加载程序以及各个DSP内核程序存储为二进制文件烧本文档来自技高网...

【技术保护点】
一种DSP芯片的内核动态切换方法,其特征在于,包括:根据预配置的DSP内核程序的数目,划分该DSP芯片内部的存储空间及相应的地址映射;按照所述地址映射编译所述DSP内核程序,并为每一个DSP内核程序设置对应的中断向量表;通过接收输入输出管脚的状态信号触发所述中断向量表的程序指针跳转位置。

【技术特征摘要】

【专利技术属性】
技术研发人员:邓恰陶伟王健
申请(专利权)人:广州海格通信集团股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1