一种嵌入式软件开发的方法及系统的利记博彩app

文档序号:6560974阅读:252来源:国知局
专利名称:一种嵌入式软件开发的方法及系统的利记博彩app
技术领域
本发明涉及计算机及嵌入式领域,特别是嵌入式软件开发的方法及系统。
背景技术
目前现有技术中嵌入式软件开发的方法参见图1所示,在PC的应用程序中编写服务命令后,经过驱动库的命令解析,由通信服务接口将该命令发送到嵌入式系统。嵌入式系统通过接口接收命令并解析该服务,通过芯片读写服务将该服务写入芯片。
在嵌入式环境中的MCU(微程序控制器)和芯片之间需要一定的交互,参见图2所示,MCU通过数据总线,片选,读信号,写信号(Data Bus,CS,RD,WR)与芯片进行数据交换,这个过程都是MCU主动的,由于PC可以任意访问嵌入式的资源,PC可以在这个过程中立刻发现问题并做相应的处理。而芯片通过INT向MCU提出需求,这个过程是由芯片做主动的,当发生中断时,MCU无法将中断请求发送到PC,更不能由PC处理。下面提供一个自动曝光(AE)的实例说明目前PC处理中断的方式。
参见图3,新的一帧图像被输入到芯片,芯片统计输入帧的平均亮度,并将平均亮度值输送到相应的寄存器。最终希望得到的是AE,而芯片不具有此功能,然后,芯片发现当前进程处于unlock(未锁定状态)状态时,发出中断标志,并进入后续流程。
PC不断的查询芯片的中断状态,是否发生AE中断,发现中断标志后禁止MCU运行中断子程序,删除中断标志。由PC将相关的中断程序调入主程序并执行,读出芯片里的平均亮度值,以及计算出AE,并配置芯片/传感器的相关寄存器。
由于在PC执行的底层操作需要通过通信通道发命令去执行,因此速度是远不如在MCU上执行的速度。另外,PC被用来不断查询中断信息,因此在单进程的程序中无法再次接收用户指令,这将导致许多关于AE的组合测试很难进行。

发明内容
本发明提供一种支持中断服务的方法及系统,用以解决现有技术中在处理中断程序时速度较慢、占用系统资源较多的问题。
本发明提供以下技术方案一种支持中断服务的方法,包括步骤嵌入式系统中的芯片执行PC下发的命令,并在执行所述命令的过程中产生中断;嵌入式系统中的微程序控制器MCU获知所述中断后,调用并执行已注册在其中断入口上的中断服务程序进行中断服务处理,以及在处理过程中从嵌入式系统中的系统上下文获取所需要的信息。
所述MCU在获知所述中断后,立刻处理中断服务;或者所述MCU在需要运行的服务列表中增加中断处理标志,当在所述服务列表中读到中断处理标志时再处理中断服务。
所述芯片在产生中断并发现相关的硬件设备处于未锁定状态时,通过硬件触发所述MCU向其发出中断请求。
所述MCU定期查询所述芯片产生的中断请求。
芯片产生中断时在相关的寄存器上置中断标志;所述MCU查询寄存器读取中断标志,获知中断服务类型,并进行相应的中断服务处理。
所述MCU在未处理完第一个中断服务并获知第二个中断请求时,查询所述寄存器中第二个中断服务的优先级,若高于第一个中断的优先级时暂停第一个中断服务的处理,处理第二个中断服务,否则,缓存第二个中断服务的标志,并在第一个中断服务结束后处理第二个中断服务。
所述MCU读取中断标志后清除该寄存器中的标志。
所述MCU将中断服务程序的处理结果写入所述芯片。
所述系统上下文中包括系统运行状态信息和/或参数信息。
所述MCU在处理过程中更新所述系统上下文中的信息。
所述PC在处理过程中访问嵌入式系统中的系统上下文,获取或更新需要的信息。
一种嵌入式系统中的微程序控制器,包括存储模块,用于存储与中断服务处理有关的程序;处理模块,用于在获知所述中断后,从所述存储模块中调用并执行已注册在其中断入口上的中断服务程序进行中断服务处理,以及在处理过程中从嵌入式系统中的系统上下文获取所需要的信息。
还包括存储器,用于存储系统上下文,所述处理模块通过访问所述存储器中的系统上下文获取系统运行状态信息和/或参数信息。
一种嵌入式软件开发调试系统,包括嵌入式系统中的芯片,用于执行特定的程序;嵌入式系统中的微程序控制器MCU,用于在获知所述芯片产生的中断后,调用并执行已注册在其中断入口上的中断服务程序进行中断服务处理,以及在处理过程中从嵌入式系统中的系统上下文获取所需要的信息;PC,用于向所述MCU发出命令和指示所述芯片执行特定程序,并在开发和调试过程中从嵌入式系统中的系统上下文获取所需要的信息。
所述MCU在获知所述中断后,立刻处理中断服务;或者所述MCU在需要运行的服务列表中增加中断处理标志,当在所述服务列表中读到中断处理标志时再处理中断服务。
所述芯片在产生中断并发现相关的硬件设备处于未锁定状态时,通过硬件触发所述MCU向其发出中断请求。
所述MCU定期查询所述芯片产生的中断请求。
所述芯片产生中断时在相关的寄存器上置中断标志;所述MCU查询所述寄存器读取中断标志,获知中断服务类型,并进行相应的中断服务处理。
所述MCU包括存储模块,用于存储与中断服务处理有关的程序;处理模块,用于在获知所述中断后,从所述支持装置中调用并执行已注册在其中断入口上的中断服务程序进行中断服务处理,以及在处理过程中从嵌入式系统中的系统上下文获取所需要的信息。
所述MCU还包括存储器,用于存储系统上下文,所述处理模块通过访问所述存储器中的系统上下文获取系统运行状态信息和/或参数信息。
本发明有益效果如下1、本发明在嵌入式系统中增加存储模块来存储与中断处理有关的程序,并在运行器上增加相应的接口以调用程序,来实现中断服务处理,能够提高并发处理能力,节省PC资源。
2、本发明同时提供存储器以存储系统上下文,PC和MCU通过访问系统上下文获取准确的状态数据和参数,保证PC和嵌入式系统运行的一致性,该存储器设置在嵌入式环境中,以方便MCU的访问。


图1为现有技术中嵌入式软件开发的流程图;图2为现有技术中嵌入式MCU与芯片的关系示意图;图3为现有技术中嵌入式软件开发实例的流程图;图4为本发明实施例中支持中断服务的嵌入式软件开发系统的基本结构图;图5为本发明实施例中微程序控制器的结构图;图6A为本发明实施例中嵌入式软件开发的方法基本流程图;图6B为本发明实施例中芯片产生中断的详细流程图;
图6C为本发明实施例中微程序控制器处理中断的详细流程图;图7为本发明实施例中支持中断服务的嵌入式软件开发系统的详细结构图。
具体实施例方式
为了解决现有技术中在处理中断程序时速度较慢、占用系统资源较多的问题,本发明在嵌入式系统中增加存储模块以支持中断服务的处理,并增加存储器来存储系统的上下文,以保持PC与嵌入式系统调用的数据一致。
参见图4,本实施例中支持中断服务的嵌入式软件开发系统包括PC401、MCU402和芯片403。
PC401提供嵌入式软件开发的操作平台,执行主程序,并将生成的服务命令交由MCU402执行。
MCU402接收PC401发送的服务命令,将其解析后写入芯片;同时将芯片的返回值输送到PC401。
芯片403接收数据输入并执行相关的程序,必要时向嵌入式MCU402发出中断请求,由MCU402处理中断。芯片403可以通过硬件连接或以软件方式发出中断请求,本实施例中以硬件连接触发的方式进行说明。
其中,MCU402接收到芯片403的触发后进行中断处理,从芯片403中读取相关数据,运行中断子程序,运行结束后将运行结果写入芯片403。芯片403可以有多个,MCU402根据硬件的触发判断是哪个芯片403发出的中断请求,进行相应的处理。
当存在多种中断时,芯片403在向MCU402发出中断请求的同时改变中断寄存器的标志位,MCU402接收到芯片403的中断请求后需要查询芯片403中中断寄存器的标志位获知需要处理的中断。
参见图5,本实施例中MCU402包括处理模块51和存储模块50。
处理模块51接收并运行PC401的命令,和对芯片403进行读写操作;在芯片403产生中断时接受芯片403的触发,通过接口调用存储模块50中的程序处理中断服务。
存储模块50存储驱动程序和中断服务程序。
其中,存储模块50包括中断服务程序单元501和驱动库502。
中断服务程序单元501存储各种中断服务程序块。
驱动库502存储对于不同中断处理需要的中断服务程序的标识以及用于驱动中断服务程序的程序,该标识可以是程序块的标志或地址。
处理模块51包括命令接收和解析服务单元511、运行器512和芯片读写服务单元513。
命令接收和解析服务单元511接收PC401发送的服务命令并对其进行解析,解析成嵌入式系统可接受的服务命令形式。
芯片读写服务单元513存储用于对芯片403进行读写服务操作的程序。
运行器512运行解析后的服务命令,调用芯片读写服务单元513中的芯片读写服务程序对芯片403进行读写操作;接收芯片403的中断请求,通过接口调用存储模块50中与中断处理有关的程序进行中断处理。
参见图6A,本实施例中嵌入式软件开发的方法基本流程如下步骤61芯片403在执行PC发送的服务命令过程中产生中断,向MCU402发出中断请求,该中断请求包括硬件形式和软件形式。
步骤62MCU402获知芯片产生中断,获知的方式包括芯片403的触发和MCU的主动查询。
步骤63MCU402调用注册在其内部中断接口上的中断服务程序,进行相应的中断服务处理。
本实施例以自动曝光AE为例进行详细说明,下面具体介绍芯片产生中断以及MCU处理中断的流程。
参见图6B,本实施例中芯片产生中断的具体流程如下步骤601运行器512从芯片读写服务单元513中调用芯片写服务向芯片403输入一帧图像。
步骤602芯片403根据输入的图像数据统计输入帧的平均亮度,并将平均亮度值写入相应的寄存器。本实施例希望得到的是AE,而芯片403没有能力计算AE,故需要发出中断请求。
采用寄存器可以利用中断标志标识多种不同的中断服务。如果没有该寄存器,说明MCU402只可以处理一种中断。
步骤603芯片403判断本地的硬件设备脚(interrupt)和运行器512上的脚是否处于unlock状态,若是,则执行步骤604,否则等待解除锁定状态后再执行步骤604,由于锁定状态被设定的时间极短,所以这种延迟不会对系统造成较大影响。
步骤604芯片403向运行器512发送中断请求,本实施例中将芯片403的脚与运行器512的脚连接(或者是一个电脉冲)实现硬件触发运行器512,同时芯片403在相应的寄存器位置上置中断标志。例如,没有中断时为0,发生中断时置为1。中断标志还可以携带中断服务的种类和优先级等信息。
芯片403的脚与运行器512的脚连接一个较短的时间后断开。
在芯片产生中断后,嵌入式系统中的MCU进行后续的中断处理过程参见图6C所示,具体流程如下步骤605运行器512收到中断请求即被硬件触发或读取到中断标志后,可立刻处理中断服务,或者在需要运行的服务列表中增加中断处理标志,稍后再处理。
步骤606运行器512在处理中断时先到芯片403中查询关于中断服务的寄存器,发现需要计算AE的中断寄存器中的标志为1,或者发现表示计算AE的中断标志,读取该标志后清除寄存器中的该中断标志。
然后,运行器512进入注册在驱动库502的中断入口根据计算AE的中断标志查找需要的中断服务程序的标识,再根据标识到中断服务程序单元501调用相应的中断服务程序。
下面简单介绍连续发生两个以上中断的处理办法。芯片403在发生第二个中断时,再次将两个脚连接,在中断寄存器中置中断标志,由于第一个中断标志已被清除,故该寄存器此时为空,可以用其存储第二个中断标志,有需要时可以增加寄存器的数量。MCU402在第一个中断还没处理完毕就获知第二个中断时,MCU402可以先获取第二个中断的标志并查询其优先级,清除寄存器中的中断标志,然后比较两个中断的优先级,如果第二个中断的优先级高于第一个中断,那么暂停第一个中断的处理,执行第二个中断服务;否则,MCU402缓存第二个中断的标志,等待第一个中断处理完毕后再执行,实现中断保护。
步骤607运行器512根据运行的中断服务程序的需要,调用芯片读写服务单元513的芯片读服务从芯片403中读取计算AE所需的相关数据,即芯片403里的平均亮度值,继续运行中断服务程序,计算AE。
步骤608运行器512调用芯片读写服务单元513的芯片写服务将计算结果写入芯片403,该结果为AE的值;然后,运行器512配置芯片403/传感器的相关寄存器。
在嵌入式软件开发中,中断服务处理过程中会改变一些变量的值,尤其是全局变量,PC与嵌入式系统必须保证在使用同一变量时该变量的值相同,为了保持PC与嵌入式系统运行的正确性,本实施例在MCU中增加存储器来存储变量,参见图7所示,本实施例中支持中断服务的系统包括PC401中的应用程序单元701、驱动库702和通信服务单元703,处理模块51中的命令接收和解析服务单元704、芯片读写服务单元705和运行器710,存储模块50中的中断服务程序单元706和驱动库707,以及芯片708和存储器709。
应用程序单元701提供用户操作平台,运行各种嵌入式软件开发工具,利用PC的各种资源对嵌入式芯片708进行开发和调试。
驱动库702执行应用程序单元701生成的各种服务命令。
通信服务单元703提供嵌入式软件开发的操作平台,使大量的嵌入式软件能使用PC软件开发系统进行开发和调试,并提供PC401与MCU402的交互接口;增加对存储器709的读写命令,使PC401可以访问存储器709,该读写命令设计如下Void Vir_SetReg(int adr,int val)命令表示将系统上下文里地址为adr的存储单元的值修改为val。
Int Vir_GetReg(int adr)命令表示获取系统上下文里地址为adr的存储单元的值。
由于存储器里的单元地址为统一编址,保证了所有参数不会相互覆盖。
命令接收和解析服务单元704接收通信服务单元703发送的服务命令并对该服务命令进行解析,解析成嵌入式系统可以接受的形式。
芯片读写服务单元705存储用于对芯片708进行读写服务操作的程序。
运行器710运行解析后的服务命令,调用芯片读写服务单元705中的芯片读写服务程序对芯片708进行读写操作,并从芯片708读取必要的返回数据反馈给PC401进行后续处理;接收芯片708的中断请求,通过接口调用存储模块50中与中断处理有关的程序进行中断处理。
中断服务程序单元706存储各种中断服务程序块。
驱动库707存储对于不同中断处理需要的中断服务程序的标识以及用于驱动中断服务程序的程序,该标识可以是程序块的标志或地址。
芯片708,一种处理特殊功能的硬件处理设备。硬件触发运行器710,发出中断请求,同时更改相应的寄存器,置中断标志。
存储器709存储系统上下文,PC401和MCU402都可以对其进行访问。由于PC可以任意访问嵌入式环境的资源,而嵌入式系统不可以,所以系统上下文必须放在嵌入式系统下。
在程序运行过程中需要记录系统运行的状态和一些参数。应用程序单元701和驱动库702在调用和更改数据尤其是全局变量时都需要访问存储器709中的系统上下文,命令接收和解析服务单元704和运行器710在运行过程中需要调用数据或对某些数据进行修改后都需要访问存储器709中的系统上下文,使PC401与MCU402的操作保持一致,避免由于数据不一致所导致的处理结果错误。
上述方案为本实施例嵌入式软件开发中处理中断服务的一种较佳的方式,还有一种方式是芯片403在发生中断时,只改变中断寄存器中的标志位。由MCU402定期到中断寄存器中查询是否有中断,其它过程如上所述。这种方案也可以实现中断服务,只是需要占用一部分MCU402的资源,但可以节省一定的硬件资源。MCU402在第一个中断服务还没有处理完毕就需要查询寄存器时,可以暂停第一个中断服务的处理,查询中断寄存器中是否有新中断标志,若有,则查询新中断的优先级,高于第一个中断服务的优先级时处理新中断服务,然后继续处理第一个中断服务,低于第一个中断服务的优先级时继续处理第一个中断服务,缓存新中断的中断标志,清除中断寄存器中新中断的标志。
本发明在嵌入式系统中增加存储模块来存储与中断处理有关的程序,并在运行器上增加相应的接口以调用程序,来实现中断服务处理,能够提高并发处理能力,节省PC资源。本发明同时提供存储器以存储系统上下文,PC和MCU通过访问系统上下文获取准确的状态数据和参数,保证PC和嵌入式系统运行的一致性,该存储器设置在嵌入式环境中,以方便MCU的访问。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若对本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种支持中断服务的嵌入式软件开发方法,其特征在于,包括以下步骤嵌入式系统中的芯片执行PC下发的命令,并在执行所述命令的过程中产生中断;嵌入式系统中的微程序控制器MCU获知所述中断后,调用并执行已注册在其中断入口上的中断服务程序进行中断服务处理,以及在处理过程中从嵌入式系统中的系统上下文获取所需要的信息。
2.如权利要求1所述的嵌入式软件开发方法,其特征在于,所述MCU在获知所述中断后,立刻处理中断服务;或者所述MCU在需要运行的服务列表中增加中断处理标志,当在所述服务列表中读到中断处理标志时再处理中断服务。
3.如权利要求1所述的嵌入式软件开发方法,其特征在于,所述芯片在产生中断并发现相关的硬件设备处于未锁定状态时,通过硬件触发所述MCU向其发出中断请求。
4.如权利要求1所述的嵌入式软件开发方法,其特征在于,所述MCU定期查询所述芯片产生的中断请求。
5.如权利要求3或4所述的嵌入式软件开发方法,其特征在于,芯片产生中断时在相关的寄存器上置中断标志;所述MCU查询寄存器读取中断标志,获知中断服务类型,并进行相应的中断服务处理。
6.如权利要求5所述的嵌入式软件开发方法,其特征在于,所述MCU在未处理完第一个中断服务并获知第二个中断请求时,查询所述寄存器中第二个中断服务的优先级,若高于第一个中断的优先级时暂停第一个中断服务的处理,处理第二个中断服务,否则,缓存第二个中断服务的标志,并在第一个中断服务结束后处理第二个中断服务。
7.如权利要求5所述的嵌入式软件开发方法,其特征在于,所述MCU读取中断标志后清除该寄存器中的标志。
8.如权利要求1所述的嵌入式软件开发方法,其特征在于,所述MCU将中断服务程序的处理结果写入所述芯片。
9.如权利要求1所述的嵌入式软件开发方法,其特征在于,所述系统上下文中包括系统运行状态信息和/或参数信息。
10.如权利要求1所述的嵌入式软件开发方法,其特征在于,所述MCU在处理过程中更新所述系统上下文中的信息。
11.如权利要求1所述的嵌入式软件开发方法,其特征在于,所述PC在处理过程中访问嵌入式系统中的系统上下文,获取或更新需要的信息。
12.一种嵌入式系统中的微程序控制器,其特征在于,包括存储模块,用于存储与中断服务处理有关的程序;处理模块,用于在获知所述中断后,从所述存储模块中调用并执行已注册在其中断入口上的中断服务程序进行中断服务处理,以及在处理过程中从嵌入式系统中的系统上下文获取所需要的信息。
13.如权利要求12所述的微程序控制器,其特征在于,还包括存储器,用于存储系统上下文,所述处理模块通过访问所述存储器中的系统上下文获取系统运行状态信息和/或参数信息。
14.一种嵌入式软件开发系统,其特征在于,包括嵌入式系统中的芯片,用于执行特定的程序;嵌入式系统中的微程序控制器MCU,用于在获知所述芯片产生的中断后,调用并执行已注册在其中断入口上的中断服务程序进行中断服务处理,以及在处理过程中从嵌入式系统中的系统上下文获取所需要的信息;PC,用于向所述MCU发出命令和指示所述芯片执行特定程序,并在开发和调试过程中从嵌入式系统中的系统上下文获取所需要的信息。
15.如权利要求14所述的嵌入式软件开发系统,其特征在于,所述MCU在获知所述中断后,立刻处理中断服务;或者所述MCU在需要运行的服务列表中增加中断处理标志,当在所述服务列表中读到中断处理标志时再处理中断服务。
16.如权利要求15所述的嵌入式软件开发系统,其特征在于,所述芯片在产生中断并发现相关的硬件设备处于未锁定状态时,通过硬件触发所述MCU向其发出中断请求。
17.如权利要求14所述的嵌入式软件开发系统,其特征在于,所述MCU定期查询所述芯片产生的中断请求。
18.如权利要求16或17所述的嵌入式软件开发系统,其特征在于,所述芯片产生中断时在相关的寄存器上置中断标志;所述MCU查询所述寄存器读取中断标志,获知中断服务类型,并进行相应的中断服务处理。
19.如权利要求14所述的嵌入式软件开发系统,其特征在于,所述MCU包括存储模块,用于存储与中断服务处理有关的程序;处理模块,用于在获知所述中断后,从所述支持装置中调用并执行已注册在其中断入口上的中断服务程序进行中断服务处理,以及在处理过程中从嵌入式系统中的系统上下文获取所需要的信息。
20.如权利要求19所述的嵌入式软件开发系统,其特征在于,所述MCU还包括存储器,用于存储系统上下文,所述处理模块通过访问所述存储器中的系统上下文获取系统运行状态信息和/或参数信息。
全文摘要
本发明公开了一种支持中断服务的方法及系统,用以解决现有技术中在处理中断程序时速度较慢、占用系统资源较多的问题。本发明的技术方案是嵌入式系统中的芯片执行PC下发的命令,并在执行所述命令的过程中产生中断嵌入式系统中的微程序控制器MCU获知所述中断后,调用并执行已注册在其中断入口上的中断服务程序进行中断服务处理,以及在处理过程中从嵌入式系统中的系统上下文获取所需要的信息。本发明中的系统包括PC、MCU和芯片;其中,MCU包括处理模块和存储模块。
文档编号G06F9/46GK1945542SQ20061011421
公开日2007年4月11日 申请日期2006年11月1日 优先权日2006年11月1日
发明者游明琦, 谢韬 申请人:北京中星微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1