[发明专利]一种智能卡及访问智能卡闪存的方法有效
| 申请号: | 200910244079.1 | 申请日: | 2009-12-28 |
| 公开(公告)号: | CN101840520A | 公开(公告)日: | 2010-09-22 |
| 发明(设计)人: | 贾庆刚 | 申请(专利权)人: | 北京握奇数据系统有限公司 |
| 主分类号: | G06K17/00 | 分类号: | G06K17/00;G06K19/073 |
| 代理公司: | 北京中博世达专利商标代理有限公司 11274 | 代理人: | 申健 |
| 地址: | 100015 北京市朝阳区*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 智能卡 访问 闪存 方法 | ||
技术领域
本发明涉及智能卡领域,尤其涉及一种智能卡及访问智能卡闪存的方法。
背景技术
智能卡硬件结构一般包括中央处理器(CPU)、随机存储器(RAM)、可编程只读存储器(EEPROM)和只读存储器(ROM)。EEPROM是非易失存储单元,因其成本高,存储空间小等原因逐渐被技术趋于成熟、成本较低、存储空间较大的NOR FLASH和NAND FLASH所取代。NOR FLASH和NAND FLASH都是闪存芯片,它们是非易失性存储器,以块为单位进行擦除和再编程。
在实际的程序编写过程中,需要对闪存进行访问时,对它的读写操作需要按块进行擦除,然后再进行写入,一般这个过程是通过在所编写的主程序中调用特定的闪存接口函数来完成。特别是,如果程序只需要读写闪存的某个字节,则需要先将目标字节所在的块读到RAM空间中,在RAM空间中对目标字节修改后,再将RAM空间的数据写回到闪存中。通过这种方式达到修改某个字节的目的,对于一些程序设计来说十分不便。
再如,在C语言程序中要修改结构体中的某个变量,则需要在程序中调用大量的闪存接口函数来进行修改。首先,要在RAM中创建结构体的缓冲,计算出结构体的大小,然后通过闪存接口函数从闪存中读取结构体的数据到RAM中的缓冲,再对结构体中需要修改的变量进行修改,最后,再由闪存接口函数将结构体数据写回到闪存中。如果程序经常需要通过结构体的方式来修改保存在闪存中的结构体数据,那么就需要频繁的在RAM空间中创建结构体的缓冲,将数据修改完成后还需要释放这部分RAM空间。如果RAM空间管理不善,很容易生成RAM空间碎片,同时对于代码的可读性、精简性都会带来很大的影响。
特别是对于一些移植项目,如果在原开发平台程序采用C语言编写,选取按字节采用指针的方式访问RAM中的结构体空间,而目标开发平台程序如果需要将结构体数据保存在闪存中,那么按字节采用指针方式访问闪存空间的结构体数据,就要多次调用闪存接口函数,并且大量修改原程序代码,会给程序的移植带来很大的不利,而且容易产生错误。
综上所述,现有访问智能卡闪存的方法需要在主程序体中调用大量的闪存接口函数,造成对闪存的访问繁琐并且易出现错误的问题。
发明内容
本发明提供一种访问智能卡闪存的方法,能够简化对智能卡闪存访问的过程。
为解决上述技术问题,本发明提供了一种访问智能卡闪存的方法,所采用的技术方案,包括:在地址保护单元中设置闪存地址的访问权限为不可读写;当指令代码访问受保护的闪存地址时,进行数据异常处理,获取指令代码的指令类型及其对应的指令信息;根据指令类型及其对应的指令信息,访问智能卡闪存。
采用本发明技术方案所提供的访问智能卡闪存的方法,能通过地址保护单元的功能对闪存进行访问,编程人员不必考虑闪存读取程序接口和闪存写入程序接口的问题,简化了闪存读取和写入的过程,为程序编写带来方便。
本发明还提供了一种智能卡,能够简化对智能卡闪存访问的过程。
为解决上述技术问题,本发明还提供了一种智能卡,采用的技术方案包括:地址保护单元,用于设定闪存地址的访问权限为不可读写;数据异常处理单元,用于当指令代码访问地址保护单元中闪存地址时,进行数据异常处理,获取指令代码的指令类型及其对应的指令信息;访问单元,用于根据指令类型及其对应的指令信息,访问智能卡闪存。
采用本发明技术方案所提供的智能卡,能通过地址保护单元的功能对闪存进行访问,编程人员不必考虑闪存读取程序接口和闪存写入程序接口的问题,简化了闪存读取和写入的过程,为程序编写带来方便。
附图说明
图1为本发明实施例访问智能卡闪存的方法流程图;
图2为本发明实施例ARM汇编指令代码的典型格式;
图3为本发明实施例智能卡的系统框图。
具体实施方式
下面结合附图对本发明实施例访问智能卡闪存的方法进行详细描述。
如图1所示,本发明实施例访问智能卡闪存的方法,包括:
S1、在地址保护单元中设置闪存地址的访问权限为不可读写。
具体地,本实施例以目前业界广泛使用的采用ARM芯片的智能卡为例。ARM芯片的地址保护单元为内存保护单元(MPU),在内存保护单元地址保护设定程序中设定需要进行读写保护的闪存地址空间,本实施例将闪存地址0xA0000到0xBFFFF设定为不可读写。
S2、当指令代码访问受保护的闪存地址时,进行数据异常处理,获取指令代码的指令类型及其对应的指令信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京握奇数据系统有限公司,未经北京握奇数据系统有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200910244079.1/2.html,转载请声明来源钻瓜专利网。





