我在用6410开发Android系统时利用了贵公司提供的SDK读取UART串口数据。
调用的接口方法为 HardwareControler.read(int fd, byte[] buf, int len);
在调试中发现,如果持续读取串口数据超过1024个数据包,则Android jvm会报告JNI错误并终止该线程。
请问此问题是否有人遇到过?有没有解决的办法呢?
谢谢!
错误的调试信息如下:
--------------------------------------------------------------------
W/dalvikvm( 2286): JNI pinned array reference table summary (1024 entries):
W/dalvikvm( 2286): 1022 of [B 28B (2 unique)
W/dalvikvm( 2286): 2 of [B 532B (2 unique)
W/dalvikvm( 2286): Memory held directly by tracked refs is 1120 bytes
E/dalvikvm( 2286): Failed adding to JNI pinned array ref table (1024
entries)
I/dalvikvm( 2286): "IrKeyReceiver" prio=5 tid=11 RUNNABLE
I/dalvikvm( 2286): | group="main" sCount=0 dsCount=0 obj=0x40684028
self=0x1f8
090
I/dalvikvm( 2286): | sysTid=2296 nice=0 sched=0/0 cgrp=bg_non_interactive
hand
le=2064144
I/dalvikvm( 2286): | schedstat=( 10000000 40000000 742 )
I/dalvikvm( 2286): at
com.friendlyarm.AndroidSDK.HardwareControler.read(Native
Method)