4048|8

92

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

S3C6410 IIC驱动问题 [复制链接]

s3c6410_iic.dll 文件可以被加载,也生成了IIC0设备,但是IIC_Init()函数里的打印信息没有输出来:
DEBUGMSG(1,(TEXT("+IIC_Init\r\n")));

打开IIC0设备进行操作也没有信号丛SCL与SDA输出。

为什么驱动被加载了,但没有跑IIC_Init()函数 或 HW_Init()函数?

究竟要怎样调试呢?

最新回复

已经解决 #ifdef DEBUGMSG #undef DEBUGMSG #define DEBUGMSG(a,b) RETAILMSG(1,b) #endif 应该放到头文件的后面,不然会被替换掉,低级错误了,谢谢大家帮助  详情 回复 发表于 2010-6-28 09:00
点赞 关注

回复
举报

77

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
DEBUGMSG换成RETAILMSG
DEBUGMSG只在debug version有效
RETAILMSG在debug/retail都有效
RETAILMSG在ship build无效
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
这个在CPP头已经更改了
        #ifdef DEBUGMSG
        #undef DEBUGMSG
        #define DEBUGMSG(a,b)   RETAILMSG(1,b)
        #endif
 
 
 

回复

72

帖子

0

TA的资源

一粒金砂(初级)

4
 
你设置 WINCESHIP=1了吗?如果设了,把它去掉
 
 
 

回复

67

帖子

0

TA的资源

一粒金砂(初级)

5
 
把你的iic_init()
函数贴出来看看
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

6
 

你开机看一下注册表,看下有没有被加载。
打印用这个啊。
RETAILMSG(1,(TEXT("+IIC_Init\r\n")));
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

7
 
macrozhang001说的对,
你首先要看一下注册表,看下有没有被加载。

打印用
RETAILMSG(1,(TEXT("+IIC_Init\r\n")));就直接打开打印信息的开关了.
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

8
 
晕倒,lz明明说了“s3c6410_iic.dll 文件可以被加载,也生成了IIC0设备,”
很明显是DEBUGMSG没起作用,lz把DEBUGMSG define成RETAILMSG了,也就是RETAILMSG没起作用。
所以应该是lz设置了WINCESHIP=1,RETAILMSG在WINCESHIP=1时编译后相当于空语句

如果不管在怎样的配置下都想输出,可以用NKDbgPrintfW。
RETAILMSG在非ship build里就是调用NKDbgPrintfW, 在ship build里是空语句

如果编译OS时设置了环境变量WINCESHIP=1,就表示这是ship build

CE6有3种编译配置:
1. Debug build,当环境变量WINCEDEBUG=debug时编译出来的就是debug build
   Debug build的特点是:没有优化, DEBUGMSG and asserts有效
2. Retail build,当环境变量WINCEDEBUG=retail时编译出来的就是retail build
   Retail build的特点是:有优化, DEBUGMSG and asserts无效,但RETAILMSG有效
3. Ship build, 当环境变量WINCEDEBUG=retail并且WINCESHIP=1时编译出来的就是ship build
   Ship build的特点是:有优化, DEBUGMSG, asserts, RETAILMSG都无效
在PB的Solution Configuration里选择Debug或者Retail就表示编译出来的是debug build或者retail build。在PB的Solution Properties里Build Options->Enable ship build后编译出来的就是ship build。
一般产品开发完成后,要拿出去卖时就用ship build
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

9
 
已经解决
#ifdef DEBUGMSG
#undef DEBUGMSG
#define DEBUGMSG(a,b) RETAILMSG(1,b)
#endif
应该放到头文件的后面,不然会被替换掉,低级错误了,谢谢大家帮助
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

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

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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

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

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

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