はじめに

Linuxが動作するARM CPU搭載の汎用ボードコンピュータというコンセプトでデザインした初代Armadillo (HT1070)を発売したのは、2002年3月のことでした。発売当初は「ARMよりもSuperHで作ってほしい」「組み込み機器でLinuxを動かして意味があるの?」「リアルタイムOSでなくて良いの?」といった、どちらかというと否定的な意見も多く聞かれました[1]

初代Armadilloの発売から約10年の歳月が過ぎ、Linux+ARMという組み合わせは携帯電話を初めとして、今では当たり前の選択となりました。それと共に、Armadilloシリーズも毎年のように新製品を発表し、多くのユーザーに支えられて成長してきました。そうしてユーザー数が増えるにつれ、「組み込みでLinuxを使うにあたり、系統立てて学ぶ方法はないか?」といったご相談を受けることが多くなりました。

Linuxで組み込みシステムの開発を行うにあたっては、Linuxそのものの使い方、Linuxの仕組みについての理解、クロス開発についての理解、そしてターゲットとなるボードごとの知識の習得など、多くの課題があります。しかしながら、それらを体系的に解説している書籍などは、なかなか見つからないのが現状です。そういった問題を少しでも解決できればと思い、本書を執筆いたしました。

本書では、何らかの組み込みシステムを開発したいと考えているユーザーが、Armadilloを使用してシステムを構築し、量産につなげるために必要な一連の手順を解説しています。初めから順番に読んでいきながら、システムを開発する際に行うべき手順を把握することができます。また、Armadilloを使う上でのノウハウを詰め込んでありますので、開発で行き詰まった時にリファレンス的に活用することもできると思います。

過去にいただいたお問い合わせや、メーリングリストでのやりとりなどを踏まえて、多くのお客様にとってつまづきやすい点、知りたいとリクエストいただいた内容をなるべく多く取り入れたつもりです。つたない記述もあるかと思いますが、本書を皆様の開発に役立てていただければ幸いです。

1.1. 対象読者

本書が主な対象読者としているのは、Armadilloを使って組み込みシステムを開発したいと考えているソフトウェア開発者です。少なくともC言語での開発経験があることを前提としています。Linuxシステムに関する内容が含まれていますが、Linuxの使用経験はなくとも読み進められるように配慮してあります。

また、Armadilloと組み込みLinuxの組み合わせでどのようなことが実現可能か知りたいと考えている設計者、企画者も対象としています。Armadilloは汎用ボードコンピュータですので、標準で有効になっている機能以外にも様々な機能を実現することができます。どのようなことができて、できないことは何なのかについても説明しています。

1.2. 本書の構成

本書は、大きく分けて3部構成になっています。

第1部では、Armadilloを使った組み込みシステム開発というものがどういうものか、一連の流れとして説明します。これまで組み込みシステム開発の経験がない方や、Linuxでの開発経験がない方でも理解できるよう、基本的な用語や操作方法から説明します。第1部を読み終えると、開発を始めるための基本的な知識が習得でき、また開発の全体的な流れが把握できるようになります。

第2部では、実践的な開発に役立つ事柄について説明します。効率的に開発するための開発環境の整備、Linuxの仕組みについてのより詳細な情報、組み込みやArmadillo特有のプログラミング技法、システム構築上のノウハウなどについて解説します。第2部を読み終える頃には、実際の開発で直面するであろう種々の問題が解決できるようになっていただけると思います。

第3部では、様々な外部機器をArmadilloに接続して使う方法を紹介します。1つの機器ごとにHowto形式で書かれており、ここまでを習得された方であれば容易に読み解ける内容になっています。

1.3. 表記方法

本書で使用している表記方法について説明します。

1.3.1. 使用するフォント

フォントは以下のものを使用します。

表1.1 使用するフォント

フォント例 使用箇所

本文中のフォント

本文

等幅

コンソールやソースコード

太字

ユーザーが入力する文字

斜体

状況によって置き換えられるもの

下線

キー入力


1.3.2. コマンド入力例の表記方法

コマンド入力例は、以下のように表記します。

[PC ~/]$ ls

図1.1 コマンド入力表記例


「[PC ~/]$」の部分をプロンプトと呼びます。ユーザーは、プロンプトに続けてコマンドを入力します。「PC」の部分は、コマンドを実行する環境によって使い分けます。実行環境には、以下のものがあります。

表1.2 コマンドの実行環境と対応する表記

表記 実行環境

PC

作業用PC

ATDE

ATDE(Atmark Techno Development Environment[a])

armadillo

Armadillo(Atmark Distで作成したユーザーランドの場合)

darmadillo

Armadillo(ユーザーランドがDebian GNU/Linuxの場合)

[a] アットマークテクノ社製品用のクロス開発環境


「$」の部分は、コマンドを実行するユーザーの種類によって使い分けます。ユーザーの種類には、以下の二種類があります。

表1.3 ユーザーの種類と対応する表記

表記 権限

#

特権ユーザー

$

一般ユーザー


プロンプトの表記方法やそれぞれの用語については、本文中で詳しく説明します。

1.3.3. コラムの表記方法

本書では、随所にコラムを記載しています。コラムの内容によって、以下の表記を用います。

[注記]メモ

用語の説明や補足的な説明は、このアイコンで示します。

[ティップ]ヒント

知っていると便利な情報は、このアイコンで示します。

[警告]注意

ユーザーの注意が必要な情報は、このアイコンで示します。このアイコンが付いているコラムの内容に従わない場合、ハードウェアやシステムを破壊したり、以降の作業に支障をきたす場合があります。再度、ご確認ください。

[警告]注意: 本書の内容を実践する前に

ご使用になる製品のマニュアル(ハードウェアマニュアル、ソフトウェアマニュアル、その他関連資料)をよく読み、それらに記述されている注意事項に従って正しく安全にお使いください。

1.4. サンプルソースコード

本書で紹介するサンプルソースコードは、http://download.atmark-techno.com/armadillo-guide/source/ からダウンロードできます。サンプルソースコードは、MITライセンス[2]の下に公開します。

1.5. 困った時は

本書を読んでわからなかったり困ったことがあった際は、ぜひArmadilloサイト[3]で情報を探してみてください。本書には記載しきれていないFAQやHowtoが掲載されています。

Armadilloサイトでも知りたい情報が見つからない場合は、Armadilloシリーズに関する話題を扱う「Armadilloメーリングリスト」[4]で質問してみてください。多くのユーザーや開発者が参加しているので、知識のある人や同じ問題で困ったことがある人から情報を集めることができます。

[注記]メーリングリストに参加するための心構え

Armadilloメーリングリストには、現在までに数百人のユーザーが参加しています。メーリングリストに送られたメールは、メーリングリスト参加者すべてに送られます。それらのメールはアーカイブとして保存され、Web上で誰でも閲覧可能な状態になり、過去に投稿されたメールを検索することもできます[5]

メーリングリストには多くの人が参加していますので、そこにはマナーが存在します。一般的な対人関係と同様に、受け取り手に対して失礼にならないよう配慮はすべきです。とはいえ、技術的に簡単なものであるとか、ちょっとした疑問だからという理由で、投稿をためらう必要はありません。Armadilloに関係のある内容であれば、難しく考えることなく気軽にお使いください。

適切な質問をすると、適切なアドバイスが得られる可能性が高まります。その逆もまた然りです。メーリングリストに不慣れな方は、質問する前に「技術系メーリングリストで質問するときのパターン・ランゲージ」[6] あたりをご一読されることをお勧めします。

1.6. お問い合わせ先

本書に関するご意見やご質問は、Armadillo メーリングリスト[4]にご連絡ください。何らかの事情でメーリングリストが使えない場合は、以下にご連絡ください。

株式会社アットマークテクノ
〒060-0035 北海道札幌市中央区北5条東2丁目 AFTビル
電話        011-207-6550
FAX         011-207-6570
電子メール  sales@atmark-techno.com

1.7. 商標

Armadilloは、株式会社アットマークテクノの登録商標です。その他の記載の商品名および会社名は、各社・各団体の商標または登録商標です。™、®マークは省略しています。

1.8. ライセンス

本書は、クリエイティブコモンズの表示-改変禁止 2.1 日本ライセンスの下に公開します。ライセンスの内容はhttp://creativecommons.org/licenses/by-nd/2.1/jp/ でご確認ください。

クリエイティブコモンズライセンス

図1.2 クリエイティブコモンズライセンス


1.9. 謝辞

Armadilloで使用しているソフトウェアはFree Software/Open Source Software で構成されています。Free Software/Open Source Softwareは世界中の多くの開発者や関係者の貢献によって成り立っています。この場を借りて感謝の意を表します。



[1] 特集:最新組み込みLinux実践講座Part1http://armadillo.atmark-techno.com/articles/sd-a500-embedded-course-ch1

[5] 投稿者のメールアドレスのみ、スパムメール対策としてWeb上では秘匿されます。

[6] 結城浩氏によるサイトよりhttp://www.hyuki.com/writing/techask.html