ARM Cortex M3 リファレンスマニュアルと「ビットバンド」の概念を読んでいます「」、「ビットバンド領域」、「ビットバンドエイリアス」が表示されます。
ビットバンディングとは何ですか?
コメント
- githubページを使用して、ビットバンディングとは何か、その仕組みと使用方法を説明しました。ビットバンディングに関するほとんどの質問に答えると思います。気軽に(再)表示してください。
- これは、ARM Cortex M3 atadiat.com/en/articles/ …
回答
ARM情報センターは、Cortex-M3および-M4ドキュメント、コンパイラドキュメント、その他いくつかのビットバンディングについて言及しています。 ホーム>プログラマーモデル>ビットバンディング などの場所。 ホーム> Cortex-M3用ソフトウェアの開発>ビットバンディング :
ビットバンディングは、メモリの完全なワードをビットバンド領域の単一ビットにマップします。たとえば、エイリアスワードの1つに書き込むと、ビットバンド領域の対応するビットが設定またはクリアされます。
単一にする方法のようです。ビットアトミック操作。
エイリアス領域に書き込む場合、32ビットワードのビット0を使用して、ビットバンディング領域の値を設定します。エイリアスアドレスから読み取ると、ビット0のビットバンド領域から値が返され、他のビットはクリアされます。
コメント
- ビットバンド操作が内部でどのように実行されるか、およびアトミック性に関して実際に保証されることは何かわかりますか?アトミックビットセットまたはビットクリア操作を容易にするチップを設計する場合、上位アドレスビットの2つを使用して、'通常のアクセス(00)、'書き込み'(01)、および'ゼロを書き込む'(1x)。さらに、I ' dは、これらのアドレスビットが0x11の場合、CPUにデータ出力を反転させます。このようにして、リードモディファイライトを必要とせずに、ビットを1サイクルでセットまたはクリアすることができます。書き込みと同時にハードウェアによってビットが設定される場合でも、…
- リンクをたどるだけです。
- @AlKepp、多くのシステムでビットを書き込むI使用したことは、中断できない動作を実行するための単一の命令で本当にアトミックです。
- @AlKepp、アトミック命令でこれを実行できないシステムがあることを暗示しようとはしていませんでした。 "ビットの書き込みを真にアトミックにすることはできません。"私はこの主張に同意しませんでした。私はそれがアトミックであり、それらが存在する多くのシステムを使用しました。
- @ AlKepp、CortexM3はより多くのマイクロコントローラーの例です。私にとって重要なのは、アトミック命令が頻繁に存在する場合、存在しないとは言えないということです。ここの多くの人々は、メモリが内部にあるほど十分に少ないリソースである組み込みシステムを実行します。実際、それは私がコーディングを楽しんでいる唯一のシステムです。それはさておき、存在し、一般的に使用されているときに存在しないと誰かに伝えると、誤解を招く可能性があります。