Hi

   I am going to porting a USB-based GPS module to Android 2.3 on arm
device.
   In the Android2.3 source,I find the file (sdk/emulator/gps/
gps_qemu.c). So i change the file and Android.mk, making them been
builded to gps.default.so and been copied to  the directory (/system/
lib/hw/).
   By doing these, i can grab the NMEA data and callback them to JNI.
However , When callback to GpsLocationProvider,

 env->CallVoidMethod(mCallbacksObj, method_reportLocation, location-
>flags,
            (jdouble)location->latitude, (jdouble)location->longitude,
            (jdouble)location->altitude,
            (jfloat)location->speed, (jfloat)location->bearing,
            (jfloat)location->accuracy, (jlong)location->timestamp);

make the VM restart. What happen?




D/GpsLocationProvider( 1429): startNavigating
D/GpsLocationProvider( 1429): start  GPS......................
D/gps_nfs ( 1429): Start send CMD_START command:
D/gps_nfs ( 1429): gps thread received 1 events
D/gps_nfs ( 1429): gps control fd event
D/gps_nfs ( 1429): gps thread starting  location_cb=0x8380a67d
D/gps_nfs ( 1429): entery nmea_reader_set_callback
D/gps_nfs ( 1429): nmea_reader_set_callback: sending latest fix to new
callback
D/gps_nfs ( 1429): location callback 0X39.978600

I/ActivityManager( 1429): Displayed org.gps.GPSTest/.GPSTest: +1s688ms
E/gralloc.mini6410( 1429): [unregister] handle 0x1aaf30 still locked
(state=40000001)
D/gps_nfs ( 1429): gps thread received 1 events
D/gps_nfs ( 1429): gps fd event
D/gps_nfs ( 1429): received 32 bytes: $GPGGA,062150.026,3958.7160,N,11
D/gps_nfs ( 1429): received 32 bytes: 619.8405,E,0,0,,35.0,M,-6.5,M,,*
D/gps_nfs ( 1429): received 32 bytes: 6F
D/gps_nfs ( 1429):
D/gps_nfs ( 1429): $GPRMC,062150.026,V,3958.716
D/gps_nfs ( 1429): Received: '$GPGGA,062150.026,3958.7160,N,
11619.8405,E,0,0,,35.0,M,-6.5,M,,*6F
D/gps_nfs ( 1429): '
D/gps_nfs ( 1429): Found 12 tokens
D/gps_nfs ( 1429):  0: 'GPGGA'
D/gps_nfs ( 1429):  1: '062150.026'
D/gps_nfs ( 1429):  2: '3958.7160'
D/gps_nfs ( 1429):  3: 'N'
D/gps_nfs ( 1429):  4: '11619.8405'
D/gps_nfs ( 1429):  5: 'E'
D/gps_nfs ( 1429):  6: '0'
D/gps_nfs ( 1429):  7: '0'
D/gps_nfs ( 1429):  8: '35.0'
D/gps_nfs ( 1429):  9: 'M'
D/gps_nfs ( 1429): 10: '-6.5'
D/gps_nfs ( 1429): 11: 'M'
D/gps_nfs ( 1429):  callback, keeping data  needed !
D/GpsLocationProvider( 1429): entry the JNI and the location is
39.978600

I/DEBUG   ( 1015): *** *** *** *** *** *** *** *** *** *** *** *** ***
*** *** ***
I/DEBUG   ( 1015): Build fingerprint: 'FriendlyARM/mini6410/
mini6410:2.3.2/GRH78C/eng.root.20110503.151546:eng/test-keys'
I/DEBUG   ( 1015): pid: 1429, tid: 1550  >>> system_server <<<
I/DEBUG   ( 1015): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault
addr 00000000
I/DEBUG   ( 1015):  r0 00000000  r1 407d1b60  r2 41645ab4  r3 47defc54
I/DEBUG   ( 1015):  r4 00000000  r5 8380c7cf  r6 00000000  r7 407d1b60
I/DEBUG   ( 1015):  r8 849015f1  r9 84903250  10 00100000  fp 00000001
I/DEBUG   ( 1015):  ip 8380e7d4  sp 47defc40  lr 8380a6f9  pc
83807d0e  cpsr 00000030
I/DEBUG   ( 1015):          #00  pc 00007d0e  /system/lib/
libandroid_servers.so
I/DEBUG   ( 1015):          #01  pc 0000a6f4  /system/lib/
libandroid_servers.so
I/DEBUG   ( 1015):          #02  pc 000015be  /system/lib/hw/
gps.default.so
I/DEBUG   ( 1015):          #03  pc 00001822  /system/lib/hw/
gps.default.so
I/DEBUG   ( 1015):          #04  pc 00011a7c  /system/lib/libc.so
I/DEBUG   ( 1015):          #05  pc 00011640  /system/lib/libc.so
I/DEBUG   ( 1015):
I/DEBUG   ( 1015): code around pc:
I/DEBUG   ( 1015): 83807cec ab04b082 9301cb04 6f646804 b00247a0
I/DEBUG   ( 1015): 83807cfc bc08bc10 4718b002 b510b40c ab04b082
I/DEBUG   ( 1015): 83807d0c 6804cb04 34f89301 47a06824 bc10b002
I/DEBUG   ( 1015): 83807d1c b002bc08 46c04718 b510b40c ab04b082
I/DEBUG   ( 1015): 83807d2c 9301cb04 34986804 47a06824 bc10b002
I/DEBUG   ( 1015):

-- 
unsubscribe: android-porting+unsubscr...@googlegroups.com
website: http://groups.google.com/group/android-porting

Reply via email to