|
|
|
// ************************************************
|
|
|
|
//
|
|
|
|
// XLINK configuration file for MSP430F5438A
|
|
|
|
//
|
|
|
|
// Copyright 1996-2010 IAR Systems AB
|
|
|
|
//
|
|
|
|
// $Revision: $
|
|
|
|
//
|
|
|
|
// ************************************************
|
|
|
|
|
|
|
|
// ---------------------------------------------------------
|
|
|
|
// Description
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
// Usage:
|
|
|
|
//
|
|
|
|
// xlink [file file ...] -f lnk430f5438a.xcl
|
|
|
|
//
|
|
|
|
// -----------------------------------------------
|
|
|
|
// Device summary
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
// Core: MSP430X
|
|
|
|
//
|
|
|
|
// Interrupt vectors: 64
|
|
|
|
//
|
|
|
|
// Peripheral units: 0-001FF
|
|
|
|
//
|
|
|
|
// Information memory (FLASH): 01800-019FF
|
|
|
|
//
|
|
|
|
// Read/write memory (RAM): 01C00-05BFF
|
|
|
|
//
|
|
|
|
// Read-only memory (FLASH): 05C00-0FFFF
|
|
|
|
// 10000-45BFF
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------
|
|
|
|
// Segments
|
|
|
|
//
|
|
|
|
|
|
|
|
// -------------------------------------
|
|
|
|
// Data read/write segments (RAM)
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
// The following segments are available for both
|
|
|
|
// the DATA16 and DATA20 segment groups.
|
|
|
|
//
|
|
|
|
// segment Usage
|
|
|
|
// ------- --------------------------
|
|
|
|
// DATA<nn>_Z Data initialized to zero
|
|
|
|
// DATA<nn>_I Data initialized by copying from DATA<nn>_ID
|
|
|
|
// DATA<nn>_N Data defined using __no_init
|
|
|
|
// DATA<nn>_HEAP The heap used by 'malloc' and 'free'
|
|
|
|
//
|
|
|
|
// segment Usage
|
|
|
|
// ------- --------------------------
|
|
|
|
// CSTACK Runtime stack
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
|
|
// -------------------------------------
|
|
|
|
// Program and data read-only segments (FLASH)
|
|
|
|
//
|
|
|
|
|
|
|
|
//
|
|
|
|
// The following segments are available for both
|
|
|
|
// the DATA16 and DATA20 segment groups.
|
|
|
|
//
|
|
|
|
// segment Usage
|
|
|
|
// ------- --------------------------
|
|
|
|
// DATA<nn>_C Constant data, including string literals
|
|
|
|
// DATA<nn>_ID initializers for DATA<nn>_I
|
|
|
|
//
|
|
|
|
// segment Usage
|
|
|
|
// ------- --------------------------
|
|
|
|
// INFO Information memory
|
|
|
|
// INFOA Information memory, bank A
|
|
|
|
// INFOB Information memory, bank B
|
|
|
|
// INFOC Information memory, bank C
|
|
|
|
// INFOD Information memory, bank D
|
|
|
|
// CSTART Program startup code
|
|
|
|
// CODE Program code
|
|
|
|
// ISR_CODE Program code for interrupt service routines
|
|
|
|
// DIFUNCT Dynamic initialization vector used by C++
|
|
|
|
// CHECKSUM Checksum byte(s) generated by the -J option
|
|
|
|
// INTVEC Interrupt vectors
|
|
|
|
// RESET The reset vector
|
|
|
|
//
|
|
|
|
// Notes:
|
|
|
|
//
|
|
|
|
// * The segments CSTART, ISR_CODE, and DIFUNCT, as well as the segments in
|
|
|
|
// the DATA16 segment group must be placed in in the range 0000-FFFD.
|
|
|
|
//
|
|
|
|
// * The INFOx and INFO segments overlap, this allows data either to be
|
|
|
|
// placed in a specific bank or anywhere in the info memory.
|
|
|
|
//
|
|
|
|
// * The INTVEC and RESET segments overlap. This allows an application to
|
|
|
|
// either use the reset vector provided by the runtime library, or
|
|
|
|
// provide a reset function by defining an interrupt function associated
|
|
|
|
// with the reset vector.
|
|
|
|
//
|
|
|
|
|
|
|
|
|
|
|
|
// ---------------------------------------------------------
|
|
|
|
// Configuation
|
|
|
|
//
|
|
|
|
|
|
|
|
// -----------------------------------------------
|
|
|
|
// Stack and heap sizes
|
|
|
|
//
|
|
|
|
|
|
|
|
// Uncomment for command line use
|
|
|
|
//-D_STACK_SIZE=80
|
|
|
|
//-D_DATA16_HEAP_SIZE=80
|
|
|
|
//-D_DATA20_HEAP_SIZE=80
|
|
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------
|
|
|
|
// Define cpu
|
|
|
|
//
|
|
|
|
|
|
|
|
-cmsp430
|
|
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------
|
|
|
|
// Support for placing functions in read/write memory
|
|
|
|
//
|
|
|
|
|
|
|
|
-QCODE_I=CODE_ID
|
|
|
|
|
|
|
|
|
|
|
|
// ---------------------------------------------------------
|
|
|
|
// Placement directives
|
|
|
|
//
|
|
|
|
|
|
|
|
// -----------------------------------------------
|
|
|
|
// Read/write memory
|
|
|
|
//
|
|
|
|
|
|
|
|
/* Commented out and substituted the original memory region definition */
|
|
|
|
/* for RAM to reserve the memory region from 0x2000 to 0x2021 as it is */
|
|
|
|
/* used during active mode Icc tests in "5xx_ACTIVE_test.asm" */
|
|
|
|
-Z(DATA)DATA16_I,DATA16_Z,DATA16_N,DATA16_HEAP+_DATA16_HEAP_SIZE=1C00-5BFF
|
|
|
|
|
|
|
|
//-Z(DATA)DATA16_I,DATA16_Z,DATA16_N,DATA16_HEAP+_DATA16_HEAP_SIZE=1C00-2000,2022-5BFF
|
|
|
|
-Z(DATA)CODE_I
|
|
|
|
-Z(DATA)DATA20_I,DATA20_Z,DATA20_N,DATA20_HEAP+_DATA20_HEAP_SIZE
|
|
|
|
-Z(DATA)CSTACK+_STACK_SIZE#
|
|
|
|
|
|
|
|
|
|
|
|
// -----------------------------------------------
|
|
|
|
// Read-only memory
|
|
|
|
//
|
|
|
|
|
|
|
|
// -------------------------------------
|
|
|
|
// Information memory
|
|
|
|
//
|
|
|
|
|
|
|
|
-Z(CONST)INFO=1800-19FF
|
|
|
|
-Z(CONST)INFOA=1980-19FF
|
|
|
|
-Z(CONST)INFOB=1900-197F
|
|
|
|
-Z(CONST)INFOC=1880-18FF
|
|
|
|
-Z(CONST)INFOD=1800-187F
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// -------------------------------------
|
|
|
|
// Low memory 0-0FFFF
|
|
|
|
//
|
|
|
|
|
|
|
|
// ---------------------------
|
|
|
|
// Code
|
|
|
|
//
|
|
|
|
|
|
|
|
-Z(CODE)CSTART,ISR_CODE=5C00-FF7F
|
|
|
|
|
|
|
|
// ---------------------------
|
|
|
|
// Constant data
|
|
|
|
//
|
|
|
|
|
|
|
|
-Z(CONST)DATA16_C,DATA16_ID,DIFUNCT,CHECKSUM=5C00-FF7F
|
|
|
|
|
|
|
|
|
|
|
|
// -------------------------------------
|
|
|
|
// All memory 0-FFFFF
|
|
|
|
//
|
|
|
|
|
|
|
|
// ---------------------------
|
|
|
|
// Code
|
|
|
|
//
|
|
|
|
|
|
|
|
// Can be modified to test the use of high memory.
|
|
|
|
// Original code
|
|
|
|
-P(CODE)CODE=5C00-FF7F,10000-45BFF
|
|
|
|
// Modified code
|
|
|
|
//-P(CODE)CODE=10000-45BFF
|
|
|
|
|
|
|
|
-Z(CODE)CODE_ID
|
|
|
|
|
|
|
|
// ---------------------------
|
|
|
|
// Constant data
|
|
|
|
//
|
|
|
|
|
|
|
|
// *** Modified to place code in high memory and insodoing, testing the port.
|
|
|
|
// Original code
|
|
|
|
-Z(CONST)DATA20_C,DATA20_ID=5C00-FF7F,10000-45BFF
|
|
|
|
// Modified code
|
|
|
|
//-Z(CONST)DATA20_C,DATA20_ID=10000-45BFF
|
|
|
|
|
|
|
|
|
|
|
|
// -------------------------------------
|
|
|
|
// Interrupt vectors
|
|
|
|
//
|
|
|
|
|
|
|
|
-Z(CODE)INTVEC=FF80-FFFF
|
|
|
|
-Z(CODE)RESET=FFFE-FFFF
|