Keil™, An ARM® Company

Cx51 User's Guide

Overlaying Segments

If the overlay process is executed during program linking and locating, it is important that each assembler subroutine have a unique program segment. This is necessary so that during the overlay process, the references between the functions are calculated, using the references of the individual segments.

The data areas of the assembler subprograms may be included in the overlay analysis when the following points are observed:

  • All segment names must be created using the Cx51 Compiler segment naming conventions.
  • Each assembler function with local variables must be assigned its own data segment. This data segment may be accessed by other functions only for passing parameters. Parameters must be passed in order.

The following C functions are used in all of these examples:

int function (
  int v_a,       /* passed in R6 & R7 */
  char v_b,      /* passed in R5 */
  bit v_c,       /* passed in fixed memory location */
  long v_d,      /* passed in fixed memory location */
  bit v_e);      /* passed in fixed memory location */