2.3.2 动态内存(RAM)的使用情况
所需RAM 空间为:

Jam 文件需要的RAM 空间与ROM 空间大小一样,在程序存储空间使用情况里已经讨论过了。在Jam Player从ROM 读出Jam 文件存储到RAM 之后,Jam Player 对Jam 文件里的压缩数据解压并将解压后的数据存储到RAM。解压后的数据占用RAM 空间的大小可以通过Jam 文件里的ACA 变量来得到。每个ACA 变量都在“变量声明/初始化”部分列出,每个数组的大小由变量声明方括号里的数值决定。例如:
![]()
说明解压后的ACA变量大小为434460比特,也就是大约53K字节。
符号表的大小由下式给出:
![]()
一个变量或标记名称的大小为48字节,JAM_C_MAX_SYMBOL_COUNT在jamdefs.h文件里定义,默认值为1021。实际上大多数Jam文件最多使用400个变量和标记名称。将JAM_C_MAX_SYMBOL_COUNT修改为400能节省一部分动态内存,
![]()
相比较Jam Player使用的总RAM空间大小而言堆栈和堆需要很少的RAM,jamdefs.h文件里的JAMC_MAX_NESTING_DEPTH常量定义堆栈的最大深度。表2给出了单器件所需要RAM空间的情况。
表2 单器件需要的RAM 空间

3 结论
本文通过软件、硬件以及内存的使用情况等方面的介绍,详细描述了一种通过嵌入式处理器使用Jam编程与测试语言对ISR器件重编程的新方法,为在产品原型及制造阶段对可编程逻辑器件重编程提供了参考,具有很强的实用意义。
本文作者创新点:由于在产品原型及制造阶段,单板上的JTAG接口很可能出于产品外形及内部结构设计的考虑已经无法与下载电缆相连接,此时将无法通过下载电缆对可编程逻辑器件重编程。而通过串行接口或以太网接口将可编程逻辑器件的更新程序发送到处理器,由处理器对可编程逻辑器件重编程,解决了这个难题。
参考文献
[1] 杜延,刘从越.嵌入式实时系统软件测试实践[J].微计算机信息,2007,4-2:86-88.
[2] Kamal,Raj.嵌入式系统:体系结构、编程设计[M].清华大学出版社,2005.
[3] 郑亚民,董晓舟.可编程逻辑器件开发软件QuartusII[M].国防工业出版社,2006.
[4] Stuart,R.Ball.嵌入式
[5] 田泽.嵌入式系统开发与应用[M].北京航空航天大学出版社,2005.