我用的是F28335采用TI官方给的定点FFT库sprc081来计算128点FFT,h,C, ASM ,CMD文件都用的FFT库sprc081里面的文件,编译没问题,但是下载程序时出现load program时出错 显示data verification failed at address 0x3fffc0,please verify target memory and memary map.
请问是什么意思 怎么解决啊?
我怀疑是CMD文件配置的问题
我的源文件
#include "DSP2833x_Device.h"
#include "DSP2833x_examples.h"
#include "IQmathLib.h"
#include "math.h"
//#include <stb.h>
#include <fft.h>
/* Create an Instance of FFT module */
#define N 128
#define pi 3.1415916
#define Ts 1.0/6400.0 //采样周倜
#define f 50 //三相电压的频率
int i=0;
#pragma DATA_SECTION(ipcb, "FFTipcb");
#pragma DATA_SECTION(mag, "FFTmag");
RFFT32 fft=RFFT32_128P_DEFAULTS;
long Input[N];
long ipcb[N+2];
long mag[N/2+1];
/* Define window Co-efficient Array and place the
.constant section in ROM memory */
const long win[N/2]=HAMMING128;
void main()
{
InitSysCtrl(); //初始化系统函数
DINT;
IER = 0x0000; //禁止CPU中断
IFR = 0x0000; //清除CPU中断标志
InitPieCtrl(); //初始化PIE控制寄存器
InitPieVectTable(); //初始化PIE中断向量表
for (i=1;i<N;i++)
{
Input[i] = _IQ30(1+2*sin(2*pi*f*i*Ts+pi/3)+0.1*sin(2*pi*3*f*i*Ts+pi/6));
}
/* Initialize FFT module */
fft.ipcbptr=ipcb;
fft.magptr=mag;
fft.winptr=(long *)win;
fft.init(&fft);
/*---------------------------------------------------------------------------
Nothing running in the background at present
----------------------------------------------------------------------------*/
// RFFT32_brev(ipcb,ipcb,N);
RFFT32_brev(Input,ipcb,N); // Input samples in Real Part
// fft.win(&fft);
// RFFT32_brev(Input,ipcb,N);
// RFFT32_brev(ipcb,ipcb,N); // Input after windowing
fft.calc(&fft);
fft.split(&fft);
fft.mag(&fft);
} /* End: main() */
CMD文件
MEMORY
{
PAGE 0 : PROG(R) : origin = 0x3D8000, length = 0x20000
PAGE 0 : BOOT(R) : origin = 0x3FF000, length = 0xFC0
PAGE 0 : RESET(R) : origin = 0x3FFFC0, length = 0x2
PAGE 0 : VECS(R) : origin = 0x3FFFC2, length = 0x3E
PAGE 0 : PIEVECS(R) : origin = 0x000D00, length = 0xFF
PAGE 0 : ***(RW) : origin = 0x3F8000, length = 0x2000
PAGE 1 : M0RAM(RW) : origin = 0x000000, length = 0x400
PAGE 1 : M1RAM(RW) : origin = 0x000400, length = 0x400
PAGE 1 : L0L1RAM(RW) : origin = 0x008000, length = 0x2000
}
SECTIONS
{
/* 22-bit program sections */
.reset : > RESET, PAGE = 0
vectors : > VECS, PAGE = 0
.pinit : > ***, PAGE = 0
.cinit : > ***, PAGE = 0
.text : > ***, PAGE = 0
SINTBL : > ***, PAGE = 0
FFTtf > ***, PAGE = 0
FFTmag > L0L1RAM PAGE 1
/* 16-Bit data sections */
.const : > L0L1RAM, PAGE = 1
.bss : > L0L1RAM, PAGE = 1
.stack : > M1RAM, PAGE = 1
.sysmem : > M0RAM, PAGE = 1
FFTipcb ALIGN(512) : { } > L0L1RAM PAGE 1
DLOG : > L0L1RAM PAGE = 1
/* 32-bit data sections */
.ebss : > L0L1RAM, PAGE = 1
.econst : > L0L1RAM, PAGE = 1
.esysmem : > L0L1RAM, PAGE = 1
}