Hi all,
I need to update my app running on nuttx 8.2 system in a simple way,
this is why I've chosen the
"Release System with ELF Programs: No Symbol Tables" approach.
My problem is the size of my elf file, it is up to 12K.
This is basically because I've packed all the features into 1 task
(network, file I/O, json, etc) because it would be more simple to update
a single elf file rather than have a lot of different elf files for
different tasks and having to maintain a "repository" of those tasks.
My question is, is this somehow stupid to do? Is there a reason why I
should avoid to load "bigger" elf-files?
The system has enough RAM:
nsh> free
total used free largest
Umem: 229072 17760 211312 211136
What happens is, when the elf file is bigger than about 4K, the binary
loader encounters a problem, independently on the config settings of the
elf buffer sizes:
CONFIG_ELF_STACKSIZE=10240
CONFIG_ELF_BUFFERSIZE=256
CONFIG_ELF_BUFFERINCR=32
here's part of the debug output:
elf_loadshdrs: Insufficient space in file for section header table
elf_dumploadinfo: LOAD_INFO:
elf_dumploadinfo: textalloc: 00000000
elf_dumploadinfo: dataalloc: 00000000
elf_dumploadinfo: textsize: 0
elf_dumploadinfo: datasize: 0
elf_dumploadinfo: filelen: 5360
elf_dumploadinfo: filfd: 3
elf_dumploadinfo: symtabidx: 0
elf_dumploadinfo: strtabidx: 0
elf_dumploadinfo: ELF Header:
elf_dumploadinfo: e_ident: 7f 45 4c 46
elf_dumploadinfo: e_type: 0001
elf_dumploadinfo: e_machine: 0028
elf_dumploadinfo: e_version: 00000001
elf_dumploadinfo: e_entry: 00000555
elf_dumploadinfo: e_phoff: 0
elf_dumploadinfo: e_shoff: 5056
elf_dumploadinfo: e_flags: 05000000
elf_dumploadinfo: e_ehsize: 52
elf_dumploadinfo: e_phentsize: 0
elf_dumploadinfo: e_phnum: 0
elf_dumploadinfo: e_shentsize: 40
elf_dumploadinfo: e_shnum: 11
elf_dumploadinfo: e_shstrndx: 8
elf_loadbinary: Failed to load ELF program binary: -29
Thanks a lot for any help!!
Florian
--
Florian Wehmeyer
TFW Tech Solutions