公开/公告号CN101086701A
专利类型发明专利
公开/公告日2007-12-12
原文格式PDF
申请/专利权人 普天信息技术研究院;
申请/专利号CN200610087321.5
申请日2006-06-07
分类号G06F9/445(20060101);
代理机构11010 信息产业部电子专利中心;
代理人周奇
地址 100085 北京市海淀区上地二街2号
入库时间 2023-12-17 19:24:25
法律状态公告日
法律状态信息
法律状态
2022-05-17
未缴年费专利权终止 IPC(主分类):G06F 9/445 专利号:ZL2006100873215 申请日:20060607 授权公告日:20090311
专利权的终止
2009-06-03
专利申请权、专利权的转移(专利权的转移) 变更前: 变更后: 登记生效日:20090508 申请日:20060607
专利申请权、专利权的转移(专利权的转移)
2009-05-13
专利权人的姓名或者名称、地址的变更 变更前: 变更后: 申请日:20060607
专利权人的姓名或者名称、地址的变更
2009-03-11
授权
授权
2008-02-06
实质审查的生效
实质审查的生效
2007-12-12
公开
公开
查看全部
技术领域
本发明涉及一种存储卡片上操作系统,尤其涉及一种对存储卡片上操作系统进行升级的方法,本发明进一步还涉及升级失败时恢复默认操作系统的方法。
背景技术
在新一代移动存储卡中,存储卡除了具有基本的存储功能还有其他的一些辅助功能,是一种多功能存储卡。COS(Chip Operating System,片上操作系统)是实现卡安全和多功能卡的基础。
对存储卡片上操作系统进行升级后,可以扩展很多功能,并可以针对不同的行业设计出不同的存储卡片上操作系统,来满足不同行业的需要,真正的实现一卡多用。
当前,智能卡中有支持COS(片上操作系统)升级的相关论文,但没有查到相关专利。论文中只提出把COS(片上操作系统)放在可擦除的EEPROM中,这样保证可升级,但没指出升级的方法。存储卡中没有查到COS(片上操作系统)升级的相关专利。
现有的存储卡没有定义可供用户升级COS(片上操作系统)的方法,存储卡系统升级都是厂商通过直接烧写FLASH的方法实现,只有手机中的SIM卡实现了用户可升级,但在存储卡中没有实现。这样的话,存储卡发行以后,其功能和性能对用户来说是不能改变的,造成资源浪费。
发明内容
因此本发明所要解决的技术问题是提供一种对存储卡片上操作系统进行升级以及升级失败时恢复默认操作系统的方法,从而扩展存储卡的性能、增强存储卡的安全性。
本发明具体是这样实现的:
一种对存储卡片上操作系统进行升级的方法,该方法包括如下操作:在存储卡可擦除的存储空间中设置一代码区,将存储卡片上操作系统代码存储在该代码区中,代码区分成两部分,一区存放默认片上操作系统代码,做备份,不可更改;二区存放存储卡当前执行的片上操作系统代码;在二区存放标志位COS2_RIGHT;在只读存储器的启动代码中加入加载片上操作系统内核命令,当存储卡上电启动时,只读存储器中的启动代码读标志位COS2_RIGHT,根据该标志位的状态加载一区或二区的片上操作系统;添加片上操作系统升级命令CMD57,当存储卡接受到该命令后就将随后终端传过来的片上操作系统升级文件写到二区的片上操作系统代码中;添加命令CMD58,当升级文件传输完毕或传输错误,终端就向存储卡发送CMD58命令,写标志位COS2_RIGHT。
按上述方案,标志位COS2_RIGHT存放在二区的第一位,存储卡当前执行的片上操作系统代码从二区第二位开始存放。
按上述方案,在默认情况下,标志位COS2_RIGHT为0。
按上述方案,当存储卡上电启动时,如果标志位COS2_RIGHT为0,则加载二区的片上操作系统;如果标志位COS2_RIGHT为1,则加载一区的片上操作系统。
按上述方案,所述将片上操作系统升级文件写到二区的片上操作系统代码中是用升级文件将二区的片上操作系统代码覆盖。
按上述方案,当升级文件传输完毕时,CMD58命令将标志位COS2_RIGHT置为0;当升级文件传输错误时,CMD58命令将标志位COS2_RIGHT置为1。
按上述方案,该方法还包括如下操作:添加命令CMD59,该命令用于把一区的片上操作系统代码拷贝到二区的片上操作系统代码中,并将标志位COS2_RIGHT置为0。
按上述方案,如果存储卡上电启动时加载一区的片上操作系统,则调用命令CMD59把一区的片上操作系统代码拷贝到二区的片上操作系统代码中,并将标志位COS2_RIGHT置为0进行恢复。
按上述方案,在只读存储器的启动代码中还加入对标志位COS2_RIGHT的写命令,如果升级后存储卡不能正确启动,则存储卡重新上电启动,调用只读存储器启动代码中的对标志位COS2_RIGHT的写命令将标志位COS2_RIGHT置为1,再次上电启动。
由于采用了上述处理步骤,本发明与现有技术相比,具有以下优点:
1.本发明提供了存储卡片上操作系统升级的方法,用户可以对存储卡片上操作系统进行灵活的升级,增大了用户权限,真正实现了一卡多用,使存储卡的性能得到充分利用。
2.本发明提供了存储卡片上操作系统升级时的错误保护模式,一旦升级文件传输错误,可以自动恢复到默认的片上操作系统,保障了存储卡的安全性。
附图说明
图1是本发明的存储卡存储空间分配示意图;
图2是本发明的对存储卡片上操作系统进行升级的流程图;
图3是本发明的当升级失败时恢复默认操作系统的流程图。
具体实施方式
以下结合附图对本发明的具体实施过程作进一步的说明:
1.本发明的设计构思
(1)本发明存储卡的片上操作系统代码不是存储在内部ROM(只读存储器)中,而是存储在可擦除的存储空间FLASH中。该可擦除的存储空间留出一部分空间放置片上操作系统代码(另外一部分做一般存储卡的存储空间用),对外不可见。该代码区又分成两部分,分别放COS1和COS2,一区存放出厂时的默认COS(片上操作系统)代码COS1,做备份,不可更改;二区存放存储卡当前执行的COS(片上操作系统)代码COS2。本发明的存储卡存储空间分配示意图如图1所示。
(2)ROM(只读存储器)中放置了启动代码,它完成每一个操作系统所必须具有的对硬件的初始化操作,包括对串口、中断、时钟、SDRAM(同步内存)和FLASH等的一系列的初始化。同时,启动代码中定义了两条命令,加载COS内核命令和对COS2区标志位COS2_RIGHT(下面描述)的地址的写命令。默认情况下,ROM中启动代码直接加载COS内核命令,加载哪个内核是由标志位COS2_RIGHT的状态决定的。
(3)定义COS2区的第一位为标志位COS2_RIGHT,保证掉电数据不丢失。COS代码从第二位开始写入。
(4)定义COS升级命令CMD57,当存储卡从总线上接受到该命令并识别出它是COS升级命令后就将随后终端传过来的COS升级文件写到FLASH中的二区,冲掉原来FLASH中的二区的片上操作系统代码COS2,实现新的操作系统代码COS2的功能。
(5)升级文件正确传输完毕后终端发出命令CMD58,将标志位COS2_RIGHT清零。
(6)当升级文件传输错误,终端也向存储卡发送CMD58命令,将标志位COS2_RIGHT置位。下次上电启动时,ROM(只读存储器)中的启动代码会自动识别标志位COS2_RIGHT,然后从一区COS1执行,再通过命令CMD59把一区COS1的代码拷贝到二区COS2并将标志位COS2_RIGHT清零进行恢复。
(7)在升级文件正确传输情况下,下次上电启动时,ROM(只读存储器)中的启动代码读标志位COS2_RIGHT后就执行COS2;如果COS2本身有错误(比如源代码存在错误),COS2代码下载到存储卡上后不能正常启动,COS2操作系统根本无法运行,则恢复的办法是:重新启动后,调用ROM(只读存储器)的启动代码中对COS2区标志位COS2_RIGHT的地址的写命令,往标志位COS2_RIGHT写入“0x0001”,将其置位。再重新启动进入一区COS1,调用命令CMD59把一区COS1的代码拷贝到二区COS2并将标志位COS2_RIGHT清零进行恢复。
(8)在默认情况下,标志位COS2_RIGHT为零,ROM(只读存储器)中的启动代码执行二区COS2中的片上操作系统。
2.命令定义和命令格式
CMD57、CMD58和CMD59的命令定义如下表:
CMD57、CMD58和CMD59的命令格式如下表:
其中,[39:24]定义RCA;CMD57的[39:8]定义下载文件到的固定的地址;CMD59的[39:8]定义恢复的文件的地址;CMD59的[39:16]定义下载恢复文件到的固定的地址。
3.本发明的具体实现流程
如图2所示,对存储卡片上操作系统进行升级的流程如下:
(1)终端发送APP_CMD命令。APP_CMD命令是存储卡命令列表中已经存在的命令(MMC/SD卡协议中有这个命令),这个命令的意思就是:存储卡收到这个命令后,将把接着到来的命令理解为特殊应用命令。因此,存储卡收到APP_CMD命令后,把接着到来的命令理解为特殊应用命令。
(2)终端发送CMD57命令。当存储卡从总线上接受到COS升级命令CMD57后,对该命令响应返回,如果存储卡处于空闲状态,就等待接收升级文件,如果终端向其发送升级文件,就将该升级文件写入二区COS2的指定地址。
(3)升级文件下载完成后终端向存储卡发送CMD58命令,将COS2区的标志位COS2_RIGHT清零,等待存储卡重新上电启动。
(4)如果在升级文件传输过程中掉电或者下载的升级文件错误或毁坏,那么终端也向存储卡发送CMD58命令,将标志位COS2_RIGHT置位,等待存储卡重新上电启动。
如图3所示,当升级失败时恢复默认操作系统的流程如下:
(5)下次存储卡上电启动时ROM(只读存储器)中的启动代码读COS2区的标志位COS2_RIGHT来判断下载是否成功,如果COS2_RIGHT为零,表明下载成功,就从二区COS2执行;如果COS2_RIGHT为1,表明下载不成功,则从一区COS1执行默认的COS(片上操作系统),然后系统启动后再自动调用CMD59命令把一区的COS(片上操作系统)代码拷贝到二区COS2,并将标志位COS2_RIGHT清零。
(6)如果下载成功,但COS2文件本身错误致使系统瘫痪,COS2并没有启动成功,但是由于标志位已经清零,存储卡总是从二区COS2启动,这将进入死循环。恢复的办法是:重新上电启动时,在启动代码执行后终端调用ROM(只读存储器)的启动代码中对标志位COS2_RIGHT的地址的写命令,往固定地址写数据,去置位COS2_RIGHT,而后存储卡再重新启动就会进入一区COS1,调用命令CMD59把一区COS1的代码拷贝到二区COS2,并将标志位COS2_RIGHT清零,进行恢复。
机译: 利用多个操作系统图像文件对具有可稳定升级和恢复操作系统的汽车的音频/视频导航系统的操作系统进行升级和恢复的方法
机译: 哈佛体系结构的微机操作系统升级方法,其中新操作系统通过缓冲存储器复制到附加程序存储器,而系统在原始操作系统下运行
机译: 一种改进的方法和装置,用于将捆扎带的自由端缠绕在卡片上时将其固定在卡片上