2416平台,u-boot-1.3.4支持U盘功能问题总结 .

来源:互联网 发布:kmeans java代码 编辑:程序博客网 时间:2024/05/16 09:19
 

①在include/configs/smdk2416.h中添加定义:

#defineCONFIG_USB_OHCI

#defineCONFIG_USB_STORAGE

#defineCONFIG_DOS_PARTITION

#defineCONFIG_SUPPORT_VFAT

#defineLITTLEENDIAN

以及

#defineCONFIG_CMD_USB 

#defineCONFIG_CMD_FAT

再打开common/makefile,在119行添加

COBJS-$(CONFIG_CMD_USB)+= cmd_usb.o

②根据2416用户手册,配置好相关的时钟以及系统的寄存器,具体如何配置此处不再赘述;

③将链接地址改为物理地址,本人使用核心板的三星给的代码是使用MMU功能的,链接地址为0xc3e00000,改后为0x33e00000;

④关闭D-Cache,禁掉MMU功能;(或者将MMU的映射设置为平台映射模式,即1:1的映射)

⑤注意你的编译器版本,编译器可能会给你带来很郁闷的问题,让你无从找到问题的答案。此处本人编译通过并能够正常使用的分别为3.3和带软浮点的3.4.5的编译器。另外,目前还存在一个问题就是:无法正常识别2G以下的U盘,金士顿2G的U盘需要识别两次才能识别到,第一次通常是超时失败的,而4G和8G的U盘则无任何问题。

⑥关注你的基准延时函数是否为1us,如果偏差太大将会造成读取U盘数据时累积偏差过大而与USB总线同步不上,那么接下来你读取数据会不成功。

以上为2416平台实现u-boot-1.3.4中支持U盘需要重点关注的几个问题。希望能给有需要的朋友有所帮助!

有谁解决了⑤中本人遗留的问题,烦请告知一声,呵呵,先谢过了!

原文出处:http://blog.csdn.net/jiangyu28/article/details/6665194

原创粉丝点击