主题:[求助]etr232i模块问题 共有36099人关注过本帖 |
---|
客人 |
1楼 |
[求助]etr232i模块问题 Post By:2013-7-1 11:03:00 [只看该作者]
使用BC编译代码,只要加入了etr_tcp.lib库并引用etr_tcp.h头文件,编译必定出错,错误信息为“ Segment _BSS exceeds 64K”/“区段超过64K限制”。
将“model”选项改成“huge”再编译不会报错,但程序运行不正常,请问英创工程师此问题如何解决?谢谢。 邮箱:12737579@qq.com |
|
单帖管理 | 引用 | 回复 |
x10 |
2楼 |
Post By:2013-7-1 15:37:00 [只看该作者]
ETR_TCP需要使用一定的静态数据,这时应用程序能使用的静态数据就要减少,修改方法是定义全局的数组指针,然后在init中进行动态分配, 例如 pBuffer = new unsigned char[256];等等,在退出应用程序是,使用delete pBuffer释放存储器空间。
|
|
单帖管理 | 引用 | 回复 |
x10 |
3楼 |
Post By:2013-7-1 15:38:00 [只看该作者]
在large模式下,总的静态数据不能超过64KB。为了效率ETR_TCP.LIB只支持大模式。
|
|
单帖管理 | 引用 | 回复 |
客人 |
4楼 |
Post By:2013-7-2 10:01:00 [只看该作者]
果然如此。。。我尝试移除一部分串口控制代码,网络功能就正常了,那我得把很多地方都修改一下了!
|
|
单帖管理 | 引用 | 回复 |
客人 |
5楼 |
Post By:2013-7-2 11:00:00 [只看该作者]
好像rs422x3.h/rs422x3.cpp文件也是贵公司提供?
如果串口和网络一起加进程序,就会出现64k问题。我把rs422x3.cpp里的几个大指针改成了far,问题解决。 |
|
单帖管理 | 引用 | 回复 |