首页> 中国专利> 使用少量ROM资源的Bootlorder实现方法

使用少量ROM资源的Bootlorder实现方法

摘要

本发明公开了一种使用少量ROM资源的Bootlorder实现方法,本发明为了减少ROM资源使用量,并非将所有资源在流片时固化到Boot ROM中,而是将Bootlorder程序分成了三个部分,分别为引导程序代码、Flash管理程序和用户应用程序;其中只有引导程序代码固化到Boot ROM中,保证Boot ROM内仅保留最少量的必要固件资源;而其他大量内容,存放在Flash可擦写存储单元内。这样Boot ROM中只存放最基本最简单的测试和下载程序。在需要进行程序修改时,不需要重新流片,大大降低了风险和成本。

著录项

  • 公开/公告号CN103077056A

    专利类型发明专利

  • 公开/公告日2013-05-01

    原文格式PDF

  • 申请/专利号CN201210592732.5

  • 发明设计人 吴歌;

    申请日2012-12-31

  • 分类号G06F9/445(20060101);

  • 代理机构11120 北京理工大学专利中心;

  • 代理人杨志兵;高燕燕

  • 地址 100083 北京市海淀区北四环中路211号

  • 入库时间 2024-02-19 18:33:18

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-07-08

    专利权的转移 IPC(主分类):G06F 9/445 专利号:ZL2012105927325 登记生效日:20220624 变更事项:专利权人 变更前权利人:中国电子科技集团公司第十五研究所 变更后权利人:中国电子科技集团公司第十五研究所 变更事项:地址 变更前权利人:100083 北京市海淀区北四环中路211号 变更后权利人:100083 北京市海淀区北四环中路211号 变更事项:专利权人 变更前权利人: 变更后权利人:中电太极(集团)有限公司

    专利申请权、专利权的转移

  • 2015-12-23

    授权

    授权

  • 2013-06-05

    实质审查的生效 IPC(主分类):G06F9/445 申请日:20121231

    实质审查的生效

  • 2013-05-01

    公开

    公开

说明书

技术领域

本发明涉及Bootlorder技术领域,尤其涉及一种使用少量ROM资源的 Bootlorder实现方法。

背景技术

智能卡芯片通常采用嵌入式操作系统。

在嵌入式操作系统中,Bootlorder是在操作系统内核运行之前运行。可以初 始化硬件设备、建立内存空间映射、从而将系统的软硬件环境带到一个合适的 状态,以便为最终调用操作系统内核准备好正确的环境。

Boot ROM是管理设备启动序列的只读存储器,每次上电复位都是从Boot ROM进行启动和跳转,物理上使用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的预留地址处,从而实现Boot ROM到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管理程序。

优选地,步骤4在向用户应用程序区加载用户应用程序之前,先进行用户 应用程序区的读写测试,确定该用户应用程序区没有问题,再加载用户应用程 序。

优选地,在步骤2中,向Flash系统区加载系统参数表时,进一步将Flash 管理程序的中断向量备份在Flash系统区中;当需要向中断向量存放区加载Flash 管理程序的中断向量时,从Flash系统区中获取Flash管理程序的中断向量。

有益效果:

采用Flash+ROM的方案,在ROM中固化少量必要的引导程序,在需要进 行程序修改时,不需要重新定制掩膜版,节省费用。

附图说明

图1为Boot ROM和Flash共同构成Boot存储区的示意图。

图2为本发明引导程序的具体流程图。

图3为本发明Flash管理程序的流程图。

具体实施方式

本发明为了减少ROM资源使用量,并非将所有资源在流片时固化到Boot  ROM中,而是将Bootlorder程序分成了三个部分,分别为引导程序代码、Flash 管理程序和用户应用程序;其中只有引导程序代码固化到Boot ROM中,保证 Boot ROM内仅保留最少量的必要固件资源;而其他大量内容,存放在Flash可 擦写存储单元内。这样Boot ROM中只存放最基本最简单的程序。在需要进行 程序修改时,不需要重新流片,大大降低了风险和成本。

下面结合附图并举实施例,对本发明进行详细描述。

如图1所示,本发明采用Boot ROM和Flash共同构成设备的Boot存储区。 其中,Flash内部具有Flash系统区(又称信息区)和数据区,这两个区域是分 开编址的。本发明将数据区细分为中断向量存放区、Flash管理程序区和用户应 用程序区。

该方法包括如下步骤:

步骤1、在流片阶段,通过掩膜的方式,向设备的Boot ROM中加载引导程 序代码;

步骤2、设备中的CPU上电后,首先执行Boot ROM中的引导程序;首次 执行引导程序时,进入管理员模式,以后再次进入引导程序时,均进入用户模 式;

在管理员模式下,向Flash系统区加载系统参数表,向Flash管理程序区加 载Flash管理程序,向中断向量存放区加载Flash管理程序的中断向量;

在用户模式下,跳转到Boot ROM的指定地址Add1,执行该地址Add1上 的语句,从而引导CPU的取值地址切换到Flash的预留地址处,实现Boot ROM 到Flash的跳转,接着执行Flash预留地址处存储的语句,实现将执行地址跳转 到Flash管理程序区,执行步骤3。其中,预留地址设置在中断向量存放区内为 中断向量预留的存储空间之后,预留地址的起始为Add1。

图2为本发明引导程序的具体流程图。

(1)、根据TEST_SIG标志位判断Boot ROM工作模式。

TEST_SIG标志位标识了Boot ROM处于管理员模式还是用户模式。该标志 位在Flash系统区的系统参数表里,初始值为1,TEST_SIG标志位是受保护的, 因此仅能在出厂前修改。Boot ROM第一次上电时,可以读到TEST_SIG=1,表 示其默认状态是管理员模式,下载Flash管理程序完成后设置为用户模式 (TEST_SIG=0),出厂之后无法修改,此后每次上电时,读到TEST_SIG=0,进 入用户模式。

(2)、在管理员模式下,首先建立与外部的无线通信连接,例如可以按照 ISO14443-3协议中表述的命令序列建立无线通信连接。通信连接建立之后,进 入ISO14443-4协议中约定的数据链路层通信。该协议采用分组的方式在PCD 和PICC之间传递APDU指令和反馈应答(Feedback)。

无线通信连接建立完成后,等待外部命令。如果外部发来测试代码,则运 行测试代码,若测试通过,则反馈成功信息;若测试不通过,则反馈出错信息。 如果外部发来加载指令,则向Flash加载数据,加载的内容包括:系统参数表(加 载到Flash系统区)、Flash管理程序(加载到Flash管理程序区)、Flash管理程 序的中断向量(加载到中断向量存放区)等。加载成功之后,修改TEST_SIG 标志位=0,使Boot ROM下次启动进入用户模式。最后,向外部反馈测试完成 结果,外部就认为该产品的操作已完成,转为操作下一产品。

(3)、在用户模式下执行如下操作:

①首先加载校准字(Trimming words):从位于Flash系统区的系统参数表里 将校准字读入相应寄存器中,用于改善诸如射频接口、电源等模拟单元的性能。

②跳转到Flash:修改相应SFR可以使CPU的取指地址由Boot ROM切换 到Flash中,因此这里首先将CPU取值地址跳转到Boot ROM的0x006B地址, 在这个地址上存放着修改MMU SFR的语句。语句执行之后,CPU的取值地址 切换到Flash的0x006B之后、0x0072之前的某个地址上,从而实现Boot ROM 到Flash的跳转。接着执行Flash跳转地址上存储的语句,实现将执行地址跳转 到Flash管理程序区。

Flash的0x006B-0x0072处于中断向量存放区,但是该段地址为保留地址, 专用于放置跳转到管理程序区的语句,不用于中断向量。这样,就可以引导CPU 取值地址跳转到特定地址里去执行管理程序。

其中0x006B-0x0072是根据中断向量存放区的大小和所要存放的中断向量 大小确定的,保留地址不能打断中断向量,因此可以放在中断向量存放区内为 中断向量预留的存储空间之后。

为了实现跳转,在Boot ROM的0x006B处存放了跳转语句,由于CPU执 行语句时是按照地址逐条执行的,通过SFR的修改,可以实现存储器跳转,但 是地址不会跳动,Boot ROM存放跳转语句的位置需要与Flash上的保留地址向 对应,例如本实施例中,保留地址为0x006B-0x0072,则放跳转语句的地址就为 0x006B,否则会出现跳转和执行上的错误。

步骤3、进入Flash管理程序后,首先判断的是从Flash管理执行,还是从 用户应用程序执行。

参见图3,通过判断NVM_SIG标志位可以决定接下来跳转地址的指向, NVM_SIG标识为1,则执行步骤4,否则,执行步骤5。这个标志位在Flash系 统区的系统参数表里,在首次下载用户应用程序之前,NVM_SIG=1,在每次用 户应用程序下载完成之后,修改NVM_SIG=0,如果希望更新用户应用程序,则 将修改NVM_SIG=1,以便下一次上电时转到执行步骤4去再次下载用户应用程 序。

步骤4、从外部接收用户应用程序及其中断向量,向用户应用程序区加载用 户应用程序,将用户应用程序的中断向量暂存在XRAM中,当收到外部启用当 前用户应用程序的指令时,将暂存的用户应用程序的中断向量加载到中断向量 存放区中,然后将NVM_SIG标识置为0,下电。

其中,在向用户应用程序区加载用户应用程序之前,还可以先进行Flash用 户应用程序区的读写测试,确定该区域没有问题,再加载用户应用程序。

步骤5、判断是否需要更新用户应用程序,如果不需要则转入用户应用程序 区执行用户应用程序;如果需要更新,则将Flash管理程序的中断向量加载到 Flash中断向量存放区,然后将NVM_SIG标识置为1,下电。这样,在下一次 上电时,会转入步骤4重新下载用户应用程序。Flash管理程序和用户程序使用 了相同的中断源(例如RFIF和Timer),但有不同的中断服务子程序及其入口地 址,因此需要针对Flash管理程序和用户程序使用不同的中断向量表。

在本步骤中,将Flash管理程序的中断向量加载到Flash中断向量存放区时, 可以从外部重新获取Flash管理程序的中断向量,也可以从Flash系统区中获取 备份的Flash管理程序的中断向量。这就需要在步骤2向Flash系统区加载系统 参数表时,进一步将Flash管理程序的中断向量备份在Flash系统区中,从而可 以快速从内部加载信息,提高处理速度。

综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保 护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等, 均应包含在本发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号