[发明专利]基于OTP的主控芯片的BOOT代码扩展方法有效
申请号: | 201910256022.7 | 申请日: | 2019-04-01 |
公开(公告)号: | CN110187920B | 公开(公告)日: | 2022-06-10 |
发明(设计)人: | 李虎;梁永权 | 申请(专利权)人: | 深圳市德明利技术股份有限公司 |
主分类号: | G06F9/4401 | 分类号: | G06F9/4401 |
代理公司: | 深圳市道勤知酷知识产权代理事务所(普通合伙) 44439 | 代理人: | 何兵;饶盛添 |
地址: | 518000 广东省深圳市福田区梅林街道梅都社*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 otp 主控 芯片 boot 代码 扩展 方法 | ||
1.一种基于OTP的主控芯片的BOOT代码扩展方法,所述主控芯片具有用于存储BOOT代码的ROM区、用于存储BOOT代码的补丁代码的OTP区以及RAM区,将所述补丁代码存写入至所述OTP中时,先将所述补丁代码中的补丁函数写入到所述OTP区中,然后将所述补丁函数在RAM区中的地址赋值给所述补丁函数对应的地址EXT_Func[ ],并写入到OTP区中,所述BOOT代码扩展方法包括以下步骤:
S10、在所述主控芯片上电时,所述BOOT代码将所述OTP区中存储的补丁代码加载至RAM区;
S12、所述BOOT代码将NAND FLASH中存储的运行代码加载至所述RAM区,其中,在加载所述运行代码时,当所述ROM区中相应的BOOT代码函数需要被替换时,根据对应的扩展代码
函数的函数指针地址跳转到RAM中执行补丁代码,执行完毕之后跳回ROM区中继续执行BOOT代码。
2.如权利要求1所述的基于OTP的主控芯片的BOOT代码扩展方法,其特征在于:所述OTP区容量为N个KB,所述OTP区最多能够存储N份补丁代码。
3.如权利要求2所述的基于OTP的主控芯片的BOOT代码扩展方法,其特征在于,所述补丁代码包括:标记头Flag、校验码ChechSum,函数扩展标记 EXT_Func[ ]:以及代码区,所述标记头Flag用于标识是否为一份补丁代码,所述校验码ChechSum用于对所述函数扩展标记和代码区进行异或运算以得出校验码,从而保证所述补丁代码完整性,所述函数扩展标记EXT_Func[ ]:用于表示记录各个补丁函数对应的RAM地址,所述代码区用于存放补丁代码。
4.如权利要求3所述的基于OTP的主控芯片的BOOT代码扩展方法,其特征在于,所述S10的步骤包括以下子步骤:
S101、开始加载OTP区补丁代码;
S102、设置计数器i=0;
S103、i是否小于所述N,若小于则进入S104步骤,若大于或等于,则转入S111步骤;
S104、若i小于所述N,则读出OTP区中i*1KB对齐地址4Byte数据为临时标记头TempFlag;
S105、判断所述临时标记TempFlag是否等于标记头Flag;若等于则进入S106步骤,否则转入S110步骤;
S106、若所述临时标记TempFlag等于所述标记头Flag,则从所述OTP中1*1KB地址处连续读出一份补丁代码,视为当前补丁代码;
S107、通过所述校验码ChechSum校验该段当前补丁代码是否正确,若正确则进入S108步骤,否则转入S110步骤;
S108、若正确,则将所述当前补丁代码中数组EXT_Func[ ]复制到RAM中;
S109、OTP区中所述当前补丁代码区赋值到RAM中对应位置;
S110、执行i+1后转入S103步骤;
S111、加载OTP区补丁代码完成。
5.如权利要求1所述的基于OTP的主控芯片的BOOT代码扩展方法,其特征在于,在S12步骤中,所述ROM区中相应的BOOT代码函数根据对应的扩展代码函数的函数指针是否为0确定是否需要被替换。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳市德明利技术股份有限公司,未经深圳市德明利技术股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910256022.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:配置寄存器的装置、方法及系统
- 下一篇:唤醒设备的方法及装置