Quantcast
Channel: MSP 低功耗微控制器论坛 - 最近的话题
Viewing all articles
Browse latest Browse all 3634

msp430FR5949内存分配.xcl文件问题

$
0
0

// ************************************************
//
// XLINK configuration file for MSP430FR5949
//
// Copyright 1996-2014 IAR Systems AB.
//
// See the file 430/doc/licenses/IARSourceLicense.txt for detailed
// license information.
//
// $Revision: $
//
// ************************************************

// ---------------------------------------------------------
// Description
//

//
// Usage:
//
//   xlink [file file ...] -f lnk430fr5949.xcl
//
// -----------------------------------------------
// Device summary
//

//
// Core:                           MSP430X
//
// Interrupt vectors:              56
//
// Signature memory:               16 Bytes
//
// Peripheral units:                   0-00FFF
//
// Information memory (FRAM):      01800-019FF
//
// Read/write memory (RAM):        01C00-023FF
//
// Persistent memory (FRAM):       04400-0FFFF
//                                 10000-13FFF
//


// -----------------------------------------------
// Segments
//

// -------------------------------------
// Data read/write segments
//

//
// 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>_P      Data defined using __persistent
// DATA<nn>_HEAP   The heap used by 'malloc' and 'free'
//
// segment         Usage
// -------         --------------------------
// CSTACK          Runtime stack
// TLS16_I         Thread-local storage for main thread
//


// -------------------------------------
// Program and data read-only segments
//

//
// 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
// SIGNATURE       Signature memory
// INTVEC          Interrupt vectors
// RESET           The reset vector
// TLS16_ID        Thread-local initializers for main thread
// MPU_B<N>        Memory Protection Unit border
// IPE_B<N>        Intellection Property Encapsulation border
// IPECODE16       IPE code
// IPEDATA16_C     IPE constant data
//
// Notes:
//
// * The segments CSTART, ISR_CODE, and DIFUNCT, as well as the segments in
//   the DATA16 and TLS16 segment groups 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.
//
// * To use the Memory Protection Unit, the symbol ?mpu2_init should be
//   included in the application. The symbol '__iar_430_MPU_base' should be
//   defined to the location of the MPU peripheral registers, and the
//   registers '__iar_430_MPUSAM_value' and '__iar_430_MPUCTL0_value' to
//   the value the registers MPUSAM and MPUCTL0 should be initialized to,
//   respectively.
//
// * To include Intellection Property Encapsulation (IPE), the library
//   label '__iar_430_ipe_signature' must be included in the application.
//   (One way to do this is to use the -g XLINK command-line option.) The
//   symbol '__iar_430_MPUIPC0_value' must be defined to the value the
//   MPUIPC0 register should be initialized to.
//
// * To include custom segments in the Intellection Property Encapsulation
//   (IPE) area, place them between the segments IPE_B1 and IPE_B2.
//


// ---------------------------------------------------------
// Configuation
//

// -----------------------------------------------
// Stack and heap sizes
//

// Uncomment for command line use
//-D_STACK_SIZE=160
//-D_DATA16_HEAP_SIZE=160
//-D_DATA20_HEAP_SIZE=160
//-g?mpu2_init
//-g__iar_430_ipe_signature


// -----------------------------------------------
// Define cpu
//

-cmsp430


// -----------------------------------------------
// Support for placing functions in read/write memory
//

-QCODE_I=CODE_ID


// -----------------------------------------------
// Support for thread local storage
//

-QTLS16_I=TLS16_ID


// ---------------------------------------------------------
// Placement directives
//

// -----------------------------------------------
// 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


// -----------------------------------------------
// RAM memory
//

-Z(DATA)DATA16_I,DATA16_Z,DATA16_N,TLS16_I=1C00-23FF,6300-6B00      //这里是我想在FRAM再分配出2K的空间存储一个数组6300-6B00是我写入的地址
-Z(DATA)CODE_I
-Z(DATA)DATA20_I,DATA20_Z,DATA20_N
-Z(DATA)CSTACK+_STACK_SIZE#


// -----------------------------------------------
// FRAM memory
//

// -------------------------------------
// Low memory 0-0FFFF
//

// ---------------------------
// Read/write data in FRAM
//

-Z(CONST)DATA16_P,DATA20_P=4400-FF79            //这个地方一直没有搞明白
-Z(DATA)DATA16_HEAP+_DATA16_HEAP_SIZE
-Z(DATA)DATA20_HEAP+_DATA20_HEAP_SIZE

// ---------------------------
// Memory Protection Unit (MPU) border
//

-Z(CONST)MPU_B1

// ---------------------------
// Constant data
//

-Z(CONST)DATA16_C,DATA16_ID,TLS16_ID,DIFUNCT,CHECKSUM=7900-FF79

// ---------------------------
// Memory Protection Unit (MPU) border
//

-Z(CONST)MPU_B2

// ---------------------------
// Intellectual Property Encapsulation (IPE)
//

-Z(CONST)IPE_B1=7900-FF79
-Z(CODE)IPECODE16
-Z(CONST)IPEDATA16_C,IPE_B2

// ---------------------------
// Code
//

-Z(CODE)CSTART,ISR_CODE,CODE16=7900-80FF


// -------------------------------------
// All memory 0-FFFFF
//

// ---------------------------
// Code
//

-P(CODE)CODE=7900-80FF
-Z(CODE)CODE_PAD
-Z(CODE)CODE_ID

// ---------------------------
// Constant data
//

-Z(CONST)DATA20_C,DATA20_ID=7900-80FF


// -------------------------------------
// Signature memory and interrupt vectors
//

-Z(CONST)SIGNATURE=FF80-FF8F
-Z(CODE)INTVEC=FF90-FFFF
-Z(CODE)RESET=FFFE-FFFF

上边是我的.xcl内存分配的一些信息,我想把我的代码嵌入到7900-79FF之间,但是通过上边的内存分配,查看txt文件发现我代码的起始地址不是7900而是791A了,请问这是由于什么问题导致的。

麻烦帮我解释一下下边这几个内存分配

// -----------------------------------------------
// RAM memory
//

-Z(DATA)DATA16_I,DATA16_Z,DATA16_N,TLS16_I=1C00-23FF,6300-6B00      //这里是我想在FRAM再分配出2K的空间存储一个数组6300-6B00是我写入的地址
-Z(DATA)CODE_I
-Z(DATA)DATA20_I,DATA20_Z,DATA20_N
-Z(DATA)CSTACK+_STACK_SIZE#


// -----------------------------------------------
// FRAM memory
//

// -------------------------------------
// Low memory 0-0FFFF
//

// ---------------------------
// Read/write data in FRAM
//

-Z(CONST)DATA16_P,DATA20_P=4400-FF79              //这个地方一直没有搞明白,本身我还需要添加2个128Byte的数组放置在FRAM中,6230-62AF,FC80-FCFF  //2个128byte 不知道直接把6230-62AF,FC80-FCFF 放置在这里可以吗?
-Z(DATA)DATA16_HEAP+_DATA16_HEAP_SIZE
-Z(DATA)DATA20_HEAP+_DATA20_HEAP_SIZE

// ---------------------------
// Memory Protection Unit (MPU) border
//

-Z(CONST)MPU_B1

// ---------------------------
// Constant data
//

-Z(CONST)DATA16_C,DATA16_ID,TLS16_ID,DIFUNCT,CHECKSUM=7900-FF79

// ---------------------------
// Memory Protection Unit (MPU) border
//

-Z(CONST)MPU_B2

// ---------------------------
// Intellectual Property Encapsulation (IPE)
//

-Z(CONST)IPE_B1=7900-FF79
-Z(CODE)IPECODE16
-Z(CONST)IPEDATA16_C,IPE_B2


Viewing all articles
Browse latest Browse all 3634

Trending Articles