|
用的是CCS2.20版本提供的SDFLASH,设置好SDFLASH后,主要是要将需要下载的.out文件写进去.
关键在于在线仿真时的cmd文件要加以更换成新的.使用的是:
-o .\Debug\PULSE_AD.out
-m PULSE_AD.map
MEMORY
{
PAGE 0 :
OTP :
origin = 0x3D7800, length = 0x000800
FLASHJ : origin =
0x3D8000, length = 0x002000
FLASHI : origin =
0x3DA000, length = 0x002000
FLASHH : origin =
0x3DC000, length = 0x004000
FLASHG : origin =
0x3E0000, length = 0x004000
FLASHF : origin =
0x3E4000, length = 0x004000
FLASHE : origin =
0x3E8000, length = 0x004000
FLASHD : origin =
0x3EC000, length = 0x004000
FLASHC : origin = 0x3F0000, length = 0x004000
FLASHB : origin = 0x3F4000, length = 0x002000
FLASHA : origin = 0x3F6000, length = 0x001FF6
BEGIN : origin = 0x3F7FF6, length = 0x000002
PASSWDS : origin = 0x3F7FF8, length = 0x000008
ROM :
origin = 0x3FF000, length = 0x000FC0
VECTORS : origin = 0x3FFFC2,
length = 0x00003E
PAGE 1 :
/*
SARAM */
RAMM0M1
: origin = 0x000000, length = 0x000800
/* Peripheral Frame 0: */
DEV_EMU : origin = 0x000880, length =
0x000180
FLASH_REGS : origin = 0x000A80, length = 0x000060
CSM : origin
= 0x000AE0, length = 0x000010
XINTF : origin =
0x000B20, length = 0x000020
CPU_TIMER0 : origin = 0x000C00, length = 0x000008
CPU_TIMER1 : origin = 0x000C08, length =
0x000008
CPU_TIMER2 : origin = 0x000C10, length = 0x000008
PIE_CTRL : origin = 0x000CE0, length =
0x000020
PIE_VECT : origin = 0x000D00, length =
0x000100
/* Peripheral Frame 1: */
ECAN_A : origin = 0x006000,
length = 0x000100
ECAN_AMBOX : origin = 0x006100, length = 0x000100
/* Peripheral Frame 2: */
SYSTEM : origin = 0x007010,
length = 0x000020
SPI_A : origin =
0x007040, length = 0x000010
SCI_A : origin =
0x007050, length = 0x000010
XINTRUPT : origin = 0x007070, length =
0x000010
GPIOMUX : origin = 0x0070C0, length = 0x000020
GPIODAT : origin = 0x0070E0, length =
0x000020
ADC : origin
= 0x007100, length = 0x000020
EV_A : origin =
0x007400, length = 0x000040
EV_B : origin =
0x007500, length = 0x000040
SPI_B : origin =
0x007740, length = 0x000010
SCI_B : origin =
0x007750, length = 0x000010
MCBSP_A : origin = 0x007800, length =
0x000040
/* CSM Password Locations */
CSM_PWL : origin = 0x3F7FF8, length = 0x000008
/* SARAM */
RAML0L1
: origin = 0x008000, length = 0x002000
RAMH0 : origin = 0x3F8000, length =
0x002000
}
SECTIONS
{
/* Allocate program areas: */
.reset :
> BEGIN PAGE = 0
vectors
: > VECTORS PAGE = 0
.cinit :
> FLASHJ PAGE = 0
.text :
> FLASHA PAGE = 0
/* Allocate data areas: */
.stack :
> RAMM0M1 PAGE
= 1
.bss
: > RAML0L1 PAGE
= 1
.ebss :
> RAML0L1 PAGE
= 1
.const: load
= FLASHB PAGE 0, run = RAML0L1 PAGE 1
{
/* Get Run
Address */
__const_run = .;
/* Mark
Load Address*/
*(.c_mark)
/*
Allocate .const */
*(.const)
/* Compute
Length */
__const_length = .-__const_run;
}
.econst: load
= FLASHB PAGE 0, run = RAML0L1 PAGE 1
{
/* Get Run
Address */
__econst_run = .;
/* Mark
Load Address*/
*(.ec_mark)
/*
Allocate .const */
*(.econst)
/* Compute
Length */
__econst_length = .-__econst_run;
}
.sysmem
: > RAMH0 PAGE = 1
/* Allocate IQ math areas: */
IQmath :
> FLASHI PAGE = 0 /*
Math Code */
IQmathFastTables
: > FLASHI PAGE = 0 /*
Math Tables in fast memory */
IQmathTables :
> ROM PAGE =
0 /* Math Tables In ROM */
/* Allocate Peripheral Frame 0 Register
Structures: */
DevEmuRegsFile :
> DEV_EMU PAGE = 1
FlashRegsFile
: > FLASH_REGS PAGE = 1
CsmRegsFile :
> CSM PAGE = 1
XintfRegsFile
: > XINTF PAGE = 1
CpuTimer0RegsFile : >
CPU_TIMER0 PAGE = 1
CpuTimer1RegsFile : >
CPU_TIMER1 PAGE = 1
CpuTimer2RegsFile : >
CPU_TIMER2 PAGE = 1
PieCtrlRegsFile :
> PIE_CTRL PAGE = 1
PieVectTable :
> PIE_VECT PAGE = 1
/* Allocate Peripheral Frame 2 Register
Structures: */
ECanaRegsFile
: > ECAN_A PAGE = 1
ECanaMboxesFile :
> ECAN_AMBOX PAGE = 1
/* Allocate Peripheral Frame 1 Register
Structures: */
SysCtrlRegsFile :
> SYSTEM PAGE = 1
SpiaRegsFile :
> SPI_A PAGE = 1
SciaRegsFile :
> SCI_A PAGE = 1
XIntruptRegsFile
: > XINTRUPT PAGE = 1
GpioMuxRegsFile :
> GPIOMUX PAGE = 1
GpioDataRegsFile
: > GPIODAT PAGE = 1
AdcRegsFile :
> ADC PAGE = 1
EvaRegsFile :
> EV_A PAGE = 1
EvbRegsFile :
> EV_B PAGE = 1
ScibRegsFile :
> SCI_B PAGE = 1
McbspaRegsFile :
> MCBSP_A PAGE = 1
/* CSM Password Locations */
CsmPwlFile
: > CSM_PWL PAGE = 1
}
然后把lib文件替换成:rts2800_fl040830.lib
就可以啦.
希望你也成功!!!
本人qq: 15007807 欢迎以后交流.
点评:
FLASH不用分这么细的,编大一点的程序会有麻烦
以下是本人做过的某项目CMD文件
MEMORY
{
PAGE 0 :
/* For this example, H0 is split between PAGE 0 and PAGE 1
*/
/* BEGIN is used for the "boot to HO" bootloader mode */
/* RESET is loaded with the reset vector only
if */
/* the boot is from XINTF Zone 7. Otherwise
reset vector */
/* is fetched from boot ROM. See .reset section
below */
RAMM0 : origin =
0x000000, length = 0x000400
BEGIN : origin = 0x3f7ff6, length = 0x000002
PRAMH0 : origin = 0x3d8000,
length = 0x004000 /* */
RESET : origin =
0x3FFFC0, length =
0x000002
PAGE 1 :
/* For this example, H0 is split between PAGE 0 and PAGE 1
*/
LSARAM : origin = 0x3de000,
length = 0x008000 /* */
RAMM1 : origin =
0x000400, length = 0x000400
DRAMH0 : origin = 0x3f8000, length = 0x001000
/* */
BUFA : origin =
0x8000, length=0x1000
BUFB : origin =
0x9000, length=0x1000
BUFC : origin = 0x3f9000, length=0x1000
RECORDDATA : origin = 0x80020, length=0x700
PARAMETER : origin =
0x80725, length=0x20
PASSWORD : origin =
0x80005, length=0x08
}
SECTIONS
{
/* Setup for "boot to H0" mode:
The codestart
section (found in DSP28_CodeStartBranch.asm)
re-directs execution to the start of user
code.
Place this section at the start of
H0 */
codestart :
> BEGIN, PAGE = 0
ramfuncs :
> PRAMH0 PAGE =
0
.text :
> PRAMH0, PAGE = 0
.cinit :
> PRAMH0, PAGE = 0
.pinit :
> PRAMH0, PAGE = 0
.switch
: > RAMM0, PAGE = 0
.reset :
> RESET, PAGE = 0, TYPE =
DSECT /* not used, */
.stack :
> RAMM1, PAGE = 1
.ebss :
> DRAMH0, PAGE = 1
.econst
: > LSARAM, PAGE =
1
.esysmem :
> DRAMH0, PAGE = 1
.bufferA :
{}>BUFA PAGE 1
.bufferB :
{}>BUFB PAGE
1
.bufferC :
{}>BUFC PAGE
1
.RecordData :
{}>RECORDDATA PAGE 1
.parameter :
{}>PARAMETER PAGE 1
.password :
{}>PASSWORD PAGE 1
}
|