Documentation for get_rom_sects.pl |
get_rom_sects.pl
Perl script that reads in an XML file representation of a linker map file and spits out something like as follows: -
/* This file is *auto-generated*. Do not edit. Mods risk being overwritten */
SECTIONS {
.dummy_rom_rts_out1 { -lrts6400.lib<div.obj> (.text:_ldiv) } > 0x3e8c0, type=NOLOAD
.dummy_rom_rts_out2 { -lrts6400.lib<fixdi.obj> (.text:__fixdi) } > 0x3f760, type=NOLOAD
}
The end output is the list of all the sections that were ROM'ed from a library and their end-ROM-placement.
The file generated by this script (output goes to STDOUT which can be piped to a file) gets passed into the user's RAM application link stage, simply to correctly resolve the link, ensuring that the ROM functions are used instead of RAM ones.
By calling out each function separately, we enable per-function patchability (simply comment out that function to use a new RAM version instead)
Note that the i/p XML version of map file can be obtained via linker option --xml_link_info=<file>
get_rom_sects.pl linker_xml_file -t=DSECT|NOLOAD -s=.rom_sect1 -s=.rom_sect2
--cg_xml_version : Print out the version of the cg_xml package in use
This script was written using Perl version 5.8.3. It may not work with earlier revisions of Perl.
Documentation for get_rom_sects.pl |