nlq_new
驱动老牛
驱动老牛
  • 注册日期2003-04-11
  • 最后登录2012-04-28
  • 粉丝0
  • 关注0
  • 积分102分
  • 威望12点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
阅读:1838回复:15

关于ARM的驱动开发

楼主#
更多 发布于:2003-12-09 18:54
我终于要对真东西下手了!电路图如下,其中CPU是台湾公司生产的一款芯片,使用ARM7TDMI的核,让我做驱动,可是以前只在CYPRESS的开发板上把人家现成的例子改来改去的,现在才发现照搬是不行的 :(。
请教各位大侠,我要做的是不是象开发CY68013一样,在相应的开发环境中编写固件(我用的是ARM Project Manager),然后再做Windows下的设备驱动(DDK,Windriver)?那我是不是要自己写*.lib和其他一些文件?好像很糊涂的说,没有什么概念,我到底要做什么呀?哪位指点一二。 :o其实也不需要完成太多的功能,只是最后(大概是月底)有个简单界面,能够展示下USB的数据传输。

ATA部分是用来检测数据传输的[\\b]

[b][color=green]我庄严宣誓我没干好事[/color] [/b]
nlq_new
驱动老牛
驱动老牛
  • 注册日期2003-04-11
  • 最后登录2012-04-28
  • 粉丝0
  • 关注0
  • 积分102分
  • 威望12点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-12-09 19:01
罗里罗嗦的说了半天,也不知说明白没?
等全都做好了,俺就把所有的分都放了,从头再来! :D反正当初来驱网也是奔着这个项目来的,结果光灌水了 :( ,

大伙说我能做完吗?不管怎样,必须做出来啊! :mad:,只有发挥大学时考前熬夜的精神了!没想到毕业了,还这样~~~~~~~~~~~
[b][color=green]我庄严宣誓我没干好事[/color] [/b]
wwjmaomao
驱动牛犊
驱动牛犊
  • 注册日期2003-07-07
  • 最后登录2004-06-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-12-10 01:18
 我不懂,支持一下!
flytomoon
驱动巨牛
驱动巨牛
  • 注册日期2003-07-09
  • 最后登录2004-10-18
  • 粉丝1
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-12-10 08:47
其实LIB也不用自己写,最重要的就是要把固件作修改。我想你把usb芯片连上后只要用现在的驱动能够驱起来的话,驱动也不用改了! :D
nlq_new
驱动老牛
驱动老牛
  • 注册日期2003-04-11
  • 最后登录2012-04-28
  • 粉丝0
  • 关注0
  • 积分102分
  • 威望12点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-12-10 11:21
其实LIB也不用自己写,最重要的就是要把固件作修改。我想你把usb芯片连上后只要用现在的驱动能够驱起来的话,驱动也不用改了! :D

这么好么? :P那寄存器的地址怎么也得改吧?还有哪些要改动的呢?麻烦说具体点,举个例子,比如……,我也说不出来,哪部分代码要改呢?

如果我只是做个展示的驱动程序,就像Cypress\\USB\\examples\\ezusb\\bulktest那样的,有一个固件target和一个主机驱动程序host就行了,到时候可以生成一个界面展示我们的USB内核(这个是我们公司自己做的)就可以交差了。我的认识是用ARM Project Manager(ARM的开发工具,cpu是采用ARM核的)来写固件,然后利用人家的主机驱动程序(这个好像也不能捡现成的,至少也得改,具体改什么,俺现在还没看,以后再问),这样就算完工了。不知我这样理解对不对?
[b][color=green]我庄严宣誓我没干好事[/color] [/b]
nlq_new
驱动老牛
驱动老牛
  • 注册日期2003-04-11
  • 最后登录2012-04-28
  • 粉丝0
  • 关注0
  • 积分102分
  • 威望12点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-12-10 11:31
说到固件的编写,我打算仿照该例程(bulktest)来写,可是问题又来了,现在采用的是的是多芯片方法,USB收发器和SIE与CPU是分开的,不在同一个芯片中,这与CYPRESS是不一样的,那么编写驱动时会有什么不同吗?
我的硬件知识很糟糕,应该多多学习,这个问题希望不要让行家笑掉大牙 :)
[b][color=green]我庄严宣誓我没干好事[/color] [/b]
nlq_new
驱动老牛
驱动老牛
  • 注册日期2003-04-11
  • 最后登录2012-04-28
  • 粉丝0
  • 关注0
  • 积分102分
  • 威望12点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-12-10 15:13
踢!没有人能看明白我说了什么吗? :(
[b][color=green]我庄严宣誓我没干好事[/color] [/b]
OS_Dev
驱动中牛
驱动中牛
  • 注册日期2002-01-09
  • 最后登录2004-03-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-12-10 17:20
如果和cypress的bulktest一样的也可以,你就好运了。根本不用写驱动,你只要按照cypress的bulktest firmware(就是target里的那个),写一个arm的程序就可以了。当然,很多东西不一样,比如,控制的寄存器不同,写法当然不用,但是对于usb的描述符,以及端点的处理等,都是一样的。
I know nothing!
OS_Dev
驱动中牛
驱动中牛
  • 注册日期2002-01-09
  • 最后登录2004-03-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-12-10 17:22
呵呵,这样的话,不说驱动,连上层应用程序你都可以一点不改的使用啊。
I know nothing!
clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-12-11 08:41
开来你做得跟我做得有点相似,是不是打算做usb接口的移动硬盘之类?如果单单使用bulk功能,你的驱动和应用程序都不需要改。至于固件方面,参考摸透cypresss例程就没大问题。
flytomoon
驱动巨牛
驱动巨牛
  • 注册日期2003-07-09
  • 最后登录2004-10-18
  • 粉丝1
  • 关注1
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-12-11 08:50
看来大家都有同感啊!
nlq_new
驱动老牛
驱动老牛
  • 注册日期2003-04-11
  • 最后登录2012-04-28
  • 粉丝0
  • 关注0
  • 积分102分
  • 威望12点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-12-11 08:54
呵呵,这样的话,不说驱动,连上层应用程序你都可以一点不改的使用啊。


看起来还有点希望! :D :D :D

 
开来你做得跟我做得有点相似,是不是打算做usb接口的移动硬盘之类?如果单单使用bulk功能,你的驱动和应用程序都不需要改。至于固件方面,参考摸透cypresss例程就没大问题。
 

不是做硬盘驱动,我们公司设计的USB核,到年底了,要交结题报告,需要展示一下USB的功能,到明年还是要作些具体应用的。
你说的驱动和应用程序指什么?我的了解是主机驱动是在VC+DDK环境下编写的,既是驱动程序又是应用界面的程序,不知对不对?
[b][color=green]我庄严宣誓我没干好事[/color] [/b]
clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-12-11 09:04
驱动确如你所说,作用是访问usb端口。应用程序指PC机端的软件,处理数据的。要展示USB的数据传输,最好还是速度快点的传输方式。你还要挂上harddisk,那不就是个移动硬盘嘛。程序都不用大改了。
OS_Dev
驱动中牛
驱动中牛
  • 注册日期2002-01-09
  • 最后登录2004-03-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-12-11 09:19
不是有希望,而是比较容易的。
你关键是理顺一下usb协议的启动设备的几个握手包,正确的响应,提供给pc你的设备信息。接下来,就是处理你需要的端点上的数据,就是一个收发问题。可以说比较简单。

另外的问题就是,arm你用的什么片子?要不要操作系统的?
I know nothing!
nlq_new
驱动老牛
驱动老牛
  • 注册日期2003-04-11
  • 最后登录2012-04-28
  • 粉丝0
  • 关注0
  • 积分102分
  • 威望12点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-12-11 12:50
使用的是台湾公司的一款芯片-ML1201E,采用ARM7TDMI内核设计,可恶的台湾人还不提供中文资料 :mad:。
没有操作系统。
[b][color=green]我庄严宣誓我没干好事[/color] [/b]
OS_Dev
驱动中牛
驱动中牛
  • 注册日期2002-01-09
  • 最后登录2004-03-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-12-11 15:58
没有操作系统容易,你就把它当作一个单片机来使用好了。关键是你要知道你的usb IC定义了什么样的控制寄存器?以及放数据的缓冲区。它们被映射到哪一个内存地址上。

另外,如果你是用RAM来跑程序,还要考虑好怎么boot。
I know nothing!
游客

返回顶部