laotui 发表于 2015-1-19 18:50:50

对苏州大学KL25USB例程中BDT缓冲区说明的疑问

例程中说
这样岂不是只有一半有用,不理解硬件是怎么查表的。

holts2 发表于 2015-1-19 19:15:35

什么只有一半可用?

lzl000 发表于 2015-1-19 21:07:12

要不楼主去掉试试什么结果

laotui 发表于 2015-1-19 21:10:58

lzl000 发表于 2015-1-19 21:07
要不楼主去掉试试什么结果

修改后枚举就不成功了,不理解为什么有这种要求。

laotui 发表于 2015-1-20 11:42:25

holts2 发表于 2015-1-19 19:15
什么只有一半可用?

按手册上理解只有在16个端点全开时,每个端点每个方向8字节,双缓存再乘以二 16*8*2*2=512字节。

holts2 发表于 2015-1-20 11:54:26

laotui 发表于 2015-1-20 11:42
按手册上理解只有在16个端点全开时,每个端点每个方向8字节,双缓存再乘以二 16*8*2*2=512字节。 ...

XD已经在研究USB了,这个不了解

Juggernaut 发表于 2015-1-20 13:51:02

找找USB驱动的相关知识点,看看是不是通用的做法

FSL_TICS_Robin 发表于 2015-1-22 14:46:51

laotui 发表于 2015-1-20 11:42
按手册上理解只有在16个端点全开时,每个端点每个方向8字节,双缓存再乘以二 16*8*2*2=512字节。 ...

不是很清楚为什么苏大要申请1024bytes。
请看参考手册KL25P80M48SF0RM的“35.3.1 Buffer Descriptor Table”章节(如下图):


为了实现“512-byte boundary”你可以用:
__attribute__((__aligned__(512))) uint8_t tBDT_unaligned;
替代原来的:
uint_8 tBDT_unaligned;
页: [1]
查看完整版本: 对苏州大学KL25USB例程中BDT缓冲区说明的疑问