2009-08-23 13 views
1

ARMv6は、コード内のいくつかのことをはるかに簡単かつ高速にする、偉大な機能 - アラインメントされていないメモリアクセスを導入しました。しかし、マイクロソフトはwinCE6でAPIを提供しています。そして、ほとんどのPDAはWinMobile6に基づいています(これはCE 5.x上にあります)。そして、非整列アクセスはデフォルトで無効になっています:(WinMobile6でARMv6のアラインされていないアクセスを有効にする方法?

私は、CP15レジスタに整列されていないフラグを設定しようとしましたが、これは動作しません - 。私は読んで整列していないデータのクラッシュを持っている

それが有効にすることは可能ですWinMobile6上の非整列アクセス


編集:?。。私は非整列アクセスを有効にすることができるツールを、見つけたが、私は自分のコードからオン/オフ、それにしたいそれはnueAdvancedProcessor

答えて

1

がありますウナ(CP15制御レジスタのUビット)とアラインメント・フォールト・チェッカ(Aビット)の2つがあります。あなたは何をしたいのための適切な組み合わせを持っていることを確認してください。特に、Aビットが設定されている場合、Uビットがオンの場合でも、アライメントされていないすべてのアクセスによってデータアボート例外が発生します。その上のARMドキュメントをチェックしてください - すべてhttp://www.arm.comにあります。

特に、「ARMアーキテクチャリファレンスマニュアル」のセクションA2.8.2「ARMv6システムでのアラインされていないデータアクセス」が必要です。ドキュメント番号ARM DDI 0100I。 「ARMv5アーキテクチャリファレンスマニュアル」というタイトルが付けられていますが、最初のARMv6情報が含まれています。私はこのリンクがうまくいくことを願っています:http://infocenter.arm.com/help/topic/com.arm.doc.ddi0100i/index.html

+0

お返事ありがとう!はい、私はこのdoscを読んでいますが、Windows Mobileにはいくつかの制限があるようです。たぶん私はドライバやそのようなものからコードを実行する必要があります。 – zxcat

+1

絶対に。 CP15レジスタは特権モードからのみアクセスできます。私はWindows Mobileについてよく知っているわけではありませんが、ブートローダや他の初期のアセンブリコードでこれらのビットを設定しておいてから、OSが後でそのコードを取り戻すことを願っています。 –