[发明专利]固件扩展方法以及固件生成器有效
申请号: | 200910223312.8 | 申请日: | 2009-11-17 |
公开(公告)号: | CN101776990A | 公开(公告)日: | 2010-07-14 |
发明(设计)人: | 蔡建良;丘伟源;蔡崇谚 | 申请(专利权)人: | 联发科技股份有限公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44;G06F9/45 |
代理公司: | 北京万慧达知识产权代理有限公司 11111 | 代理人: | 葛强;张一军 |
地址: | 中国台湾新竹科*** | 国省代码: | 中国台湾;71 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 扩展 方法 以及 生成器 | ||
技术领域
本发明有关于固件扩展(firmware extension),更具体地,有关于往基准固件映 像(baseline firmware image)中增加使用者定制功能且不影响基准固件源代码的 方法。
背景技术
在产品的生产线上通常需要固件扩展,尤其在上游供货商和下游供货商之 间。上游供货商通常提供与基准固件映像捆绑在一起的硬件,当需要在单个嵌 入式系统中部署各种附加应用时,基准固件映像仅仅能提供基本功能,而无法 执行变化的功能。因此,下游供货商需要在售出产品前进一步修改基准固件映 像以提供附加的功能。传统上,修改基准固件映像的功能时需要源代码,然而 上游供货商通常不希望释放源代码,因为其可能涉及到与硬件设计相关的机密 信息。
图1为传统的固件修改的流程图。步骤101中,上游供货商释放基准固件 映像的源代码,包括头文件(header file)、库和目标文件(object file)。步骤103中, 下游供货商修改源代码以完成硬件的扩展功能。步骤103中,从修改后的源代 码中编译修改的固件映像,其中原始的固件映像被替代。由于头文件、库和目 标文件包含不期望被影响到的机密信息,因此有必要提出一种高级固件扩展方 法。
发明内容
有鉴于此,本发明提供一种固件扩展方法以及一种固件生成器。
根据本发明之一实施例,提供一种固件扩展方法,用于嵌入式系统,所述 方法包括:提供基准固件映像和与所述基准固件映像相关的头文件;根据所述 头文件生成扩展固件映像,所述扩展固件映像包括一个或多个扩展功能;从所 述扩展固件映像中产生回调表,所述回调表包括指向所述扩展固件映像中所述扩 展功能的入口的指针;以及合并所述基准固件映像、所述扩展固件映像和所述回 调表,以产生合并的固件映像。
根据本发明之另一实施例,提供一种固件生成器,用于嵌入式系统中基准 固件映像功能的扩展,所述固件生成器包括:编译器,根据与所述基准固件映 像相关的头文件,编译一个或多个扩展功能的源代码为扩展固件映像;以及构 建模块,从所述扩展固件映像中产生回调表,并合并所述扩展固件映像、所述 基准固件映像和所述回调表,以产生合并的固件映像,其中所述回调表包括指 向所述扩展固件映像中所述扩展功能的入口的指针。
根据本发明之另一实施例,提供一种固件生成器,用于嵌入式系统中基准 固件映像功能的扩展,所述固件生成器包括:编译器,根据与所述基准固件映 像相关的头文件,编译一个或多个扩展功能的源代码为扩展固件映像,并从所 述扩展固件映像中产生回调表,其中所述回调表包括指向所述扩展固件映像中 所述扩展功能的入口的指针;以及构建模块,合并所述扩展固件映像、所述基 准固件映像和所述回调表,产生合并的固件映像。
本发明所提供的固件扩展方法以及固件生成器,无需上游供货商提供基准 固件映像的源代码,即可进行固件扩展,能够保护可能涉及硬件设计相关机密 信息的源代码。
附图说明
图1为传统的固件修改的流程图。
图2a为合并的固件映像的实施例。
图2b显示了基于图2a的基准固件映像和符号表的实施例。
图2c显示了基于图2a的扩展固件映像和回调表的实施例。
图3a显示了固件生成器的实施例。
图3b为根据本发明固件扩展方法的流程图。
图4为应用合并固件的实施例的流程图。
具体实施方式
为了让本发明目的、特征、及优点能更明显易懂,下文特举较佳实施例做 详细说明。实施例是为说明本发明之用,并非用以限制本发明。本发明的保护 范围以所附申请专利权利要求为准。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于联发科技股份有限公司,未经联发科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910223312.8/2.html,转载请声明来源钻瓜专利网。