28035flash好像被锁了怎么办

大家好:

        我想改28035的时钟为外部时钟,在DSP2803x_SysCtrl.c的

void IntOsc1Sel (void) {
EALLOW;
SysCtrlRegs.CLKCTL.bit.INTOSC1OFF=0;
SysCtrlRegs.CLKCTL.bit.OSCCLKSRCSEL=0; // Clk Src = INTOSC1
SysCtrlRegs.CLKCTL.bit.XCLKINOFF=1; // Turn off XCLKIN
SysCtrlRegs.CLKCTL.bit.XTALOSCOFF=1; // Turn off XTALOSC
SysCtrlRegs.CLKCTL.bit.INTOSC2OFF=1; // Turn off INTOSC2
EDIS;
}

修改成

void IntOsc1Sel (void) {
EALLOW;
SysCtrlRegs.CLKCTL.bit.INTOSC1OFF=1;
SysCtrlRegs.CLKCTL.bit.OSCCLKSRCSEL=1; // Clk Src = INTOSC1
SysCtrlRegs.CLKCTL.bit.XCLKINOFF=0; // Turn off XCLKIN
SysCtrlRegs.CLKCTL.bit.XTALOSCOFF=0; // Turn off XTALOSC
SysCtrlRegs.CLKCTL.bit.INTOSC2OFF=1; // Turn off INTOSC2
EDIS;
}

然后烧写到flash,运行出现Device may be operating in low-power mode. Do you want to bring it out of 提示,之后我退出程序断电。

再去烧程序的时候出现不能烧写,也不能烧回原来的程序:

C28xx: Flash Programmer: Error encountered when writing to flash memory
C28xx: GEL: File: D:\CCSproject\alarm_device_N2100\firmware\dsp_c28x\plc_lite\src\master\Debug\dc_plc_master.out: Load failed.

这个是不是flash被锁了?我用一个跑在ram的程序下载进去,通过on-chip flash可以unlock,但是不可以erase flash,出现这个提示:C28xx: Flash Programmer: Error erasing flash memory. Error erasing Sector A。

我是这样想的:由于我的改动导致MCU时钟不正确,从而不能实现flash的烧写。而且程序是在flash,所以一上电时钟就不正确。

不知道我的想法对不对,这种情况有什么办法解决?

先谢谢大家了。

6 个回复