关于库文件的编译问题

我现在的一个项目里,原来的单片机程序已经有54K了,现在想在上面添加一个CH375,将CH375HF6.LIB文件添加进去后,按小模式编译,程序可以控制在62k多,但是估计是由于data空间占用太多溢出的缘故,提示一堆错误; 例如: *** ERROR L107: ADDRESS SPACE OVERFLOW SPACE: DATA SEGMENT: _DATA_GROUP_ LENGTH: 002FH *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: CH375FILEWRITE MODULE: .\pro\main.obj (MAIN) *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: CH375LIBINIT MODULE: .\pro\main.obj (MAIN) *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: FILE_DATA_BUF MODULE: .\pro\main.obj (MAIN) *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: XQUERYINTERRUPT MODULE: .\pro\main.obj (MAIN) *** WARNING L1: UNRESOLVED EXTERNAL SYMBOL SYMBOL: MCMDPARAM MODULE: .\pro\main.obj (MAIN) *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: CH375LIBINIT MODULE: .\pro\main.obj (MAIN) ADDRESS: C846H *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: XQUERYINTERRUPT MODULE: .\pro\main.obj (MAIN) ADDRESS: C876H *** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL SYMBOL: MCMDPARAM MODULE: .\pro\main.obj (MAIN) ADDRESS: C8CEH 以上只节选了一部分警告信息,按照压缩模式编译的话,又提示编译模式不兼容,请问有没有什么办法能够解决啊?恳请各位指教。

是否添加了另外一个库C51DPTR1.LIB,或则C51DPTR2.LIB,或则C51P2R0.LIB 根据你的方式选择其中一个添加进去,编译.


这几个文件在哪里下啊?请赐教


在我们公司网站上,在线下载,搜索CH374LIB,下载完毕后解压,在CH374LIB/MCS51/LIB6中


多谢了,我添加进去后,进行编译,还是出现一样的提示啊,不知道是什么原因?是不是我这样使用有问题啊200811512283968.jpg


C51P2R0.LIB是针对374芯片的子程序库,应删掉。


不好意思!我看成374了.抱歉! 不知道你要写的数据多不多,对速度有什么要求,如果速度要求不块,数据量少的话建议你用字节模式,这样节省空间.总之把你的要求写一下,方面我们提供技术支持!


多谢各位的热心帮忙,我刚才将程序修改了下,现在我如果按照压缩模式进行编译的话,可以正常编译,但提示编译模式不兼容,如果采用小模式编译的话,则提示DATA空间溢出,我的应用很简单,只是简单的对外接的U盘进行识别后建立两级目录,然后新建一个文件,对其写入,每个文件2048个字节,所以想采用扇区写的模式对其进行操作,这样速度可能会快些。不知道贵公司有没有提供按照压缩模式进行编译的库呢,或者有没有什么别的办法解决,以下是我按照压缩模式进行编译的输出信息,请赐教:200811513494722.jpg


你把不份内部的变量定义到外部RAM去就应该可以了


我自己程序里能定义到外部去的变量都已经修改过了,现在我的程序里占用DATA空间的主要是一些全局变量和函数调用值,CH375提供的库文件里的变量没有办法更改啊


首先一个就是你用的单片机的内部RAM需要是256字节的才可以,否则的话编译就会出错的,其次你可以这样,直接拿我们的例子程序加我们的库,你看下编译可以不可以通过。


我用的是新茂的片子,内部256字节,直接拿你们的例子+库可以通过,按照我的使用要求,贵公司的库是否可以通过修改哪里,减少对DATA空间的占用呢


那你用FILELIBC,该库基本不用内部RAM。 该库是模拟IO的,若要使用总线操作,只要把三个读写子函数中的模拟时序替换为总线操作即可


大家好: 对里面的 CH375FileCreate( ); CH375FileErase( ); 删除文件并关闭 这些子程序是不是要自己去编,不能调用的吗?? 怎么新建不起来TXT文档呢??而且编译说没有定义这两个子程序,什么原因呢,给的U盘文件级子程序 怎么也找不到这两个子程序呢,


库里有这两个子程序。 你的编译错误是什么?


只有登录才能回复,可以选择微信账号登录