From 750488c7bc45c9f96c75257dc4b31a8b22d868e9 Mon Sep 17 00:00:00 2001 From: valentin <valentin.bernillo@etu.hesge.ch> Date: Sun, 14 Jan 2024 22:50:02 +0100 Subject: [PATCH] Fonctionnel jusqu'au 2.3, erreur 2.4 --- .../src/assembleur.s | 1 - .../src/mpu_user_console_etu.c | 23 +++++++++++-------- .../labo5_mpu_user_console_etu/src/user_cmd.c | 1 + 3 files changed, 15 insertions(+), 10 deletions(-) diff --git a/mpu_user_console_etu/labo5_mpu_user_console_etu/src/assembleur.s b/mpu_user_console_etu/labo5_mpu_user_console_etu/src/assembleur.s index 9a9a679..0e40d11 100644 --- a/mpu_user_console_etu/labo5_mpu_user_console_etu/src/assembleur.s +++ b/mpu_user_console_etu/labo5_mpu_user_console_etu/src/assembleur.s @@ -43,4 +43,3 @@ asm_test_fault: .ltorg - diff --git a/mpu_user_console_etu/labo5_mpu_user_console_etu/src/mpu_user_console_etu.c b/mpu_user_console_etu/labo5_mpu_user_console_etu/src/mpu_user_console_etu.c index dbb76fc..3e7bd27 100644 --- a/mpu_user_console_etu/labo5_mpu_user_console_etu/src/mpu_user_console_etu.c +++ b/mpu_user_console_etu/labo5_mpu_user_console_etu/src/mpu_user_console_etu.c @@ -55,12 +55,18 @@ void MemManage_Handler() // Acknowledge du registre CFSR SCB->CFSR = 0xFFFF; - __asm volatile( - "mrs r0, psp\n" - "ldr r1, =user_starting_address\n" // recup le pointeur vers l'adresse de retour souhaitée - "ldr r1, [r1]\n" // deref le pointeur pour recup l'adresse de retour - "str r1, [r0, #24]\n" - ); + +// Instructions assembleur foncionnelles +// __asm volatile( +// "mrs r0, psp\n" +// "ldr r1, =user_starting_address\n" // recup le pointeur vers l'adresse de retour souhaitée +// "ldr r1, [r1]\n" // deref le pointeur pour recup l'adresse de retour +// ); + +// Instruction assembleur : Crée un hardfault +// __asm volatile( +// "str r1, [r0, #24]\n" +// ); } @@ -244,7 +250,7 @@ int main(void) // Type d'accès : Read / Write en mode privilégié, Read sinon MPU->RNR = 4; // ID de la region - // Registre RBAR à verifier + // Registre RBAR à ve0x10002008rifier // MPU->RBAR = (0 << 4); // RNR modifié manuellement // N = Log2(Region size in bytes) @@ -288,7 +294,7 @@ int main(void) // Reset des bits + enable MPU->RASR = (1 << 0); // ENABLE - // Définition taille de région (Region size in bytes) = 2^(SIZE+1) + // Définition taille 0x10002008de région (Region size in bytes) = 2^(SIZE+1) // 32768 = 2^(SIZE+1) --> SIZE = 14 MPU->RASR |= (14<<1); // SIZE @@ -374,4 +380,3 @@ int main(void) } - diff --git a/mpu_user_console_etu/labo5_mpu_user_console_etu/src/user_cmd.c b/mpu_user_console_etu/labo5_mpu_user_console_etu/src/user_cmd.c index 5b03c92..0905fd2 100644 --- a/mpu_user_console_etu/labo5_mpu_user_console_etu/src/user_cmd.c +++ b/mpu_user_console_etu/labo5_mpu_user_console_etu/src/user_cmd.c @@ -73,3 +73,4 @@ void exec_user_read_write() } + -- GitLab