U-Bootを使った ベアメタル・アプリケーションの作り方

Linuxを使わずにOSレス環境でプログラムを動かす方法
Alte
Xilin ra &
x 共通
!
U-Boot を使った
ベアメタル・アプリケーションの作り方
石原 ひでみ
Hidemi Ishihara
ARM コア内蔵 FPGA で走らせる OS は Linux だけではありません.アプリケーションの規模が小さい,またはリアルタイム性が必
要な処理では,OS を使わないベアメタル・アプリケーションを実行することもあります.ここでは Altera と Xilinx で共通で使える
U-Boot を使ったベアメタル・アプリケーションの作り方を解説します.ARM プロセッサは,キャッシュを使うために MMU の初期化
が必要になりますが,ここでもキャッシュを有効にして CPU パワーを発揮させます.
(a)評価ボード DE1-SoC
(b)評価ボード ZYBO
写真 1 DE1-SoC と ZYBO の両方で動作するベアメタル・アプリケーションの作成 1
ベンダ純正 SDK と俺々 Linux
ディストリビューション SDK
本書 No.12 の特集と No.13 の記事で,いわゆる俺々
Linux ディストリビューションを構築し,Cyclone V
SoC 搭載評価ボード DE1-SoC および,Zynq 搭載評価
ボード ZYBO を動かしてきました.しかし「OS なん
ぞいらない!」,「ベアメタル・アプリケーションで十
分だ!」という方もいるでしょう.
そこで今回は,FPGA マガジン No.12 の俺々 Linux
ディストリビューションで構築したクロス開発環境
(SDK)を使用して,DE1-SoC と ZYBO で動作するベ
アメタル・アプリケーションを開発していきます.
● ベアメタル・アプリケーションの欠点
ベアメタル・アプリケーションの欠点と言えば,使
用する全ての制御を自分で行わなければいけない(自
分で作成しなければいけない)ことではないでしょう
か.逆に言えば,Linux ディストリビューションはそ
の点をカバーするために使用したと言っても過言では
ありません.
現実的には,使用する全ての制御を自前で用意する
116
のは大変なので,Altera 社も Xilinx 社もベアメタル・
アプリケーションを作成するためのライブラリを用意
しています.Altera 社の場合は ARM 純正開発環境で
あ る ARM DS-5 の Altera Edition(AE)
,Xilinx 社 の
場合は Vivado HLx 環境に Vivado SDK が用意されて
おり,ベアメタル・アプリケーションをサポートする
周辺ペリフェラルや両社の IP コアなどのライブラリ
が用意されています.それぞれ,自社向けデバイスを
サポートするために,Altera 社の場合は“alt_”で始
まる関数が,Xilinx 社の場合は“x”で始まる関数が準
備されています.通常はこれらメーカ製 SDK を使用
して開発していることでしょう.
● Altera & Xilinx 共通開発環境!
今回は DE1-SoC と ZYBO の両方で動作するベアメ
タ ル・ ア プ リ ケ ー シ ョ ン の 開 発 を 行 っ て い き ま す
(写真 1)
.両方で動作するソースコードはそれぞれ用
に作成するのではなく,同じソースコードを使用しま
す.
同じソースコードと言っても,それぞれのメーカの
SDK を使用すると,Cylcone V SoC(以下 SoC FPGA)
で作成するときは alt_ で始まる,Zynq で作成する
U-Boot を使ったベアメタル・アプリケーションの作り方