[发明专利]一种ROM代码补丁运行方法和系统在审
申请号: | 201710469792.0 | 申请日: | 2017-06-20 |
公开(公告)号: | CN107391085A | 公开(公告)日: | 2017-11-24 |
发明(设计)人: | 余恒昌 | 申请(专利权)人: | 深圳芯邦科技股份有限公司 |
主分类号: | G06F9/26 | 分类号: | G06F9/26 |
代理公司: | 广州嘉权专利商标事务所有限公司44205 | 代理人: | 唐致明 |
地址: | 518057 广东省深圳市南山区*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 rom 代码 补丁 运行 方法 系统 | ||
技术领域
本发明涉及一种ROM代码补丁运行方法和系统,属于计算机领域。
背景技术
汇编语言,一种软件开发用的低级语言,用它编写出来的程序代码运行效率高,但存在可读性差等缺点,不适合开发大型软件工程;C语言,一种软件开发用的高级语言,用它编写出来的程序代码运行效率较高,可读性好,适合开发大型软件工程。
消费类电子产品更新换代快,并且消费者要求成本尽可能的低,产品面市速度快。而消费类电子产品所使用的专用智能控制芯片研发周期长,流片费用昂贵。智能控制芯片内部的微控制器运行着庞大的客户定制程序,为了控制成本,这些程序会被固化到廉价的ROM中。为了能够满足不断变化的市场需求,厂商会不断修改控制器的运行代码,代码更新后如果选择重新流片,则需要支付较高的费用而且等待较长的时间,这就造成了严重供需矛盾。
虽然ROM中的内容无法修改,但可以绕开ROM中的部分代码而执行RAM中的代码来实现功能的修改。这种做法在使用汇编语言的开发环境下实现起来比较方便,直接使用跳转指令即可,但在C语言的环境下无法使用跳转指令,从而很少被使用。
发明内容
为了解决上述问题,本发明通过提供一种ROM代码补丁运行方法和系统。
本发明采用的技术方案一方面为一种ROM代码补丁运行方法,适用于C语言环境,包括:为原始代码内的函数设置基于函数指针的接口,所述原始代码存储于ROM;从非易失性存储器读取补丁代码并将其存储于RAM;根据接口的函数指针选择读取原始代码或补丁代码并运行。
优选地,检查接口的ACK响应以检测是否存在非易失性存储器,如果出现ACK反馈则从中读取补丁数据,补丁数据包括配置信息和补丁代码,将补丁代码存储于RAM。
优选地,所述配置信息包括函数指针列表、待修改接口的数量和编号。
优选地,基于配置信息修改函数指针,其步骤包括读取待修改接口的数量和编号以对函数指针进行修改。
优选地,函数指针为空值时,选择读取原始代码并运行;函数指针为非空值时,选择读取补丁代码并运行。
本发明采用的技术方案另一方面为一种ROM代码补丁运行系统,用于实现上述方法,包括:编译器,用于为原始代码内的函数设置基于函数指针的接口;微处理器,用于从非易失性存储器读取补丁代码并将其存储于RAM,根据接口的函数指针选择读取原始代码或补丁代码并运行;ROM,用于存储原始代码;RAM,用于存储从非易失性存储器获取的补丁代码。
优选地,所述微处理器还用于检查接口的ACK响应以检测是否存在非易失性存储器,如果出现ACK反馈则从中读取补丁数据,补丁数据包括配置信息和补丁代码,将补丁代码存储于RAM。
优选地,所述配置信息包括函数指针列表、待修改接口的数量和编号。
优选地,所述微处理器还用于基于配置信息修改函数指针,其步骤包括读取待修改接口的数量和编号以对函数指针进行修改。
优选地,函数指针为空值时,选择读取原始代码并运行;函数指针为非空值时,选择读取补丁代码并运行。
本发明的有益效果为通过为存储于ROM的原始代码的函数预设函数指针型接口,当运行函数时,会根据函数指针的变量选择对应位置的原始代码或者补丁代码运行,能够在ROM环境下有效的导入补丁代码并使用。
附图说明
图1所示为基于本发明实施例的一种ROM代码补丁运行方法示意图。
具体实施方式
以下结合实施例对本发明进行说明。
基于发明的实施例1,如图1所示一种ROM代码补丁运行方法,适用于C语言环境,包括:为原始代码内的函数设置基于函数指针的接口,所述原始代码存储于ROM;从非易失性存储器读取补丁代码并将其存储于RAM;根据接口的函数指针选择读取原始代码或补丁代码并运行。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳芯邦科技股份有限公司,未经深圳芯邦科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710469792.0/2.html,转载请声明来源钻瓜专利网。