Hi, have you first tried testing your GPS device with standard Ubuntu version, if you do the same you will find some pointers to bring up your device. I brought up my device in similar manner.
Thanks, Venkat Raju. On Sat, Feb 11, 2012 at 1:55 PM, Ivan Savygin <[email protected]> wrote: > Hello, everyone > I'm trying to port gps library on gingerbread 2.3.4 (rowboat), the > library based on gps_freerunner sources. > I've managed to start gps initialization and main loop but virtual > machine crashes. > > V/HAL ( 89): loaded HAL id=gps path=/system/lib/hw/ > gps.default.so hmi=0x7 handle=0xb000eac0 > D/gps ( 89): open_gps() is called > D/gps ( 89): gps_get_hardware_interface() is called > D/gps ( 89): freerunner_gps_init() is called > D/gps ( 89): gps_state_init() is called > D/gps ( 89): gps will read from /dev/ttyS0 > D/gps ( 89): gps state initialized > D/gps ( 89): freerunner_gps_get_extension() is called > D/gps ( 89): freerunner_gps_get_extension() is called > D/gps ( 89): gps_state_thread() is called > D/gps ( 89): nmea_reader_init() is called > D/gps ( 89): nmea_reader_update_utc_diff() is called > D/gps ( 89): epoll_register() is called > D/gps ( 89): epoll_register() is called > D/gps ( 89): gps thread running > D/gps ( 89): gps_dev_init() is called > I/DEBUG ( 43): pid: 89, tid: 194 >>> system_server <<< > I/DEBUG ( 43): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault > addr 604210ad > I/DEBUG ( 43): r0 4cc2cc7c r1 4cc2c7b8 r2 b1bcde9a r3 b1bcde9a > I/DEBUG ( 43): r4 60421081 r5 811031cc r6 81104260 r7 00000003 > I/DEBUG ( 43): r8 00000089 r9 811041a8 10 81102e04 fp 811041a8 > I/DEBUG ( 43): ip afa03108 sp 4cc2cc28 lr 8110154d pc > 811023d2 cpsr 60000030 > I/DEBUG ( 43): d0 3f80000000015180 d1 42b504f040000000 > I/DEBUG ( 43): d2 3f3504f400000040 d3 c19b504ffffffffe > I/DEBUG ( 43): d4 bf8000013668f876 d5 00000000bf3504f4 > I/DEBUG ( 43): d6 3f3504f43f3504f4 d7 00015180bf3504f4 > I/DEBUG ( 43): d8 0000000000000000 d9 0000000000000000 > I/DEBUG ( 43): d10 0000000000000000 d11 0000000000000000 > I/DEBUG ( 43): d12 0000000000000000 d13 0000000000000000 > I/DEBUG ( 43): d14 0000000000000000 d15 0000000000000000 > I/DEBUG ( 43): d16 40f5180800000000 d17 3fe0000000000000 > I/DEBUG ( 43): d18 0000000000000000 d19 0000000000000000 > I/DEBUG ( 43): d20 3ff0000000000000 d21 8000000000000000 > I/DEBUG ( 43): d22 0000000000000000 d23 3fcc7288e957b53b > I/DEBUG ( 43): d24 3fc74721cad6b0ed d25 3fc39a09d078c69f > I/DEBUG ( 43): d26 0000000000000000 d27 0000000000000000 > I/DEBUG ( 43): d28 0000000000000000 d29 3ff0000000000000 > I/DEBUG ( 43): d30 0000000000000000 d31 3ff0000000000000 > I/DEBUG ( 43): scr 60000010 > I/DEBUG ( 43): > > I/DEBUG ( 43): #00 pc 000023d2 /system/lib/hw/ > gps.default.so > I/DEBUG ( 43): #01 pc 00030766 /system/lib/ > libandroid_runtime.so > I/DEBUG ( 43): #02 pc 0001ce3a /system/lib/libutils.so > I/DEBUG ( 43): #03 pc 00011d9c /system/lib/libc.so > I/DEBUG ( 43): #04 pc 00011960 /system/lib/libc.so > > With the help of objdump i've found that machine crashes when > status_callback is called: > > GpsStatus gps_status; > gps_status.status = GPS_STATUS_ENGINE_ON; > 23ce: a815 add r0, sp, #84 > 23d0: 8087 strh r7, [r0, #4] > state->status_callback(&gps_status); > 23d2: 6ae6 ldr r6, [r4, #44] > 23d4: 47b0 blx r6 > > status->status_callback for testing inited in gps_state_init: > gps_state_init( GpsState* state, GpsCallbacks* callbacks ) > { > ... > state->status_callback = callbacks->status_cb; > } > > freerunner_gps_init(GpsCallbacks* callbacks) > { > GpsState* s = _gps_state; > s->callbacks = *callbacks; > D("%s() is called", __FUNCTION__); > if (!s->init) > gps_state_init(s, callbacks); > if (s->fd < 0) > return -1; > return 0; > } > > Can anyone provide me some help with that? > > -- > unsubscribe: [email protected] > website: http://groups.google.com/group/android-porting > -- unsubscribe: [email protected] website: http://groups.google.com/group/android-porting
