阅读:1838回复:15
关于ARM的驱动开发
我终于要对真东西下手了!电路图如下,其中CPU是台湾公司生产的一款芯片,使用ARM7TDMI的核,让我做驱动,可是以前只在CYPRESS的开发板上把人家现成的例子改来改去的,现在才发现照搬是不行的 :(。
请教各位大侠,我要做的是不是象开发CY68013一样,在相应的开发环境中编写固件(我用的是ARM Project Manager),然后再做Windows下的设备驱动(DDK,Windriver)?那我是不是要自己写*.lib和其他一些文件?好像很糊涂的说,没有什么概念,我到底要做什么呀?哪位指点一二。 :o其实也不需要完成太多的功能,只是最后(大概是月底)有个简单界面,能够展示下USB的数据传输。 ATA部分是用来检测数据传输的[\\b] |
|
|
沙发#
发布于:2003-12-09 19:01
罗里罗嗦的说了半天,也不知说明白没?
等全都做好了,俺就把所有的分都放了,从头再来! :D反正当初来驱网也是奔着这个项目来的,结果光灌水了 :( , 大伙说我能做完吗?不管怎样,必须做出来啊! :mad:,只有发挥大学时考前熬夜的精神了!没想到毕业了,还这样~~~~~~~~~~~ |
|
|
板凳#
发布于:2003-12-10 01:18
我不懂,支持一下!
|
|
地板#
发布于:2003-12-10 08:47
其实LIB也不用自己写,最重要的就是要把固件作修改。我想你把usb芯片连上后只要用现在的驱动能够驱起来的话,驱动也不用改了! :D
|
|
地下室#
发布于:2003-12-10 11:21
其实LIB也不用自己写,最重要的就是要把固件作修改。我想你把usb芯片连上后只要用现在的驱动能够驱起来的话,驱动也不用改了! :D 这么好么? :P那寄存器的地址怎么也得改吧?还有哪些要改动的呢?麻烦说具体点,举个例子,比如……,我也说不出来,哪部分代码要改呢? 如果我只是做个展示的驱动程序,就像Cypress\\USB\\examples\\ezusb\\bulktest那样的,有一个固件target和一个主机驱动程序host就行了,到时候可以生成一个界面展示我们的USB内核(这个是我们公司自己做的)就可以交差了。我的认识是用ARM Project Manager(ARM的开发工具,cpu是采用ARM核的)来写固件,然后利用人家的主机驱动程序(这个好像也不能捡现成的,至少也得改,具体改什么,俺现在还没看,以后再问),这样就算完工了。不知我这样理解对不对? |
|
|
5楼#
发布于:2003-12-10 11:31
说到固件的编写,我打算仿照该例程(bulktest)来写,可是问题又来了,现在采用的是的是多芯片方法,USB收发器和SIE与CPU是分开的,不在同一个芯片中,这与CYPRESS是不一样的,那么编写驱动时会有什么不同吗?
我的硬件知识很糟糕,应该多多学习,这个问题希望不要让行家笑掉大牙 :) |
|
|
6楼#
发布于:2003-12-10 15:13
踢!没有人能看明白我说了什么吗? :(
|
|
|
7楼#
发布于:2003-12-10 17:20
如果和cypress的bulktest一样的也可以,你就好运了。根本不用写驱动,你只要按照cypress的bulktest firmware(就是target里的那个),写一个arm的程序就可以了。当然,很多东西不一样,比如,控制的寄存器不同,写法当然不用,但是对于usb的描述符,以及端点的处理等,都是一样的。
|
|
|
8楼#
发布于:2003-12-10 17:22
呵呵,这样的话,不说驱动,连上层应用程序你都可以一点不改的使用啊。
|
|
|
9楼#
发布于:2003-12-11 08:41
开来你做得跟我做得有点相似,是不是打算做usb接口的移动硬盘之类?如果单单使用bulk功能,你的驱动和应用程序都不需要改。至于固件方面,参考摸透cypresss例程就没大问题。
|
|
10楼#
发布于:2003-12-11 08:50
看来大家都有同感啊!
|
|
11楼#
发布于:2003-12-11 08:54
呵呵,这样的话,不说驱动,连上层应用程序你都可以一点不改的使用啊。 看起来还有点希望! :D :D :D 开来你做得跟我做得有点相似,是不是打算做usb接口的移动硬盘之类?如果单单使用bulk功能,你的驱动和应用程序都不需要改。至于固件方面,参考摸透cypresss例程就没大问题。 不是做硬盘驱动,我们公司设计的USB核,到年底了,要交结题报告,需要展示一下USB的功能,到明年还是要作些具体应用的。 你说的驱动和应用程序指什么?我的了解是主机驱动是在VC+DDK环境下编写的,既是驱动程序又是应用界面的程序,不知对不对? |
|
|
12楼#
发布于:2003-12-11 09:04
驱动确如你所说,作用是访问usb端口。应用程序指PC机端的软件,处理数据的。要展示USB的数据传输,最好还是速度快点的传输方式。你还要挂上harddisk,那不就是个移动硬盘嘛。程序都不用大改了。
|
|
13楼#
发布于:2003-12-11 09:19
不是有希望,而是比较容易的。
你关键是理顺一下usb协议的启动设备的几个握手包,正确的响应,提供给pc你的设备信息。接下来,就是处理你需要的端点上的数据,就是一个收发问题。可以说比较简单。 另外的问题就是,arm你用的什么片子?要不要操作系统的? |
|
|
14楼#
发布于:2003-12-11 12:50
使用的是台湾公司的一款芯片-ML1201E,采用ARM7TDMI内核设计,可恶的台湾人还不提供中文资料 :mad:。
没有操作系统。 |
|
|
15楼#
发布于:2003-12-11 15:58
没有操作系统容易,你就把它当作一个单片机来使用好了。关键是你要知道你的usb IC定义了什么样的控制寄存器?以及放数据的缓冲区。它们被映射到哪一个内存地址上。
另外,如果你是用RAM来跑程序,还要考虑好怎么boot。 |
|
|