首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用CodeWarrior9解决掌上电脑上“近端数据段大于64k”的问题?

如何使用CodeWarrior9解决掌上电脑上“近端数据段大于64k”的问题?
EN

Stack Overflow用户
提问于 2009-05-04 13:59:43
回答 2查看 277关注 0票数 1

我正在做一个大型项目,现在我正在处理这个“近端数据段大于64k”的错误。

如果我在PilotMain的PrvAppHandleEvent上注释"FrmSetEventHandler(frm,DadosConstrutivos1HandleEvent);“,程序会很好地编译它。如果我尝试使用de call,我得到了错误消息。

我已经在使用多段和“扩展模式”了。

我该如何解决这个问题?

感谢Rodrigo Leite Gomide

EN

回答 2

Stack Overflow用户

发布于 2009-05-27 16:39:26

我不使用CodeWarrior,但我使用PocketStudio,“同样的问题”经常发生在我身上。

每个单元都是一个“代码段”,所以当你编译的单元超过64k的代码时,编译器会警告你,不要链接你的代码。

试着把一些代码从那个单元移到另一个单元。

或者,您可以使用#杂注:

代码语言:javascript
复制
#pragma segment Seg1

... code ...

#pragma segment Seg2

... code ...

致以敬意,

克里斯蒂安。

票数 0
EN

Stack Overflow用户

发布于 2009-07-14 05:28:15

没有好的方法来解决这个问题。Palm OS中的68K代码只能访问少量的静态程序数据,因为68K指令集仅为寻址数据提供+-32K偏移量。这将需要对编译器进行重大更改以支持更进一步,因为编译器将需要生成代码来执行复杂的指针算术,而CodeWarrior或prc-tools都不支持这一点。

这里有一些小贴士:

  • 如果您有大型数据表,请尝试将它们移动到它们自己的资源中,您将在运行时加载并锁定它们的位置。这将把它们移出数据部分。
  • 打开链接器映射功能,查看您的数据节是如何分配的,并查看是否存在不需要的大型数据对象或数组。使用指向使用MemGluePtrNew.

分配的内存的全局指针,而不是声明全局变量

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/820229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档