Skip to content
Snippets Groups Projects
Commit 750488c7 authored by valentin's avatar valentin
Browse files

Fonctionnel jusqu'au 2.3, erreur 2.4

parent af092e67
No related branches found
No related tags found
No related merge requests found
...@@ -43,4 +43,3 @@ asm_test_fault: ...@@ -43,4 +43,3 @@ asm_test_fault:
.ltorg .ltorg
...@@ -55,12 +55,18 @@ void MemManage_Handler() ...@@ -55,12 +55,18 @@ void MemManage_Handler()
// Acknowledge du registre CFSR // Acknowledge du registre CFSR
SCB->CFSR = 0xFFFF; SCB->CFSR = 0xFFFF;
__asm volatile(
"mrs r0, psp\n" // Instructions assembleur foncionnelles
"ldr r1, =user_starting_address\n" // recup le pointeur vers l'adresse de retour souhaitée // __asm volatile(
"ldr r1, [r1]\n" // deref le pointeur pour recup l'adresse de retour // "mrs r0, psp\n"
"str r1, [r0, #24]\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) ...@@ -244,7 +250,7 @@ int main(void)
// Type d'accès : Read / Write en mode privilégié, Read sinon // Type d'accès : Read / Write en mode privilégié, Read sinon
MPU->RNR = 4; // ID de la region MPU->RNR = 4; // ID de la region
// Registre RBAR à verifier // Registre RBAR à ve0x10002008rifier
// MPU->RBAR = (0 << 4); // RNR modifié manuellement // MPU->RBAR = (0 << 4); // RNR modifié manuellement
// N = Log2(Region size in bytes) // N = Log2(Region size in bytes)
...@@ -288,7 +294,7 @@ int main(void) ...@@ -288,7 +294,7 @@ int main(void)
// Reset des bits + enable // Reset des bits + enable
MPU->RASR = (1 << 0); // 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 // 32768 = 2^(SIZE+1) --> SIZE = 14
MPU->RASR |= (14<<1); // SIZE MPU->RASR |= (14<<1); // SIZE
...@@ -374,4 +380,3 @@ int main(void) ...@@ -374,4 +380,3 @@ int main(void)
} }
...@@ -73,3 +73,4 @@ void exec_user_read_write() ...@@ -73,3 +73,4 @@ void exec_user_read_write()
} }
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment