第2部 第 9章 定番 Cortex-A ボード BeagleBone Black で 確かめる 強烈!? LLVM/Clang コンパイラの実力 村井 和夫 表 1 今回使ってみた StarterWare に入っているサンプル・ソフト ウェア 機 能 サンプル・アプリケーション 割り込みによる Echo アプリケーション UART DMA による Echo アプリケーション 割り込みモードによる EEPROM 読み込み I2C DMA モードによる EEPROM 読み込み タイマ 割り込みサービス・ルーチンでの係数 ウォッチドッグ・ ウォッチドッグ・タイマ・デモンストレー タイマ ション GPIO LED オン / オフ MMC/SD SD カードの FAT ファイル・システム・ アクセス リアルタイム・ クロック リアルタイム・クロックの設定と読み出し CDC(Communication Device Class) シリアル・デバイス・モード Custom Bulk デバイス・モード MSC(Mass Storage Class)デバイス・モード USB MSC(Mass Storage Class)ホスト MSC(Mass Storage Class)ホスト+デバイス CDCシリアル・デバイス + CDCシリアル・ デバイス(USB0 ポートをデバッグとシリア ル・ポート・エミュレーションに使用) ウェブ・ページヘのアクセス イーサネット ソケット・プログラムによる Echo EDMA(DMA) ブートローダ DMA によるメモリ間転送 MMC/SD ブート UART ブート イーサネット駆動(WEB ブラウザ) パワー制御モードのサポート 低消費電力制御モード UART とタイマによる起動 独自のデモ・ アプリケーション OPP50(パワー・マネージメント機能) OPP100(パワー・マネージメント機能) OPP120(パワー・マネージメント機能) SR-TURBO(パワー・マネージメント機能) ベクタ浮動小数点演算 NEON/VFP Math ライブラリ(sin, cos の CPU 固有機能 あり・なし)※ GCC のみ 低価格 Linux ボードの一つ BeagleBone Black には, Cortex-A8 コアを搭載した AM335x プロセッサ(テキ サス・インスツルメンツ)が使われています.本プ ロセッサには,OS を使わない CPU プログラミング (ベア・メタル・プログラミング)向けに,Starter Ware と い う ラ イ ブ ラ リ 群 が 用 意 さ れ て お り, 生 Cortex-A 用プログラムを試すのに非常に便利です. 本稿では,この BeagleBone Black を使って,強 力といわれる LLVM/Clang の Cortex-A 向けコンパ イル性能を確認してみます. Cortex-A8 搭載 AM335x 用実験プログラムの作り 方は Appendix 7 で説明します. (編集部) 生 Cortex-A を簡単に操作できる StarterWare ライブラリの構造 ● ハードウェア制御のサンプル・プログラムが てんこ盛り! テキサス・インスツルメンツのサイトには,AM335x を OS レス(ベア・メタル)で動かすための StarterWare というソフトウェア・ライブラリが公開されていま す.StarterWare には,ハードウェアを直接制御する ためのサンプル・プログラムが揃っていますので,今 回はこれを利用します. 初心者がマニュアルを片手に OS レス・プログラミ ン グ を 行 う の は と て も ハ ー ド ル が 高 い も の で す. StarterWare には OS を書くために用いられる基本的 な CPU 制御プログラムのサンプルが用意されていま すので,とても役に立つと思います.通常のプログラ ムなら,これを組み合わせるだけで作成できます.イ ンストール方法は Appendix 5 をご覧ください. StarterWare には,表 1 に示すサンプル・プログラ ムが用意されています.BeagleBone Black では,サ ポートされていない機能もあります. ● 複数の開発環境に対応するためディレクトリ 構造が少し複雑 StarterWare は,AM335x を 使 っ た 各 種 プ ラ ッ ト ホームで動作するプログラムを,GCC やテキサス・ 2015 年 3 月号 75
© Copyright 2024