[求助]外部RAM區(qū)該怎樣定義?

正在做一個項目,發(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",,請幫忙!!!

其實打開文件只涉及到磁盤緩沖區(qū)DISK_BASE_BUF,并不涉及到文件緩沖區(qū)FILE_DATA_BUF,按你上面的改動應該沒什么問題的。


只有登錄才能回復,可以選擇微信賬號登錄

国产91精品新入口,国产成人综合网在线播放,九热这里只有精品,本道在线观看,美女视频a美女视频,韩国美女激情视频,日本美女pvp视频