一句log引发的血案
来源:互联网 发布:sql server 2000怎么用 编辑:程序博客网 时间:2024/05/16 18:17
先上代码
unsigned nlcmVendorSize;void *plcmVendorID; plcmVendorID =smem_get_entry(SMEM_LCM_VENDOR_ID, &nlcmVendorSize); printk(KERN_INFO"\n[LCD_COMP]plcmVendorID=%d\n",*((uint32*)plcmVendorID)); printk(KERN_INFO"[LCD_COMP]Default lcm_vedor=%d\n",lcm_vedor);if(plcmVendorID!=NULL){/*Shared LCD type is available*/if( *((uint32*)plcmVendorID)>LCM_VENDOR_ID_MIN && *((uint32*)plcmVendorID)<LCM_VENDOR_ID_MAX){if(*((uint32*)plcmVendorID)==LCM_VENDOR_ID_CHENXING){lcm_vedor=LCM_VENDOR_ID_CHENXING;printk(KERN_INFO"[LCD_COMP]LCM is ChenXing\n");}else if(*((uint32*)plcmVendorID)==LCM_VENDOR_ID_DJN){lcm_vedor=LCM_VENDOR_ID_DJN;printk(KERN_INFO"[LCD_COMP]LCM is DJN\n");}}elseprintk(KERN_INFO"[LCD_COMP]Select default lcm\n");//else select default lcm}else{printk(KERN_INFO"[LCD_COMP]Read SMEM_LCM_VENDOR_ID Fail, Select deault LCM\n");//select default lcm}printk(KERN_INFO"[LCD_CMOP]lcm_vedor=%d\n\n",lcm_vedor);
做lcd“兼容”时,由于lcd的spi没有接sdo,无法从ic读数据,于是只能通过配置不同的efs来做兼容。要从arm9端通过共享内存接口读数据,出错处理比较多,如可能读不到,可能读错,都需要考虑到。添加的代码如上,经测试发现了个致命的问题:如果modern端efs没有配置,导致无法开机!(虽然arm9和arm11端代码正常应该一致,为了防止人为疏忽,以防万一,还得查找原因:-( )。最终找到原因,差点吐血:
plcmVendorID =smem_get_entry(SMEM_LCM_VENDOR_ID, &nlcmVendorSize);读取失败,返回0,此时plcmVendorID=0,即此指针不指向任何变量,
千不该万不该,为了调试方便,我在紧随其后加了句测试代码:
printk(KERN_INFO"\n[LCD_COMP]plcmVendorID=%d\n",*((uint32*)plcmVendorID))
如果plcmVendorID为0这个指针根本不会指向任何变量,但prink却要打印其指向变量的值!!??
解决方法,将这句printk下移放入if(plcmVendorID!=NULL)中,即只有这个指针有指向时才打印!
- 一句log引发的血案
- 一句多余样式引发的血案
- Android Log引发的血案
- 一条Log引发的血案
- 对于南平血案的一句评论
- ExecutorService引发的血案(一)结构
- ActiveX引发的“血案”
- size_t引发的血案
- 一个 * 引发的血案
- gets引发的血案
- Print 引发的“血案”
- lease引发的血案
- 一个“-”引发的血案
- MD5引发的血案
- 一个"/"引发的血案
- wrap_content引发的血案
- merge_all引发的血案
- PersistableBundle引发的血案
- imagecreatefrombmp() + imagebmp() 搞定bmp缩略图
- 五、语句(基本概念)
- Ruby学习札记(6)-比较print、puts和p方法
- C++(typedef、一维数组转成二维数组、C和C++区别、成员地址成员指针、构造析构函数、this指针、const用法、显示时间、const用法)
- POJ 百练 2712: 细菌繁殖
- 一句log引发的血案
- Java 7平台标准版文档(官方)中文版
- 9月21日感统培训班开课
- 正则表达式学习记录-正则表达式到底是什么东西?
- Linphone 的音质 据说ALSA好于OSS
- php null空值
- 杭电 hdu 1528 Card Game Cheater (二分图,最大匹配)
- 正则表达式学习记录-入门
- 正则表达式学习记录-元字符