RAM定義[求助]

那我應(yīng)該使用FILELIBA吧?總線方式是否直接調(diào)用讀寫函數(shù)?

FILELIBA的示例中: #define CH375_CMD_PORT_ADDR 0xBDF1 /* CH375命令端口的I/O地址 */ #define CH375_DAT_PORT_ADDR 0xBCF0 /* CH375數(shù)據(jù)端口的I/O地址 */ /* 62256提供的32KB的RAM分為三部分: 0000H-01FFH為磁盤讀寫緩沖區(qū), 0200H-7DFFH為文件數(shù)據(jù)緩沖區(qū), 7E00H-7FFFH為外部RAM變量區(qū) */ #define DISK_BASE_BUF_ADDR 0x0000 /* 外部RAM的磁盤數(shù)據(jù)緩沖區(qū)的起始地址,從該單元開始的緩沖區(qū)長(zhǎng)度為SECTOR_SIZE */ #define DISK_BASE_BUF_LEN 4096 /* 默認(rèn)的磁盤數(shù)據(jù)緩沖區(qū)大小為512字節(jié),建議選擇為2048甚至4096以支持某些大扇區(qū)的U盤,為0則禁止在.H文件中定義緩沖區(qū)并由應(yīng)用程序在pDISK_BASE_BUF中指定 */ #define FILE_DATA_BUF_ADDR 0x1000 /* 外部RAM的文件數(shù)據(jù)緩沖區(qū)的起始地址,緩沖區(qū)長(zhǎng)度不小于一次讀寫的數(shù)據(jù)長(zhǎng)度 */ /* 由于演示板用的62256只有32K字節(jié),其中CH375子程序用512字節(jié),所以外部RAM剩余長(zhǎng)度為31744字節(jié) */ #define FILE_DATA_BUF_LEN 0x6800 /* 外部RAM的文件數(shù)據(jù)緩沖區(qū),緩沖區(qū)長(zhǎng)度不小于一次讀寫的數(shù)據(jù)長(zhǎng)度 */

7E00H-7FFFH為外部RAM變量區(qū)??這個(gè)不需要定義嗎?

我的0000H~01FFH共用為磁盤緩沖區(qū)和文件緩沖區(qū),外部RAM變量區(qū)還要定義嗎?

謝謝


先看一下資料吧,這樣會(huì)節(jié)省時(shí)間.


CH375HF.PDF和FILELIBA下的示例我都看了

不知道 7E00H-7FFFH為外部RAM變量區(qū) 是否需要定義?如何定義?


FILELIBA: 只用外部RAM/基本不用內(nèi)部RAM,由于0000H-01FFH為磁盤讀寫緩沖區(qū), 0200H-7DFFH為文件數(shù)據(jù)緩沖區(qū),所以這個(gè)庫中的變量基本都被編譯器分配在7E00H-7FFFH。如果還是不太清楚的話,請(qǐng)電話溝通025-52638368


我用FILELIBA,編譯時(shí)提示錯(cuò)誤 CH375LibInit_GOON: #ifdef DISK_BASE_BUF_LEN MOV pDISK_BASE_BUF,#HIGH DISK_BASE_BUF ; 指向外部RAM的磁盤數(shù)據(jù)緩沖區(qū) MOV pDISK_BASE_BUF+1,#LOW DISK_BASE_BUF #endif LCALL CH375Init ; 初始化CH375 RET C:\Keil\C51\INC\CH375HFA.INC(871): 錯(cuò)誤 A48: DATA-ADDRESS EXPECTED

程序中的CH375DiskStatus、CH375vFileSize 錯(cuò)誤 A48: DATA-ADDRESS EXPECTED

使用庫3、4、6都沒問題。請(qǐng)問為什么?


那你把文件緩沖區(qū)減小測(cè)試下看可以不可以編譯?還有你看下我們的頭文件看下編譯的時(shí)候是采用LARGE模式還是SMALL模式?


文件緩沖區(qū)是512,不能減小了 ;00000H-001FFH為磁盤讀寫緩沖區(qū), 00200H-03FFH為文件數(shù)據(jù)緩沖區(qū) DISK_BASE_BUF_ADDR EQU 0000H ;外部RAM的磁盤數(shù)據(jù)緩沖區(qū)的起始地址,從該單元開始的緩沖區(qū)長(zhǎng)度為SECTOR_SIZE #define DISK_BASE_BUF_LEN 512 FILE_DATA_BUF_ADDR EQU 0200H ;外部RAM的文件數(shù)據(jù)緩沖區(qū)的起始地址,緩沖區(qū)長(zhǎng)度不小于一次讀寫的數(shù)據(jù)長(zhǎng)度 #define FILE_DATA_BUF_LEN FILE_DATA_BUF_LEN FILE_DATA_BUF_LEN EQU 0200H ;外部RAM的文件數(shù)據(jù)緩沖區(qū) 另:看下我們的頭文件看下編譯的時(shí)候是采用LARGE模式還是SMALL模式 不知道怎么看?麻煩具體說明,謝謝


是“存儲(chǔ)器模式”嗎? 原來是SMALL,改成LARGE后,也提示“錯(cuò)誤 A48: DATA-ADDRESS EXPECTED”

如果00H~1FFH為磁盤緩沖區(qū)和文件緩沖區(qū)共用,CH375HFA.INC不提示錯(cuò)誤

用到CH375vFileSize、CH375DiskStatus時(shí)提示錯(cuò)誤 錯(cuò)誤 A48: DATA-ADDRESS EXPECTED


我的程序用匯編寫的,如果將提供的示例\USB-DISK\MCS51\FILELIB4\EXAM5改為使用庫FILELIBA,也會(huì)提示錯(cuò)誤A48: DATA-ADDRESS EXPECTED。

但將其他C程序的示例改為庫FILELIBA,沒有錯(cuò)誤。

匯編程序不知為什么報(bào)錯(cuò)?


DATA-ADDRESS EXPECTED:是指匯編操作碼和操作數(shù)類型不匹配 FILEBC中以CH375開頭變量均定義在XDATA,而例程中出錯(cuò)語句的指令只能訪問內(nèi)部DATA,需要做如下修改: MOV A,CH375DiskStatus ; 查詢CH375中斷并更新中斷狀態(tài),等待U盤插入 */ 改為: MOV DPTR,#CH375DiskStatus MOVX A,@DPTR 其余相同錯(cuò)誤的地方也這樣修改


只有登錄才能回復(fù),可以選擇微信賬號(hào)登錄

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