LabVIEW PDA应用中的内存错误



主要软件:
主要软件版本: 8.0
主要软件修正版本: N/A
次要软件: N/A

问题: 为什么我在PDA上运行一个PDA应用是得到了一个内存错误,而这个程序在我的开发计算机上运行良好?

解答: PDA和台式机有着不同的内存限制。比如大多数Pocket PC的内存不超过128M。这部分内存被分成两部分—:应用内存和存储内存。您可以通过点击Start»System»Settings»Memory来设置每个区域各占用多少内存。Pocket PC会把外部存储卡设置为存储内存。所以很重要的一点就是您必须尽可能多分配应用内存,只有它才是PDA应用执行的时候使用的内存。

PDA应用程序会申请运行所需的所有内存。只有它停止运行或是返回的时候才会释放这些内存。因此内存的使用就跟运行时的行为有关而变的难以预测。不过,PDA应用程序会在首次碰到那些未经初始化的移位寄存器时为他们分配资源,并且在程序结束的时候释放。PDA应用程序会在每次运行和调用的时候将所有的控件设置为默认值,但是它并不会重置未初始化过的那些移位寄存器。

同时在LabVIEW不确定是不是要复制一份数据的时候它也会分配内存。一旦数据线出现分支,或是将要进入一个while或loop循环的时候LabVIEW都会复制数据。当一个PDA VI含有越多的数据线分支进入循环的时候,LabVIEW就需要为程序分配更多的内存。在您开发程序的机器上这一点通常不引人注意,但是在资源有限的PDA上就会变成一个问题。想要解决这个问题,您需要在PDA VI中限制数据线的分支和循环。

这个信息适用于所有版本的LabVIEW PDA模块。

相关链接:

附件:





报告日期: 05/24/2006
最近更新: 05/28/2006
文档编号: 3REEQT9E