各位老大:我用匯編語(yǔ)言,196KB,仿真器用的上海的星研。可否用51的庫(kù)?是否只需改一下哪里就能用?如果可以。該如何鏈接庫(kù)文件。比如:復(fù)制哪些文件到什么地方?在主程序中如何定義?請(qǐng)指教啊[Emot]20[/Emot]!自己做的程序只能讀一塊512M的sandisk,一塊2G的金斯敦。對(duì)另外兩塊1G,2G的金斯敦,4G的朗科無(wú)可奈何[Emot]1[/Emot]。再?zèng)]進(jìn)展,飯碗岌岌可危。救救我吧!!!!!!!![Emot]3[/Emot][Emot]3[/Emot]
如果不能用庫(kù),能否詳細(xì)指導(dǎo)一下如何提高不同U盤(pán)的兼容性的措施。是不是在初始化U盤(pán),初始化375,底層讀寫(xiě)函數(shù)或者別的什么地方要延時(shí)或別的手段?規(guī)求天下英雄!?。。。。。?!
(1)196與51的指令集不同,不能采用51的庫(kù) (2)不能操作的U盤(pán),具體是哪個(gè)步驟出現(xiàn)問(wèn)題? (3)關(guān)于提高兼容性,CH375沒(méi)有具體的例程,但可以參考CH374芯片的,還需要了解BulkOnly協(xié)議、UFI/SCSI/RBC命令集 UploadImages/20093168291099.rar
具體是在初始化后,讀U盤(pán)0扇區(qū),讀出的是商標(biāo),版本信息(36個(gè)字節(jié))。不是DBR或MBR.我在讀寫(xiě)數(shù)據(jù)口,命令口時(shí)沒(méi)有怎么延時(shí),會(huì)不會(huì)影響? ;*************************/* 從USB存儲(chǔ)器讀數(shù)據(jù)塊子函數(shù)*/************************ MREADS:
LDB R10,C ;需要讀的扇區(qū)數(shù)
LDB A,#CMD_DISK_READ ;讀數(shù)據(jù)指令 STB A,CH375_CMD_PORT MREADS2: STB W1,CH375_DAT_PORT;;/* LBA的最低8位 */ STB W2,CH375_DAT_PORT;;/* LBA的次低8位 */ STB W3,CH375_DAT_PORT;;/* LBA的次高8位 */ STB W4,CH375_DAT_PORT;;/* LBA的最高8位 */ STB R10,CH375_DAT_PORT; ; /* 扇區(qū)數(shù) */ MULUB R10,#8 ;叁扇區(qū)數(shù)×中斷數(shù) JBC POR2,2,$ ;判中斷引腳,是低到高躍變時(shí)中斷,后來(lái)未用 MREADS3: LCALL DIS_ZERO_16H ;僅僅為了延時(shí) LDB A,#CMD_GET_STATUS ;讀中斷狀態(tài)并獲取狀態(tài),請(qǐng)求數(shù)據(jù)寫(xiě)入 STB A,CH375_CMD_PORT LDB A,CH375_DAT_PORT ; 讀
CMPB A,#1DH ;判斷是否是讀 JNE MREADS
LDB A,#CMD_RD_USB_DATA ; /*往CH375緩沖區(qū)寫(xiě)入數(shù)據(jù)塊 */ STB A,CH375_CMD_PORT
LDB SSI,CH375_DAT_PORT ; /* ssi=后續(xù)數(shù)據(jù)的長(zhǎng)度 */
MREADS4: MREADS5: LDB A,CH375_DAT_PORT ;根據(jù)ssi讀數(shù)據(jù) STB A,[W5]+ DJNZ SSI,MREADS5 MREADS6: LDB A,#CMD_DISK_RD_GO ; /* 繼續(xù)執(zhí)行USB存儲(chǔ)器的讀操作 */ STB A,CH375_CMD_PORT
DJNZ R10,MREADS3 ;根據(jù)中斷數(shù)循環(huán)8次
; JBC POR2,2,$ MREADS9: ;第9次中斷 (最后一次) LDB C,#CMD_GET_STATUS ;讀中斷狀態(tài)并獲取狀態(tài),請(qǐng)求數(shù)據(jù)讀出 STB C,CH375_CMD_PORT LDB C,CH375_DAT_PORT CMPB C,#14H JNE MREADS9
MREADS7: RET
;*************************/* 調(diào)用讀扇區(qū)函數(shù)*/************************ 入口函數(shù):w1 w2 w3 w4 是邏輯扇區(qū)lba,C是要讀的扇區(qū)數(shù),w5是存儲(chǔ)讀出扇區(qū)數(shù)據(jù)的數(shù)組首地址 LDB W1,#0 LDB W2,#0 LDB W3,#0 LDB W4,#0 LDB C,#1 LD W5,#AR_DATA; LCALL MREADS ; /* 讀取邏輯盤(pán)引導(dǎo)信息