Baking Pi 環境作ってみる

久々朝練。

とりあえず

適当なディレクトリにて以下。

$ wget http://www.cl.cam.ac.uk/freshers/raspberrypi/tutorials/os/downloads/arm-none-eabi.tar.bz2

展開して PATH に arm-2008q3/bin を追加しておけば良い模様。

OK01 確認してみる

とりあえず GPIO が 0x20200000 な番地にマップされてる根拠が分からん。マニュアル 5p に I/O Base が 0x20000000 にセットされる、って書いてあるのか。
あるいは物理アドレス 0x20nnnnnn は 0x7Ennnnnn で云々、とあるな。
んで、89p の GPIO の章に飛んで 6.1 な表を見てみるに 0x7E200000 というアドレスが GPFSEL0 というフィールドで_GPIO function Select 0_という記述がありますね。
ええと命令見てみるに

mov r1,#1
lsl r1,#18

で r1 は 0x40000 になってそれを

str r1,[r0,#4]

で 0x7E200004 な GPFSEL1 に、ということはマニュアルによれば FSEL16 を GPIO Pin 16 is an output という状態にしているのですね。
で、次に

mov r1,#1
lsl r1,#16

で r1 の値は 0x10000 になって

str r1,[r0,#40]

てことは 0x7E200028 な GPCLR0 に書き込み?
95p な記述だと、GPIO pin 16 が clear される、という事になるのかどうか。

時間切れ

コンパイルして動作確認はまた今度、という事で。
なんとなくマニュアルがきちんと読めてなくて色々微妙orz