阅读:1340回复:8
关于固件的几个问题
在<<D12固件编程指南>>中有几个问题请教大家:
DMA_EOT D12_INT_EOT指什么? SINGLE_TRANSMIT(&C,1),SINGLE_TRANSMIT(0,0)是什么意思?里面的值是如何确定的? txdat[1]=0代表什么? |
|
最新喜欢:![]() |
沙发#
发布于:2002-12-06 09:12
在<<D12固件编程指南>>中有几个问题请教大家: 只知道第一种:DMA_EOT(DMA传输结束) 别的正在研究.... |
|
板凳#
发布于:2002-12-06 09:59
谢谢dacongtou!我好像看到过不少你的贴子 ;)
|
|
地板#
发布于:2002-12-06 10:10
谢谢dacongtou!我好像看到过不少你的贴子 ;) 呵呵.主要是现在正好在学这些..东西搞不出来正着急呢...我也不太懂这些..让真正的高手们见笑了..... |
|
地下室#
发布于:2002-12-06 10:15
在《固件编程指南》中有如下程序看不大懂:
void single_transmit(unsigned char * buf, unsigned char len) { if( len <= EP0_PACKET_SIZE) { D12_WriteEndpoint(1, len, buf); } } 在后面经常出现single_transmit(a,b),a,b的值怎么确定? void stall_ep0(void) 什么作用? { D12_SetEndpointStatus(0, 1); D12_SetEndpointStatus(1, 1); } void reserved(void) { stall_ep0(); } void init_unconfig(void) 有什么作用? { // unsigned char i; D12_SetEndpointEnable(0); /* Disable all endpoints but EPP0. */ } void init_config(void) { D12_SetEndpointEnable(1); /* Enable generic/iso endpoints. */ ??为什么不是使能所有的端点 } 另有:if (bRecipient == USB_RECIPIENT_DEVICE) { if(bEPPflags.bits.remote_wakeup == 1) txdat[0] = 3; else txdat[0] = 1; txdat[1]=0; single_transmit(txdat, 2); txdat[]是干什么用的?里面的值如何确定? |
|
5楼#
发布于:2002-12-09 17:17
为什莫我在编译程序的时候在某个子函数里txdat[1]=0/1出现了
许多个错误,查了好久不知道是什莫原因。好像是: the left side is not a lvalue |
|
6楼#
发布于:2002-12-19 16:09
呵呵,我也看到这里来了,同样的问题哦,解决了没有啊?
|
|
7楼#
发布于:2002-12-19 16:30
大
|
|
8楼#
发布于:2002-12-20 22:02
啊,我来晚了!我从前天也开始看固件了,还没有看到这里,刚看到中断服务程序,希望以后各位大虾能多多指点小弟!对了,在周立功网站上下的固件程序中是不是有一些错误?倒不是程序错误,而是一些小的类似粗信的错误,比如说:把USB-TRANSMIT写成了USB-IDLE等等!也许是小弟眼拙,请高手指教!
|
|