2009-08-23 8 views
1

ARMv6 introduire une grande fonctionnalité - accès mémoire non aligné, ce qui rend certaines choses dans le code beaucoup plus simple et plus rapide. Mais microsoft ne donne l'API que pour winCE6. Et la plupart des PDA sont maintenant basés sur WinMobile6 (qui est sur CE 5.x). Et l'accès est unaligned désactivé par défaut :(Comment activer l'accès non aligné ARMv6 sur WinMobile6?

J'ai essayé de mettre le drapeau dans CP15 unaligned registre, mais cela ne fonctionne pas - j'ai un accident sur les données lues non alignés

Est-il possible de l'activer. accès non alignés sur WinMobile6


Edit:?.. que j'ai trouvé l'outil, ce qui peut permettre un accès non alignés, mais je veux on/off à partir de mon code, il est nueAdvancedProcessor

Répondre

1

il est un una indicateur d'accès aligné (le bit U dans le registre de contrôle CP15) et aussi un vérificateur d'erreur d'alignement (le bit A). Assurez-vous d'avoir la bonne combinaison pour ce que vous voulez faire. En particulier, si le bit A est défini, tous vos accès non alignés provoquent une exception d'abandon de données, même si le bit U est activé. Consultez les documents ARM sur ce - tous disponibles au http://www.arm.com.

En particulier, vous voulez Section A2.8.2 "Accès aux données non-alignées dans les systèmes ARMv6" dans le Manuel de référence de l'architecture ARM. Numéro de document ARM DDI 0100I. Il est intitulé "ARMv5 Architecture Reference Manual", mais contient les informations initiales d'ARMv6. J'espère que ce lien fonctionne: http://infocenter.arm.com/help/topic/com.arm.doc.ddi0100i/index.html

+0

Merci pour votre réponse! Oui, je lis ce dosc, mais il semble qu'il y ait quelques restrictions sur Windows Mobile. Peut-être que je dois exécuter le code du pilote ou quelque chose comme ça. – zxcat

+1

Absolument. Les registres CP15 sont accessibles uniquement à partir de modes privilégiés. Je ne suis pas très familier avec Windows Mobile, mais vous pouvez essayer de configurer ces bits dans votre chargeur de démarrage ou un autre code d'assemblage anticipé, puis espérer que le système d'exploitation ne les effacera pas pour vous plus tard. –

Questions connexes