野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13397|回复: 3

调试USB模拟串口程序,遇到诡异现象了。奇怪了。【已经解决】

[复制链接]
发表于 2016-1-29 11:19:32 | 显示全部楼层 |阅读模式
本帖最后由 qduwg 于 2016-1-29 14:39 编辑

请看下面调试的窗口,明明wRegVal这个值已经被修改为0x1003,可是在写入内存后,竟然发现是写入的0x7003。我滴神啊。奇怪了。莫名其妙啊。

USB虚拟串口调试诡异现象1.jpg

==============我是分割线=================================================
经过跟踪调试,发现EDP3端点的变化规律了。也终于弄明白了USB虚拟串口的底层工作原理。真是谢天谢地啊。恍然大悟。看来有时候只看手册还是不行的。必须实际跟踪代码走几遍,甚至几十遍才行。否则一头雾水,人云亦云,不知所终。自己调试出来,弄明白其底层运行机制,也就可以放心的使用这些函数了。下面是截图示意。省去一万字。。。。调试过程。。。。

USB虚拟串口调试诡异现象2.jpg

原来USB控制器在收到一个数据后,立即把EDP3寄存器的CTR_RX位置1,DTOG_RX位反转,STAT_RX两位直接设置为10. 进入回调函数之前,把CTR_RX位清零。然后在函数内根据TOG位进行反转,变成可以接收状态11。继续读取下次的数据。不断循环。
回复

使用道具 举报

发表于 2016-1-29 11:59:20 | 显示全部楼层
为啥你还在研究这个               
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-1-29 12:13:04 | 显示全部楼层
本帖最后由 qduwg 于 2016-1-29 12:40 编辑

想从底层看看USB的工作过程啊。没有搞明白的地方,总想弄明白一点。不能稀里糊涂的过去啊。
回复 支持 反对

使用道具 举报

发表于 2016-11-10 20:39:27 | 显示全部楼层
楼主单步调试能进入USB中断吗?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-23 22:16 , Processed in 0.032941 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表