LAOXU 发表于 2024-12-27 06:17:05

USB 模块 FIFO 的疑问?

上次 STC论坛上有个网友, 使用汇编调用 USB库, 发现加入的程序长度超出一定范围, 连接报错.
大家知道, 编译出错的问题, 出错的位置在源码中定位比较准确, 容易排查和解决.
而连接报错的问题, 出错的位置在源码中定位困难, 难以排查和解决.
我直观的认为, STC 的USB库, 有点问题(使用了AX51编译和LX51连接, 内部加入了很多扩展特征),
此库和 C混合编译调用通常不会出问题, 但和汇编混合编译调用, 程序一长容易出问题, 且排查和解决问题难度较大.
所以我推荐其使用 USB 的 C源码 和 ASM汇编 混合编译.


通过不断的反向分析官方 USB库, 和官方的 USBC源码, 发现一个疑点?
USB 库模块 占用 XRAM 内存, 而 USBC源码 不占用 XRAM 内存,
大家知道, USB 模块共有 1280 字节的 FIFO, 我的疑问是:
USB 模块的 FIFO, 是独立的 1280 字节? 还是 和 XRAM共用(占据 XRAM 最后1280 字节)?

_奶咖君_ 发表于 2024-12-27 09:16:04

{:xiaojiujie:}一点儿拙见,,从那个STC8H2K12U上面的介绍上说,再不使用USB的情况下,这个片子的XRAM有 2.25k,,如果使用USB情况下,就是 1K 。。从这点上能不能推断出 这个FIFO的位置应该就是您说的 占据XRAM最后1280字节?FIFO和 XRAM中间的地址不连续,,是不是在设置上就要有区别,才能在不使用USB的时候使用全部的2.25K XRAM?

或者说可能这个STC8H2K12U是这样分配的,,其他的不一定是?

LAOXU 发表于 2024-12-28 03:33:14

_奶咖君_ 发表于 2024-12-27 09:16
一点儿拙见,,从那个STC8H2K12U上面的介绍上说,再不使用USB的情况下,这个片子的XRAM有 2.25k,,如果使 ...

关于这一点, 需要官方明确回复.
如占用, 则在使用 USB时, XRAM最后1280字节程序中不能使用.否则, 程序运行会产生莫明其妙的死机等现像.
像上次STC论坛上有个网友, 使用汇编调用 USB库, 发现加入的程序长度超出一定范围, 连接报错现像. 也得到了理论上的解释.

_奶咖君_ 发表于 2024-12-28 08:45:43

LAOXU 发表于 2024-12-28 03:33
关于这一点, 需要官方明确回复.
如占用, 则在使用 USB时, XRAM最后1280字节程序中不能使用.否则, 程序 ...

是的,需要官方来解释。。以上确实是我的猜测{:xiaojiujie:}

xxkj2010 发表于 2024-12-28 09:23:49

LAOXU 发表于 2024-12-28 03:33
关于这一点, 需要官方明确回复.
如占用, 则在使用 USB时, XRAM最后1280字节程序中不能使用.否则, 程序 ...
以前好像在哪里看到过什么USB芯片(也忘记了是不是STC)的手册说,在使用 USB时就是占用XRAM的

LAOXU 发表于 2024-12-28 17:58:11

xxkj2010 发表于 2024-12-28 09:23
以前好像在哪里看到过什么USB芯片(也忘记了是不是STC)的手册说,在使用 USB时就是占用XRAM的 ...

不同厂家 USB 占用RAM 的空间位置, 肯定不一样,

像 STC8H2K12U 类低价芯片, 为降低成本, 借用 XRAM, 占据最后1280字节, 完全正常.

但高挡芯片, 就不一定这样干了, 通常的 XRAM, 为降低成本, 速度并不快, 而独立的 FIFO, 可采用高速 RAM, 速度更快.

xxkj2010 发表于 2024-12-28 18:08:08

LAOXU 发表于 2024-12-28 17:58
不同厂家 USB 占用RAM 的空间位置, 肯定不一样,

像 STC8H2K12U 类低价芯片, 为降低成本, 借用 XRAM, 占 ...

是的,能有独立的 FIFO,那更好!

health 发表于 2024-12-28 21:35:29

最新版的数据手册增加了内容

LAOXU 发表于 2024-12-29 07:22:46

health 发表于 2024-12-28 21:35
最新版的数据手册增加了内容

STC8H2K12U 类低价芯片, 为降低成本, 借用 XRAM, 占据最后1280字节, 完全正常

但其他 带 USB 的芯片, 是否独立的 FIFO ?还是像 STC8H2K12U 类一样, 借用 XRAM, 占据最后1280字节 ?

希望官方能给一个明确的答复, 否则靠猜测, 没法干活.
页: [1]
查看完整版本: USB 模块 FIFO 的疑问?