2

ARMv6 introduce a great feature - unaligned memory access, which make some things in code much more simplier and faster. But microsoft gives API for it only in winCE6. And most PDAs now based on WinMobile6 (which is on CE 5.x). And unaligned access is disabled by default :(

I've try to set unaligned flag in CP15 register, but this doesn't work - I have a crash on read unaligned data.

Is it possible to enable unaligned access on WinMobile6?


Edit: I've found the tool, which can enable unaligned access, but I want to on/off it from my code. It's nueAdvancedProcessor.

4

2 に答える 2

3

アラインされていないアクセス フラグ (CP15 コントロール レジスタの U ビット) と、アラインメント フォールト チェッカー (A ビット) があります。やりたいことに適した組み合わせがあることを確認してください。特に、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

于 2009-10-02T18:01:54.917 に答える