Question

J'essaie de faire des programmes en métal nu en bras avec GCC et des tests sur QEMU. Chaque fois que j'appelle une étiquette de bras de C, mon programme est suspendu. J'ai un exemple simple de code qui montre le problème à https://gist.github.com/1654392 - Lorsque j'appelle activate () dans ce code, il se bloque.

J'ai observé avec objdump que lorsque je fais un BL de l'assemblage au code C (comme à partir de _Start), il génère un petit wrapper qui passe aux instructions du pouce. Il semble que le code C soit en cours de génération dans les instructions du pouce, mais tout mon assemblage est généré dans les instructions ARM (32 bits). Je ne peux pas comprendre pourquoi il est ni comment le réparer.

Pas de solution correcte

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top