This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F28069: 芯片锁定?

Part Number: TMS320F28069

此芯片第一次烧录测试程序,可以链接仿真器,代码烧录进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
}