⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bootloader.prm

📁 采用MC13213做的在SMAC协议基础上的发送程序,可作为点对点实验中的END DEVICE.
💻 PRM
字号:
/************************************************************************************
* This file contains some basic linker parameters.
*
* The linker file is made so it matches architecture for the Freescale HCS08 GB60/GT60 ucontroller
* to be used in the 802.15.4/Zigbee project. 
* 
* This version must be used if fixed addresses (Version string "FS EB..") Embedded Bootloader from version 5.00 is on the board.
* Use other linker file if you have an older version of the Embedded Bootloader (freeloader) versions before 5.00 or
* a version which uses dynamic memory (Version string "FS DEB..")
*
* Author(s):  Michael V. Christensen
*
* (c) Copyright 2005, Freescale Semiconductor, Inc. All rights reserved.
*
* Freescale Confidential Proprietary
* Digianswer Confidential
*
* No part of this document must be reproduced in any form - including copied,
* transcribed, printed or by any electronic means - without specific written
* permission from Freescale.
*
* Last Inspected: 11-10-05
* Last Tested:
*
************************************************************************************/

NAMES
// Do not remove this block/section.
// Description: The NAMES block contains a list of binary files building the application. This block
// is mandatory and can only be specified once in a prm file.
// Additional files may be specified by the option -Add. The object files specified with the option
// -Add are linked before the files mentioned in the NAMES block. With the option -Add, additional
// files can be added to a project without modifying the link parameter file.
// If all binary files should be specified by the command line option -add, then an empty NAMES
// block (just NAMES END) must be present in the link parameter file. Object files added with this
// option are linked before the object files specified in the NAMES block.
END

// **************************************************************************

// Memory map for HCS08 GB60/GT60. All memory areas are define below i.e. registers and stack etc.
// are shown.

// Options
// READ_WRITE	is for normal variables
// READ_ONLY	is for const variables and code
// NO_INIT	is for uninitialized variables.
// Note!
// "RES_" means that the system is not allowed to use the specified memory.

SECTIONS
    // Port registers
    DIRECT_PAGE_REGISTERS       = READ_WRITE 0x0000 TO 0x007F; // HW registers - This section contains often used port registers

    // Fast direct addressable memory
    DIRECT_ADDRESSING_MEMORY    = READ_WRITE 0x0080 TO 0x00FE; // "Fast" RAM memory

    SLEEP_VARIABLE_RAM          = READ_WRITE 0x00FF TO 0x0100; // "Fast" RAM memory
    // 802.15.4/App. stack memory
    APP_STACK_RAM               = READ_WRITE 0x0101 TO 0x02C0; // RAM memory

    // 802.15.4/App. general memory
    APP_RAM                     = READ_WRITE 0x02C1 TO 0x0F6F; // RAM memory

    // Reserve space for NV RAM pointer - used by BootLoader of 802.15.4/App
    // The pointer is initialized by code.
    NV_RAM_POINTER_RAM          = NO_INIT    0x0F70 TO 0x0F71; // RAM memory

    // Bootloader NV functions data - 802.15.4/App MUST NOT reuse memory.
    RES_BOOTLOADER_NV_RAM       = READ_WRITE 0x0F72 TO 0x0F7F; // RAM memory

    // BootLoader from version 5.00 NV functions (critical part) - 802.15.4/App MUST NOT reuse memory.
    RES_FLASH_LIB_CODE_RAM      = NO_INIT    0x0F80 TO 0x0FB9; // RAM memory

    //Data memory for 802.15.4/application.
    APP_RAM2                    = READ_WRITE 0x0FBA TO 0x106E; // RAM memory
  
    // BootLoader static variables - 802.15.4/App MUST NOT reuse memory.
    RES_BOOTLOADER_VARIABLES    = NO_INIT	 0x106F TO 0x107F;  // RAM memory

    // 802.15.4/App. startup structure flash memory
    APP_STARTUP_STRUC_FLASH     = READ_ONLY 0x01080 TO 0x10AF; // Flash memory

    // 802.15.4/App. flash memory - section 1
    APP_CODE                    = READ_ONLY 0x010B0 TO 0x13FF; // Flash memory

    // BootLoader/802.15.4/App. NV RAM flash memory.
    // Initialized by 802.15.4.
    
    BOOTLOADER_COPYRIGHT_NV_RAM0 = READ_ONLY 0x01400 TO 0x1435; // Flash memory
    BOOTLOADER_FIRMWARE_NV_RAM0  = READ_ONLY 0x01436 TO 0x145B; // Flash memory
    BOOTLOADER_MCU_NV_RAM0       = READ_ONLY 0x0145C TO 0x145D; // Flash memory
    BOOTLOADER_MAC_NV_RAM0       = READ_ONLY 0x0145E TO 0x148C; // Flash memory
    //BOOTLOADER_MAC_NV_RAM0      = READ_ONLY 0x01400 TO 0x148C; // Flash memory
    BOOTLOADER_PHY_NV_RAM0      = READ_ONLY 0x0148D TO 0x14BB; // Flash memory
    BOOTLOADER_APP_NV_RAM0      = READ_ONLY 0x014BC TO 0x15FF; // Flash memory
    BOOTLOADER_APP_NV_RAM1      = NO_INIT   0x01600 TO 0x17FF; // Flash memory (erased)

    //High page registers
    HIGH_PAGE_REGISTERS         = READ_WRITE 0x1800 TO 0x182B; // HW registers - High page register section

    // 802.15.4/App. flash memory - section 2
    APP_CODE_2                  = READ_ONLY 0x0182C TO 0xEFBF; // Flash memory

    // 802.15.4/application redirected ISR vector table
    APP_VECTORS_FLASH           = READ_ONLY 0x0EFC0 TO 0xEFFD; // Flash memory
    
    // Interface flags - MUST be access with NV flash routines
    APP_BOOTLOADER_FLAGS_FLASH  = READ_ONLY 0x0EFFE TO 0xEFFF;  // Flash memory
    
    // 802.15.4/App. is not allowed to use the below memory
    // BootLoader NV function ptr. available for 802.15.4/App.
    // 802.15.4/App. can call these functions
    RES_CONST_FUNC_PTR_FLASH    = READ_ONLY  0xF000 TO 0xF00F;
    RES_CONST_ILL_OPCODE_FLASH  = READ_ONLY  0xF010 TO 0xF013; // For illegal opcode and pointer

    // Map if Bootloader from version 5.00 is used.
    RES_BOOTLOADER_NV_CODE      = READ_ONLY  0xF014 TO 0xF050; // NV function to copy to RAM memory
    RES_BOOTLOADER_CODE         = READ_ONLY  0xF051 TO 0xFFAF; // Bootloader code section in flash
    RES_NV_REGISTERS_FLASH      = READ_ONLY  0xFFB0 TO 0xFFBF; // None-volatile registers
    RES_IRQ_VECTORS_TABLE_FLASH = READ_ONLY  0xFFC0 TO 0xFFFD; // ISR vectors

    // Note! 802.15.4/App. does not have its own reset vector.
    RES_RESET_VECTOR_FLASH	    = READ_ONLY  0xFFFE TO 0xFFFF; // System reset vector
END

// **************************************************************************

// Here it is listed how the variables and code must be allocated.
PLACEMENT
    MY_ZEROPAGE                 INTO DIRECT_ADDRESSING_MEMORY;
    DEFAULT_RAM                 INTO DIRECT_ADDRESSING_MEMORY, APP_RAM, APP_RAM2;
    DEFAULT_ROM                 INTO APP_CODE, APP_CODE_2;
    .startData                  INTO APP_STARTUP_STRUC_FLASH;
    SLEEP_VARIABLE              INTO SLEEP_VARIABLE_RAM;
    NV_RAM_POINTER              INTO NV_RAM_POINTER_RAM;
    BOOTLOADER_COPYRIGHT_NV_DATA0 INTO BOOTLOADER_COPYRIGHT_NV_RAM0;
    BOOTLOADER_FIRMWARE_NV_DATA0  INTO BOOTLOADER_FIRMWARE_NV_RAM0;
    BOOTLOADER_MCU_NV_DATA0       INTO BOOTLOADER_MCU_NV_RAM0;
    BOOTLOADER_MAC_NV_DATA0     INTO BOOTLOADER_MAC_NV_RAM0;
    BOOTLOADER_PHY_NV_DATA0     INTO BOOTLOADER_PHY_NV_RAM0;
    BOOTLOADER_APP_NV_DATA0     INTO BOOTLOADER_APP_NV_RAM0;
    BOOTLOADER_APP_NV_DATA1     INTO BOOTLOADER_APP_NV_RAM1;
    SSTACK                      INTO APP_STACK_RAM;
    IRQ_VECTOR_SECTION	        INTO APP_VECTORS_FLASH;
    APP_BOOTLOADER_FLAGS        INTO APP_BOOTLOADER_FLAGS_FLASH;
END

// **************************************************************************

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -