[求助]外部RAM区该怎样定义?

正在做一个项目,发动机运行参数记录仪,将发动机的运行参数写入U盘,现在正在调试375,遇到个问题,请前辈们帮忙:

我使用 FILELIB4\EXAM2下的文件能正确打开文件,EXAM2的程序的RAM是这样分配的:

/* 62256提供的32KB的RAM分为两部分: 0000H-7DFFH为文件读写缓冲区, 7E00H-7FFFH为磁盘数据缓冲区 */ #define DISK_BASE_BUF_ADDR 0x7E00 /* 外部RAM的磁盘数据缓冲区的起始地址,从该单元开始的缓冲区长度为SECTOR_SIZE */ #define FILE_DATA_BUF_ADDR 0x0000 /* 外部RAM的文件数据缓冲区的起始地址,缓冲区长度不小于一次读写的数据长度 */ #define FILE_DATA_BUF_LEN 0x7800 /* 外部RAM的文件数据缓冲区,缓冲区长度不小于一次读写的数据长度 */

我想使用RAM62256的一部分0000H-3dffH来保存发动机的参数,于是修改了上述例子的RAM定义:

/* 62256提供的32KB的RAM分为3部分: 0-3dffH为纪录缓冲区,3e00H-7DFFH为文件读写缓冲区, 7E00H-7FFFH为磁盘数据缓冲区 */ #define DISK_BASE_BUF_ADDR 0x7E00 /* 外部RAM的磁盘数据缓冲区的起始地址,从该单元开始的缓冲区长度为SECTOR_SIZE */ #define LOG_DATA_BUF_ADDR 0x0000 /*外部RAM的纪录数据缓冲区起始地址*/ #define LOG_DATA_BUF_LEN 0x3dff /*外部RAM的纪录数据缓冲区长度,缓冲区长度应小于一次读写文件缓冲区的数据长度 */ #define FILE_DATA_BUF_ADDR 0x3e00 /* 外部RAM的文件数据缓冲区的起始地址,缓冲区长度不小于一次读写的数据长度 */ #define FILE_DATA_BUF_LEN 0x4000 /* 外部RAM的文件数据缓冲区,缓冲区长度不小于一次读写的数据长度 */

unsigned char xdata LOG_DATA_BUF[ LOG_DATA_BUF_LEN ] _at_ LOG_DATA_BUF_ADDR;

这样运行后,在打开文件时返回错误代码"0x1F",,请帮忙!!!

其实打开文件只涉及到磁盘缓冲区DISK_BASE_BUF,并不涉及到文件缓冲区FILE_DATA_BUF,按你上面的改动应该没什么问题的。


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