raspberrypi_bare_metal
Raspberry Pi 3 Model B+ でベアメタルプログラミングを行った記録。
Usage:
docker でビルド・qemu による実行が行えます。
- 使用イメージ : mikoto2000/qemu-aarch64
使用例:
docker-compose run --rm uart_output make all
docker-compose run --rm uart_output make qemu
Windows の MSYS2 で開発したい方以下を確認してください。
Requirements:
下記環境で動作確認を行っています。 それ以外の環境の方は、シェルスクリプトの修正など行う必要があります。
- OS: Windows 10 Pro 64bit
- 実行環境: MSYS2
Setup:
fileget.sh
で必要なファイルをダウンロード・展開します。
bash ./fileget.sh
setup.sh
でツールチェインへのパスを通します。
cd PATH_TO_raspberrypi_bare_metal
. setup.sh
Build:
各ディレクトリで make
を実行してください。
kernel8.img
ファイルが作成されます。
Run:
firmware_armstub/bootcode.bin
,firmware_armstub/start.elf
,kernel8.img
を FAT32 でフォーマットした microSD カードのルートにコピーしてください。- 「1.」の microSD カードを Raspberry Pi に挿入し、電源を入れてください。
SD カード
├── bootcode.bin
├── start.elf
└── kernel8.img
References:
これらサイトを見て試したはず...。ぬけもれあるかも。
- 全般
- Raspberry Pi 3で64bitベアメタル(bare metal)プログラミング - へにゃぺんて@日々勉強のまとめ
- ARMのプログラムを作成してデバッグする 第2回
- Raspberry Piのクロスコンパイル環境をWindowsパソコン上のEclipceで構築する Linaro Releases
- 64-bit boot stub? · Issue #579 · raspberrypi/firmware
- Lチカ Raspberry PiでC言語からSoCのレジスタを操作してGPIOを制御する - Qiita
- RPi Low-level peripherals - eLinux.org
- BCM2835 - Raspberry Pi Documentation
- Schematics - Raspberry Pi Documentation
- リンカースクリプト
- U-Boot
- ARM ドキュメント
- Raspberry Pi ドキュメント
- BCM2835 - Raspberry Pi Documentation
- ペリフェラル詳細は 2835 のものしかないらしい
- BCM2836 - Raspberry Pi Documentation
- BCM2835 - Raspberry Pi Documentation
License:
Copyright (C) 2018 mikoto2000
This software is released under the MIT License, see LICENSE
このソフトウェアは MIT ライセンスの下で公開されています。 LICENSE を参照してください。
Author:
mikoto2000 mikoto2000@gmail.com