我想问一下,如果我只想用字节写子程序,不想用读子程序,程序怎么改一下好呢? *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?CH375FILEMODIFY?CH375MAI
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?CH375BYTEREAD?CH375BYT
我想问一下,如果我只想用字节写子程序,不想用读子程序,程序怎么改一下好呢? *** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?CH375FILEMODIFY?CH375MAI
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS SEGMENT: ?PR?CH375BYTEREAD?CH375BYT
可以选用字节模式进行读写,但是至少要用600多个字节的RAM.可以把DISK_BASE_BUF_LEN不做定义.FILE_DATA_BUF_LEN不做宏定义. 以上警告为未调用的警告,不影响使用
我以前调试其它程序时出现类似的警告就会占多一些RAM空间的:)
能说的具体点吗?不太明白,谢谢!!
以51举例: #define DISK_BASE_BUF_LEN 4096 /* 默认的磁盘数据缓冲区大小为512字节,建议选择为2048甚至4096以支持某些大扇区的U盘,为0则禁止在.H文件中定义缓冲区并由应用程序在pDISK_BASE_BUF中指定 */ #define FILE_DATA_BUF_LEN 0x6800 /* 外部RAM的文件数据缓冲区,缓冲区长度不小于一次读写的数据长度 */
上面两个宏定义不要写. 你现在的工程占用多少RAM? 多占一些可能是因为堆栈的原因.上面的警告是函数没有调用,但是有函数实体.不影响使用.最多也就多占几个字节的RAM,不能从根本上节省RAM.
我在测试板上的程序编译是没有问题的,但是,因为我是想在我以前的系统中加入CH375芯片,我把CH375的程序拷入后,RAM空间就超了(我以前的系统已占用了192个字节的RAM),它们加一起后RAM为260多吧,
我就把以前系统中定义的变量改成XDATA型,不过发现这个办法虽然编译后显示RAM=212,XDATA=603但是仍然是编译不成功:(
你可以考虑使用我们的LIBA的库,这个基本上是采用的外部RAM,基本不使用内部RAM。
RAM=212,XDATA=603你的硬件是不是适合这个资源的? 编译不过去的错误是什么呢?不一定是RAM的问题啊.
1、把编译错误贴出来看看 2、库的说明书CH375HF.PDF(CH375EVT.ZIP)中描述了库需要的资源:不少于4KB 到8KB的程序空间,不少于600 字节的随机存储器RAM。对于MCS-51 单片机,600 字节的RAM 包括不少于75 字节的内部RAM 和530 字节的外部RAM,在添加库之前,你的单片机剩余资源还够否?
谢谢各位高手的回复,我今天试了一下,只要把KEIL中存储模式设为LARGE就可以编译过去了,不过新的问题又出现了,我的硬件板子是主单片机和控制显示的单片机共用一个晶振,这样编译后的程序板子就不显示了,如果把KEIL中存储模式设为SMALL就能显示了。不知道怎么样好了,有遇过类似的问题的吗?我觉得我现在是KEIL没太弄明白了!谢谢
问题解决了,因为显示单片机是与主单片机通讯的,设成LARGE后变量存取速度变了所以不显示,呵呵