はじめに
ARM が純正で ARMv8 アーキテクチャのシミュレータを配布していることを知ったので、さっそく動かしてみた。
動作確認環境
- Ubuntu 12.04.4 LTS 64bit 版
シミュレータのダウンロード
公式サイト からダウンロードできるが、ユーザ登録が必要。それが済むと、ARM V8 Foundation Platform (Linux) というところに Download ボタンがあるので、そこからダウンロードできる。このときに住所とか入力フォームが出てくるが、必須ではないのでそのまま次に進める。
実行してみる
展開すると Foundation_Platformpkg というディレクトリができる。
内容はこんな感じ
$ tree
Foundation_Platformpkg
├── doc
│ ├── DUI0677E_foundation_platform_ug.pdf
│ └── FoundationPlatform_Readme.txt
├── examples
│ ├── foundation-platform.dts
│ ├── hello.axf
│ ├── hello.c
│ └── Makefile
├── LES-PRE-20164-V5_0_-_Foundation_Platform.txt
└── models
└── Linux64_GCC-4.1
├── Foundation_Platform
├── libarmctmodel.so
└── libMAXCOREInitSimulationEngine.so.2
4 directories, 10 files
example に ELF があることが確認できる。
中身は、printf するだけ。
hello.c
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("Hello, 64-bit world!\n");
return 0;
}
Foundation_Platformpkg/models/Linux64_GCC-4.1/Foundation_Platform がシミュレータ本体っぽいので、これを実行してみる。
$ ./Foundation_Platform --image=../../examples/hello.axf
terminal_0: Listening for serial connection on port 5000
terminal_1: Listening for serial connection on port 5001
terminal_2: Listening for serial connection on port 5002
terminal_3: Listening for serial connection on port 5003
Simulation is started
Hello, 64-bit world!
期待通り動いていそう。シリアルがどうとか出力されるので、UART とかで出力は出来そう。
おわりに
今回はとりあえず動かすところだけだが、これだけでは全く面白くないので、自分で作ったプログラムを動かしたい。armcc は有償なので、gcc か llvm で出来ればよいかなと思っている。