我在 CodeWarrior 中有一个用 C 语言(对我来说是新的)编写的应用程序。处理器是MCF51QE128。我熟悉旧 MC6809(8 位)处理器中的汇编语言。麻烦的代码是:
FSTAT=(byte)(0x30);
asm {
move.l D0,0x1f000; // Dummy address writeVarA_Flash
}//End of asm
FCMD=(byte)(0x40); // Sector Erase Command (4000 cycles 0f 5 microsec period = 20,000 microsec.
FSTAT=(byte)(0x80); // Start the command
在 .lcf 文件中,我将权限更改为 MEMORY { code (RWX) : ORIGIN = 0x00000410, LENGTH = 0x0001DBF0 userram (RWX) : ORIGIN = 0x00800000, LENGTH = 0x00002000 userrom (RWX) : ORIGIN = 0x0001E000, LENGTH} = 0x000
该代码导致“保护违规”标志出现在“FSTAT”寄存器中(在调试中观察到),程序进入 lala 土地。安全性已关闭。userrom 部分是否仍被视为闪存的“受保护”区域?我需要在停电期间存储易失整数。我错过了什么?