TI中文支持网
TI专业的中文技术问题搜集分享网站

2812往Flash里固化时添加哪个库,可以更改么

我的程序在ram调试的时候用的是rts2800_ml.lib库,而想要往Flash里固化则必须改成rts2800n.lib这个库,可更改成这个库后在线调试条用的一些字符串函数就不能用了,请问想Flash里固化的库是固定的么 和什么有关系 怎么更改

Hank Zhao:

使用rts2800_ml.lib也可以往flash里烧写程序,您在使用rts2800_ml.lib烧写程序到flash时出现的是什么问题?

我的程序在ram调试的时候用的是rts2800_ml.lib库,而想要往Flash里固化则必须改成rts2800n.lib这个库,可更改成这个库后在线调试条用的一些字符串函数就不能用了,请问想Flash里固化的库是固定的么 和什么有关系 怎么更改

melissa eleven:

回复 Hank Zhao:

显示烧写成功 但是重新上电后并不运行 步骤和使用rts2800n.lib的一样,但是只有使用rts2800n.lib上电后能运行

我的程序在ram调试的时候用的是rts2800_ml.lib库,而想要往Flash里固化则必须改成rts2800n.lib这个库,可更改成这个库后在线调试条用的一些字符串函数就不能用了,请问想Flash里固化的库是固定的么 和什么有关系 怎么更改

Hank Zhao:

回复 melissa eleven:

把你的FFTFLASH.cmd文件发过来看一下吧

我的程序在ram调试的时候用的是rts2800_ml.lib库,而想要往Flash里固化则必须改成rts2800n.lib这个库,可更改成这个库后在线调试条用的一些字符串函数就不能用了,请问想Flash里固化的库是固定的么 和什么有关系 怎么更改

melissa eleven:

回复 Hank Zhao:

MEMORY
{
PAGE 0 :OTP: origin = 0x3D7800, length = 0x000800FLASHJ: origin = 0x3D8000, length = 0x002000FLASHI: origin = 0x3DA000, length = 0x002000FLASHH: origin = 0x3DC000, length = 0x006000/*FLASHH: origin = 0x3DC000, length = 0x004000FLASHG: origin = 0x3E0000, length = 0x004000*/FLASHP: origin = 0x3E4000, length = 0x013FF6/*FLASHF: origin = 0x3E4000, length = 0x004000FLASHE: origin = 0x3E8000, length = 0x004000FLASHD: origin = 0x3EC000, length = 0x004000FLASHC: origin = 0x3F0000, length = 0x004000FLASHB: origin = 0x3F4000, length = 0x002000FLASHA: origin = 0x3F6000, length = 0x001FF6*/BEGIN: origin = 0x3F7FF6, length = 0x000002PASSWDS: origin = 0x3F7FF8, length = 0x000008ROM: origin = 0x3FF000, length = 0x000FC0VECTORS: origin = 0x3FFFC2, length = 0x00003EPAGE 1 :/* SARAM*/RAMM0: origin = 0x000000, length = 0x000400RAMM1: origin = 0x000400, length = 0x000400/* Peripheral Frame 0:*/DEV_EMU: origin = 0x000880, length = 0x000180FLASH_REGS : origin = 0x000A80, length = 0x000060CSM: origin = 0x000AE0, length = 0x000010XINTF: origin = 0x000B20, length = 0x000020CPU_TIMER0 : origin = 0x000C00, length = 0x000008CPU_TIMER1 : origin = 0x000C08, length = 0x000008CPU_TIMER2 : origin = 0x000C10, length = 0x000008PIE_CTRL: origin = 0x000CE0, length = 0x000020PIE_VECT: origin = 0x000D00, length = 0x000100/* Peripheral Frame 1:*/ECAN_A: origin = 0x006000, length = 0x000100ECAN_AMBOX : origin = 0x006100, length = 0x000100/* Peripheral Frame 2:*/SYSTEM: origin = 0x007010, length = 0x000020SPI_A: origin = 0x007040, length = 0x000010SCI_A: origin = 0x007050, length = 0x000010XINTRUPT: origin = 0x007070, length = 0x000010GPIOMUX: origin = 0x0070C0, length = 0x000020GPIODAT: origin = 0x0070E0, length = 0x000020ADC: origin = 0x007100, length = 0x000020EV_A: origin = 0x007400, length = 0x000040EV_B: origin = 0x007500, length = 0x000040SPI_B: origin = 0x007740, length = 0x000010SCI_B: origin = 0x007750, length = 0x000010MCBSP_A: origin = 0x007800, length = 0x000040/* CSM Password Locations */CSM_PWL: origin = 0x3F7FF8, length = 0x000008/* SARAM*/DRAMH0: origin = 0x3f8000, length = 0x002000RAML0L1: origin = 0x008000, length = 0x002000ZONE2tf: origin = 0x084000, length = 0x001FFF}SECTIONS
{/* Allocate program areas: */.reset: > BEGINPAGE = 0vectors: > VECTORSPAGE = 0.cinit: > FLASHJPAGE = 0.text: > FLASHPPAGE = 0/* Allocate data areas: */.stack: > RAMM1PAGE = 1.ebss: > RAML0L1PAGE = 1.econst: > FLASHHPAGE = 0.esysmem: > RAML0L1PAGE = 1/* Allocate IQ math areas: */IQmath: > FLASHIPAGE = 0/* Math Codeflashi*/IQmathFastTables: > FLASHIPAGE = 0/* Math Tables in fast memoryflashi*/IQmathTables: > OTPPAGE = 0/* Math Tables In ROM *//* Allocate Peripheral Frame 0 Register Structures:*/DevEmuRegsFile: > DEV_EMU,PAGE = 1FlashRegsFile: > FLASH_REGS, PAGE = 1CsmRegsFile: > CSM,PAGE = 1XintfRegsFile: > XINTF,PAGE = 1CpuTimer0RegsFile : > CPU_TIMER0, PAGE = 1CpuTimer1RegsFile : > CPU_TIMER1, PAGE = 1CpuTimer2RegsFile : > CPU_TIMER2, PAGE = 1PieCtrlRegsFile: > PIE_CTRL,PAGE = 1PieVectTable: > PIE_VECT,PAGE = 1/* Allocate Peripheral Frame 2 Register Structures:*/ECanaRegsFile: > ECAN_A,PAGE = 1ECanaMboxesFile: > ECAN_AMBOXPAGE = 1/* Allocate Peripheral Frame 1 Register Structures:*/SysCtrlRegsFile: > SYSTEM,PAGE = 1SpiaRegsFile: > SPI_A,PAGE = 1SciaRegsFile: > SCI_A,PAGE = 1XIntruptRegsFile: > XINTRUPT,PAGE = 1GpioMuxRegsFile: > GPIOMUX,PAGE = 1GpioDataRegsFile: > GPIODATPAGE = 1AdcRegsFile: > ADC,PAGE = 1EvaRegsFile: > EV_A,PAGE = 1EvbRegsFile: > EV_B,PAGE = 1ScibRegsFile: > SCI_B,PAGE = 1McbspaRegsFile: > MCBSP_A,PAGE = 1/* CSM Password Locations */CsmPwlFile: > CSM_PWL,PAGE = 1FFTipcb3ALIGN(256): {}>DRAMH0PAGE=1FFTipcb4ALIGN(256): {}>DRAMH0PAGE=1FFTmag:>DRAMH0PAGE=1FFTtf:>ZONE2tfPAGE=1}

我的程序在ram调试的时候用的是rts2800_ml.lib库,而想要往Flash里固化则必须改成rts2800n.lib这个库,可更改成这个库后在线调试条用的一些字符串函数就不能用了,请问想Flash里固化的库是固定的么 和什么有关系 怎么更改

melissa eleven:

回复 Hank Zhao:

MEMORY{PAGE 0 :    OTP         : origin = 0x3D7800, length = 0x000800   FLASHJ      : origin = 0x3D8000, length = 0x002000   FLASHI      : origin = 0x3DA000, length = 0x002000

   FLASHH      : origin = 0x3DC000, length = 0x006000 /*   FLASHH      : origin = 0x3DC000, length = 0x004000        FLASHG      : origin = 0x3E0000, length = 0x004000                 */   FLASHP    : origin = 0x3E4000, length = 0x013FF6  /*      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                     */        RAMM0    : origin = 0x000000, length = 0x000400   RAMM1    : origin = 0x000400, length = 0x000400

   /* 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                    */        DRAMH0     : origin = 0x3f8000, length = 0x002000     RAML0L1    : origin = 0x008000, length = 0x002000      ZONE2tf    : origin = 0x084000, length = 0x001FFF  

}  SECTIONS{   /* Allocate program areas: */   .reset              : > BEGIN       PAGE = 0   vectors             : > VECTORS     PAGE = 0   .cinit              : > FLASHJ      PAGE = 0     .text               : > FLASHP      PAGE = 0

   /* Allocate data areas: */

   .stack              : > RAMM1     PAGE = 1   .ebss               : > RAML0L1     PAGE = 1   .econst      : > FLASHH      PAGE = 0 

   .esysmem            : > RAML0L1      PAGE = 1        /* 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

   FFTipcb3  ALIGN(256)   : {}   >  DRAMH0   PAGE=1   FFTipcb4  ALIGN(256)   : {}   >  DRAMH0   PAGE=1   FFTmag                 :  >  DRAMH0    PAGE=1   FFTtf                  :  >  ZONE2tf     PAGE=1

}

我的程序在ram调试的时候用的是rts2800_ml.lib库,而想要往Flash里固化则必须改成rts2800n.lib这个库,可更改成这个库后在线调试条用的一些字符串函数就不能用了,请问想Flash里固化的库是固定的么 和什么有关系 怎么更改

Hank Zhao:

回复 melissa eleven:

您好,请将源文件“DSP281x_CodeStartBranch.asm”添加到工程中,并且在CMD文件的section部分添加语句“codestart           : > BEGIN       PAGE = 0”。

我的程序在ram调试的时候用的是rts2800_ml.lib库,而想要往Flash里固化则必须改成rts2800n.lib这个库,可更改成这个库后在线调试条用的一些字符串函数就不能用了,请问想Flash里固化的库是固定的么 和什么有关系 怎么更改

melissa eleven:

回复 Hank Zhao:

烧完以后Flash锁住了

我的程序在ram调试的时候用的是rts2800_ml.lib库,而想要往Flash里固化则必须改成rts2800n.lib这个库,可更改成这个库后在线调试条用的一些字符串函数就不能用了,请问想Flash里固化的库是固定的么 和什么有关系 怎么更改

melissa eleven:

回复 Hank Zhao:

添加的.asm文件

***********************************************************************

WD_DISABLE .set 1  ;set to 1 to disable WD, else set to 0

    .ref _c_int00

************************************************************************ Function: codestart section** Description: Branch to code starting point***********************************************************************

    .sect "codestart"

code_start:    .if WD_DISABLE == 1        LB wd_disable       ;Branch to watchdog disable code    .else        LB _c_int00         ;Branch to start of boot.asm in RTS library    .endif

;end codestart section

************************************************************************ Function: wd_disable** Description: Disables the watchdog timer***********************************************************************    .if WD_DISABLE == 1

    .textwd_disable:    SETC OBJMODE        ;Set OBJMODE for 28x object code    EALLOW              ;Enable EALLOW protected register access    MOVZ DP, #7029h>>6  ;Set data page for WDCR register    MOV @7029h, #0068h  ;Set WDDIS bit in WDCR to disable WD    EDIS                ;Disable EALLOW protected register access    LB _c_int00         ;Branch to start of boot.asm in RTS library

    .endif

;end wd_disable

 

 .end ; end of file CodeStartBranch.asm

我的程序在ram调试的时候用的是rts2800_ml.lib库,而想要往Flash里固化则必须改成rts2800n.lib这个库,可更改成这个库后在线调试条用的一些字符串函数就不能用了,请问想Flash里固化的库是固定的么 和什么有关系 怎么更改

Hank Zhao:

回复 melissa eleven:

具体是什么情况?编译工程的时候有没有把“DSP281x_CSMPasswords.asm”添加到工程中去,在操作flash programmer有没有改变密码区的值?除了这两种情况,在烧写的时候电源不稳定也会导致flash被锁。

我的程序在ram调试的时候用的是rts2800_ml.lib库,而想要往Flash里固化则必须改成rts2800n.lib这个库,可更改成这个库后在线调试条用的一些字符串函数就不能用了,请问想Flash里固化的库是固定的么 和什么有关系 怎么更改

melissa eleven:

回复 Hank Zhao:

;// TI File $Revision: /main/2 $;// Checkin $Date: April 29, 2005   11:11:32 $;//###########################################################################;//;// FILE:  DSP281x_CodeStartBranch.asm ;//;// TITLE: Branch for redirecting code execution after boot. ;//;//###########################################################################;// $TI Release: DSP281x Header Files V1.11 $;// $Release Date: September 26, 2007 $;//###########################################################################

***********************************************************************

WD_DISABLE .set 1  ;set to 1 to disable WD, else set to 0

    .ref _c_int00

************************************************************************ Function: codestart section** Description: Branch to code starting point***********************************************************************

    .sect "codestart"

code_start:    .if WD_DISABLE == 1        LB wd_disable       ;Branch to watchdog disable code    .else        LB _c_int00         ;Branch to start of boot.asm in RTS library    .endif

;end codestart section

************************************************************************ Function: wd_disable** Description: Disables the watchdog timer***********************************************************************    .if WD_DISABLE == 1

    .textwd_disable:    SETC OBJMODE        ;Set OBJMODE for 28x object code    EALLOW              ;Enable EALLOW protected register access    MOVZ DP, #7029h>>6  ;Set data page for WDCR register    MOV @7029h, #0068h  ;Set WDDIS bit in WDCR to disable WD    EDIS                ;Disable EALLOW protected register access    LB _c_int00         ;Branch to start of boot.asm in RTS library

    .endif

;end wd_disable

 

 .end ; end of file CodeStartBranch.asm

 

 

只添加了这个和修改了你所说的CMD文件

赞(0)
未经允许不得转载:TI中文支持网 » 2812往Flash里固化时添加哪个库,可以更改么
分享到: 更多 (0)