[发明专利]使用少量ROM资源的Bootlorder实现方法有效
申请号: | 201210592732.5 | 申请日: | 2012-12-31 |
公开(公告)号: | CN103077056A | 公开(公告)日: | 2013-05-01 |
发明(设计)人: | 吴歌 | 申请(专利权)人: | 中国电子科技集团公司第十五研究所 |
主分类号: | G06F9/445 | 分类号: | G06F9/445 |
代理公司: | 北京理工大学专利中心 11120 | 代理人: | 杨志兵;高燕燕 |
地址: | 100083 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 使用 少量 rom 资源 bootlorder 实现 方法 | ||
技术领域
本发明涉及Bootlorder技术领域,尤其涉及一种使用少量ROM资源的Bootlorder实现方法。
背景技术
智能卡芯片通常采用嵌入式操作系统。
在嵌入式操作系统中,Bootlorder是在操作系统内核运行之前运行。可以初始化硬件设备、建立内存空间映射、从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。
Boot ROM是管理设备启动序列的只读存储器,每次上电复位都是从BootROM进行启动和跳转,物理上使用1KB掩膜ROM实现。Boot ROM对于用户应用程序是不可见的。一般的智能卡芯片中Boot ROM中必须要存放所有与底层相关的程序,以及COS下载程序。
这样设计的缺陷是ROM中的程序是在流片过程中通过掩膜方式固化在芯片里面。如果:1.掩膜过程中万一出现故障,导致ROM中的程序不能正常工作,则整批晶圆报废。2.如果发现程序中有BUG,或者程序需要升级,则需要在流片阶段重新定制掩膜版,费用昂贵。
本次设计中的方案是Boot ROM仅保留最少量测试固件资源;其他大量内容,放在非易失性存储管理器(NVM Manager,存放在Flash可擦写存储单元内)里实现。这样boot rom中只存放最基本最简单的测试和下载程序。大大降低了风险和成本。
发明内容
有鉴于此,本发明提供了一种使用少量ROM资源的Bootlorder实现方法,采用Flash+ROM的方案,在ROM中固化少量必要的引导程序,在需要进行程序修改时,不需要重新定制掩膜版,节省费用。
为了解决上述技术问题,本发明是这样实现的:
一种使用少量ROM资源的Bootlorder实现方法,该方法采用Boot ROM和Flash共同构成Boot存储区;其中,Flash内部具有Flash系统区和数据区,数据区又被细分为中断向量存放区、Flash管理程序区和用户应用程序区;
该方法包括如下步骤:
步骤1、在流片阶段,通过掩膜的方式,向Boot ROM中加载引导程序代码;
步骤2、设备中的CPU上电后,首先执行Boot ROM中的引导程序;首次执行引导程序时,进入管理员模式,以后再次进入引导程序时,均进入用户模式;
在管理员模式下,向Flash系统区加载系统参数表,向Flash管理程序区加载Flash管理程序,向中断向量存放区加载Flash管理程序的中断向量;
在用户模式下,跳转到Boot ROM的指定地址Add1,执行该地址Add1上的语句,从而引导CPU的取值地址切换到Flash的预留地址处,从而实现BootROM到Flash的跳转,接着执行Flash预留地址处存储的语句,实现将执行地址跳转到Flash管理程序区,执行步骤3;
其中,预留地址设置在中断向量存放区内为中断向量预留的存储空间之后,预留地址的起始为Add1;
步骤3、进入Flash管理程序后,首先判断NVM_SIG标识是否为1,如果是,则执行步骤4,否则,执行步骤5;NVM_SIG标识保存在Flash系统区的系统参数表中,初始值为1;
步骤4、向用户应用程序区加载用户应用程序,将用户应用程序的中断向量暂存,当收到外部启用当前用户应用程序的指令时,将暂存的用户应用程序的中断向量加载到中断向量存放区中,然后将NVM_SIG标识置为0,下电;
步骤5、判断是否需要更新用户应用程序,如果不需要则转入用户应用程序区执行用户应用程序;如果需要更新,则将Flash管理程序的中断向量加载到中断向量存放区,然后将NVM_SIG标识置为1,下电。
优选地,在步骤2中,所述首次执行引导程序时,进入管理员模式,以后再次进入引导程序时,均进入用户模式的实现方式为:
设置TEST_SIG标志,该TEST_SIG标志保存在Flash系统区的系统参数表中,初始值为1;首次执行引导程序时判断TEST_SIG=1,则进入管理员模式,下载Flash管理程序后将TEST_SIG置为0;判断TEST_SIG=0时,则进入用户模式。
当判定TEST_SIG标志为1后,等待命令;如果接收到外部的测试代码,则运行测试代码,并返回运行结果,并继续等待命令;如果接收到外部的加载指令,则执行所述向Flash系统区加载系统参数表、Flash管理程序的中断向量和用户应用程序的中断向量,向Flash管理程序区加载Flash管理程序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电子科技集团公司第十五研究所,未经中国电子科技集团公司第十五研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210592732.5/2.html,转载请声明来源钻瓜专利网。