- 打卡等级:以坛为家I
- 打卡总天数:312
- 最近打卡:2025-03-11 13:20:13
荣誉版主
- 积分
- 5395
|
上次 STC论坛上有个网友, 使用汇编调用 USB库, 发现加入的程序长度超出一定范围, 连接报错.
大家知道, 编译出错的问题, 出错的位置在源码中定位比较准确, 容易排查和解决.
而连接报错的问题, 出错的位置在源码中定位困难, 难以排查和解决.
我直观的认为, STC 的USB库, 有点问题(使用了AX51编译和LX51连接, 内部加入了很多扩展特征),
此库和 C混合编译调用通常不会出问题, 但和汇编混合编译调用, 程序一长容易出问题, 且排查和解决问题难度较大.
所以我推荐其使用 USB 的 C源码 和 ASM汇编 混合编译.
通过不断的反向分析官方 USB库, 和官方的 USB C源码, 发现一个疑点?
USB 库模块 占用 XRAM 内存, 而 USB C源码 不占用 XRAM 内存,
大家知道, USB 模块共有 1280 字节的 FIFO, 我的疑问是:
USB 模块的 FIFO, 是独立的 1280 字节? 还是 和 XRAM共用(占据 XRAM 最后1280 字节)?
|
|