ラズパイからはじめる ARMベアメタル・プログラム

第1部
第
4章
ご購入はこちら
固有の「起動」&「I/O」&「割り込み」をじっくり
ラズパイからはじめる
ARMベアメタル・プログラム
村井 和夫
表 1 ひと口にラズベリー・パイといってもいろんな種類がある
※ラズベリー・パイ 2 は,64 ビット ARM Cortex-A53 内蔵 BCM2837 タイプも出ている
ラズベリー・
パイのモデル
ラズベリー・
パイ Zero
モデル A
SoC
モデル A +
モデル B
モデル B+
コア数
1 コア
4 コア
64
250 MHz / ブロードコム VideoCore IV
512M
256M
512M
1G
映像入力
15 ピン・カメラ・インターフェース
映像出力
コンポジット RCA(PAL/NTSC),HDMI
音声出力
オンボード
LED
3.5 mm ジャック
─
26 ピン
(旧配置あり)
40 ピン
26 ピン
(旧配置あり)
─
─
─
GPIO16 負論理
Peripheral
Address Base
イーサネット
電源
1
microSD
SD
microSD
GPIO47 正論理
─
0x3F00 0000
2
4
SD
microSD
なし
あり(1 つ)
5V(Micro-USB か GPIO ヘッダ経由)
I/O 処理や割り込み処理は CPU ごとに違います.
ARM7TDMI⇒ARM11⇒Cortex-A(32ビット)がARM
の 32 ビット基本アーキテクチャのファミリなので,
まずこれを例に試します.入手しやすいラズベリー・
パイ1(ARM11)とラズベリー・パイ 2(Cortex-A7)を
ターゲット・ボードとし,具体的な I/O 処理や割り込
み処理方法を説明していきます.
他の32ビットCortex-Aボードや,64ビットCortexA ボード(ラズベリー・パイ 3 など),Cortex-M ボー
ドについても基本的な考え方は同様です.詳細は,別
途連載などで紹介していきます.
76
40 ピン
0x2000 0000
USB ポート数
ストレージ
ARM
Cortex-A53
32
GPU
外部ヘッダ
(26/40 ピン)
モデル B
ARM
Cortex-A7
ARM1176JZF-S
CPU ビット
ラズベリー・
パイ 3
BCM2836 ※
BCM2837
(ブロードコム) (ブロードコム)
BCM2835(ブロードコム)
CPU コア
メモリ(RAM)
[バイト]
ラズベリー・
パイ 2
ラズベリー・パイ 1
ラズパイのハードをおさえておく
● Linux を使うだけと違ってハードの違いを理
解しておかないといけない
ラズベリー・パイ各モデルの特徴を表 1 に示します.
各モデルは一般に,ソフトウェア的には完全互換があ
るといわれています.これは通常,公式の OS(Linux
「Raspbian」)上に作られたアプリケーションの場合で
す.
ハードウェア的には意外と違うので,自力でARM向
け プ ロ グ ラ ム(Baremetal Program)を 作 る と き は,
この違いを理解しておく必要があります.
2017 年 2 月号