Smartcard 全球平台加载返回6A84-卡限制?

Smartcard 全球平台加载返回6A84-卡限制?,smartcard,javacard,globalplatform,Smartcard,Javacard,Globalplatform,我有一张NXP的JCOP Java卡2.2.2 J2E145 卡上已经有一个大的小程序,大小约为90 kB 我试图在同一张卡上上传另一个CAP文件,但没有成功INSTALL FOR LOAD(INS=E6)可以工作,但随后的LOAD(INS=E8)命令失败,导致6A84(文件中没有足够的内存空间) 我想使我的CAP文件更小,以使其可上传,但我真的不知道在哪里削减第一 据我所知,INSTALL FOR LOAD命令和第一个LOAD命令都不包含关于后续命令将上载的总大小的信息。这就是为什么我认为包的

我有一张NXP的JCOP Java卡2.2.2 J2E145

卡上已经有一个大的小程序,大小约为90 kB

我试图在同一张卡上上传另一个CAP文件,但没有成功
INSTALL FOR LOAD
INS=E6
)可以工作,但随后的
LOAD
INS=E8
)命令失败,导致
6A84(文件中没有足够的内存空间)

我想使我的CAP文件更小,以使其可上传,但我真的不知道在哪里削减第一

据我所知,
INSTALL FOR LOAD
命令和第一个
LOAD
命令都不包含关于后续命令将上载的总大小的信息。这就是为什么我认为包的绝对大小可能不是问题的原因,因为我可以成功上传另一个(虽然稍微小一点)CAP文件,而且我认为卡上没有足够的空间,即使是第一块数据

由于CAP文件开头/标题中的某些信息,是否存在任何其他限制,可能导致第一个
LOAD
命令出现
6A84
状态字

猜测:静态方法的总数?包裹总数?静态字段的总计数


是相关的,但它不是我问题的重复;它只涵盖了一个类的限制,但我想知道整个卡的限制。

再加上一个猜测:由于Javacard将其所有变量存储在非易失性内存中,“动态”变量必须以与所述静态变量相同的方式考虑。这似乎是合理的,它们是在加载期间分配的。请尝试并确保您没有加载任何debug.cap(在主cap内)。请注意,不同的组件有一些限制,methods.cap的64KiB限制是主要限制。由于您还没有安装,我怀疑RAM是个问题。@MaartenBodewes这是对单个包的methods.cap的限制,对吗?不适用于所有方法。卡上所有包上都有封口。我检查了它,卡上已经存在的大applet为其11个包提供了84kB的方法。我尝试上传的小程序要小得多。我是否可以在用完总空间之前用完卡上的方法空间?@vojta关于方法总量:我记不起Java卡标准中在这方面的任何最小值或限制。但是,是的,操作系统实现可能仍然会施加限制。然而,我确实假设大多数卡都为EEPROM实现了一个单一/简单的堆,其中数据类型无关紧要。但是,该方法可能有其他要求;可能(请不要问,因为我无法回答-即使我记得)。给我们APDU命令,也许我们可以找出原因。