正在做一個項目,發(fā)動機運行參數(shù)記錄儀,將發(fā)動機的運行參數(shù)寫入U盤,現(xiàn)在正在調試375,遇到個問題,請前輩們幫忙:
我使用 FILELIB4\EXAM2下的文件能正確打開文件,EXAM2的程序的RAM是這樣分配的:
/* 62256提供的32KB的RAM分為兩部分: 0000H-7DFFH為文件讀寫緩沖區(qū), 7E00H-7FFFH為磁盤數(shù)據緩沖區(qū) */ #define DISK_BASE_BUF_ADDR 0x7E00 /* 外部RAM的磁盤數(shù)據緩沖區(qū)的起始地址,從該單元開始的緩沖區(qū)長度為SECTOR_SIZE */ #define FILE_DATA_BUF_ADDR 0x0000 /* 外部RAM的文件數(shù)據緩沖區(qū)的起始地址,緩沖區(qū)長度不小于一次讀寫的數(shù)據長度 */ #define FILE_DATA_BUF_LEN 0x7800 /* 外部RAM的文件數(shù)據緩沖區(qū),緩沖區(qū)長度不小于一次讀寫的數(shù)據長度 */
我想使用RAM62256的一部分0000H-3dffH來保存發(fā)動機的參數(shù),于是修改了上述例子的RAM定義:
/* 62256提供的32KB的RAM分為3部分: 0-3dffH為紀錄緩沖區(qū),3e00H-7DFFH為文件讀寫緩沖區(qū), 7E00H-7FFFH為磁盤數(shù)據緩沖區(qū) */ #define DISK_BASE_BUF_ADDR 0x7E00 /* 外部RAM的磁盤數(shù)據緩沖區(qū)的起始地址,從該單元開始的緩沖區(qū)長度為SECTOR_SIZE */ #define LOG_DATA_BUF_ADDR 0x0000 /*外部RAM的紀錄數(shù)據緩沖區(qū)起始地址*/ #define LOG_DATA_BUF_LEN 0x3dff /*外部RAM的紀錄數(shù)據緩沖區(qū)長度,緩沖區(qū)長度應小于一次讀寫文件緩沖區(qū)的數(shù)據長度 */ #define FILE_DATA_BUF_ADDR 0x3e00 /* 外部RAM的文件數(shù)據緩沖區(qū)的起始地址,緩沖區(qū)長度不小于一次讀寫的數(shù)據長度 */ #define FILE_DATA_BUF_LEN 0x4000 /* 外部RAM的文件數(shù)據緩沖區(qū),緩沖區(qū)長度不小于一次讀寫的數(shù)據長度 */
unsigned char xdata LOG_DATA_BUF[ LOG_DATA_BUF_LEN ] _at_ LOG_DATA_BUF_ADDR;
這樣運行后,在打開文件時返回錯誤代碼"0x1F",,請幫忙!!!