打印

2440裸奔USB HOST

[复制链接]
11053|31
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
guo_bin76|  楼主 | 2009-10-16 21:54 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
阿南| | 2009-10-17 00:34 | 只看该作者
确实很有难度。找找是否有现成的测试程序,否则真的是很难

使用特权

评论回复
板凳
guo_bin76|  楼主 | 2009-10-24 13:59 | 只看该作者

RE: 2440裸奔USB HOST-----附加ADS代码

貌似没有多少人在裸奔下研究这个host功能哟,从网上下载到一个USB HOST OK的版本,编译器为ADS1.2,测试发现这个版本是没有mmu功能,但是能够读出U盘,我将MMU功能加上后发现就读不了U盘了,看看哪位高手能够调试看看,看如何在这个版本上将MMU功能加上,

usb_host.rar

1.01 MB

使用特权

评论回复
评论
menzhuangy 2018-11-3 16:42 回复TA
多谢分享,如果可以写u盘就更好了 
地板
itelectron| | 2009-11-9 22:03 | 只看该作者
顶上去 不知道 楼主 现在 裸奔USB HOST 到什么程度了

使用特权

评论回复
5
聆风| | 2009-11-10 08:40 | 只看该作者
请问LZ有没有usb device的demo. 我搞了两个都不行.

使用特权

评论回复
6
wangkj| | 2009-11-10 09:13 | 只看该作者
裸奔你要mmu干啥?想自己做os?

使用特权

评论回复
7
google的马甲| | 2009-11-10 09:25 | 只看该作者
3# guo_bin76

void __inline wait_ms(unsigned long ms)
{
    while(ms-->0)
    udelay(1000);
}

void TestWaitMs(void)

使用MMU后,这段MS延时是不对的,得换定时器。

使用特权

评论回复
8
china_fog| | 2009-11-10 10:24 | 只看该作者
既然用了2440,为啥要裸奔?不上OS,写驱动?

使用特权

评论回复
9
itelectron| | 2009-11-10 17:39 | 只看该作者
S3C2440的NandFlash程序+USB.rar (117.5 KB) TO5楼

使用特权

评论回复
10
聆风| | 2009-11-10 17:57 | 只看该作者
itelectron.  您是否验证过该程序. 我看了这个程序. 与我试过的一个差不多. 我移植到ADS下运行后插入PC后. USB中断都没有. 很奇怪.

使用特权

评论回复
11
guo_bin76|  楼主 | 2009-11-11 16:36 | 只看该作者
我的系统是用在仪表显示方面,驱动7寸数字屏,需要很多GUI画面,而这些画面都是美工整幅画好的,开始用wince系统,但是在切换整幅图片时,刷新速度偏慢,达不到客户的要求,所以就干脆裸奔。
系统软件配置:
  ucOS+ucGUI+Fat,并且需要播放SD卡和U盘的MP3功能,当做USB device时,需要配置成60M U盘,方便更换美工图片。
  USB HOST用上面的代码能够读写U盘,但是不能开mmu,如果不开mmu,运行速度大打折扣,就连刷屏的速度都没有办法达到要求,也是整了几天都没有眉目,所以看看有没有高手做过这些,不过后来又研究了2天,发现只要USB HOST的RO RW ZI放在NCNB区就能够正确访问U盘,于是我用分散加载方式,将USB HOST功能程序加载到SDRAM单独一个区域运行就OK了,也能够正确读写U盘,我的文件系统用的是开源的FATFS,发现读写U盘速度相当慢,只有几十KBytes/S,怎么播放U盘的MP3呀,我的MP3也是用软件解码方式工作,所以CPU累的半死,简直没有办法播放,开始查找原因,先查找USB HOST底层驱动,发现单独读U盘的一个扇区是在40ms左右,但是如果连续读128个扇区,只要106ms,终于看到希望了,证明底层驱动没有问题哟,基本上可以达到600KBytes/S,足够可以播放MP3了,于是想问题应该出在文件系统上了,但是FATFS是开源里面写的很好的一个文件系统,不至于这么差吧,再仔细读FATFS的读文件函数,发现它是按照一个族来读扇区数的,而我的U盘一个族只有8个扇区,这样就是说当我读超个8个扇区文件数据时,它就只能8个扇区分开读了,根据USB HOST底层驱动特性,需要一次性读的扇区数越多越能体现出高速,于是修改它的读文件算法,保证只要是连续的族,就可以一次性读更多的扇区,我的一次性最大扇区数为128,目的是和windows兼容,这样修改了发现读文件果然快,可以达到500KBytes/S,播放MP3也好流畅。
   USB device,也是郁闷了2天,现象和上面你们的一样,插上USB线,USB中断了一下就不中断了,老是不能做枚举动作,实在查不出什么原因啦,干脆就直接把网上下载的umon里面USB device程序全部考进去,发现也不行,这就奇怪了,后来琢磨可能跟移植的ucOS有关系,然后再网上又找到一个2440的ucOS版本,发现用这个版本居然能够枚举了,我的OS用的是2.86最新的,而他的是2.52,干脆我将他OS相关的代码都覆盖我原来的OS相关文件,然后再调试我的系统程序,发现没有什么问题,插上USB线,也能枚举了,然后就是做成60M U盘,这个就容易多了,只要按照SCSI命令回windows需要的数据就行了,基本做这个U盘基本耗了我2天时间
    这个项目基本完成了,写了这么多希望对还在迷惑中的朋友有点帮助!

使用特权

评论回复
12
聆风| | 2009-11-11 16:49 | 只看该作者
guo_bin76. 能否将你的2440 usb device贡献出来. 我的USB无法进入中断.

使用特权

评论回复
13
liliang9554| | 2009-11-11 19:04 | 只看该作者
哈哈,有难度啊

使用特权

评论回复
14
itelectron| | 2009-11-12 19:15 | 只看该作者
顶楼主

使用特权

评论回复
15
highend| | 2009-11-16 21:53 | 只看该作者
读U盘,没操作系统很麻烦。Linux下的USB HOST驱动移植很困难。
几年前做过,即使试验OK,兼容性仍不好。远不如Linux下运行正常。

使用特权

评论回复
16
杉林隐士| | 2010-1-24 13:30 | 只看该作者
高手,我顶!

使用特权

评论回复
17
深圳英贝德| | 2010-1-24 22:44 | 只看该作者
裸跑应用程序,实际上,就是和单片机一样,为什么要上MMU呢?
奇怪了。

使用特权

评论回复
18
杉林隐士| | 2010-1-25 11:06 | 只看该作者
帮忙传上传一个USB  Host写U盘的例程!!

使用特权

评论回复
19
terry_arm| | 2010-3-11 19:21 | 只看该作者
找到队伍了。。。。

使用特权

评论回复
20
我是土匪| | 2010-3-16 12:57 | 只看该作者
楼主,我做的和你的差不多  2440 + UCOSII + FATFS  读取图片在7寸TFT解码显示

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

36

帖子

2

粉丝