請教: 51+擴展RAM,使用CH374,SPI連接方式,讀取U盤文件時,請問讀取到的磁盤緩沖區(qū)(非文件緩沖區(qū))數(shù)據(jù)是經(jīng)過SPI口到MCU,然后再寫入擴展RAM,是不是?請問是那個子程序會執(zhí)行磁盤緩沖區(qū)填充(磁盤分析)操作? 我使用lib4庫,SPI方式,把磁盤緩沖區(qū)設(shè)置到擴展RAM的0x0100開始,緩沖區(qū)大小為2048個字節(jié),但編譯出來的代碼反編譯后竟然沒有一行movx a,@dptr里的dptr是指向0x0100及0x0100以后的,請問是怎么回事?難道使用SPI方式時CH374讀取到的U盤數(shù)據(jù)還是要通過WR/RD直接寫入擴展的RAM而不是經(jīng)過MCU?
可能是有進行操作的啊,我們的RAM2048字節(jié)是通過MOVX A,@DPTR的復制,只不過是在庫里面進行了數(shù)據(jù)處理,而你反匯編的話,調(diào)庫里面的直接就是LCALL CH375_FILE_OPEN()這個函數(shù),而不會體現(xiàn)你上面說的MOVX A,dptr的操作
謝謝回復! 也就是說,使用SPI方式連接的話,數(shù)據(jù)也是先通過SPI口傳到MCU,然后MCU再寫入XRAM,是嗎?
另外:我使用字節(jié)讀(沒有使用文件緩沖區(qū)),但DISK_BASE_BUF設(shè)置成2048個字節(jié),那這2048個字節(jié)的內(nèi)容也是在執(zhí)行CH375_FILE_OPEN()時才填充的嗎?我跟蹤時好像在CH374DiskReady( )時執(zhí)行的
還有使用時是不是有兩種緩沖區(qū)?一種是DISK_BASE_BUF,用來存放U盤結(jié)構(gòu)、FAT參數(shù)的,容量必須要比512大而且是512的倍數(shù),另外是文件緩沖區(qū),是必須要自己指定大小my_buffer,對嗎?
CH374DiskReady()時也會用到DISK_BASE_BUF[],存放一些U盤的信息
DISK_BASE_BUF只要求于U盤的扇區(qū)大小一樣就可以了 文件緩沖區(qū)的可以由庫分配,也可以在程序中指定。大小必須能夠滿足一次讀寫的長度,當然越大越好了
有點明白了,謝謝回復!