/*
** ###################################################################
**     THIS BEAN MODULE IS GENERATED BY THE TOOL. DO NOT MODIFY IT.
**     Filename  : RTOSDemo.PRM
**     Project   : RTOSDemo
**     Processor : MC9S12C32CFU
**     Compiler  : Metrowerks HC12 C Compiler
**     Date/Time : 18/06/2005, 18:00
**     Abstract  :
**        This file is used by the linker. It describes files to be linked,
**        memory ranges, stack size, etc. For detailed description of the PRM file
**        see CodeWarrior documentation. This file is generated by default.
**        You can switch off generation by setting the property
**        "Generate PRM file = no" on the "Build options" tab in CPU bean and then modify
**        this file if needed.
**
**     (c) Copyright UNIS, spol. s r.o. 1997-2002
**     UNIS, spol. s r.o.
**     Jundrovska 33
**     624 00 Brno
**     Czech Republic
**     http      : www.processorexpert.com
**     mail      : info@processorexpert.com
** ###################################################################
*/

NAMES

END

SECTIONS
      /* List of all sections specified on the "Build options" tab */
      RAM  =  READ_WRITE                0x00000800 TO 0x00000FFF;
      ROM_C000  =  READ_ONLY            0x0000C000 TO 0x0000FF7F;
      ROM_4000  =  READ_ONLY            0x00004000 TO 0x00007FFF;
END

PLACEMENT
      DEFAULT_RAM                      INTO RAM;
      _PRESTART, STARTUP,
      ROM_VAR, STRINGS,
      NON_BANKED, DEFAULT_ROM, COPY    INTO ROM_C000, ROM_4000;
END

INIT _EntryPoint                       /* The entry point of the application. This function is generated into the CPU module. */

STACKSIZE 0x0030                       /* Size of the system stack. Value can be changed on the "Build options" tab */

