你好!
我在系统上电的时候,做了一个写BOOTCFG的操作,第一次写的时候,可以成功,后来想要再次改写BOOTCFG,就用"LM Flash Programmer" -->" Other Utilities"-->"Debug Port Unlock" 的功能Unlock了一下,Unlock 以后,BOOTCFG的数据复位为0xFFFFFFFE,但是这次用原来的软件,再次改写BOOTCFG,就一直无法成功,每次都是0xFFFFFFFE。
我的写BOOTCFG的软件如下:
void write_BOOTCFG(void)
{
unsigned long regVal;
regVal = HWREG(0x400FE000 + 0x1D0);
if (regVal & 0x80000000)
{
HWREG(0x400FD000 + 0x000) = 0x75100000;
HWREG(0x400FD000 + 0X004) = FLASH_BOOTCFG_PORT_A | FLASH_BOOTCFG_PIN_6 | FLASH_BOOTCFG_DBG1;
HWREG(0x400FD000 + 0x008) = 0xA4420008; //FMC=key+commit
SysCtlDelay(100 * SysCtlClockGet() / (3 * 1000));
}
}
我现在的问题是:
1. BOOTCFG是否可以多次烧写?
2. 对于再次烧写BOOTCFG的方法,我上面做是否正确?还是需要用其它的方式?
3. 如果我先禁掉JTAG口,是否把上面红色的那一句更改为:HWREG(0x400FD000 + 0X004) = FLASH_BOOTCFG_PORT_A | FLASH_BOOTCFG_PIN_6;
就可以了?(就是把DBG1和DBG0都清零)。
4. 在"LM Flash Programmer" -->" Other Utilities"-->"Debug Port Unlock" 里面有两个选项,一个为“Fury,DustDevil,and Bizzard Classess",另外一 个为"Tempest,and Firestorm Classes",对于JTAG解锁,应该选哪一个?