13.07.2015 Views

pcp_reference_guide_v2.5 - Tasking

pcp_reference_guide_v2.5 - Tasking

pcp_reference_guide_v2.5 - Tasking

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

8−44PCP Reference ManualFor each input section within the overlay the linker automaticallydefines two symbols. The symbol _lc_cb_section_name is definedas the load−time start address of the section. The symbol_lc_ce_section_name is defined as the load−time end address ofthe section. C (or assembly) code may be used to copy the overlaidsections.If sections in the overlay group contain <strong>reference</strong>s between groups, thelinker reports an error. The keyword allow_cross_<strong>reference</strong>s tellsthe linker to accept cross−<strong>reference</strong>s. Normally, it does not make senseto have <strong>reference</strong>s between sections that are overlaid.LINKER SCRIPT LANGUAGEgroup ovl (overlay){group a{select "my_ovl_p1";select "my_ovl_p2";}group b{select "my_ovl_q1";}}It may be possible that one of the sections in the overlay group alreadyhas been defined in another group where it received a load−timeaddress. In this case the linker does not overrule this load−time addressand excludes the section from the overlay group.3. Restrict the possible addresses for the sections in a group.The load−time address specifies where the group’s elements are loaded inmemory at download time. The run−time address specifies where sectionsare located at run−time, that is when the program is executing. If you donot explicitly restrict the address in the LSL file, the linker assignsaddresses to the sections based on the restrictions relative to other sectionsin the LSL file and section alignments. The program is responsible forcopying overlay sections at appropriate moment from its load−timelocation to its run−time location (this is typically done by the startupcode).

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

Saved successfully!

Ooh no, something went wrong!