阅读:2348回复:12
请教各位大虾:EZUSB的firmware如何修改?
在EZ-USB自带的例程中,有两个example是带了FW.C的,我都看了一下结果是一样的!不一样的是PERIPH.C和DSCR.A51,这两个例子分别是关于bulk何iso传输的。看了这么久却依然不知道如何修改fw.c为自己的固件,看不懂前面所述的程序之间是如何联系的!还请sunkai、usb11老斑竹rayyang2000等高人指点一二!先谢过了!
|
|
最新喜欢:![]()
|
沙发#
发布于:2001-10-25 10:21
fw.c基本不用改,就只要在periph.c中改就好了,整个工程合起来才是一个完整的firmware.
|
|
板凳#
发布于:2001-10-25 12:19
我很菜,请问EZUSB是什么?
|
|
|
地板#
发布于:2001-10-25 12:35
[QUOTE]原本由 fuzi 发表
[B]我很菜,请问EZUSB是什么? [/B][/QUOTE] 你真的很菜。本站开发了EZUSB,你居然不知道。 |
|
地下室#
发布于:2001-10-25 12:56
cpress为2100开发板提供了一个C的FIRMARE框架工程,在默认安装路径下\Cypress\USB\Target\Fw。其他的C例子都是在它的基础了做出的。工程中有fw.c,feriph.c,dscr.a51三个代码文件,另外有一个LIB文件,一个OBJ文件。fw.c几乎根本不用修改,所以你看到都是一样的。feriph.c是功能部分,不用的端点功能当然不一样,dscr.a51是设备描述符文件,不用的设备有不用的描述。这5个文件加上工程描述文件才完整。
|
|
5楼#
发布于:2001-10-25 19:18
[QUOTE]原本由 sunkai 发表
[B]cpress为2100开发板提供了一个C的FIRMARE框架工程,在默认安装路径下\Cypress\USB\Target\Fw。其他的C例子都是在它的基础了做出的。工程中有fw.c,feriph.c,dscr.a51三个代码文件,另外有一个LIB文件,一个OBJ文件。fw.c几乎根本不用修改,所以你看到都是一样的。feriph.c是功能部分,不用的端点功能当然不一样,dscr.a51是设备描述符文件,不用的设备有不用的描述。这5个文件加上工程描述文件才完整。 [/B][/QUOTE] 首先感谢各位大虾热心的回答!尤其感谢sunkai老兄回答的这么详细!我现在有种豁然开朗的感觉,不过还有一点疑惑就是:在periph.c里有一段代码是写的“可以被USB的中断jump table”调用的,不知道哪儿可以找到这个表?我只在开发手册的第6章看到一小段,而且这些中断是通过判断什么而引起的我也不甚了了!~:( void ISR_Sof(void) interrupt 0是此段中的一个函数吧?但是函数的声明后的vinterrupt 0是什么意思呢?在firmware中没有发现有这个函数被调用的!所以我自己猜想可能是某个积存器发生变化会调用这段代码,但究竟是什么时候调用哪个,我应该在中断表里找吧?不知道这样理解对不对?还有在fw.c里有许多没有声明的东东(看上去象函数,但却没有定义过),也不知道是什么?比如:EZUSB_SET_EP_BYTES(IN)BUF_ID,min(len,64)), SETUPDAT[3]之类的又是什么东东?ft,看的我头都大了!~:( 还望各位大虾帮小弟指点迷津,解围呀!!!!! fuzi,你好,EZUSB是塞普拉斯(cypress)公司的USB的开发套间,它里面集成了一个增强的8051处理器。想知道更具体的情况请访问它们的主页 http://www.cypress.com |
|
|
6楼#
发布于:2001-10-26 09:02
有一篇关于如何使用固件得文档,你可以从网上当下来。
另外,这个固件程序给出了很多函数原型,主要是提供给用户修改。 |
|
|
7楼#
发布于:2001-10-26 12:08
[QUOTE]原本由 fanwei7 发表
[B]有一篇关于如何使用固件得文档,你可以从网上当下来。 另外,这个固件程序给出了很多函数原型,主要是提供给用户修改。 [/B][/QUOTE] 不知道你说的是不是:Anchor EZ-USB Frameworks? 函数原型在哪儿可以找到呀?example里很少呀,只有两个firmware好象!~:( 哪儿可以下其他的例子呀? 还清指教 |
|
|
8楼#
发布于:2001-11-28 22:15
fanwei7,你说的“有一篇关于如何使用固件得文档............”在哪个网站呀?我想看一看,谢了先!
|
|
9楼#
发布于:2001-11-29 10:01
听了以上诸位高手的辩论,我也有mushy的那种感觉和困惑,甚至比他还甚,比如,那个LIB和OBJ文件是怎么得来的?在写我自己的FIRMWARE时,这两个文件也要加进去吗?如果需要的话,还要不要修改为自己的LIB和OBJ文件?怎样修改?
我是笨一点:(,各位高手就耐心一点了:)。 |
|
|
10楼#
发布于:2001-11-29 11:02
你要想修改obj和lib文件,恐怕要重新看一下编译原理,lib的源文件好像就在hardware的目录下吧!
我对那个firmware的感受是:它只提供了对usb中断的相应支持,对于其他的象int0,int1都没有支持,你需要在fw。c中修改,还有如果你用gpif的话,还要插入gpif的初始化等东西。 如果说的不对,请大家改正!!! |
|
11楼#
发布于:2001-11-29 15:41
......
void ISR_Ep0in(void) interrupt 0 { } void ISR_Ep0out(void) interrupt 0 { } void ISR_Ep1in(void) interrupt 0 { } ...... 在PERIPH.C里,上面的中断函数是什么意思啊?为什么都是空的,而且都是interrupt 0? 唉,有太多的不明白了,那位大侠能耐心一点把以上的诸多问题都一一讲解一下呀?在此小的向你们磕头了. :D :D :D |
|
|
12楼#
发布于:2001-11-29 16:50
那些中断函数是留给你自己填的,以实现你所要求的功能。
|
|