您的位置 首页 基础

用IAR怎么把程序下载到430单片机指定存储单元中

今天终于搞出来了,在网上查了半天也没有查出来怎么搞,其实很简单,只需修改一下工程中的lnk430G2553.xcl文件就ok了。具体的lnk430G2553.x…

今日总算搞出来了,在网上查了半响也没有查出来怎么搞,其实很简单,只需修正一下工程中的lnk430G2553.xcl文件就ok了。

详细的lnk430G2553.xcl文件内容见下面,里边界说了430单片机Flash中不同区域物理地址规模。

// ************************************************
//
// XLINK configuration file for MSP430G2553
//
// Copyright 1996-2010 IAR Systems AB
//
// $Revision: $
//
// ************************************************

// ———————————————————
// Description
//

//
// Usage:
//
// xlink [file file …] -f lnk430g2553.xcl
//
// ———————————————–
// Device summary
//

//
// Core: MSP430
//
// Interrupt vectors: 16
//
// Peripheral units: 0-01FF
//
// Information memory (FLASH): 1000-10FF
//
// Read/write memory (RAM): 0200-03FF
//
// Read-only memory (FLASH): C000-FFFF
//

// ———————————————–
// Segments
//

// ————————————-
// Data read/write segments (RAM)
//

//
// segment Usage
// ——- ————————–
// DATA16_Z Data initialized to zero
// DATA16_I Data initialized by copying from DATA16_ID
// DATA16_N Data defined using __no_init
// DATA16_HEAP The heap used by malloc and free
// CSTACK Runtime stack
// TLS16_I Thread-local storage for main thread
// (require custom runtime library)
//

// ————————————-
// Program and data read-only segments (FLASH)
//

//
// segment Usage
// ——- ————————–
// DATA16_C Constant data, including string literals
// DATA16_ID initializers for DATA_I
// 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
// TLS16_ID Thread-local initializers for main thread
// (require custom runtime library)
//
// Notes:
//
// * 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

// ———————————————–
// Define cpu
//

-cmsp430

// ———————————————–
// Support for placing functions in read/write memory
//

-QCODE_I=CODE_ID

// ———————————————————
// Placement directives
//

// ———————————————–
// Read/write memory
//

-Z(DATA)DATA16_I,DATA16_Z,DATA16_N,TLS16_I,DATA16_HEAP+_DATA16_HEAP_SIZE=0200-03FF
-Z(DATA)CODE_I
-Z(DATA)CSTACK+_STACK_SIZE#

// ———————————————–
// Read-only memory
//

// ————————————-
// Information memory
//

-Z(CONST)INFO=1000-10FF
-Z(CONST)INFOA=10C0-10FF
-Z(CONST)INFOB=1080-10BF
-Z(CONST)INFOC=1040-107F
-Z(CONST)INFOD=1000-103F

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

-Z(CONST)DATA16_C,DATA16_ID,TLS16_ID,DIFUNCT,CHECKSUM=C000-FFDF

// ————————————-
// Code
//

-Z(CODE)CSTART,ISR_CODE,CODE_ID=C000-FFDF
-P(CODE)CODE=C000-FFDF

//比方现在想把程序下载到0xd000开端的方位处,只需把上面两条句子替换为

//-Z(CODE)CSTART,ISR_CODE,CODE_ID=D000-FFDF
//-P(CODE)CODE=D000-FFDF
// ————————————-
// Interrupt vectors
//

-Z(CODE)INTVEC=FFE0-FFFF
-Z(CODE)RESET=FFFE-FFFF

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/jichu/272635.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部