J'essaie un exemple de ST
pour la carte de base STM32F4DIS_BB
+ STM32F4-discovery
. Je souhaite utiliser RTOS
exemple httpserver_socket. Avant d'utiliser standalone (NO RTOS
) exemple httpserver sans problèmes. Mais dans RTOS
par exemple le serveur était figé sur chaque connexion Web. Cela signifie que les tâches sont OK pour LED
basculer, DHCP
est OK etc. Ping à partir de CMD
est OK. Mais quand je fais la connexion à partir du client Web, le conseil a été gelé et aller au HardFault_Handler()
. Une opinion?STM32F4DIS-BB + RTOS httpserver_socket exemple
Répondre
Avez-vous essayé debugging the hard fault pour voir quelle instruction l'a causé? Une fois que vous savez que vous serez en mesure de placer un point de rupture dans le code pour voir comment vous y êtes arrivé. En outre, nous avons FreeRTOS+TCP en cours d'exécution sur un STM32F4 maintenant, mais sur la plus grande carte d'évaluation, plutôt que la carte de découverte.
grâce à Richard. J'ai trouvé par le débogage et CFSR registre ce problème est mem gestion.
« processeur a tenté une instruction d'extraction à partir d'un endroit qui ne pas permettre l'exécution Ce défaut se produit sur un accès à une région XN, même lorsque le MPU est désactivé ou non présent »
Mais je ne comprends pas comment peut-ST faire par exemple pour le même matériel que j'ai avec cette erreur? Maintenant, j'essaie de trouver un problème.
J'ai trouvé que le problème est dans l'option FPU dans le réglage du projet. Le projet d'origine a défini l'utilisation de FPU. Lorsque je ne l'ai pas utilisé, les projets sont OK. Problème d'utilisation de FPU et de freeRTOS.
Salut, je l'ai essayé mais le code est dans asm inline et il fait des messages d'erreur que # 1113: assembleur en ligne n'est pas autorisé lors de la génération du code de pouce. –
Lorsque #pragma asm/#pragma thumb est utilisé: erreur # 1114-D: cette fonctionnalité n'est pas prise en charge sur l'architecture cible/processeur –
OK J'utilise la sortie de débogage avec ce drapeau: Dans le Gestionnaire de défaillance matérielle SCB-> HFSR = 0x40000000 Forced Hard Fault SCB-> CFSR = 0x00000001 –