?? readme.txt
字號:
有關CH374的U盤文件級子程序庫的接口說明以及例子程序
請參考CH374評估板資料CH374/EVT/PUB/CH374EVT.PDF和CH374HF.PDF
網上可供下載的壓縮包文件是CH374EVT.ZIP
*****************************************************************************************
CH374LIB V1.5 最新更新 2008.01.14
一、修正BUG
1、新批號CH374對部分U盤的兼容性問題
*****************************************************************************************
CH374LIB V1.4 最新更新 2007.09.20
一、修正BUG
1、U盤讀寫操作出錯重試仍然失敗才能自動關閉文件
2、修正扇區大小不是512字節時的寫文件操作的簇分配問題
二、更新和增加
1、支持內置ROOT-HUB
三、功能調整
1、修改查詢磁盤信息CH374DiskQuery,去除其包含的CH374DiskSize功能,使之只查詢剩余容量,
如果需要像原版本程序一樣同時查詢U盤物理容量,那么要另外調用CH374DiskSize,即修改后,
如果先調用CH374DiskSize,再調用CH374DiskQuery,就等同于原版本的CH374DiskQuery,
也就是說,修改后的CH374DiskQuery程序調用后不修改mCmdParam.DiskSize.mDiskSizeSec
*****************************************************************************************
CH374LIB V1.3 最新更新 2007.06.18
一、修正BUG
1、CH374SaveVariable恢復時的輸入參數必須區分單個U盤或者多個U盤(含HUB)
2、修正部分32位單片機在FAT12文件系統下的對齊存取
3、錯誤重試
二、更新和增加
1、簡單優化U盤枚舉過程
*****************************************************************************************
CH374LIB V1.2 最新更新 2006.09.21
一、更新和增加
1、用磁盤緩沖區指針pDISK_BASE_BUF代替緩沖區DISK_BASE_BUF,便于緩沖區合用,由.H文件初始化
2、支持任意的扇區大小,通常是512字節,有個別U盤可能是2K字節(支持這些U盤前請分配足夠緩沖區)
3、修改首扇區DBR/MBR的識別方法
二、功能調整
1、由于磁盤緩沖區指針pDISK_BASE_BUF本身不分配內存,所以主程序應該調用CH374LibInit初始化,
使該指針指向一個容量足夠大并且實際可用的緩沖區,也可定義DISK_BASE_BUF_LEN由.H文件分配
2、市面上的大多數U盤,其扇區大小為512字節,除此之外也有一部分U盤的扇區大小為2K字節或更大,
對于從舊版本升級到本新版本程序的應用,如果像以前那樣仍然只分配512字節的磁盤緩沖區,
那么請參考新版本例子在CH374DiskReady成功后檢查CH374vSectorSize是否大于實際緩沖區大小,
如果大于則應將該U盤視為不可支持的U盤,否則在調用CH374FileOpen等程序時會導致緩沖區溢出,
如果參考新版本例子分配足夠大小(2K甚至4K)的磁盤緩沖區,那么可以支持各種扇區大小的U盤
*****************************************************************************************
CH374LIB V1.1 最新更新 2006.09.01
一、修正BUG
1、高速單片機字節到扇區移位優化錯誤
二、更新和增加
1、支持內置USB-HUB的復合U盤,支持外接USB-HUB之后再連接U盤,
增加全局變量CH374vHubPortCount指示當前HUB上的端口數,為0則沒有HUB
2、子程序內部去掉CH374FileEnumer和CH374FileQuery以及CH374Reset三個子程序,節約內部代碼,
由.H文件提供可由條件編譯控制的外部子程序實現向前兼容
3、為外部子程序CH374_READ_BLOCK64和CH374_WRITE_BLOCK64增加一個參數mAddr作為起始地址
4、關閉外部塊接口子程序,去掉.H文件中的xWriteToExtBuf( )和xReadFromExtBuf( ),
實際應用可以在外部子程序CH374_READ_BLOCK64和CH374_WRITE_BLOCK64中實現類似功能
5、去掉CH374LibConfig中的數據復制方式的控制位,去掉.H文件中的相關定義,
對于MCS51單片機,可以通過鏈接三種復制方式I/O庫中的一種選擇復制方式和速度
6、將單OBJ文件改為多OBJ文件,便于在鏈接時節約代碼量
*****************************************************************************************
CH374LIB V1.0 最新更新 2006.07.20
一、更新和增加
1、以CH375LIB的V2.9版本為基礎形成CH374LIB的V1.0版本
2、在.H文件中去掉了EN_CH374LIB_MORE條件編譯選項,直接置為允許
3、在CH374FileOpen子程序中增加了回調子程序xFileNameEnumer( ),用于在枚舉到文件時調用,
使用CH374vFileSize作為枚舉序號,并且其值為0xFFFFFFFF,參考EXAM13可加快搜索速度
4、增加了外部子程序xDelayAfterWrite( ),用于根據實際需要在U盤寫操作后延時
5、修改CH374vDiskRoot始終為32位變量,對于MCS51單片機,修改CH374vDiskRoot為外部變量
修改CH374vFdtLba為外部變量,修改CH374IntStatus始終為內部變量
6、增加了備份/恢復子程序庫的變量的子程序CH374SaveVariable( ),
用于子程序庫在多個CH374芯片之間進行切換,以及外接USB-HUB后在多個U盤之間進行切換
7、增加了延時指定毫秒的子程序CH374DelaymS( ),用于延時1到255毫秒
8、增加了USB基本傳輸事務的子程序CH374HostTransact( ),用于實現基本的USB傳輸
9、增加了執行USB控制傳輸的子程序CH374CtrlTransfer( ),用于執行控制傳輸
10、查詢U盤是否連接或斷開,只能使用CH374DiskConnect子程序或者自行編寫的外部子程序
11、預留外部扇區接口,只讀版本支持xDiskSectorAccess( )用于外部以扇區為單位存取磁盤
*****************************************************************************************
附錄A:關于CH374子程序庫與CH375子程序庫的區別
1、硬件端口或者硬件接口子程序名稱不同,
對于總線I/O操作,CH374和CH375都只占用兩個地址位,但名稱及用途不同,
高地址位對CH374是索引地址端口,用于設置起始地址,對CH375是命令端口,用于發出命令碼,
CH374端口名是CH374_IDX_PORT/CH374_DAT_PORT,CH375端口名是CH375_CMD_PORT/CH375_DAT_PORT,
對于非總線I/O操作,前者是CH374_READ_REGISTER、CH374_WRITE_REGISTER、CH374_WRITE_BLOCK_C、
CH374_READ_BLOCK、CH374_WRITE_BLOCK、CH374_READ_BLOCK64、CH374_WRITE_BLOCK64,
后者是xWriteCH375Cmd、xWriteCH375Data、xReadCH375Data
2、各變量、各子程序名稱不同,前者是CH374開頭,后者是CH375開頭
3、CH374只能以CH374DiskConnect子程序查詢U盤是否連接,而CH375除此之外還可以用xQueryInterrupt
4、一些基本功能例如BulkOnly協議及基本SCSI命令等,CH374是以軟件實現,而CH375是以硬件實現,
所以對于CH375用一個命令就能完成的操作,對于CH374可能要執行一個子程序,
所以CH374子程序開放了兩個新的API:CH374HostTransact( )和CH374CtrlTransfer( )
5、對于速度高于4MIPS的單片機,CH374子程序庫略快,對于速度低于4MIPS的單片機,CH375子程序庫略快
6、現有的CH375應用程序只需做如下改動即可用于CH374
1)、硬件上,如果是并口連接,那么完全不需要做任何改變,直接替換原CH375,外部晶體頻率換成24MHz,
如果是CH375串口連接,那么需要改成CH374的SPI連接,使用非總線I/O子程序庫
2)、軟件上,
對于總線I/O操作,I/O端口地址名稱CH375_CMD_PORT改成CH374_IDX_PORT
對于非總線I/O操作,重新編寫I/O接口子程序,如CH374_READ_REGISTER、CH374_WRITE_REGISTER等
各子程序名稱不同,CH375*改成CH374*
查詢U盤是否連接,應該用CH374DiskConnect子程序,不能用xQueryInterrupt,參考EXAM1和EXAM13
CH374不支持外部接口子程序,但可在CH374_WRITE_BLOCK和CH374_READ_BLOCK64中實現類似功能
外部的查詢中斷子程序不同,參考.H文件中的默認例子,CH374也支持無中斷引腳的操作
如果有BulkOnly協議的其它SCSI命令處理,參考EXAM12用CH374BulkOnlyCmd等實現
如果需要精確定時,可以用CH374庫新增加的子程序CH374DelaymS( )實現
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -