我正在尝试配置 lpc1788 的 MPU 以获得整个 4GB 空间作为可执行区域。以下是我迄今为止编写的代码,并设法在 keil uVision 4 调试器上看到了预期的结果。我没有lpc1788的汇编语言编程经验。而且,我已经得到了结果。但我不知道的是,在执行完下面代码中的最后一条指令后,在 hardFault Handler 中执行是否正常?还是我犯了一些错误?任何建议都会有很大帮助。
#define MPU_CTRL 0xE000ED94
__asm int mpu_init(void);
int main()
{
mpu_init();
}
_asm int mpu_init(void)
{
LDR R0, =MPU_CTRL;
/* Disable MPU */
MOV R1, #0x4;
STR R1, [R0, #0x0];
MOV R2, #0x0;
STR R2, [R0, #0x4];
MOV R3, #0x030F;
LSL R6, R3, #16;
MOV R4, #0xFF3F;
STR R6, [R0, #0xC];
STRH R4, [R0, #0XC]
//MOV R5, #0x0;
//STR R5, [R0, #0x8];
/* Enable MPU */
MOV R1, #0x7;
STR R1, [R0, #0x0];
}