This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Tool/software: TI C/C++ Compiler
Hello,
processors.wiki.ti.com/.../Combining_executable_files
After I read this document I could combine our bootloader out file with
our application out file successfully, but I have some questions.
If I use the odf2000 tool to examine the out file sections it shows
lot of information (even after strip2000) which is now unnecessary
for me. If I would like to see only the initilaized sections. Is there any
way to achieve it? (I collected the sections which address is between
0x30 0000 and 0x34 0000 and allocated attribute is Y, but I don't know
how reliabe is it.)
Our bootloader works in this way: after the bootloader flashed the
application into the flash memory it put an endmarker value (2 words)
at the end of the application's flash area. This marker signs that the
applicaton is present and valid. If an application downloading begins
the bootloader erases the marker first and rewrites it only after the
application software is downloaded and flashed successfully. If there
is an error during flash writing or the downloading is interrupted the
endmarker will missing and the bootloader will singal error becasuse
the application software is propably corrupted or missing. It means the
marker is not an initialized section neither in the bootloader nor in the
application. If we combine together the bootloader and the application
the marker will missing and the bootloader do not start the application.
If I put the endmarker as a section in the bootloader's command file
and I declare and define a const long int variable to this section and I
combine this file with the application it works perfectly. But I would like
to find a different way to do this which does not need two different
bootloader hex/out file.
It would be the most convenient if we could put the endmarker address
and and its value in a config.out file like in the first example int the
"Combining executable files" document but I don't know how to create
an out file which contains only this data.
It there is a better way to do to put this endmarker in the flash memory
I would be glad to hear it, but we are interested in creating this type of
data containg out file anyway.
Thank you.
I don't understand everything about your situation. But I can help with ...
Istvan Kobolak1 said:It would be the most convenient if we could put the endmarker address
and and its value in a config.out file like in the first example int the
"Combining executable files" document but I don't know how to create
an out file which contains only this data.
Create an assembly source file which contains the needed data. Something similar too ...
; config.asm .global config_data .sect config_data_section config_data: .word 1 .word 2 .word 3 .word 2 .word 5 ; and so on
Write a simple link command file which allocates that data to the desired memory address. Something similar too ...
/* config_link.cmd */ MEMORY { CR : origin = 0x1000, length = 0x1000 } SECTIONS { config_data_section > CR }
Then use a command similar to this to build these files into the desired out file ...
% cl2000 config.asm -z -o config.out config_link.cmd -m config.map <Linking> warning: no suitable entry-point found; setting to 0
Ignore the warning about the entry point. Since an executable is not being built, an entry point is not needed.
Thanks and regards,
-George