タグ付けされた質問 「assembler」

5
ARMアセンブリコードの記述
Raspberry Piを入手した後、ARMアセンブリコードの記述方法を学びたいと思いました。私の質問は、始めるために何が必要ですか?コンパイラがすでにインストールされていると思いますが、それが何なのかわかりません(gccかもしれません)。どんな助けも大歓迎です!
20 arm  assembler 

1
Raspberry Piは、アセンブラーを学習する学生にとって優れた教育ツールですか?
アセンブラーコースを受講したとき、ディスプレイ、LEDライト、プログラム可能なボタンを備えたNIOS IIアルテラボードを使用しました。より有用な演習の1つは、LEDとボタンを使用してバイナリ計算機を書くことでした。だから、ここに私の質問があります: ラズベリーパイにプラグインできる似たようなもの(または良い代替品)はありますか? Raspberry Piを使用する上で、私が考えていなかった明らかなマイナス面はありますか(ARMアセンブリは学習するのに良い方法ではないかもしれません)。 おそらく、取扱説明書でPiに視覚効果を与えることができる何か他のものがありますか?

1
ロック(アトミック)レジスタの読み取り/書き込み
私はGPIOの直接制御を使用して何かをコーディングしていますが、http://elinux.org/RPi_Low-level_peripherals#GPIO_hardware_hackingのような、このための優れたリソースがいくつかあります。このプロセスにはopen( "/ dev / mem")が含まれ、次にmmap操作が目的の物理アドレスを仮想アドレス空間に効果的にマッピングします。次に、このhttp://www.raspberrypi.org/wp-content/uploads/2012/02/BCM2835-ARM-Peripherals.pdfのセクション6を読み、I / Oがどのように制御されるかを確認します。 ピンの機能(入力、出力、またはさまざまな特殊機能)に変更するには、GPFSELx I / Oレジスタのこれらの3ビットフィールドを変更します(000 =入力、001 =出力敵インスタンス)。これらの変更操作は、通常の読み込みと保存を伴う操作にコンパイルされます(たとえば、GPIO0を入力に変更するには:*(regptr)&=〜7;これは、次のようにコンパイルされます ldr r2, [r3, #0] ; r = *ptr (load r2 from I/O register) bic r2, r2, #7 ; r2 &= ~7 str r2, [r3, #0] ; *ptr = r2 (store r2 to I/O register) 問題はこれです。ロードとストアの間に割り込みが発生し、別のプロセスまたはISRが同じI / Oレジスタを変更すると、ストア操作(r2への古い読み取りに基づく)が他の操作の影響を元に戻します。したがって、これらのI …
8 gpio  assembler 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.