Merging Multiple Executables (Bootloader + Application)

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Merging Multiple Executables (Bootloader + Application)

1,971 Views
zegeyealemu
Contributor III

Hello All,

 

I was in need of loading multiple executables from the debugger. I have seen forum responses that suggest the use of the key word 'HEXFILE' and using a Burner utility.

 

I believe that there is also a way to handle the merge by creating a Debugger Script File (Command Files).

 

Would you please point me to a resource that would help me understand and implement this capability?

 

Thank you in advance for your continuous support.

 

Best regards,

Ziggy

Labels (1)
0 Kudos
9 Replies

1,320 Views
lama
NXP TechSupport
NXP TechSupport

i would like to provide you two ways I have used"

1) The merge can be done manually – easy merge two S19 records in the text editor. Just remove information about end of file from the first placed record. You can also remove S0 record lines from the S19 record file.

2) Next way is describe tin the chapter 8 of AN4258

http://www.nxp.com/assets/documents/data/en/application-notes/AN4258.pdf 

Best regards,

Ladislav

0 Kudos

1,320 Views
zegeyealemu
Contributor III

Hello Ladislav,

Thank you very much for your help and quick response.

The solution I am looking for is not for a one time merge. I am looking into a solution that can be used during an application development and want to do an automatic merge every time the debugger is launched.

The use of the keyword within the project linker command file does most of what we desire to implement.

However, I was told that there is a way to automate the merge using a script file (debugger command file) that the debugger will execute when launching. This information about a debugger command file is mentioned within the debugger help file. I am unable to locate the specific details necessary to implement, i.e., create a script / debugger command file though.

The is method of merging is mainly  to be used only for application development. The bootloader takes care of the programming/updating the application in a non-development environment. We need the automation for application development.

Thanks again for your help. Look forward to your follow up response.

Thanks again and best regards,

Ziggy

0 Kudos

1,320 Views
zegeyealemu
Contributor III

Good Morning,

What we are looking for is a way to load multiple executables using the debugger. This will allow us to debug our application in an environment that is close to the release.

By modifying the debugger command files/ scripts, one can automate the loading of executables in the device via the debugger.

The capability of this feature being available is found within the debugger help file. However, we are unable to find the details as to how to achieve this task. It probably is available somewhere but we were unable to find the details as to how to achieve this.

Thanks again and best regards,

Ziggy 

0 Kudos

1,320 Views
lama
NXP TechSupport
NXP TechSupport

I have contacted our CodeWarrior expert team and here is their response.

Hi Ladislav,

 

I checked this thread. From my view you had provided sufficient information for customer.

Unfortunately I never heard hiwave debugger can utilize this customer’s requirement.

 

All the debugger commands are documented in Debugger_HC12.pdf. I  ever used some of this for writing script file. But no command can combine files.

Command CF and CALL can open a command script and read the commands from it. But seems there is no command can do file merge…

 

Best Regards,

Jennie

0 Kudos

1,320 Views
zegeyealemu
Contributor III

Good Morning Jennie,

Thanks for your help and response. I have not yet consulted the Debugger_HC12.pdf file yet but will do so shortly.

I guess I got the question wrong. I desire to LOAD multiple executables NOT MERGE executables. I agree that it seems logical for NOT having a debugger merging command.

Would you please comment on loading multiple executables?

To be more specific, what we are trying to do is to load the Bootloader and the Application one at a time (according to the script content) but automated via the debugger. That way every time we modify the application for development, the load for both execuatables happen is automated and application is ready for debug.

Thanks again for your help and look forward to your response.

Best regards,

Ziggy

0 Kudos

1,320 Views
ZhangJennie
NXP TechSupport
NXP TechSupport

Hi Ziggy,

Unfortunately, Hiwave debugger doesn't have feature of loading multiple executables.

Besides Edward Karpicz's suggestion, you can also use "HEXFILE + selecting specific target" to download different files via different targets. see document

How to support multiple targets in CodeWarrior(Classic, Eclipse)/KDS 

"1.2 One file for specific target only"

Hope this helps!


Have a great day,
Jennie Zhang

-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos

1,320 Views
zegeyealemu
Contributor III

Thank you all for your help.

Best regards,

Ziggy

0 Kudos

1,320 Views
ZhangJennie
NXP TechSupport
NXP TechSupport

You are welcome Ziggy.

Best Regards,

Jennie

0 Kudos

1,320 Views
kef2
Senior Contributor IV

Zegeye,

I'm using HEXFILE in PRM to include bootloader code in resulting ELF file. This is 100% enough for debugging.

Modified burner BBL produces two S19 files instead, not single S19. One with bootloader included, and another one without bootloader.  

You need to find required OPENFILE "%ABS_FILE%.phy"... CLOSE block, create a copy of it, for example OPENFILE "%ABS_FILE%NOBOOT.phy"... CLOSE 

then determine, which segment(s) contains bootloader and eliminate it. For example, if bootloader is at top 4k of nonpaged memory, then it may look like  

origin = 0x00C000       /* nonpaged C000 */
len = 0x3000            /* excluding bootloader, 0x3000 instead of 0x4000*/
destination = 0x0FC000

0 Kudos