android下调用SO操作串口,到read的时候,就产生了错误,当前屏回会出错退出
ret = select(uart_fd+1, &fdsr, NULL, NULL, &tv); if (ret < 0) 
{
__android_log_write(ANDROID_LOG_INFO,"CL7202H","select!\n");
return;

else if (ret == 0) 
{
__android_log_write(ANDROID_LOG_INFO,"CL7202H","timeout!\n");
return;
}

if (FD_ISSET(uart_fd, &fdsr))
{
__android_log_write(ANDROID_LOG_INFO,"CL7202H","uart recive data ********************\n");
retr = read(uart_fd, buf, ret);
if(retr == 0)
{
__android_log_write(ANDROID_LOG_INFO,"CL7202H","there is nothing uart recive data ********************\n");
return;
}
for(i=0;i<retr;i++)
__android_log_print(ANDROID_LOG_INFO,"buf[%d]=%d\n",i,buf[i]);
}下面是logcat打印的错误信息I/DEBUG   (  737): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG   (  737): Build fingerprint: 'atmel/sam9g45/sam9g45/:2.1-update1/ERE27/eng.root.20110714.182809:eng/test-keys'
I/DEBUG   (  737): pid: 948, tid: 948  >>> com.clou.cl7202h <<<
I/DEBUG   (  737): signal 11 (SIGSEGV), fault addr 00000000
I/DEBUG   (  737):  r0 afe38e08  r1 00000000  r2 00000000  r3 ffff79c0
I/DEBUG   (  737):  r4 bef427b4  r5 00000001  r6 00000000  r7 00000000
I/DEBUG   (  737):  r8 80402400  r9 00000025  10 0000001f  fp 00000001
I/DEBUG   (  737):  ip afbc30e8  sp bef42080  lr afe1746b  pc afe15898  cpsr 20000030
I/DEBUG   (  737):          #00  pc 00015898  /system/lib/libc.so
I/DEBUG   (  737):          #01  pc 00017466  /system/lib/libc.so
I/DEBUG   (  737):          #02  pc 000011dc  /system/lib/liblog.so
I/DEBUG   (  737):          #03  pc 00000fa6  /system/lib/libserial.so
I/DEBUG   (  737):          #04  pc 0000f1f4  /system/lib/libdvm.so
I/DEBUG   (  737):          #05  pc 00038018  /system/lib/libdvm.so
I/DEBUG   (  737):          #06  pc 000316a2  /system/lib/libdvm.so
I/DEBUG   (  737):          #07  pc 00013f58  /system/lib/libdvm.so
I/DEBUG   (  737):          #08  pc 00019888  /system/lib/libdvm.so
I/DEBUG   (  737):          #09  pc 00018d5c  /system/lib/libdvm.so
I/DEBUG   (  737):          #10  pc 0004d3bc  /system/lib/libdvm.so
I/DEBUG   (  737):          #11  pc 00054e74  /system/lib/libdvm.so
I/DEBUG   (  737):          #12  pc 00013f58  /system/lib/libdvm.so
I/DEBUG   (  737):          #13  pc 00019888  /system/lib/libdvm.so
I/DEBUG   (  737):          #14  pc 00018d5c  /system/lib/libdvm.so
I/DEBUG   (  737):          #15  pc 0004d6d0  /system/lib/libdvm.so
I/DEBUG   (  737):          #16  pc 0003a72c  /system/lib/libdvm.so
I/DEBUG   (  737):          #17  pc 0002be52  /system/lib/libdvm.so
I/DEBUG   (  737):          #18  pc 00026f7c  /system/lib/libandroid_runtime.so
I/DEBUG   (  737):          #19  pc 00027c60  /system/lib/libandroid_runtime.so
I/DEBUG   (  737):          #20  pc 00008cae  /system/bin/app_process
I/DEBUG   (  737):          #21  pc 0000c2c6  /system/lib/libc.so
I/DEBUG   (  737):          #22  pc b00018aa  /system/bin/linker
I/DEBUG   (  737): 
I/DEBUG   (  737): code around pc:
I/DEBUG   (  737): afe15888 e0059f10 d1022b25 93092301 3701e006 
I/DEBUG   (  737): afe15898 2b00783b 2101d1f6 90094248 1abe9a10 
I/DEBUG   (  737): afe158a8 2e009605 9e1ad101 990ee01a 9a059b10 
I/DEBUG   (  737): 
I/DEBUG   (  737): code around lr:
I/DEBUG   (  737): afe17458 60a16120 1c206161 1c1a1c11 f7fe81a5 
I/DEBUG   (  737): afe17468 9b01f9c3 b01b2200 bd30701a 7fffffff 
I/DEBUG   (  737): afe17478 b099b530 2400ad15 606c950c 1c032501 
I/DEBUG   (  737): 
I/DEBUG   (  737): stack:
I/DEBUG   (  737):     bef42040  804011ef  /system/lib/libserial.so
I/DEBUG   (  737):     bef42044  afe157e5  /system/lib/libc.so
I/DEBUG   (  737):     bef42048  bef42788  [stack]
I/DEBUG   (  737):     bef4204c  afe169a9  /system/lib/libc.so
I/DEBUG   (  737):     bef42050  000005b0  
I/DEBUG   (  737):     bef42054  00000096  
I/DEBUG   (  737):     bef42058  00000000  
I/DEBUG   (  737):     bef4205c  afe0f2c0  /system/lib/libc.so
I/DEBUG   (  737):     bef42060  bef422b0  [stack]
I/DEBUG   (  737):     bef42064  00000001  
I/DEBUG   (  737):     bef42068  00000000  
I/DEBUG   (  737):     bef4206c  00000000  
I/DEBUG   (  737):     bef42070  bef42278  [stack]
I/DEBUG   (  737):     bef42074  ffffffff  
I/DEBUG   (  737):     bef42078  df002777  
I/DEBUG   (  737):     bef4207c  e3a070ad  
I/DEBUG   (  737): #00 bef42080  bef422ec  [stack]
I/DEBUG   (  737):     bef42084  afe38e08  /system/lib/libc.so
I/DEBUG   (  737):     bef42088  bef420d4  [stack]
I/DEBUG   (  737):     bef4208c  ffffffff  

解决方案 »

  1.   

    I/DEBUG   (  737):     bef42090  804011ee  /system/lib/libserial.so
    I/DEBUG   (  737):     bef42094  ac062034  /system/lib/libskia.so
    I/DEBUG   (  737):     bef42098  00000000  
    I/DEBUG   (  737):     bef4209c  00000006  
    I/DEBUG   (  737):     bef420a0  00000000  
    I/DEBUG   (  737):     bef420a4  00000001  
    I/DEBUG   (  737):     bef420a8  00000000  
    I/DEBUG   (  737):     bef420ac  00000000  
    I/DEBUG   (  737):     bef420b0  bef4231c  [stack]
    I/DEBUG   (  737):     bef420b4  afe38e08  /system/lib/libc.so
    I/DEBUG   (  737):     bef420b8  bef42104  [stack]
    I/DEBUG   (  737):     bef420bc  afe30949  /system/lib/libc.so
    I/DEBUG   (  737):     bef420c0  00000000  
    I/DEBUG   (  737):     bef420c4  00000000  
    I/DEBUG   (  737):     bef420c8  afe307c8  /system/lib/libc.so
    I/DEBUG   (  737):     bef420cc  00000000  
    I/DEBUG   (  737):     bef420d0  00000000  
    I/DEBUG   (  737):     bef420d4  804011ee  /system/lib/libserial.so
    I/DEBUG   (  737):     bef420d8  00000000  
    I/DEBUG   (  737):     bef420dc  00000000  
    I/DEBUG   (  737):     bef420e0  00000001  
    I/DEBUG   (  737):     bef420e4  00000000  
    I/DEBUG   (  737):     bef420e8  bef42104  [stack]
    I/DEBUG   (  737):     bef420ec  00000000  
    I/DEBUG   (  737):     bef420f0  00000000  
    I/DEBUG   (  737):     bef420f4  000b2eb0  [heap]
    I/DEBUG   (  737):     bef420f8  afe307c8  /system/lib/libc.so
    I/DEBUG   (  737):     bef420fc  000000dc  
    I/DEBUG   (  737):     bef42100  000000dc  
    I/DEBUG   (  737):     bef42104  00000052  
    I/DEBUG   (  737):     bef42108  00000100  
    I/DEBUG   (  737):     bef4210c  00000390  
    I/DEBUG   (  737):     bef42110  000001d8  
    I/DEBUG   (  737):     bef42114  ac0b5a30  /system/lib/libskia.so
    I/DEBUG   (  737):     bef42118  000000c0  
    I/DEBUG   (  737):     bef4211c  000005a4  
    I/DEBUG   (  737):     bef42120  00000000  
    I/DEBUG   (  737):     bef42124  000baf90  [heap]
    I/DEBUG   (  737):     bef42128  00000000  
    I/DEBUG   (  737):     bef4212c  00000000  
    I/DEBUG   (  737):     bef42130  000baa0b  [heap]
    I/DEBUG   (  737):     bef42134  bef420d4  [stack]
    I/DEBUG   (  737):     bef42138  00000000  
    I/DEBUG   (  737):     bef4213c  00000000  
    I/DEBUG   (  737):     bef42140  000b2eb0  [heap]
    I/DEBUG   (  737):     bef42144  ac0b5a70  /system/lib/libskia.so
    I/DEBUG   (  737):     bef42148  000baf90  [heap]
    I/DEBUG   (  737):     bef4214c  ac09fdd0  /system/lib/libskia.so
    I/DEBUG   (  737):     bef42150  0001080b  [heap]
    I/DEBUG   (  737):     bef42154  bef42188  [stack]
    I/DEBUG   (  737):     bef42158  bef42784  [stack]
    I/DEBUG   (  737):     bef4215c  000b3284  [heap]
    I/DEBUG   (  737):     bef42160  00000000  
    I/DEBUG   (  737):     bef42164  bef42104  [stack]
    I/DEBUG   (  737):     bef42168  00000000  
    I/DEBUG   (  737):     bef4216c  00000000  
    I/DEBUG   (  737):     bef42170  bef42178  [stack]
    I/DEBUG   (  737):     bef42174  bef42198  [stack]
    I/DEBUG   (  737):     bef42178  0035ead0  [heap]
    I/DEBUG   (  737):     bef4217c  0035e9e0  [heap]
    I/DEBUG   (  737):     bef42180  00000037  
    I/DEBUG   (  737):     bef42184  00000052  
    I/DEBUG   (  737):     bef42188  bef427b4  [stack]
    I/DEBUG   (  737):     bef4218c  0000003d  
    I/DEBUG   (  737):     bef42190  00000000  
    I/DEBUG   (  737):     bef42194  00000070  
    I/DEBUG   (  737):     bef42198  00000037  
    I/DEBUG   (  737):     bef4219c  00000052  
    I/DEBUG   (  737):     bef421a0  000b7830  [heap]
    I/DEBUG   (  737):     bef421a4  00000000  
    I/DEBUG   (  737):     bef421a8  000b2eb0  [heap]
    I/DEBUG   (  737):     bef421ac  00000004  
    I/DEBUG   (  737):     bef421b0  00000004  
    I/DEBUG   (  737):     bef421b4  bef4238c  [stack]
    I/DEBUG   (  737):     bef421b8  00000004  
    I/DEBUG   (  737):     bef421bc  00000000  
    I/DEBUG   (  737):     bef421c0  bef426b4  [stack]
    I/DEBUG   (  737):     bef421c4  ac0b5c7c  /system/lib/libskia.so
    I/DEBUG   (  737):     bef421c8  bef42678  [stack]
    I/DEBUG   (  737):     bef421cc  bef42678  [stack]
    I/DEBUG   (  737):     bef421d0  ac1435a4  /system/lib/libskia.so
    I/DEBUG   (  737):     bef421d4  bef42500  [stack]
    I/DEBUG   (  737):     bef421d8  00000001  
    I/DEBUG   (  737):     bef421dc  bef42500  [stack]
    I/DEBUG   (  737):     bef421e0  00000001  
    I/DEBUG   (  737):     bef421e4  438d8000  
    I/DEBUG   (  737):     bef421e8  43780000  
    I/DEBUG   (  737):     bef421ec  00000086  
    I/DEBUG   (  737):     bef421f0  00000000  
    I/DEBUG   (  737):     bef421f4  00004051  
    I/DEBUG   (  737):     bef421f8  0000011a  
    I/DEBUG   (  737):     bef421fc  00000000  
    I/DEBUG   (  737):     bef42200  45609418  /dev/ashmem/gralloc-buffer (deleted)
    I/DEBUG   (  737):     bef42204  0024b7a4  [heap]
    I/DEBUG   (  737):     bef42208  0000014c  
    I/DEBUG   (  737):     bef4220c  000003c0  
    I/DEBUG   (  737):     bef42210  ac14427c  
    I/DEBUG   (  737):     bef42214  afe0f3b0  /system/lib/libc.so
    I/DEBUG   (  737):     bef42218  00130168  [heap]
    I/DEBUG   (  737):     bef4221c  ac14427c  
    I/DEBUG   (  737):     bef42220  00259840  [heap]
    I/DEBUG   (  737):     bef42224  bef424c0  [stack]
    I/DEBUG   (  737):     bef42228  00000000  
    I/DEBUG   (  737):     bef4222c  afe0f2c0  /system/lib/libc.so
    I/DEBUG   (  737):     bef42230  bef426a0  [stack]
    I/DEBUG   (  737):     bef42234  bef425b8  [stack]
    I/DEBUG   (  737):     bef42238  00259840  [heap]
    I/DEBUG   (  737):     bef4223c  bef424c0  [stack]
    I/DEBUG   (  737):     bef42240  bef426a0  [stack]
    I/DEBUG   (  737):     bef42244  bef425b8  [stack]
    I/DEBUG   (  737):     bef42248  00259840  [heap]
    I/DEBUG   (  737):     bef4224c  ac06ec10  /system/lib/libskia.so
    I/DEBUG   (  737):     bef42250  00000023  
    I/DEBUG   (  737):     bef42254  bef4239c  [stack]
    I/DEBUG   (  737):     bef42258  00000124  
    I/DEBUG   (  737):     bef4225c  ac06ec10  /system/lib/libskia.so
    I/DEBUG   (  737):     bef42260  bef42678  [stack]
    I/DEBUG   (  737):     bef42264  000000f8  
    I/DEBUG   (  737):     bef42268  bef4239c  [stack]
    I/DEBUG   (  737):     bef4226c  000000f8  
    I/DEBUG   (  737):     bef42270  00259840  [heap]
    I/DEBUG   (  737):     bef42274  00000000  
    I/DEBUG   (  737):     bef42278  ac141498  /system/lib/libskia.so
    I/DEBUG   (  737):     bef4227c  00000001  
    I/DEBUG   (  737):     bef42280  00000000  
    I/DEBUG   (  737):     bef42284  3c340b41  
    I/DEBUG   (  737):     bef42288  80000000  /system/lib/libicudata.so
    I/DEBUG   (  737):     bef4228c  bfd2fd30  
    I/DEBUG   (  737):     bef42290  80000000  /system/lib/libicudata.so
    I/DEBUG   (  737):     bef42294  3f800000  
    I/DEBUG   (  737):     bef42298  c3780000  
    I/DEBUG   (  737):     bef4229c  00000000  
    I/DEBUG   (  737):     bef422a0  00000000  
    I/DEBUG   (  737):     bef422a4  3f800000  
    I/DEBUG   (  737):     bef422a8  c2900013  
    I/DEBUG   (  737):     bef422ac  000004ff  
    I/DEBUG   (  737):     bef422b0  00000000  
    I/DEBUG   (  737):     bef422b4  00000000  
    I/DEBUG   (  737):     bef422b8  00000000  
    I/DEBUG   (  737):     bef422bc  00000000  
    I/DEBUG   (  737):     bef422c0  00000000  
    I/DEBUG   (  737):     bef422c4  00000000  
    I/DEBUG   (  737):     bef422c8  30330088  
    I/DEBUG   (  737):     bef422cc  090e842f  
    I/DEBUG   (  737):     bef422d0  00000023  
    I/DEBUG   (  737):     bef422d4  bef422ec  [stack]
    I/DEBUG   (  737):     bef422d8  00000208  
    I/DEBUG   (  737):     bef422dc  00000004  
    I/DEBUG   (  737):     bef422e0  804010bc  /system/lib/libserial.so
    I/DEBUG   (  737):     bef422e4  afe1746b  /system/lib/libc.so
    I/DEBUG   (  737):     bef422e8  ac050a38  /system/lib/libskia.so
    I/DEBUG   (  737):     bef422ec  bef4236a  [stack]
    I/DEBUG   (  737):     bef422f0  bef42284  [stack]
    I/DEBUG   (  737):     bef422f4  000003f9  
    I/DEBUG   (  737):     bef422f8  ffff0208  
    I/DEBUG   (  737):     bef422fc  090e842f  
    I/DEBUG   (  737):     bef42300  000003ff  
    I/DEBUG   (  737):     bef42304  bef4231c  [stack]
    I/DEBUG   (  737):     bef42308  00000208  
    I/DEBUG   (  737):     bef4230c  00000004  
    I/DEBUG   (  737):     bef42310  80401284  /system/lib/libserial.so
    I/DEBUG   (  737):     bef42314  afe1746b  /system/lib/libc.so
    I/DEBUG   (  737): #01 bef42318  000000b4  
    I/DEBUG   (  737):     bef4231c  bef42394  [stack]
    I/DEBUG   (  737):     bef42320  afbc1031  /system/lib/liblog.so
    I/DEBUG   (  737):     bef42324  000003ff  
    I/DEBUG   (  737):     bef42328  ffff0208  
    I/DEBUG   (  737):     bef4232c  bef42394  [stack]
    I/DEBUG   (  737):     bef42330  000003ff  
    I/DEBUG   (  737):     bef42334  00000001  
    I/DEBUG   (  737):     bef42338  804010bc  /system/lib/libserial.so
    I/DEBUG   (  737):     bef4233c  00000008  
    I/DEBUG   (  737):     bef42340  bef42364  [stack]
    I/DEBUG   (  737):     bef42344  00000007  
    I/DEBUG   (  737):     bef42348  00000000  
    I/DEBUG   (  737):     bef4234c  bef42370  [stack]
    I/DEBUG   (  737):     bef42350  afe42c20  
    I/DEBUG   (  737):     bef42354  00000004  
    I/DEBUG   (  737):     bef42358  804010bc  /system/lib/libserial.so
    I/DEBUG   (  737):     bef4235c  afbc11e9  /system/lib/liblog.so
    I/DEBUG   (  737):     bef42360  bef42784  [stack]
    I/DEBUG   (  737):     bef42364  20756162  
    I/DEBUG   (  737):     bef42368  00000a30  
    I/DEBUG   (  737):     bef4236c  3d646620  
    I/DEBUG   (  737):     bef42370  00000000  
    I/DEBUG   (  737):     bef42374  00000000  
    I/DEBUG   (  737):     bef42378  00000000  
    I/DEBUG   (  737):     bef4237c  00000000  
    I/DEBUG   (  737):     bef42380  00000000  
    I/DEBUG   (  737):     bef42384  bef42394  [stack]
    I/DEBUG   (  737):     bef42388  afe42c20  
    I/DEBUG   (  737):     bef4238c  afbc11df  /system/lib/liblog.so
      

  2.   

    这样无法分析原因。你说的现象有很多原因可以导致,比如以前我遇到的手机CPU指令集不支持。
      

  3.   

    在read之前打印uart_fd, buf, ret的值
    看看是不是你想要的
    不是的话
    再进一步查找原因
    http://blog.csdn.net/yylklshmyt20090217/article/details/4807390