[发明专利]ROM程序升级系统及升级方法有效
申请号: | 201711277903.4 | 申请日: | 2017-12-06 |
公开(公告)号: | CN107894899B | 公开(公告)日: | 2021-04-06 |
发明(设计)人: | 倪亮;崔艳昌;王敏;梅张雄 | 申请(专利权)人: | 北京联盛德微电子有限责任公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65 |
代理公司: | 北京汇信合知识产权代理有限公司 11335 | 代理人: | 戴凤仪 |
地址: | 100142 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | rom 程序 升级 系统 方法 | ||
本发明公开了ROM程序升级系统及升级方法,包括:上位机、通信转换模块、主控芯片和外部Flash;上位机的RS232接口与通信转换模块相连,通信转换模块与主控芯片的UART接口相连,主控芯片的SPI接口与外部Flash相连,外部Flash用于写入打包好的升级文件;主控芯片包括RAM、内部Flash和ROM,ROM包含一个函数指针数组,各函数指针数组对应不同的ROM功能函数执行地址,系统运行时将ROM功能函数执行地址加载到RAM中;本发明同时支持由ROM空间跳转到内部Flash代码空间任意合法地址运行完成后返回ROM空间,可解决现有Flash坏块和程序完整性问题。
技术领域
本发明涉及ROM程序升级技术领域,尤其涉及ROM程序升级系统及升级方法。
背景技术
传统的ROM程序在芯片生产制造过程中就固化在芯片ROM存储器中,其主要功能是通过一种可用的串行外设(UART、CAN、USB、I2C等)将应用程序下载到内部Flash代码空间中。
公开号为CN102243587A的中国专利公开了一种嵌入式系统中对ROM程序的升级方法,所述系统需要在Flash中开辟一块独立的程序升级区来保存升级程序包,当需要升级软件时,制作升级程序包并将升级程序包写入到Flash的程序升级区。升级调用程序模块检测Flash中是否有升级程序包,若未发现所述的升级程序包,则执行ROM软件中的原始程序。该方案利用固定的Flash升级区来进行ROM程序的升级,由于Flash擦写是有使用寿命的,频繁的擦写同一块Flash区会导致坏块的出现,ROM升级的可靠性降低;同时,该方案没有对替换程序的完整性即数据的正确性进行验证。
发明内容
针对上述问题中存在的不足之处,本发明提供ROM程序升级系统及升级方法。
为实现上述目的,本发明提供一种ROM程序升级系统,包括:上位机、用于RS232转UART的通信转换模块、主控芯片和外部Flash;
所述上位机的RS232接口与通信转换模块相连,所述通信转换模块与主控芯片的UART接口相连,所述主控芯片的SPI接口与外部Flash相连,所述外部Flash用于写入打包好的升级文件;
所述主控芯片包括RAM、内部Flash和ROM,所述ROM包含一个函数指针数组,各函数指针数组对应不同的ROM功能函数执行地址,系统运行时将ROM功能函数执行地址加载到RAM中。
作为本发明的进一步改进,所述主控芯片为MCU。
作为本发明的进一步改进,所述外部Flash为SPI Flash。
本发明还提供一种ROM程序升级系统的升级方法,包括:
步骤1、将打包好的升级文件写入外部Flash中;
步骤2、上位机下发更新ROM程序的指令给主控芯片,主控芯片收到指令后读取外部Flash指定地址的数据头到RAM中,并根据数据头中包含的校验信息验证数据头的正确性;
步骤3、数据头验证通过后,解析数据头中的数据,将外部Flash中的代码读取并写入由数据头中指定的内部Flash地址空间,并根据数据头中包含的代码校验和来验证代码数据的正确性;
步骤4、代码验证通过后,判断步骤2中上位机下发的指令是函数替换指令还是增加新功能函数指令;
步骤5、若为函数替换指令,则解析外部Flash中提供的函数替换相关数据,替换RAM中的函数指针数组的对应执行地址;在执行相应的功能时,跳转到内部Flash空间执行,完成后返回ROM空间;
若为增加新功能函数指令,则根据数据头中的信息解析新增功能函数的执行入口地址,调用新的功能函数。
作为本发明的进一步改进,在步骤1与步骤2之间还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京联盛德微电子有限责任公司,未经北京联盛德微电子有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711277903.4/2.html,转载请声明来源钻瓜专利网。