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

怎样启用MSP430F5359高地址段RAM?

$
0
0

我使用的是MCU是MSP430F5359,RAM资源有66K,分成两段地址,2400-63FF和F0000-FBFFF,但是目前只能使用低地址段(2400-63FF),高地址段F0000-FBFFF无法使用,程序中当需求的RAM资源超过低地址段量时编译时就报错,请问应该怎样启用高地址段RAM呢?我使用的编译器为IAR6.3,DATA MODEL 选择为MIDIUM,库为CLIB;

配置文件采用默认文件lnk430f5359.xcl,其中对RAM的配置如下:

-Z(DATA)DATA16_I,DATA16_Z,DATA16_N,TLS16_I=2400-63FF
-Z(DATA)DATA16_HEAP+_DATA16_HEAP_SIZE
-Z(DATA)CODE_I
-Z(DATA)CSTACK+_STACK_SIZE#
-Z(DATA)DATA20_I,DATA20_Z,DATA20_N,DATA20_HEAP+_DATA20_HEAP_SIZE=2400-63FF,F0000-FBFFF

我尝试过将DATA MODEL 改为LARGE ,但是编译会出问题:

Error[e18]: Range error,
Number out of range. Valid range is -32768 (-0x8000) to 65535 (0xFFFF).
File: G:\GLUCOSE\DILUTE\SOFT\mcu_dilute\sourcefiles\cstartup.s43, Line: 350
Source: MOV.W #(SFB DATA20_ID), CW1

Where $ = ?cstart_init_copy20 + 0x6 [0x8050]
in module "?cstart" (G:\GLUCOSE\DILUTE\SOFT\mcu_dilute\Debug\Obj\cstartup.r43),
offset 0x6 in segment part 22, segment CSTART
What: 0 + SFB(DATA20_ID) [0x257A6]
Allowed range: 0xFFFF8000 - 0xFFFF
Operand: #no label found# [0x257a6]
in module ?cstart (G:\GLUCOSE\DILUTE\SOFT\mcu_dilute\Debug\Obj\cstartup.r43),
Offset 0x0 in segment part 9, segment DATA20_ID

cstartup文件我采用的也是IAR自带的,基本没做什么更改,见附件。


Viewing all articles
Browse latest Browse all 3634

Trending Articles