javacard mask.c 文件结构 - tccth4091的专栏 - CSDN博客

来源:百度文库 编辑:神马文学网 时间:2024/05/16 15:31:24
对智能的开发也有一段时间了,现在javacard的开发也越来越多,在javacard中,mask.c文件当然是最重要的文件了,其等同于系统库文件,是由系统的API文件生成,至于怎么生成这个文件,可以以后看情况来分享,本文件中其实就是两个大数组,但这两个数组也是有固定的格式的,我们可以把这两个数组的内容看成是多个表的组合,或者是一个数据库。
下面我们就来探讨一些这个数据库中到底有什么表,每个表有多少列,各表是什么关系等。
整个文件可以分为三个部分,分别是宏定义、rommask和staticinit。
一、宏定义
预定义了常用变量和地址信息,这些定义的内容可以通过配置脚本文件进行修改,但主要的包括类,包,方法和native方法的地址等等,还有就是主要表的保存位置。
二、rommask
这个部分的主要是一些固化的数据内容,在运行过程中,只是读取操作为主,我们可以把这些内容分成6个表来看待。分别是:
1、指令表
2、类型数组表
3、Package Entry表
4、Expertion和export表
5、Reference表
6、Package Location 表
三、StaticInit
在本数组中,是一些预分析的数据内容,比如对象、方法、类直接的关系表,这些内容在执行过程中是查找和定位的关键数据表,具体查找过程,这要看虚拟机的情况,以保证快速运行,在这个表中根据内容可以分为以下几个表:
1、静态变量表
2、Package Context 表
3、Main package Table
4、静态数组的数据表(Static Initialized Array Data)
6、Reference 表(main table)
7、对象表(main table)
8、Package location表(main table)
mask.c的内容和APPLET的CAP文件文件结构有类似的地方,他们的运行关系,可看后续内容。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/tccth4091/archive/2010/09/01/5856658.aspx