CN101776990B - 固件扩展方法以及固件生成器 - Google Patents
固件扩展方法以及固件生成器 Download PDFInfo
- Publication number
- CN101776990B CN101776990B CN2009102233128A CN200910223312A CN101776990B CN 101776990 B CN101776990 B CN 101776990B CN 2009102233128 A CN2009102233128 A CN 2009102233128A CN 200910223312 A CN200910223312 A CN 200910223312A CN 101776990 B CN101776990 B CN 101776990B
- Authority
- CN
- China
- Prior art keywords
- firmware image
- firmware
- expansion
- benchmark
- image
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/54—Link editing before load time
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4482—Procedural
- G06F9/4484—Executing subprograms
- G06F9/4486—Formation of subprogram jump address
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30138—Extension of register space, e.g. register cache
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种固件扩展方法以及固件生成器,用于嵌入式系统,固件扩展方法包括:提供基准固件映像和与所述基准固件映像相关的头文件;根据所述头文件生成扩展固件映像,所述扩展固件映像包括一个或多个扩展功能;从所述扩展固件映像中产生回调表,所述回调表包括指向所述扩展固件映像中所述扩展功能的入口的指针;以及合并所述基准固件映像、所述扩展固件映像和所述回调表,以产生合并的固件映像。本发明所提供的固件扩展方法以及固件生成器,无需上游供货商提供基准固件映像的源代码,即可进行固件扩展,能够保护可能涉及硬件设计相关机密信息的源代码。
Description
技术领域
本发明有关于固件扩展(firmware extension),更具体地,有关于往基准固件映像(baseline firmware image)中增加使用者定制功能且不影响基准固件源代码的方法。
背景技术
在产品的生产线上通常需要固件扩展,尤其在上游供货商和下游供货商之间。上游供货商通常提供与基准固件映像捆绑在一起的硬件,当需要在单个嵌入式系统中部署各种附加应用时,基准固件映像仅仅能提供基本功能,而无法执行变化的功能。因此,下游供货商需要在售出产品前进一步修改基准固件映像以提供附加的功能。传统上,修改基准固件映像的功能时需要源代码,然而上游供货商通常不希望释放源代码,因为其可能涉及到与硬件设计相关的机密信息。
图1为传统的固件修改的流程图。步骤101中,上游供货商释放基准固件映像的源代码,包括头文件(header file)、库和目标文件(object file)。步骤103中,下游供货商修改源代码以完成硬件的扩展功能。步骤103中,从修改后的源代码中编译修改的固件映像,其中原始的固件映像被替代。由于头文件、库和目标文件包含不期望被影响到的机密信息,因此有必要提出一种高级固件扩展方法。
发明内容
有鉴于此,本发明提供一种固件扩展方法以及一种固件生成器。
根据本发明之一实施例,提供一种固件扩展方法,用于嵌入式系统,所述方法包括:提供基准固件映像和与所述基准固件映像相关的头文件;根据所述头文件生成扩展固件映像,所述扩展固件映像包括一个或多个扩展功能;从所述扩展固件映像中产生回调表,所述回调表包括指向所述扩展固件映像中所述扩展功能的入口的指针;以及合并所述基准固件映像、所述扩展固件映像和所述回调表,以产生合并的固件映像。
根据本发明之另一实施例,提供一种固件生成器,用于嵌入式系统中基准固件映像功能的扩展,所述固件生成器包括:编译器,根据与所述基准固件映像相关的头文件,编译一个或多个扩展功能的源代码为扩展固件映像;以及构建模块,从所述扩展固件映像中产生回调表,并合并所述扩展固件映像、所述基准固件映像和所述回调表,以产生合并的固件映像,其中所述回调表包括指向所述扩展固件映像中所述扩展功能的入口的指针。
根据本发明之另一实施例,提供一种固件生成器,用于嵌入式系统中基准固件映像功能的扩展,所述固件生成器包括:编译器,根据与所述基准固件映像相关的头文件,编译一个或多个扩展功能的源代码为扩展固件映像,并从所述扩展固件映像中产生回调表,其中所述回调表包括指向所述扩展固件映像中所述扩展功能的入口的指针;以及构建模块,合并所述扩展固件映像、所述基准固件映像和所述回调表,产生合并的固件映像。
本发明所提供的固件扩展方法以及固件生成器,无需上游供货商提供基准固件映像的源代码,即可进行固件扩展,能够保护可能涉及硬件设计相关机密信息的源代码。
附图说明
图1为传统的固件修改的流程图。
图2a为合并的固件映像的实施例。
图2b显示了基于图2a的基准固件映像和符号表的实施例。
图2c显示了基于图2a的扩展固件映像和回调表的实施例。
图3a显示了固件生成器的实施例。
图3b为根据本发明固件扩展方法的流程图。
图4为应用合并固件的实施例的流程图。
具体实施方式
为了让本发明目的、特征、及优点能更明显易懂,下文特举较佳实施例做详细说明。实施例是为说明本发明之用,并非用以限制本发明。本发明的保护范围以所附申请专利权利要求为准。
图2a为合并的(merged)固件映像的实施例。合并的固件映像200包括基准固件映像210和扩展固件映像220,两者通过回调表(callback table)222连接。基准固件映像210由上游供货商提供,且在与扩展固件映像220合并时,并不会受到影响(uncompromised)。不会受到影响即是指,通过各种已知的码保护技术,基准固件映像210是可执行的,但是却难以通过逆向工程(reverse engineering)进行反编译(decompiled)。同时,基于开放的标准产生扩展固件映像220,允许下游供货商完成附加功能。最初,基准固件映像210储存于嵌入式系统的内存设备(图中未显示),且内存设备的容量有限。基准固件映像210保持在相同的位置,而扩展固件映像220和回调表222可储存于内存设备的空闲空间(free space)。为说明在内存设备中有多少可用容量,上游供货商可提供配置字段202,用于记录内存配置参数,例如空闲空间的大小和扩展固件映像220的基址(base address)。在本实施例中,基准固件映像210可周期性或条件性地根据扩展指针204切换到回调表222,使得能够加载并执行扩展固件映像220中的扩展功能。特别的,回调表222的入口地址可以是内存设备中的绝对地址,并且当合并扩展固件映像220和回调表222时,即获取并将入口地址写入至扩展指针204。
图2b显示了基于图2a的基准固件映像210和符号表(symbol table)212的实施例。基准固件映像210可包括扩展固件映像220所需的多个基本应用程序接口(Application Program Interface,API)功能。API功能可以是硬件抽象化层(hardware abstraction layer)功能,例如I/O、DMA、编译码器、DSP和其它硬件驱动器,也可以是软件库,例如标准C/C++、数学、科学和工程子程序(sub-routines)。如图2b所示,API功能API1、API2...APIn分别储存在绝对地址ADDR1、ADDR2...ADDRn。为了共享API功能,上游供货商提供符号表212,符号表212用于指示API功能的入口地址以及头文件#H,其中头文件#H揭示API功能定义。藉此,在编译时间和运行时间,扩展功能即可参考API功能。
图2c显示了基于图2a的的扩展固件映像220和回调表222的实施例。扩展固件映像220由下游供货商提供,通常包括一个或多个扩展功能FUNC1、FUNC2...FUNCn。当扩展固件映像220从下游供货商源代码进行编译时,每个功能有一相对的入口地址PTR1、PTR2...PTRn。建立回调表222以储存入口地址,其中当开始相应的中断时,则加载并执行扩展功能。并且,回调表222可包括使能标志224,以标示扩展功能是否被使能。如果执行基准固件映像210读取使能标志224时,其中扩展功能被标示为失能(disabled),则不会加载和执行扩展固件映像220中的功能。回调表222可进一步包含备用空间用于储存与扩展功能相关的使用者定制的配置。
图3a显示了固件生成器300的实施例,通过该固件生成器300,从基准固件映像210、源代码#SRC和头文件#H可产生图2a中的合并的固件映像200。固件生成器300包括构建模块310和编译器320。基于头文件#H,编译器320编译与基准固件映像210相关的源代码#SRC。在编译期间,也使用配置字段202和符号表222中的信息。当获得扩展固件映像220后,从扩展固件映像220中产生图2c所示的回调表222,包括指向扩展固件映像220中扩展功能入口的指针。构建模块310可于合并扩展固件映像220和基准固件映像210的同时产生回调表222。另一种方法,由于回调表222包含与扩展固件映像220相关的信息,因此编译扩展固件映像220的时候,也可由编译器320产生回调表222。产生回调表222后,构建模块310接着将回调表222与基准固件映像210和扩展固件映像220合并,以产生合并的固件映像200。
如上所述,基准固件映像210具有配置字段202,配置字段202包括内存配置参数(例如用于储存扩展固件映像的可用容量)和扩展固件映像的基址。通过内存配置参数,编译器320可控制扩展固件映像220的大小并正确获取扩展固件映像220中每个功能的入口地址。扩展指针204是用于储存回调表222入口的保护区域,回调表222中的使能标志224定义了扩展功能是否被使能。基准固件映像210可周期性地或者有条件地触发子功能调用(sub-function call),以经由扩展指针204检查使能标志224。举例而言,可配置定时器,以便周期性执行扩展功能。也可定义特定事件或者中断以触发子功能调用,并且如果使能标志224将扩展功能使能,则加载并执行该特定事件或者中断。
基准固件映像210可包括多个API功能,并采用头文件#H揭示API功能定义。上游供货商提供符号表212,符号表212包括指向API功能入口的指针。符号表212可以是基准固件映像210的一部分或者和头文件#H一样,是独立文件。下游供货商生产源代码#SRC时可包含头文件#H,并且编译器320接着编译源代码#SRC与头文件#H以及符号表212,产生扩展固件映像220,以使API功能可以为扩展功能所用。基本上,固件生成器300可以是在产品制造阶段采用的软件模块。
图3b为根据本发明固件扩展方法的流程图。当下游供货商需要往原始基准固件映像中增加新的功能时,尤其需要采用固件扩展方法,且该方法不需要上游供货商的任何源代码。步骤301中,下游供货商开始固件扩展程序。步骤303中,从上游供货商处获取基准固件映像210、预定义的配置字段202、头文件#H以及符号表212。保留扩展指针204,以便储存之后所决定的值。步骤305中,下游供货商应用头文件#H产生一个或多个扩展功能的源代码#SRC。步骤307中,以头文件#H作参考,将源代码#SRC编译为扩展固件映像220。步骤309中,从扩展固件映像220中建立回调表222,回调表222包括每个扩展功能的入口地址。步骤311中,基准固件映像210、扩展固件映像220和回调表222合并为一个合并的固件映像200。合并的固件映像200可储存在与基准固件映像210相同的内存设备中,其中基准固件映像210被替代。步骤313中,基准固件映像210包含的扩展指针204,其内容被更新为回调表222的入口地址(藉此可参考回调表222),以便当基准固件映像210中的子功能调用被有条件地触发时,以加载扩展固件映像220中的扩展功能。
图4为应用合并的固件的实施例流程图。由于在基准固件映像210中没有提前定义扩展固件映像220中的扩展功能的主体(body),因此需要触发扩展功能的机制。步骤401中,启动采用合并的固件映像200的嵌入式系统。步骤403中,执行基准固件映像210。请注意,在基准固件映像210中提前完成子功能调用以支持固件扩展。步骤405中,周期性或有条件地执行基准固件映像210中的子功能调用,以便根据储存于使能标志224中的值,确定扩展固件映像220是否被使能。举例而言,可由特定事件或中断触发子功能调用。如果扩展固件映像220没有被使能,则子功能调用回到零(null),并且程序回到步骤403。否则,如果扩展固件映像220被使能,则在步骤407中,子功能调用参考回调表222,以便从扩展固件映像220中加载执行相应的扩展功能。当扩展功能执行完成后,程序回到步骤403。通常,扩展固件映像220与基准固件映像210共享相同的堆栈内存。合并的固件映像200可从内存设备中直接读取并由处理器执行,或者在执行前加载至内存设备。基准固件映像210和扩展固件映像220可同时共享一些全局变量(global variable),这些全局变量可与API功能一同储存在符号表212中。
本发明虽以较佳实施例描述,然而并不限于此。各种变形、修改和所述实施例各种特征的组合均属于本发明所主张的范围,本发明的权利范围应以申请专利权利要求为准。
Claims (18)
1.一种固件扩展方法,用于嵌入式系统,所述方法包括:
提供基准固件映像和与所述基准固件映像相关的头文件;
根据所述头文件生成扩展固件映像,所述扩展固件映像包括一个或多个扩展功能;
从所述扩展固件映像中产生回调表,所述回调表包括指向所述扩展固件映像中所述扩展功能的入口的指针;以及
合并所述基准固件映像、所述扩展固件映像和所述回调表,以产生合并的固件映像。
2.根据权利要求1所述的固件扩展方法,其特征在于,进一步包括:
提供内存配置参数,包括用于储存所述扩展固件映像的可用容量和所述扩展固件映像的基址;以及
根据所述内存配置参数执行所述合并的步骤。
3.根据权利要求2所述的固件扩展方法,其特征在于,所述合并的步骤包括将所述回调表的入口储存至扩展指针。
4.根据权利要求3所述的固件扩展方法,其特征在于:
所述回调表包括使能标志,用于指示所述扩展功能是否被使能;以及
根据所述扩展指针和所述使能标志,通过所述回调表,所述基准固件映像有条件地加载并执行所述扩展功能。
5.根据权利要求1所述的固件扩展方法,其特征在于:
所述基准固件映像包括多个应用程序接口功能;以及
所述头文件揭示所述应用程序接口功能,所述应用程序接口功能可应用于所述扩展功能。
6.根据权利要求5所述的固件扩展方法,其特征在于,所述扩展固件映像的产生包括:
提供所述扩展功能的源代码;
提供符号表,所述符号表包括指向所述应用程序接口功能的入口的指针;以及
编译所述源代码与所述头文件以及所述符号表,产生所述扩展固件映像。
7.一种固件生成器,用于嵌入式系统中基准固件映像功能的扩展,所述固件生成器包括:
编译器,根据与所述基准固件映像相关的头文件,编译一个或多个扩展功能的源代码为扩展固件映像;以及
构建模块,从所述扩展固件映像中产生回调表,并合并所述扩展固件映像、所述基准固件映像和所述回调表,以产生合并的固件映像,其中所述回调表包括指向所述扩展固件映像中所述扩展功能的入口的指针。
8.根据权利要求7所述的固件生成器,其特征在于:
所述基准固件映像包括内存配置参数,所述内存配置参数包括用于储存所述扩展固件映像的可用容量和所述扩展固件映像的基址;以及
所述构建模块根据所述内存配置参数合并所述基准固件映像、所述扩展固件映像和所述回调表。
9.根据权利要求8所述的固件生成器,其特征在于:
所述基准固件映像包括扩展指针;以及
所述构建模块将所述回调表的入口储存至所述扩展指针。
10.根据权利要求9所述的固件生成器,其特征在于:
所述回调表包括使能标志,用于指示所述扩展功能是否被使能;以及
根据所述扩展指针和所述使能标志,通过所述回调表,所述基准固件映像有条件地加载并执行所述扩展功能。
11.根据权利要求7所述的固件生成器,其特征在于,:
所述基准固件映像包括多个应用程序接口功能;以及
所述头文件揭示所述应用程序接口功能,所述应用程序接口功能可应用于所述扩展功能。
12.根据权利要求11所述的固件生成器,其特征在于:
所述编译器编译所述源代码和所述头文件以及符号表,产生所述扩展固件映像;以及
所述符号表包括指向所述应用程序接口功能的入口的指针。
13.一种固件生成器,用于嵌入式系统中基准固件映像功能的扩展,所述固件生成器包括:
编译器,根据与所述基准固件映像相关的头文件,编译一个或多个扩展功能的源代码为扩展固件映像,并从所述扩展固件映像中产生回调表,其中所述回调表包括指向所述扩展固件映像中所述扩展功能的入口的指针;以及
构建模块,合并所述扩展固件映像、所述基准固件映像和所述回调表,产生合并的固件映像。
14.根据权利要求13所述的固件生成器,其特征在于:
所述基准固件映像包括内存配置参数,所述内存配置参数包括用于储存所述扩展固件映像的可用容量和所述扩展固件映像的基址;以及
所述构建模块根据所述内存配置参数合并所述基准固件映像、所述扩展固件映像和所述回调表。
15.根据权利要求14所述的固件生成器,其特征在于:
所述基准固件映像包括扩展指针;以及
所述构建模块将所述回调表的入口储存至所述扩展指针。
16.根据权利要求15所述的固件生成器,其特征在于:
所述回调表包括使能标志,用于指示所述扩展功能是否被使能;以及
根据所述扩展指针和所述使能标志,通过所述回调表,所述基准固件映像有条件地加载并执行所述扩展功能。
17.根据权利要求13所述的固件生成器,其特征在于:
所述基准固件映像包括多个应用程序接口功能;以及
所述头文件揭示所述应用程序接口功能,所述应用程序接口功能可应用于所述扩展功能。
18.根据权利要求17所述的固件生成器,其特征在于:
所述编译器编译所述源代码和所述头文件以及符号表,产生所述扩展固件映像;以及
所述符号表包括指向所述应用程序接口功能的入口的指针。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/352,692 | 2009-01-13 | ||
US12/352,692 US8392895B2 (en) | 2009-01-13 | 2009-01-13 | Firmware extension method and firmware builder |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101776990A CN101776990A (zh) | 2010-07-14 |
CN101776990B true CN101776990B (zh) | 2013-04-03 |
Family
ID=42319950
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2009102233128A Active CN101776990B (zh) | 2009-01-13 | 2009-11-17 | 固件扩展方法以及固件生成器 |
Country Status (3)
Country | Link |
---|---|
US (2) | US8392895B2 (zh) |
CN (1) | CN101776990B (zh) |
TW (1) | TWI479416B (zh) |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8176307B2 (en) | 2009-04-13 | 2012-05-08 | Broadcom Corporation | Method and system for post-build modification of firmware binaries to support different hardware configurations |
EP2378417A1 (en) * | 2010-04-16 | 2011-10-19 | Accenture Global Services Limited | Extending the functionality of an embedded system |
US9378008B2 (en) * | 2010-12-20 | 2016-06-28 | Oracle International Corporation | Method and system for creating, applying, and removing a software fix |
CN102831003A (zh) * | 2011-06-14 | 2012-12-19 | 上海三旗通信科技股份有限公司 | Mtk编译环境辅助工具集系统 |
US8984502B2 (en) | 2011-10-28 | 2015-03-17 | Hewlett-Packard Development Company, L.P. | Systems and methods for composing or decomposing a composite image for firmware update images |
WO2013100992A1 (en) * | 2011-12-28 | 2013-07-04 | Intel Corporation | Context-state management |
US9348618B2 (en) | 2012-03-14 | 2016-05-24 | Aclara Meters Llc | Systems and methods for enhancing firmware |
CN102855151B (zh) * | 2012-08-21 | 2016-06-08 | 武汉电信器件有限公司 | 不打断业务的光模块固件在应用升级方法 |
BR112015016953A2 (pt) * | 2013-01-15 | 2017-07-11 | Hewlett Packard Development Co | atualização de firmware dinâmico |
US10205750B2 (en) * | 2013-03-13 | 2019-02-12 | Intel Corporation | Policy-based secure web boot |
US9104504B2 (en) * | 2013-03-13 | 2015-08-11 | Dell Products Lp | Systems and methods for embedded shared libraries in an executable image |
WO2014158128A1 (en) | 2013-03-25 | 2014-10-02 | Hewlett-Packard Development Company, L.P. | Extensible firmware abstraction |
US9116774B2 (en) * | 2013-05-14 | 2015-08-25 | Sandisk Technologies Inc. | Firmware updates for multiple product configurations |
TWI493462B (zh) * | 2013-05-21 | 2015-07-21 | Transcend Information Inc | 一種嵌入式系統裝置之韌體功能擴充方法 |
US9535676B1 (en) | 2014-04-04 | 2017-01-03 | Seagate Technology Llc | Remote feature activation |
US9584498B1 (en) | 2014-04-04 | 2017-02-28 | Seagate Technology Llc | Feature activation using near field communication |
US9838250B1 (en) | 2014-04-04 | 2017-12-05 | Seagate Technology Llc | Recipient-specific feature activation |
US9633330B1 (en) | 2014-04-04 | 2017-04-25 | Seagate Technoglogy LLC | Late stage SKU assignment |
US9430200B1 (en) * | 2015-06-04 | 2016-08-30 | Microsoft Technology Licensing Llc | Cross-library framework architecture feature sets |
US10445081B2 (en) * | 2016-07-28 | 2019-10-15 | American Megatrends International, Llc | Techniques of automatically generating dependencies for applications in embedded systems |
US10621353B2 (en) * | 2016-12-28 | 2020-04-14 | Intel Corporation | Firmware loading for exploit resistance |
CN107341031B (zh) * | 2017-06-20 | 2020-12-15 | 广州慧睿思通信息科技有限公司 | 一种在dsp固件里加入固件生成信息的方法及装置 |
CN107748680B (zh) * | 2017-09-28 | 2021-03-16 | 努比亚技术有限公司 | 一种内核配置方法、终端及计算机可读存储介质 |
CN107861729B (zh) * | 2017-11-08 | 2021-08-24 | 中国信息安全测评中心 | 一种固件装载基址的定位方法、装置及电子设备 |
CN108595199A (zh) * | 2018-04-19 | 2018-09-28 | 济南浪潮高新科技投资发展有限公司 | 一种一键升级嵌入式系统固件的方法 |
CN112579133A (zh) * | 2020-12-29 | 2021-03-30 | 北京深思数盾科技股份有限公司 | 固件程序的更新方法、装置、存储介质及电子设备 |
US11194556B1 (en) * | 2021-05-11 | 2021-12-07 | Apex.AI, Inc. | Deterministic memory allocation for real-time applications |
CN113794589B (zh) * | 2021-08-31 | 2023-11-07 | 新华三技术有限公司成都分公司 | 一种ac固件的打包方法、ap的升级方法和ac |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7007159B2 (en) * | 2002-05-10 | 2006-02-28 | Intel Corporation | System and method for loading and integrating a firmware extension onto executable base system firmware during initialization |
CN1797336A (zh) * | 2004-12-28 | 2006-07-05 | 光宝科技股份有限公司 | 可自动更新嵌入式系统的系统软件的装置及方法 |
CN1904853A (zh) * | 2006-08-21 | 2007-01-31 | 北京中星微电子有限公司 | 一种嵌入式软件装载调试方法及其系统 |
CN101339507A (zh) * | 2008-08-15 | 2009-01-07 | 中兴通讯股份有限公司 | 一种生成嵌入式程序运行符号表的方法 |
Family Cites Families (32)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6553426B2 (en) * | 1997-10-06 | 2003-04-22 | Sun Microsystems, Inc. | Method apparatus for implementing multiple return sites |
US6219834B1 (en) * | 1998-05-15 | 2001-04-17 | International Business Machines Corporation | Extensible compiler and method |
US6954923B1 (en) * | 1999-01-28 | 2005-10-11 | Ati International Srl | Recording classification of instructions executed by a computer |
US20040030768A1 (en) * | 1999-05-25 | 2004-02-12 | Suban Krishnamoorthy | Unified system and method for downloading code to heterogeneous devices in distributed storage area networks |
JP2002244874A (ja) * | 2001-02-15 | 2002-08-30 | Toshiba Corp | 情報処理装置およびファームウェア更新方法 |
US6848046B2 (en) * | 2001-05-11 | 2005-01-25 | Intel Corporation | SMM loader and execution mechanism for component software for multiple architectures |
US20030135848A1 (en) * | 2001-12-21 | 2003-07-17 | Hitachi, Ltd. | Use of multiple procedure entry and/or exit points to improve instruction scheduling |
US7752599B2 (en) * | 2003-02-25 | 2010-07-06 | Bea Systems Inc. | Systems and methods extending an existing programming language with constructs |
US7305666B2 (en) * | 2003-07-23 | 2007-12-04 | Microsoft Corporation | Description language for an extensible compiler and tools infrastructure |
US7373642B2 (en) * | 2003-07-29 | 2008-05-13 | Stretch, Inc. | Defining instruction extensions in a standard programming language |
US7856624B2 (en) * | 2003-09-15 | 2010-12-21 | Thomas Plum | Automated safe secure techniques for eliminating undefined behavior in computer software |
JP4157016B2 (ja) * | 2003-11-05 | 2008-09-24 | 株式会社東芝 | コンパイラ装置及びコンパイル方法 |
US7958330B2 (en) * | 2004-02-02 | 2011-06-07 | Fujitsu Limited | Compiler program, compiler program recording medium, compile method, and program processing system |
US7676800B2 (en) * | 2004-02-20 | 2010-03-09 | Intel Corporation | Method and apparatus for reducing the storage overhead of portable executable (PE) images |
US7694291B2 (en) * | 2004-04-06 | 2010-04-06 | Hewlett-Packard Development Company, L.P. | Build optimizer tool for efficient management of software builds for mobile devices |
US7853742B2 (en) * | 2004-04-26 | 2010-12-14 | Intel Corporation | System and method to conditionally shrink an executable module |
US20060184924A1 (en) * | 2004-12-14 | 2006-08-17 | Aten International Co., Ltd. | Intelligent platform management interface firmware architecture and method of building the same |
WO2006095434A1 (ja) * | 2005-03-10 | 2006-09-14 | Fujitsu Limited | ソフトウェア構築プログラム、該プログラムを記録した記録媒体、ソフトウェア構築方法、およびソフトウェア構築システム |
US8271964B2 (en) * | 2005-05-16 | 2012-09-18 | Microsoft Corporation | Extensible software development services |
US7533368B1 (en) * | 2005-06-21 | 2009-05-12 | Apple Inc. | User interface driven by dynamic state changes |
US7809918B1 (en) * | 2005-07-22 | 2010-10-05 | American Megatrends, Inc. | Method, apparatus, and computer-readable medium for providing physical memory management functions |
JP4559937B2 (ja) * | 2005-09-01 | 2010-10-13 | 株式会社東芝 | プログラム生成装置 |
JP2007310449A (ja) * | 2006-05-16 | 2007-11-29 | Fujitsu Ltd | ソフトウェア/ハードウェア協調設計のためのモデル生成プログラム、およびモデル生成方法 |
US20070300150A1 (en) * | 2006-06-22 | 2007-12-27 | Lantronix, Inc. | Building rich web site applications with an embedded device |
US20080052699A1 (en) * | 2006-08-02 | 2008-02-28 | Baker Steven T | Syncronized dual-processor firmware updates |
US7987458B2 (en) * | 2006-09-20 | 2011-07-26 | Intel Corporation | Method and system for firmware image size reduction |
US7984430B2 (en) * | 2006-09-27 | 2011-07-19 | Electronics And Telecommunications Research Institute | Parser framework using markup language |
TWI349882B (en) * | 2007-09-04 | 2011-10-01 | Quanta Comp Inc | Firmware update system and method for update the same |
US8245289B2 (en) * | 2007-11-09 | 2012-08-14 | International Business Machines Corporation | Methods and systems for preventing security breaches |
TWI358648B (en) * | 2007-11-29 | 2012-02-21 | Wistron Corp | A system for common compiler service based on the |
US9354864B2 (en) * | 2008-05-08 | 2016-05-31 | Dialogic Corporation | Package header system and method to facilitate streaming a single firmware file upgrade |
US8312447B2 (en) * | 2008-09-25 | 2012-11-13 | Microsoft Corporation | Managing updates using compiler and linker information |
-
2009
- 2009-01-13 US US12/352,692 patent/US8392895B2/en active Active
- 2009-11-10 TW TW098138024A patent/TWI479416B/zh active
- 2009-11-17 CN CN2009102233128A patent/CN101776990B/zh active Active
-
2013
- 2013-01-31 US US13/755,385 patent/US9207918B2/en active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7007159B2 (en) * | 2002-05-10 | 2006-02-28 | Intel Corporation | System and method for loading and integrating a firmware extension onto executable base system firmware during initialization |
CN1797336A (zh) * | 2004-12-28 | 2006-07-05 | 光宝科技股份有限公司 | 可自动更新嵌入式系统的系统软件的装置及方法 |
CN1904853A (zh) * | 2006-08-21 | 2007-01-31 | 北京中星微电子有限公司 | 一种嵌入式软件装载调试方法及其系统 |
CN101339507A (zh) * | 2008-08-15 | 2009-01-07 | 中兴通讯股份有限公司 | 一种生成嵌入式程序运行符号表的方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201027432A (en) | 2010-07-16 |
CN101776990A (zh) | 2010-07-14 |
US20130145353A1 (en) | 2013-06-06 |
US9207918B2 (en) | 2015-12-08 |
US8392895B2 (en) | 2013-03-05 |
TWI479416B (zh) | 2015-04-01 |
US20100180265A1 (en) | 2010-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101776990B (zh) | 固件扩展方法以及固件生成器 | |
US11687346B2 (en) | Providing code sections for matrix of arithmetic logic units in a processor | |
KR101318313B1 (ko) | 임베디드 플랫폼에서 프로그램을 동적 링크하는 방법 및 임베디드 플랫폼이 기록된 컴퓨터로 판독가능한 기록매체 | |
CN102236621B (zh) | 计算机接口信息配置系统及方法 | |
US8756590B2 (en) | Binding data parallel device source code | |
JP6317065B2 (ja) | 再構成可能プロセッサ及びそのコード変換装置及び方法 | |
KR20110073339A (ko) | 컴퓨터 플랫폼에서의 방법 및 컴퓨터 플랫폼 | |
US20040083462A1 (en) | Method and apparatus for creating and executing integrated executables in a heterogeneous architecture | |
GB2393809A (en) | Automatic configuration of a microprocessor | |
US20090293073A1 (en) | Automating asynchronous programming in single threaded systems | |
US20140229921A1 (en) | Method and System for Computer Assisted Hot-Tracing Mechanism | |
CN104461503A (zh) | 动态组成软件界面的方法与系统 | |
CA2822100A1 (en) | Extensible data parallel semantics | |
CN103514072A (zh) | 一种用于可视化编程的图形化业务的调试方法及装置 | |
JP2008117340A (ja) | プログラムのソースコード管理システム及びプログラムのソースコードの更新方法 | |
US7676774B2 (en) | System LSI verification system and system LSI verification method | |
JP5768627B2 (ja) | プログラマブルコントローラ、プログラム作成支援装置、デジタル制御プログラム、およびプログラム作成支援プログラム | |
JP5048949B2 (ja) | 非同期プログラムフローのモデリングを含むソフトウェアツール | |
Dissaux et al. | AADL behavioral annex | |
Neto et al. | Linux real-time framework for fusion devices | |
Salcic et al. | Reflix: A processor core for reactive embedded applications | |
JP5422963B2 (ja) | ソフトウェアの開発支援システム、開発支援方法およびプログラム | |
JP5716469B2 (ja) | ラッパープログラム及び集積回路装置 | |
Gomaa | A software design method for Ada based real time systems | |
EP2176761A1 (en) | Object model for transactional memory |
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 |