CN1912833A - 一种嵌入式操作系统驱动程序动态升级方法 - Google Patents
一种嵌入式操作系统驱动程序动态升级方法 Download PDFInfo
- Publication number
- CN1912833A CN1912833A CN 200610037353 CN200610037353A CN1912833A CN 1912833 A CN1912833 A CN 1912833A CN 200610037353 CN200610037353 CN 200610037353 CN 200610037353 A CN200610037353 A CN 200610037353A CN 1912833 A CN1912833 A CN 1912833A
- Authority
- CN
- China
- Prior art keywords
- driver
- upgrading
- task
- dynamic update
- flag
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
本发明提供一种嵌入式操作系统驱动程序动态升级方法,包括如下步骤:(1)在核心代码中为每一个驱动程序增设驱动程序入口处任务控制程序,所述任务控制程序设置有一个全局变量driver_upgrading_ flag,通过其取值为TRUE或FALSE来表明当前驱动程序是否正在执行动态升级过程,并初始化为FALSE;(2)设置升级标志driver_upgrading_flag的取值为TRUE,从而将访问该驱动程序的任务挂起,并插入到等待队列waitq_driver_upgrading中;(3)将升级文件编译并加载到内核地址空间;(4)在驱动程序的函数入口处引入升级文件的地址处写入跳转指令,跳转地址为升级文件的函数入口地址;(5)设置升级标志driver_upgrading_flag的取值为FALSE,将访问该驱动程序而被挂起的任务唤醒,恢复运行。
Description
技术领域
本发明属于计算机操作系统技术领域,特别是提供一种嵌入式操作系统驱动程序动态升级的方法。
技术背景
随着嵌入式技术的快速发展和广泛应用,嵌入式技术已与人们的日常生活紧密结合,不论是民用还是军工产品都对嵌入式应用提出越来越高的要求,主要包括实时性、高可靠性、高可用性等关键特性,其表现为提供给用户不间断的服务。
驱动程序在嵌入式系统中占有至关重要的地位,在嵌入式系统中,一般是没有虚拟内存管理的,设备驱动程序直接使用的是物理内存。研究表明,驱动程序失效是导致系统失效的主要原因,如果驱动程序出现错误,系统必须中断该驱动程序的运行,若驱动程序不是以可加载模块的形式存在,或者虽然是以可加载模块的形式存在,但出错时仍然有相关任务在使用该驱动程序,这样是无法卸载驱动程序的,错误也就得不到修正,唯有中断整个系统的运行,系统中所有的任务都被停止,等待把错误修正之后,再重新启动系统。然而,在很多对高可用性要求较高的领域,如电信级应用,要求程序不间断地运行,更加不能容忍因升级驱动程序而使整个系统中断运行,因此,必须采用一种驱动程序动态升级的方法。
而现有的驱动程序升级技术中,一种技术是针对操作系统核心支持可安装模块功能,可安装模块是经过编译但尚未连接的目标文件,这种技术可以在系统运行时动态地加载模块到内核中,内核提供一些函数入口、全局变量等符号,可安装模块可以在程序中调用这些内核函数和访问这些全局变量,当内核需要升级驱动程序时,必须先卸载这个驱动程序,中断所有任务对该设备的访问,一旦驱动程序被卸载,若有任务要访问相应的设备必然失败,待新的驱动程序模块被加载后,相应的设备才处于可用状态,这种驱动程序升级技术需停止系统对设备的访问,可能造成任务运行失效,而且在业务密集的环境下,设备驱动程序一直有任务在访问,可能无法卸载设备驱动模块,给升级带来了困难。
另一种驱动程序升级技术是针对操作系统核心不支持可安装模块的功能,这在嵌入式系统中比较常见,操作系统核心和驱动程序是个运行整体,驱动程序不是以模块的形式存在,在这种情况下,如果目标系统出现问题,要升级驱动程序,需重新编译操作系统以及驱动程序源码,编译完成后生成新的可执行映象,然后,停止目标系统的运行,将新的系统映象下载到目标机上,再重新启动目标系统,这种驱动程序升级的方法使目标系统中断时间较长,而且是完全停止了目标系统的所有任务的运行,严重影响了业务的正常处理。
在嵌入式系统中,传统的驱动程序升级技术都必须停止驱动模块的运行或目标系统的运行才可以进行升级工作,这样是不能满足高可用的应用需求的。
发明内容
本发明的目的在于克服现有技术的不足,提供一种嵌入式操作系统驱动程序动态升级的方法,能够在不卸载驱动程序的条件下,对驱动程序进行动态升级,以降低系统的宕机时间,提高系统的可靠性,使之能够高效、稳定地运行于嵌入式平台,满足高可用的应用环境需求。
为了实现上述发明目的,采用的技术方案如下:
一种嵌入式操作系统驱动程序动态升级方法,包括如下步骤:
(1)在核心代码中为每一个驱动程序增设驱动程序入口处任务控制程序,所述任务控制程序设置有一个全局变量driver_upgrading_flag,通过其取值为TRUE或FALSE来表明当前驱动程序是否正在执行动态升级过程,并初始化为FALSE;
(2)设置升级标志driver_upgrading_flag的取值为TRUE,从而将访问该驱动程序的任务挂起,并插入到等待队列waitq_driver_upgrading中;
(3)将升级文件编译并加载到内核地址空间;
(4)在驱动程序的函数入口处引入升级文件的地址处写入跳转指令,跳转地址为升级文件的函数入口地址;
(5)设置升级标志driver_upgrading_flag的取值为FALSE,将访问该驱动程序而被挂起的任务唤醒,恢复运行。
驱动程序动态升级的关键是对访问驱动程序的任务进行控制,本发明通过设置全局标志变量driver_upgrading_flag来通知任务驱动程序是否处于升级状态,从而将任务挂起或让其访问驱动程序。
如步骤(1)所述任务控制程序当系统任务调用驱动程序时,判断升级标志driver_upgrading_flag的取值,如果为FALSE,表明驱动程序处于可用状态,则让系统任务调用驱动程序,如果为TURE,则表明驱动程序处于升级状态,不可以调用驱动程序相关方法,通过操作系统的任务控制机制将系统任务挂起到等待队列waitq_driver_upgrading中。
步骤(3)中,升级文件包括编写的新的驱动程序接口函数。驱动程序的接口方法是由系统操作方法跳转表(operating table)统一定义的,每个具体的驱动程序实例实现相应的操作方法,如串口驱动write方法对应的是serial_write驱动接口函数。
所述步骤(3)只允许特权用户操作。加载升级文件到内核地址空间,需编写特权内存映射方法,考虑系统的安全性,只有特权用户才可以调用该方法。加载升级文件过程中,进行代码的连接解析,与操作系统核心形成一个可执行的整体。
步骤(3)的升级文件加载过程通过升级文件代码的连接解析,与操作系统核心形成一个可执行的整体。
所述步骤(4)还通过编译操作系统源代码生成可执行映像,以提取驱动程序函数名与入口地址对照表。步骤(4)主要进行的更改驱动程序接口函数的地址,需编写特殊的系统调用函数,由动态升级工具软件调用系统方法,解析写入的函数地址以及跳转的地址。
本发明所设计的驱动程序动态升级方法,其功能特点可以细分为如下几个方面:
a、动态加载
利用升级工具可以动态地将新的代码应用于正在运行的程序内存区域中,从而无需重新启动系统进行装载程序的二进制文件即可完成驱动程序的升级。
b、增加函数
驱动程序动态升级技术可以在不停止系统的情况下,为驱动程序增加新的接口函数。
c、替换函数
驱动程序动态升级技术可以在不停止系统的情况下,替换运行中的驱动程序接口函数,从而实现对驱动程序的动态维护与更新。
d、Bug定位
驱动程序动态升级技术可以定位系统的Bug信息,在系统运行过程中出现Bug时,可以采用动态升级的方式给系统加入一些收集信息的代码,对驱动程序的内部状态及实时数据进行分析诊断。
本发明通过将升级文件动态加载在内核的地址空间,并在驱动程序的入口处通过跳转指令跳转至升级文件的入口地址,实现了驱动程序的动态升级,不用卸载原驱动程序,也无需停止操作系统的运行;同时,通过为每一个驱动程序增设驱动程序入口处任务控制程序,通过任务控制程序在任务访问驱动程序时,判断驱动程序是否正处于升级过程,如果处于升级过程,则改变任务的进程状态,将其挂起到等待对列中,待升级完成后再唤醒运行,否则则直接访问驱动程序,避免了由于驱动程序在升级过程中任务的不断访问所造成的混乱。
附图说明
图1为驱动程序动态升级总体架构逻辑示意图;
图2为驱动程序动态升级任务控制流程示意图;
图3为驱动程序动态升级实现的完整流程示意图;
图4为驱动程序动态升级执行流程示意图。
具体实施方式
下面结合附图,对本发明的具体实施做进一步的详细描述。
附图1展示了驱动程序动态升级总体架构,该图显示了为了实现驱动程序动态升级对内核及驱动程序所做的改动。其主要是在处于底层硬件和用户应用程序之间的内核层做出改动,具体包括:
模块11为驱动升级封装,其相当于任务控制程序,设置在操作系统提供给应用程序统一驱动程序访问的接口和具体的驱动程序接口函数之间,对驱动程序进行升级封装,封装程序主要包括判断升级标志的值、任务运行状态的控制、动态升级等待队列的操作等。要访问驱动程序的任务必须通过驱动升级封装的程序之后,才可以访问具体的驱动程序入口函数。
模块12为驱动动态升级核心支持模块,由于驱动程序动态升级是要靠升级工具来对核心的地址空间进行操作,所以必须提供相应的特殊系统函数来完成这些处理,驱动动态升级核心支持模块主要包括du_task_ctl、du_mem_map、du_set_flag、du_remove_waitq系统接口函数。其中,du_task_ctl用于对任务的状态进行控制,如将访问处于升级过程的驱动程序的任务挂起,du_mem_map用于映射升级文件,du_set_flag是用于设置驱动程序升级标志,du_remove_waitq提供给升级工具在升级完毕时调用,将等待队列上的任务去除,挂到就绪队列上。
附图2展示了驱动程序动态升级任务控制流程,在驱动程序升级过程中,可能有其它任务要访问驱动程序,如果不加控制,势必导致任务失效,甚至导致整个系统崩溃,为了确保驱动程序动态升级时系统的安全性,本发明通过任务控制机制来达到这个目的,任务的控制过程具体如下:
步骤21、截获将要访问驱动程序的任务,获取任务控制块或任务的ID号;
步骤22、判断驱动动态升级标志driver_upgrading_flag,如果为真,执行步骤23,否则,执行步骤24;
步骤23、驱动程序正在升级,将当前任务挂入waitq_driver_upgrading等待队列,挂入的过程包括任务状态的设置、队列链表指针的修改等;
步骤24、驱动程序不处于升级过程中,即driver_upgrading_flag的值为假,可以访问相应的驱动程序入口函数。
附图3展示了驱动程序动态升级实现的完整流程,也是本发明的整体实施过程,具体如下:
步骤31、基于附图1所述的总体架构中所描述的内容,实现驱动封装程序,如设置全局变量driver_upgrading_flag,并初始化为FALSE,并判断升级标志的值、任务运行状态的控制、动态升级等待队列的操作等;
步骤32、本步骤主要实现驱动动态升级核心支持模块12中所描述的驱动升级核心支持函数,包括du_task_ctl、du_mem_map、du_set_flag、du_remove_waitq系统接口函数;
步骤33、驱动程序动态升级是管理员在系统运行时进行的,本步骤主要实现驱动升级工具软件,工具软件的实现依赖于核心支持模块,工具软件以用户任务运行,负责驱动程序动态升级的全部工作,关于驱动升级工具软件的业务逻辑与执行流程如附图4所示;
步骤34、在完成步骤31、32后,接下来就要编译、链接目标操作系统,并下载至目标机上运行;
步骤35、如果需要升级目标系统驱动程序,就执行步骤36,否则,系统继续运行;
步骤36、当需要升级驱动程序时,假设我们要升级串口驱动,对串口驱动的serial_write方法进行了修改,那么,我们需编写新的串口驱动程序写数据函数serial_write_new,并放在serial_upgrading.c文件中。然后对serial_upgrading.c进行编译,生成目标机的二进制文件serial_upgrading.o;
步骤37、升级文件准备好之后,就可以执行步骤33中所实现的升级工具软件进行驱动程序动态升级操作,升级工具软件的执行流程如附图4所述;
步骤38、在驱动程序升级过程中,即升级工具执行过程中,没有错误信息,则表明升级成功,若有错误信息,转至步骤39;
步骤39、驱动程序升级过程产生错误,跳至错误处理代码,释放因驱动程序升级而对内核资源、任务等的控制,升级工具退出,并打印升级不成功信息。
附图4展示了驱动程序动态升级工具的执行实施流程,下面将详细描述升级工具的执行过程,即升级工具对系统函数的调用以及对升级文件的处理等等,具体如下:
步骤41、调用步骤32所提供的du_set_flag系统函数,设置driver_upgrading_flag为TRUE,当任务要访问串口驱动时,发现该标志被设置为真,任务便被挂起,挂起的队列为waitq_driver_upgrading,在驱动程序升级期间,所有要访问驱动的任务都将被挂在waitq_drier_upgrading任务等待队列上,这同时也保证了任务不会因为无法访问驱动程序而导致失效;
步骤42、在本步骤中,需调用du_mem_map系统函数,加载升级文件serial_upgrading.o到内存地址空间中,同时进行解析、连接,与操作系统内核形成一个可执行整体,如果映射不成功,将导致升级失败,直接跳至步骤44,升级工具会返回错误并退出;
步骤43、如果步骤42成功完成,接下来就是如何使新的驱动程序函数起作用,通过步骤03中所保存的目标修改函数serial_write的地址信息,我们在该地址处写入调转指令JMP,JMP调转的目标地址是serial_write_new,也就是在步骤06中编写的新的串口驱动写数据函数;
步骤44、调用du_set_flag系统函数,设置driver_upgrading_flag为FALSE,通知任务驱动程序升级完毕,可以访问驱动程序的接口函数。此时,若有任务要访问驱动程序函数将不会被挂起;
步骤45、在升级程序完成之前,升级工具需调用du_remove_waitq系统函数,将挂在waitq_driver_upgrading等待队列的任务唤醒,即将任务从阻塞状态设为非阻塞状态,并从waitq_driver_upgrading队列上移除,等待系统调度执行。至此,驱动程序动态升级工具执行完成。
Claims (6)
1、一种嵌入式操作系统驱动程序动态升级方法,其特征在于包括如下步骤:
(1)在核心代码中为每一个驱动程序增设驱动程序入口处任务控制程序,所述任务控制程序设置有一个全局变量driver_upgrading_flag,通过其取值为TRUE或FALSE来表明当前驱动程序是否正在执行动态升级过程,并初始化为FALSE;
(2)设置升级标志driver_upgrading_flag的取值为TRUE,从而将访问该驱动程序的任务挂起,并插入到等待队列waitq_driver_upgrading中;
(3)将升级文件编译并加载到内核地址空间;
(4)在驱动程序的函数入口处引入升级文件的地址处写入跳转指令,跳转地址为升级文件的函数入口地址;
(5)设置升级标志driver_upgrading_flag的取值为FALSE,将访问该驱动程序而被挂起的任务唤醒,恢复运行。
2、根据权利要求1所述的嵌入式操作系统驱动程序动态升级方法,其特征在于步骤(1)所述任务控制程序当系统任务调用驱动程序时,判断升级标志driver_upgrading_flag的取值,如果为FALSE,则让系统任务调用驱动程序,如果为TURE,则将系统任务挂起到等待队列waitq_driver_upgrading中。
3、根据权利要求1或2所述的嵌入式操作系统驱动程序动态升级方法,其特征在于在步骤(3)中,升级文件包括编写的新的驱动程序接口函数。
4、根据权利要求3所述的嵌入式操作系统驱动程序动态升级方法,其特征在于所述步骤(3)只允许特权用户操作。
5、根据权利要求4所述的嵌入式操作系统驱动程序动态升级方法,其特征在于步骤(3)的升级文件加载过程通过升级文件代码的连接解析,与操作系统核心形成一个可执行的整体。
6、根据权利要求5所述的嵌入式操作系统驱动程序动态升级方法,其特征在于所述步骤(4)还通过编译操作系统源代码生成可执行映像,以提取驱动程序函数名与入口地址对照表。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100373534A CN100465893C (zh) | 2006-08-29 | 2006-08-29 | 一种嵌入式操作系统驱动程序动态升级方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100373534A CN100465893C (zh) | 2006-08-29 | 2006-08-29 | 一种嵌入式操作系统驱动程序动态升级方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1912833A true CN1912833A (zh) | 2007-02-14 |
CN100465893C CN100465893C (zh) | 2009-03-04 |
Family
ID=37721776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100373534A Expired - Fee Related CN100465893C (zh) | 2006-08-29 | 2006-08-29 | 一种嵌入式操作系统驱动程序动态升级方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100465893C (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011000279A1 (zh) * | 2009-06-29 | 2011-01-06 | 中兴通讯股份有限公司 | 用于软件进行动态升级与控制的生成补丁方法及其装置 |
CN101615129B (zh) * | 2009-07-29 | 2013-03-27 | 中兴通讯股份有限公司 | 应用于分布式系统中的升级方法及版本管理客户端 |
CN104298516A (zh) * | 2013-07-18 | 2015-01-21 | 京瓷办公信息系统株式会社 | 电子设备以及挂起控制方法 |
CN105652813A (zh) * | 2014-11-13 | 2016-06-08 | 沈阳高精数控智能技术股份有限公司 | 一种基于AM335X处理器构建嵌入式实时EtherCAT主站的方法 |
CN107122216A (zh) * | 2017-05-19 | 2017-09-01 | 北京计算机技术及应用研究所 | 一种嵌入式实时操作系统动态加载方法 |
CN108304200A (zh) * | 2017-01-12 | 2018-07-20 | 阿里巴巴集团控股有限公司 | 一种驱动程序升级的方法、装置以及电子设备 |
WO2018176733A1 (zh) * | 2017-03-30 | 2018-10-04 | 百富计算机技术(深圳)有限公司 | 固件升级方法、终端和计算机可读非易失性存储介质 |
CN110471921A (zh) * | 2019-08-08 | 2019-11-19 | 杭州复杂美科技有限公司 | 一种智能合约配置、调用和更新方法、设备及存储介质 |
CN112579133A (zh) * | 2020-12-29 | 2021-03-30 | 北京深思数盾科技股份有限公司 | 固件程序的更新方法、装置、存储介质及电子设备 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102982277A (zh) * | 2012-12-24 | 2013-03-20 | 广东威创视讯科技股份有限公司 | 一种实现嵌入式系统软件补丁的方法和系统 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6658489B1 (en) * | 2000-03-29 | 2003-12-02 | International Business Machines Corporation | Method for replacing a device driver during system operation |
US7251812B1 (en) * | 2001-10-31 | 2007-07-31 | Microsoft Corporation | Dynamic software update |
CN1266595C (zh) * | 2002-06-28 | 2006-07-26 | 联想(北京)有限公司 | 一种嵌入式操作系统半开放自动升级的方法 |
CN1315067C (zh) * | 2003-09-24 | 2007-05-09 | 联想(北京)有限公司 | 具有内置驱动程序管理功能的外围设备及其管理方法 |
US20060070089A1 (en) * | 2004-08-20 | 2006-03-30 | Shahid Shoaib | Method and apparatus for dynamic replacement of device drivers in the operating system (OS) kernel |
-
2006
- 2006-08-29 CN CNB2006100373534A patent/CN100465893C/zh not_active Expired - Fee Related
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011000279A1 (zh) * | 2009-06-29 | 2011-01-06 | 中兴通讯股份有限公司 | 用于软件进行动态升级与控制的生成补丁方法及其装置 |
CN101937340B (zh) * | 2009-06-29 | 2014-11-05 | 中兴通讯股份有限公司 | 使用补丁对软件进行动态升级与控制的方法和装置 |
CN101615129B (zh) * | 2009-07-29 | 2013-03-27 | 中兴通讯股份有限公司 | 应用于分布式系统中的升级方法及版本管理客户端 |
CN104298516B (zh) * | 2013-07-18 | 2017-12-08 | 京瓷办公信息系统株式会社 | 电子设备以及挂起控制方法 |
CN104298516A (zh) * | 2013-07-18 | 2015-01-21 | 京瓷办公信息系统株式会社 | 电子设备以及挂起控制方法 |
CN105652813A (zh) * | 2014-11-13 | 2016-06-08 | 沈阳高精数控智能技术股份有限公司 | 一种基于AM335X处理器构建嵌入式实时EtherCAT主站的方法 |
CN105652813B (zh) * | 2014-11-13 | 2018-08-14 | 沈阳高精数控智能技术股份有限公司 | 一种基于AM335X处理器构建嵌入式实时EtherCAT主站的方法 |
CN108304200A (zh) * | 2017-01-12 | 2018-07-20 | 阿里巴巴集团控股有限公司 | 一种驱动程序升级的方法、装置以及电子设备 |
CN108304200B (zh) * | 2017-01-12 | 2022-02-22 | 阿里巴巴集团控股有限公司 | 一种驱动程序升级的方法、装置以及电子设备 |
WO2018176733A1 (zh) * | 2017-03-30 | 2018-10-04 | 百富计算机技术(深圳)有限公司 | 固件升级方法、终端和计算机可读非易失性存储介质 |
CN107122216A (zh) * | 2017-05-19 | 2017-09-01 | 北京计算机技术及应用研究所 | 一种嵌入式实时操作系统动态加载方法 |
CN107122216B (zh) * | 2017-05-19 | 2020-06-16 | 北京计算机技术及应用研究所 | 一种嵌入式实时操作系统动态加载方法 |
CN110471921A (zh) * | 2019-08-08 | 2019-11-19 | 杭州复杂美科技有限公司 | 一种智能合约配置、调用和更新方法、设备及存储介质 |
CN112579133A (zh) * | 2020-12-29 | 2021-03-30 | 北京深思数盾科技股份有限公司 | 固件程序的更新方法、装置、存储介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN100465893C (zh) | 2009-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1912833A (zh) | 一种嵌入式操作系统驱动程序动态升级方法 | |
US7979869B2 (en) | Method and system for performing I/O operations using a hypervisor | |
US7103723B2 (en) | Priority-based code cache management | |
CN100432931C (zh) | 嵌入式系统动态补丁长跳转的实现方法 | |
CN1222873C (zh) | 模块化的bios更新机制 | |
US6834385B2 (en) | System and method for utilizing dispatch queues in a multiprocessor data processing system | |
CN1975677A (zh) | 用于提供无上下文切换属性的方法和系统 | |
CN101059783A (zh) | 事务型存储器的虚拟化 | |
US11436048B2 (en) | Method of managing task dependencies at runtime in a parallel computing system of a hardware processing system and a hardware acceleration processor | |
CN100339830C (zh) | 一种更新软件的方法 | |
CN1961292A (zh) | 用于受管运行时环境的线程同步方法和装置 | |
CN1710535A (zh) | 一种gis应用系统及其开发方法 | |
CN1924815A (zh) | 用于在子上下文之间控制存储器访问的装置、系统和方法 | |
CN102279765A (zh) | 预编译托存托管代码 | |
CN1864131A (zh) | 处置在基于跟踪缓存的处理器中的异常指令的系统及方法 | |
CN1534457A (zh) | 增强的运行时间主机支持 | |
CN1725182A (zh) | 更新逻辑分区计算机系统的输入输出能力的装置和方法 | |
CN1386224A (zh) | 使非易失性存储器作为数据存储/处理设备运转时能执行代码的系统和方法 | |
CN1808386A (zh) | 处理多线程/多任务/多处理器的方法 | |
CN1791860A (zh) | 用于在受控运行时环境中恢复同步到面向对象的软件应用的装置和方法 | |
CN1728106A (zh) | 一种应用程序故障的定位方法 | |
CN101048767A (zh) | 动态资源分配 | |
CN1282085C (zh) | 一种嵌入式系统多任务并发调试的方法 | |
CN1783016A (zh) | 计算机系统 | |
CN1786910A (zh) | 一种bios在线升级方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090304 Termination date: 20150829 |
|
EXPY | Termination of patent right or utility model |