elf32: no symbol table issue

42 views
Skip to first unread message

Paolo Di Prodi

unread,
Jun 16, 2012, 2:40:09 PM6/16/12
to openc...@googlegroups.com
Hello,
something really strange happened when I was using the rfbsl update.
The update stopped randomly at 50%,
 after that I was trying to reflash the firmware with the mspdebug and I get this weird error:
(mspdebug) prog openchronos.elf
Erasing...
Programming...
Writing 4096 bytes to 8000 [section: .text]...
Writing 4052 bytes to 9000 [section: .text]...
Writing  826 bytes to 9fd4 [section: .rodata]...
Writing   12 bytes to a30e [section: .data]...
elf32: no symbol table
Writing  128 bytes to ff80 [section: .vectors]...

>> Building openchronos.elf
/usr/bin/python2 tools/memory.py -i openchronos.elf -o openchronos.txt
ELF section .text at 0x8000 8148 bytes
ELF section .rodata at 0x9fd4 826 bytes
ELF section .data at 0xa30e 12 bytes
ELF section .vectors at 0xff80 128 bytes
convert to TI Hex

If I try to run it, I get only the 00:00 and if I try to change menu it goes to blank.

The code is from the master branch.


--
Dr. Paolo Di Prodi


Angelo Arrifano

unread,
Jun 16, 2012, 2:45:20 PM6/16/12
to openc...@googlegroups.com
Hi Paolo,

The no symbol table error is not fatal. mspdebug gives me the same
error but the firmware is correctly copied into the watch and runs
just fine. The error is caused by the -gc-sections linker flag which
makes some really nice garbage collection but might be outputting an
elf a little different than what mspdebug is expecting.
If you program the watch with the openchronos.txt file you won't get that error.

Regards,
Angelo
--
Angelo Arrifano AKA MiKNiX
Doctorate at the I3S Laboratory / CNRS - France
Doctorate at the University of Beira Interior - Portugal
http://www.arrifano.com
PGP Pubkey 0x3D92BB0B

Paolo Di Prodi

unread,
Jun 16, 2012, 2:54:36 PM6/16/12
to openc...@googlegroups.com
Right that's interesting, it works now.
Do you know where this function BIT(something) was referenced from in the previous code?
    for (i=0; i<7; i++)
    {
        //TODO: what original function the BIT() was referring to?!?!
        result += ((value & (BIT(i)))>>i) * mgrav_per_bit[i];

Angelo Arrifano

unread,
Jun 16, 2012, 3:08:02 PM6/16/12
to openc...@googlegroups.com
A quick grep on openchronos master says:

bluerobin/bm.h:#define BIT(x) (1uL << (x))

But acceleration shouldn't be including bluerobin stuff anyway..
Though, you can safely replace BIT(X) with just (1<<X)

- Angelo

Paolo Di Prodi

unread,
Jun 16, 2012, 6:31:44 PM6/16/12
to openc...@googlegroups.com
Right will include the shift then.


On 16 June 2012 20:08, Angelo Arrifano <mik...@gmail.com> wrote:
A quick grep on openchronos master says:

bluerobin/bm.h:#define BIT(x) (1uL << (x))

But acceleration shouldn't be including bluerobin stuff anyway..
Though, you can safely replace BIT(X) with just (1<<X)


Reply all
Reply to author
Forward
0 new messages