解释如下:
#define BTABLE_ADDRESS (0x00) //说明端点描述符表从0x00开始
每个端点描述符会占用4个uint32_t型,即16个字节
如果使用到端点4,需要将
#define ENDP0_RXADDR (0x18)
#define ENDP0_TXADDR (0x58)
改为
#define ENDP0_RXADDR (0x50) 端点0-4 占用16*5=80个字节
#define ENDP0_TXADDR (0x90) 端点0缓冲区占用字节Device_Property.MaxPacketSize=0x40;
以下端点分配需从 ENDP0_TXADDR + 0x40开始
EP1_RXBUF 等的大小根据需要自行定义,不贴出了。
#define ENDP1_TXADDR ((uint16_t)(0xD0))
#define ENDP1_RXADDR ((uint16_t)((ENDP1_TXADDR+EP1_TXBUF+1)/2*2)) //按字对齐
#define ENDP2_TXADDR ((uint16_t)((ENDP1_RXADDR+EP1_RXBUF+1)/2*2))
#define ENDP2_RXADDR ((uint16_t)((ENDP2_TXADDR+EP2_TXBUF+1)/2*2))
#define ENDP3_TXADDR ((uint16_t)((ENDP2_RXADDR+EP2_RXBUF+1)/2*2))
#define ENDP3_RXADDR ((uint16_t)((ENDP3_TXADDR+EP3_TXBUF+1)/2*2))
#define ENDP4_TXADDR ((uint16_t)((ENDP3_RXADDR+EP3_RXBUF+1)/2*2))
#define ENDP4_RXADDR ((uint16_t)((ENDP4_TXADDR+EP4_TXBUF+1)/2*2))
from:http://bbs.ic37.com/bbsview-29849.htm