13.07.2015 Views

TASKING VX-toolset for ARM User Guide

TASKING VX-toolset for ARM User Guide

TASKING VX-toolset for ARM User Guide

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>TASKING</strong> <strong>VX</strong>-<strong>toolset</strong> <strong>for</strong> <strong>ARM</strong> <strong>User</strong> <strong>Guide</strong>• The ordered keyword tells the linker to locate the sections in the same order in the address spaceas they appear in the group (but not necessarily adjacent).Suppose you have an ordered group that contains the sections 'A', 'B' and 'C'. By default the linkerplaces the sections in the address space like 'A' - 'B' - 'C', where section 'A' gets the lowest possibleaddress. With direction=high_to_low in the section_layout space properties, the linkerplaces the sections in the address space like 'C' - 'B' - 'A', where section 'A' gets the highest possibleaddress.• The contiguous keyword tells the linker to locate the sections in the group in a single addressrange. Within a contiguous group the input sections are located in arbitrary order, however the groupoccupies one contiguous range of memory. Due to alignment of sections there can be 'alignmentgaps' between the sections.When you define a group that is both ordered and contiguous, this is called a sequential group.In a sequential group the linker places sections in the same order in the address space as theyappear in the group and it occupies a contiguous range of memory.• The clustered keyword tells the linker to locate the sections in the group in a number of contiguousblocks. It tries to keep the number of these blocks to a minimum. If enough memory is available, thegroup will be located as if it was specified as contiguous. Otherwise, it gets split into two or moreblocks.If a contiguous or clustered group contains alignment gaps, the linker can locate sections that arenot part of the group in these gaps. To prevent this, you can use the fill keyword. If the group islocated in RAM, the gaps are treated as reserved (scratch) space. If the group is located in ROM,the alignment gaps are filled with zeros by default. You can however change the fill pattern byspecifying a bit pattern. The result of the expression, or list of expressions, is used as values to writeto memory, each in MAU.• The overlay keyword tells the linker to overlay the sections in the group. The linker places allsections in the address space using a contiguous range of addresses. (Thus an overlay group isautomatically also a contiguous group.) To overlay the sections, all sections in the overlay groupshare the same run-time address.For each input section within the overlay the linker automatically defines two symbols. The symbol_lc_cb_section_name is defined as the load-time start address of the section. The symbol_lc_ce_section_name is defined as the load-time end address of the section. C (or assembly)code may be used to copy the overlaid sections.If sections in the overlay group contain references between groups, the linker reports an error. Thekeyword allow_cross_references tells the linker to accept cross-references. Normally, it doesnot make sense to have references between sections that are overlaid.group ovl (overlay){group a{select "my_ovl_p1";select "my_ovl_p2";}838

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!