此芯片第一次烧录测试程序,可以链接仿真器,代码烧录进flash时报以下错误
Load program Error
File: D\DSP CSS\Sci test\Debug\Sci test,out: Load failed.
C28xx:GEL Outout.
Device Calibration not complete, check if device is unlocked and recalibrate.C28xx: GEL Output:
Device Calibration notcomplete, check if device is unlocked and recalibrate.C28xx: Flash Programmer: Device is locked or not connected. operation cancelled
C28xx: File Loader: Memory write failed: Unknown error
C28xx: GEL: File: D:\DSP_CSS\Sci_test\Debug\Sci_test.out: Load failed
同样烧录不进ram,报错为
Load program Error
File: D\DSP CSS\Sci test\Debug\Sci test,out: a data verification error occured,Load failed.
此代码烧同类型芯片好用,下附代码
/**
* main.c
*/
#include "DSP28x_Project.h"
#include "string.h"
#include "stdio.h"
__interrupt void SCIRXINTA_Callback(void);
__interrupt void SCIRXINTB_Callback(void);
char *msg;
int rx_flag=0;
int main(void)
{
MemCopy(&RamfuncsLoadStart, &RamfuncsLoadEnd, &RamfuncsRunStart);//delay_us函数在ram中调用,所以需要放最前面
InitFlash();
InitSysCtrl();
InitUserSciGpio();
DINT;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
EALLOW;
PieVectTable.SCIRXINTA = &SCIRXINTA_Callback;
PieVectTable.SCIRXINTB = &SCIRXINTB_Callback;//TI的tms28069来说中断都写在主函数里头,且中断尽量别写太多事情,不设置中断不发送数据
EDIS;
PieCtrlRegs.PIEIER9.bit.INTx3=1;
PieCtrlRegs.PIEIER9.bit.INTx1=1;
EnableInterrupts();
IER |= M_INT9;
EINT; // 使能全局中断INTM
ERTM;
while(1)
{
msg="\r\n the test is running!\0";
scia_msg(msg);
}
}
__interrupt void SCIRXINTA_Callback(void)
{
rx_flag=3;
SciaRegs.SCIFFRX.bit.RXFFOVRCLR=1; // Clear Overflow flag
SciaRegs.SCIFFRX.bit.RXFFINTCLR=1; // Clear Interrupt flag
PieCtrlRegs.PIEACK.all|=0x100; // Issue PIE ack
}
__interrupt void SCIRXINTB_Callback(void)
{
Uint16 i,rdataB[16];
for(i=0;i<16;i++)
{
rdataB[i]=ScibRegs.SCIRXBUF.all; // Read data
Sci_mit(rdataB[i]);
}
ScibRegs.SCIFFRX.bit.RXFFOVRCLR=1; // Clear Overflow flag
ScibRegs.SCIFFRX.bit.RXFFINTCLR=1; // Clear Interrupt flag
PieCtrlRegs.PIEACK.all|=0x100; // Issue PIE ack
}