6082|16

75

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

怎么在isr 中 打印调试消息, 加DEBUGMSG 怎么link失败 [复制链接]

我想在ISR中打印调试信息,加了DEBUGMSG怎么Link失败
error LNK2019: unresolved external symbol _NKDbgPrintfW referenced in function _ISRHandler

这是我的Source文件,高手看看缺啥啊,我和系统带的串口中断 ISR16550 DLL的Source文件对比过阿,没啥不一样啊,

CDEFINES=$(CDEFINES) -DDEBUG
DISABLE_OPTIMIZER=1
SYNCHRONIZE_DRAIN=1
WINCEOEM=1
RELEASETYPE=PLATFORM
TARGETNAME=isr8530
TARGETTYPE=DYNLINK
DLLENTRY=DllEntry
DEFFILE=$(TARGETNAME).def
SOURCELIBS= \
  $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\ddk_io.lib \
  $(_COMMONOAKROOT)\lib\$(_CPUINDPATH)\fulllibc.lib \

SOURCES= \
  AM8530_ISR.c \

CPPBROWSE=1

NOLIBC=1
NOMIPS16CODE=1

最新回复

DEBUGMSG(0, ...)不会错啊, 因为 #ifdef DEBUG #define DEBUGMSG(cond,printf_exp) ((void)((cond)?(DbgPrintfW printf_exp),1:0)) #else #define DEBUGMSG(cond,printf_exp) ((void)0) #endif // DEBUG   详情 回复 发表于 2009-5-19 14:22
点赞 关注

回复
举报

123

帖子

0

TA的资源

一粒金砂(高级)

沙发
 
高手有调试过ISR的么?

ISR怎么调试阿,我一加断点就没响应了,

系统是x86的 wince5.0
 
 

回复

66

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
...googleman快来啊,
CBEMA 人呢。。。。。。
 
 
 

回复

61

帖子

0

TA的资源

一粒金砂(初级)

4
 
paul_chao
help me~
google 上都找不到调试ISR的方法。。。
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

5
 
RETAILMSG(1,(TEXT("test=%x\r\n"), test));
你试试这个
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

6
 
引用 4 楼 CBEMA 的回复:
RETAILMSG(1,(TEXT("test=%x\r\n"), test));
你试试这个


这个可以的。

我在OEMInterruptHandler可以。
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(中级)

7
 
你编的是Debug版本的?RETAILMSG随时都有用。
 
 
 

回复

82

帖子

0

TA的资源

一粒金砂(初级)

8
 
谢谢,我试试,
还有在ISR中,(我写的是可安装中断)是不是不能加断点阿,
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

9
 
引用 6 楼 shuiyan 的回复:
你编的是Debug版本的?RETAILMSG随时都有用。

由上面的话,你用的是Debug版本吗?

断点调试这种中断的话,没用过,我基本上利用打印信息判断问题,然后重做nk(下到arm环境里面)再调。很浪费时间的。可是像有些usbd驱动与计算机相连的那种,加个断点,没等调呢,对方已经认为你是不可识别的usb设备了(如果没有usb调试器的话)。再不就用evc或是vs2005做一个类似的,先调着,功能差不多ok了,你再往nk里装,然后看打印信息。

这种断点调试大家有用过的吗?介绍一下方法吧。

 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

10
 
呵呵,CBEMA对ISR调试也是很头痛啊,

RETAILMSG(1,(TEXT("test=%x\r\n"), test));
试了,不行,

error LNK2019: unresolved external symbol _NKDbgPrintfW referenced in function _ISRHandler

是不是缺少什么库阿,好像RETAILMSG和DEBUGMSG都是调用NKDbgPrintf的,这个库在那阿,
而且是要静态链接的吧,

可是为什么PB带的ISR16550也有DEBUGMSG,SOURCE文件里也没见有什么特别的外链接库阿,他怎么编译链接没问题呢
 
 
 

回复

88

帖子

0

TA的资源

一粒金砂(初级)

11
 
http://www.cnblogs.com/hbt19860104/articles/1045202.html
你看看这个

 
 
 

回复

54

帖子

0

TA的资源

一粒金砂(初级)

12
 
不行啊,好像还不是这个问题,
咋回事啊,
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

13
 
LZ 做的是 ISR 还是 IISR (Installable ISR)??

1. ISR 应可直接用 RETAILMSG.

2. IISR 无法使用 RETAILMSG (还是我不知道方法, 若有人知道尚请不吝指正), 也无法直接叫用 OEMWriteDebugByte, 故请将 OEMWriteDebugByte 的 source code 直接复制至你的 iisr 中使用, 写完了再将其移除. 或是连 blcommon 中的 format.c 一起复制过来使用.

Paul, Chao @ Techware
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

14
 
我调的可安装中断IISR,

如果用OEMWriteDebugByte 是直接通过串口输出还是 能通过KITL输出到IDE阿,

IISR调试真的这么难啊
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

15
 
为什么PB带的ISR16550也有DEBUGMSG,但是没有错呢
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

16
 
LZ 用 DEBUGMSG(0, ...); 應該也不會錯吧.

Paul, Chao @ Techware
 
 
 

回复

56

帖子

0

TA的资源

一粒金砂(初级)

17
 
DEBUGMSG(0, ...)不会错啊,
因为
#ifdef DEBUG
#define DEBUGMSG(cond,printf_exp) ((void)((cond)?(DbgPrintfW printf_exp),1:0))
#else
#define DEBUGMSG(cond,printf_exp) ((void)0)
#endif // DEBUG

 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表