Démarrage d'un STM32 J'essaie d'allouer de la mémoire pour une struture pointée par un pointeur.Exception de faute matérielle lors de l'appel de memset sur STM32
TLxbEvents *LxbEvents
memset((void*)LxbEvents, 0, sizeof(TLxbEvents));
En regardant dans le démontage, il se bloque toujours sur la ligne
STMCS r0!,{r2-r3,r12,lr}
Je ne pouvais pas trouver un document décrivant le Nether d'instructions STMCS sur le site Web ARM ou Google ou ailleurs ... Les registres à ce point sont
r0 0x2000D694
r2 0x00000000
r3 0x00000000
r12 0x00000000
lr 0x00000000
J'ai essayé de passer l'appel à une autre routine, sans aucune modification, vérifié l'alignement et qui semble aussi bien. Chaque fois que le programme se lance dans cette ligne il se bloque avec un HardFault et selon certaines variables de débogage, il est causé par une réinitialisation de chien de garde, ce que je ne crois pas ...
Que fait cette ligne et a quelqu'un une idée, qu'est-ce qui cause la faute dure?
Vous avez un pointeur 'LxbEvents', mais où pointe-t-il? –
'r0', donc 0x2000D694 quelque part dans SRAM et en utilisant la visionneuse de mémoire, je peux voir que tout est mis à zéro – Aeonos
Déclarer avant d'utiliser! – CinCout