PDIUSBD12 u盘设计:给入门者(2)
下面是基于Brk-D12的U盘实现的代码(用VC++6.0的控制台模式编译)。这部分代码基本基于最早的“入门者”帖子中提供的PHILIPS的源代码;在其基础上我作了一些修改;原来的代码是基于C51平台的,就我个人意见来说,其代码编写质量不敢恭维,这也是入门者->高手途中的一些基本不足:(1):.Windows相比于Linux,我本人愿意按照Linux的代码风格和命名习惯,因为前者掌握不好会造成代码混乱;(2):过于玩弄程序技巧而导致代码混乱,比如xxx_EXT这类宏定义初衷是好的(好象学习的uCOS的风格),可是导致了大量无用的声明;(3):结构体的滥用让入门者读起代码来比较费劲,如chap_9.c中开始的一堆,等等。我做了一些修改,但是实在太麻烦了,所以就放弃了,请各位凑合看。
需要注意的是,这里实现的U盘的存储介质是PC的内存,所以并没有涉及到实际U盘中读写Flash时要注意的缓存问题。
使用这个程序要注意如下几点:
(1)在WinXp下做的测试,连接好Brk-D12后,运行代码,PC会提示找到U盘并做相应的处理,直到硬件可用
(2)开辟了64MBytes内存作为虚拟的U盘存储器,故需要你的PC内存足够大,当然可以改小一点,同时对U盘读容量的响应(READ CAPACITY)也要改小
(3)d12_pc.c中的UMFORMAT_DISK宏来控制是否虚拟一个未格式化的U盘,如果你的硬盘上没有现成的U盘镜像(完全的扇区对扇区的拷贝),请定义该宏,在找到U盘之后,点击盘符,会提示你格式化
(4)退出程序请按空格或其他键,程序会产生一个拨出U盘的动作
代码如下:
[upload=rar]viewFile.asp?ID=5680[/upload]
*未完待续