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];
}