holyrock
驱动牛犊
驱动牛犊
  • 注册日期2003-12-27
  • 最后登录2005-08-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1992回复:16

【救命】D12调试遇到的问题(50分)

楼主#
更多 发布于:2004-03-04 16:59
   终于把固件搞定,才happy了一会,问题就接踵而来,还请各位网友一起讨论。
   1.d12的bus_reset中断是何时发生的,和reset_n管脚有关系吗?
我的reset_n管脚是一直接高的。还有setmode寄存器中的设置何时回
复默认值?我断电再上电似乎不变的。
   2.Link我的固件程序时出现如下两类warning:
    WARNING L1: UNRESOLVED EXTERNAL SYMBOL
    SYMBOL:  ?C?CLDOPTR
    MODULE:  D:MYUSBFMD12CI.OBJ (D12CI)
    WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
    SYMBOL:  ?C?CSTOPTR
    MODULE:  D:MYUSBFMD12CI.OBJ (D12CI)
    ADDRESS: 03F0H
第一个warning里的cldoptr在我的程序里从没出现过啊,第二个
warning显示的地址处是一个Ljmp,直接跳到0000h处,如何修改

   3.我先没管2中的warning,直接运行固件,pc可以认出有设备
,但枚举不行,用bushound抓到如下数据:
  DI     02                         .       0us     1.1.0
  CTL    a3 00 00 00 - 01 00 04 00  CLASS  18us     2.1.0
  DI     01 01 01 00                ....   22us     2.2.0
  CTL    a3 00 00 00 - 01 00 04 00  CLASS 295us     3.1.0
  DI     01 01 01 00                ....   12us     3.2.0
  CTL    23 01 10 00 - 01 00 00 00  CLASS  19us     4.1.0
  …………
  …………
看不懂什么意思,似乎根本没有发送请求,还有我d12的int_n脚大多
时候是一直保持低的,程序开始处我读了中断寄存器,有时有用有时
没有,非常郁闷,不知怎么回事?

[编辑 -  3/5/04 by  holyrock]

[编辑 -  3/9/04 by  holyrock]

最新喜欢:

lhaihlhaih
yyouking
驱动老牛
驱动老牛
  • 注册日期2003-12-18
  • 最后登录2020-04-28
  • 粉丝0
  • 关注0
  • 积分967分
  • 威望114点
  • 贡献值1点
  • 好评度78点
  • 原创分0分
  • 专家分0分
  • 社区居民
沙发#
发布于:2004-03-05 08:25
03F0H
是外部RAM地址吧
提供: AT89S52+D12开发套件 W78E54+Sl811HST单片机读写U盘套件 PL2303HX-串口转USB 网站http://www.devking.cn 联系 sl811hs@yahoo.com.cn QQ:14441292
holyrock
驱动牛犊
驱动牛犊
  • 注册日期2003-12-27
  • 最后登录2005-08-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-03-05 08:56
   为什么是外部地址?我没有外接ram啊,只有d12。而且几个相同
warning的地方都是这个Ljmp。

[编辑 -  3/5/04 by  holyrock]
yyouking
驱动老牛
驱动老牛
  • 注册日期2003-12-18
  • 最后登录2020-04-28
  • 粉丝0
  • 关注0
  • 积分967分
  • 威望114点
  • 贡献值1点
  • 好评度78点
  • 原创分0分
  • 专家分0分
  • 社区居民
地板#
发布于:2004-03-05 09:05
所以就会出错了啊,把那个地址修改了就可以
提供: AT89S52+D12开发套件 W78E54+Sl811HST单片机读写U盘套件 PL2303HX-串口转USB 网站http://www.devking.cn 联系 sl811hs@yahoo.com.cn QQ:14441292
zmwk
驱动中牛
驱动中牛
  • 注册日期2001-05-15
  • 最后登录2009-04-05
  • 粉丝0
  • 关注0
  • 积分59分
  • 威望51点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-03-05 09:44
该warning提示你声明了某个符号(可能是全局变量或函数),但是并没有该符号的实例。
例如:
你在代码中包含了 extern in gnCount;
但是真正拥有该gnCount的C文件并没有包含在工程中。
再如:
如果你声明了 void ClearLcd();
但是包含该函数的代码并没有包含在工程中。
或者函数的真正代码是 void clearlcd(){...}与声明的不同。此时会再报一个warning16出来。

记住C是区分大小写的。但Keil C在连接后就不区分大小写了。而且使用单个下划线也有一些问题,所以 _CallThis() 最好改成__CallThis().
A strong man can save himself. A great man can save another.
holyrock
驱动牛犊
驱动牛犊
  • 注册日期2003-12-27
  • 最后登录2005-08-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-03-05 14:18
   什么叫“把那个地址修改了”?代码是c的,怎么会莫名其妙编译
出Ljmp的指令,俺就是不知道怎么改才头疼啊

[编辑 -  3/5/04 by  holyrock]
yyouking
驱动老牛
驱动老牛
  • 注册日期2003-12-18
  • 最后登录2020-04-28
  • 粉丝0
  • 关注0
  • 积分967分
  • 威望114点
  • 贡献值1点
  • 好评度78点
  • 原创分0分
  • 专家分0分
  • 社区居民
6楼#
发布于:2004-03-05 14:33
你的程序中肯定有定义了外部地址,而在程序中也操作到了这个地址,而实际上你没连接这个物理设备
提供: AT89S52+D12开发套件 W78E54+Sl811HST单片机读写U盘套件 PL2303HX-串口转USB 网站http://www.devking.cn 联系 sl811hs@yahoo.com.cn QQ:14441292
kkyouking
驱动中牛
驱动中牛
  • 注册日期2004-02-23
  • 最后登录2008-02-27
  • 粉丝0
  • 关注0
  • 积分47分
  • 威望4点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-03-05 14:40
这个我以前也遇到过的
52+PDIUSBD12开发套件 SL811单片机读写U盘套件 www.devking.cn 联系sl811hs@yahoo.com.cn QQ 14441292
holyrock
驱动牛犊
驱动牛犊
  • 注册日期2003-12-27
  • 最后登录2005-08-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-03-05 19:27
   你们用的c51的连接器(就是BL51.exe)版本是多少?我的是5.0,有没有大于6.0的版本?

[编辑 -  3/5/04 by  holyrock]
holyrock
驱动牛犊
驱动牛犊
  • 注册日期2003-12-27
  • 最后登录2005-08-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-03-06 00:13
   多谢各位,终于通过了,不是程序的问题,我把keil的c51目录
copy过来代替,结果成功了,BIN、INT和LIB三个目录一定要匹配
,否则就会出问题。
   不过现在枚举失败,程序停在suspend_change里的while,bus
hound抓到的数据跟上面差不多,什么原因呢,一直不太明白sus-
pend_change什么时候发生,只有非挂起->挂起才发生,还是无论
非挂起->挂起还是挂起->非挂起都会发生?
duanjong
驱动中牛
驱动中牛
  • 注册日期2003-03-10
  • 最后登录2006-01-18
  • 粉丝0
  • 关注0
  • 积分31分
  • 威望5点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-03-06 16:57
枚举失败,可能是如下的原因,其实一般D12的复位引脚应该接一个上电复位电路(用一个10K的电阻和4.7uf的电容),而不用电阻分压构成复位电路,不放试试

[编辑 -  3/6/04 by  duanjong]
holyrock
驱动牛犊
驱动牛犊
  • 注册日期2003-12-27
  • 最后登录2005-08-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-03-08 15:45
   谢谢duanjong,我接了复位电路,pc可以弹出找到新硬件的框,
并且提示我装驱动程序,这是不是代表枚举成功?
   可是我用bushound抓到的数据好像有问题:
DI     02                         .           0us   1.1.0
CTL    a3 00 00 00 - 01 00 04 00  CLASS      18us   2.1.0
DI     00 01 03 00                ....       22us   2.2.0
CTL    23 01 11 00 - 01 00 00 00  CLASS       4us   3.1.0
DI     02                         .         100ms   4.1.0
CTL    a3 00 00 00 - 01 00 04 00  CLASS      18us   5.1.0
DI     00 01 01 00                ....       19us   5.2.0
CTL    a3 00 00 00 - 01 00 04 00  CLASS      69us   6.1.0
DI     00 01 01 00                ....       32us   6.2.0
CTL    23 01 10 00 - 01 00 00 00  CLASS      18us   7.1.0
CTL    a3 00 00 00 - 01 00 04 00  CLASS      49us   8.1.0
DI     00 01 00 00                ....        9us   8.2.0
CTL    a3 00 00 00 - 02 00 04 00  CLASS      16us   9.1.0
DI     00 01 00 00                ....        7us   9.2.0
CTL    a3 00 00 00 - 01 00 04 00  CLASS     3.7ms  10.1.0
DI     00 01 00 00                ....       28us  10.2.0
CTL    a3 00 00 00 - 02 00 04 00  CLASS      24us  11.1.0
DI     00 01 00 00                ....        8us  11.2.0
DI     02                         .         4.4mn  12.1.0
CTL    a3 00 00 00 - 01 00 04 00  CLASS      19us  13.1.0
DI     01 01 01 00                ....       21us  13.2.0
CTL    a3 00 00 00 - 01 00 04 00  CLASS     1.3ms  14.1.0
DI     01 01 01 00                ....       14us  14.2.0
CTL    23 01 10 00 - 01 00 00 00  CLASS      19us  15.1.0
CTL    a3 00 00 00 - 01 00 04 00  CLASS     112ms  17.1.0
DI     01 01 00 00                ....       33us  17.2.0
CTL    23 03 04 00 - 01 00 00 00  CLASS      19us  18.1.0
DI     02                         .          87ms  19.1.0
CTL    a3 00 00 00 - 01 00 04 00  CLASS      19us  20.1.0
DI     03 01 10 00                ....       20us  20.2.0
CTL    23 01 14 00 - 01 00 00 00  CLASS       4us  21.1.0
CTL    a3 00 00 00 - 01 00 04 00  CLASS      19ms  22.1.0
DI     03 01 00 00                ....       32us  22.2.0
DI     12 01 10 01 - dc 00 00 10  ........   10ms  23.1.0
CTL    a3 00 00 00 - 01 00 04 00  CLASS     3.0ms  24.1.0
DI     03 01 00 00                ....       14us  24.2.0
CTL    23 03 04 00 - 01 00 00 00  CLASS      17us  25.1.0
DI     02                         .          67ms  26.1.0
CTL    a3 00 00 00 - 01 00 04 00  CLASS      31us  27.1.0
DI     03 01 10 00                ....       19us  27.2.0
CTL    23 01 14 00 - 01 00 00 00  CLASS       5us  28.1.0
DI     12 01 10 01 - dc 00 00 10  ........   40ms  29.1.0
DI     09 02 2e 00 - 01 01 00 a0  ........  6.9ms  30.1.0
CTL    a3 00 00 00 - 02 00 04 00  CLASS      16ms  31.1.0
DI     00 01 00 00                ....       28us  31.2.0
   除了倒数第三行认识之外,其他怎么都看不懂呢,怎么没有setup
包的请求?觉得有问题,不敢肯定是不是枚举成功,请大家帮忙看看
是怎么回事?(bushound的setting里设的是32和8)
   还有上面我提的问题有人知道吗?
yyouking
驱动老牛
驱动老牛
  • 注册日期2003-12-18
  • 最后登录2020-04-28
  • 粉丝0
  • 关注0
  • 积分967分
  • 威望114点
  • 贡献值1点
  • 好评度78点
  • 原创分0分
  • 专家分0分
  • 社区居民
12楼#
发布于:2004-03-08 15:58
硬件复位电路不用也可以枚举成功的
提供: AT89S52+D12开发套件 W78E54+Sl811HST单片机读写U盘套件 PL2303HX-串口转USB 网站http://www.devking.cn 联系 sl811hs@yahoo.com.cn QQ:14441292
holyrock
驱动牛犊
驱动牛犊
  • 注册日期2003-12-27
  • 最后登录2005-08-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-03-08 18:56
   为什么没有看到"80"打头的请求?到底算成功了吗?我用usbview
可以看到设备描述符已经被读入,但是还没有配置(我还未装驱动程
序),地址也是默认的02,这应该不算成功吧,还是装完驱动才配置
的呢?诚心请教。

[编辑 -  3/8/04 by  holyrock]
holyrock
驱动牛犊
驱动牛犊
  • 注册日期2003-12-27
  • 最后登录2005-08-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-03-09 20:53
   没人知道吗?急死我了
zmwk
驱动中牛
驱动中牛
  • 注册日期2001-05-15
  • 最后登录2009-04-05
  • 粉丝0
  • 关注0
  • 积分59分
  • 威望51点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-03-10 00:13
bus hound下载一个破解版吧!
A strong man can save himself. A great man can save another.
holyrock
驱动牛犊
驱动牛犊
  • 注册日期2003-12-27
  • 最后登录2005-08-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-03-10 22:35
    谢谢,我换了一个bushound4.0的,可以看到请求了
游客

返回顶部