...

CKB-RZ/A1H 組み込み Linux ユーザーズ

by user

on
Category: Documents
3

views

Report

Comments

Transcript

CKB-RZ/A1H 組み込み Linux ユーザーズ
CKB-RZ/A1H
組み込み Linux ユーザーズ・マニュアル V2.1
(第 2 版)
Copyright (C)2014 (株)コンピューテックス
ご使用になる前に
CKB-RZ/A1H 組込み Linux をご使用になる前にマニュアルをよくお読みいただき、正しくお使いください。
 本製品を輸出する(日本国外への持出含む)場合、またはソフトウェアを国内非居住者に提供する場合は外国為替及び外国貿易法
に従って必要な手続きをお取りください。
 本製品および付属のマニュアル、回路図、ソフトウェア等の一部、または全部を無断で使用することや、複製することはできません。
 本製品の内容、および仕様に関しては製品の信頼性、機能、設計の改良により将来予告なしに変更することがあります。
 CSIDE に関する著作権は(株)コンピューテックスに帰属します。
 CSIDE、PALMiCE および COMPUTEX は、(株)コンピューテックスの登録商標です。
 Microsoft および Windows は、米国 Microsoft Corporation の、米国、日本およびその他の国における登録商標または商標です。
 Linux は、Linus Torvalds 氏の日本およびその他の国における登録商標または商標です。
 その他本書で取り上げる会社名および製品名などは、一般に各メーカーの商標、または登録商標です。
あわせて当社 WEB サイトに掲載されている「保証規定」も必ずご確認ください。
http://www.computex.co.jp/support/guarantee/index.htm
目 次
第 1 章 はじめに ........................................................................................................ 1
1.1
1.2
1.3
1.4
1.5
1.6
1.7
はじめに ....................................................................................................................................................................... 1
コマンド表記について............................................................................................................................................... 2
CKB-RZ/A1H ボードについて .............................................................................................................................. 3
対応ドライバについて .............................................................................................................................................. 5
準備するもの ............................................................................................................................................................. 6
動作環境 ................................................................................................................................................................... 7
Linux クロス開発環境 ............................................................................................................................................. 7
第 2 章 メモリ・マップ ................................................................................................. 8
2.1 はじめに ....................................................................................................................................................................... 8
2.2 メモリ・デバイス........................................................................................................................................................... 8
2.2.1 SPI フラッシュ・メモリ ................................................................................................................................... 8
予備の領域を使用する場合 ................................................................................................................................................................................9
MTD ブロックの配置を変更する場合 .................................................................................................................................................................9
2.2.2 SDRAM メモリ.............................................................................................................................................. 9
2.2.3 EEPROM ....................................................................................................................................................10
2.3 microSD カード ........................................................................................................................................................11
2.3.1 microSD カードを/usr フォルダとして使用する場合 ......................................................................11
第 3 章 ブート仕様 .................................................................................................12
3.1
3.2
3.3
3.4
はじめに .....................................................................................................................................................................12
CPU ブート・モード ..................................................................................................................................................12
イメージ・ファイル .....................................................................................................................................................12
ブート手順................................................................................................................................................................13
第 4 章 SPI フラッシュ・メモリへの書き込み .......................................................14
4.1 はじめに .....................................................................................................................................................................14
4.2 イメージ・ファイルの書き込み ...............................................................................................................................14
4.2.1 eSD ブート・モードを使って Linux ホストから書き込む場合........................................................14
4.2.2 シリアル・ケーブルを使って書き込む場合 .........................................................................................17
4.2.3 PALMiCE3 を使って書き込む場合 ....................................................................................................17
4.2.4 USB メモリから uImage.bin を書き換える場合 ...............................................................................18
U-Boot コマンドを使って USB メモリのバイナリを SPI フラッシュに書き込む ........................................................................................ 18
Linux から USB メモリを使って書き換える...................................................................................................................................................... 18
4.3 U-Boot の設定 .......................................................................................................................................................19
4.3.1 U-Boot 環境変数の確認と設定 .......................................................................................................19
第 5 章 サンプル・プログラム ..................................................................................20
5.1 はじめに .....................................................................................................................................................................20
5.2 HTTP サーバ&CGI サンプル ................................................................................................................................21
5.2.1 概要 ............................................................................................................................................................21
5.2.2 ソース・ファイル ..........................................................................................................................................21
5.2.3 コンパイル ...................................................................................................................................................22
5.2.4 Web サーバの起動 ...................................................................................................................................22
5.2.5 各操作の説明 .........................................................................................................................................23
LED 制御 ................................................................................................................................................................................................................. 23
有線 LAN(eth0)の設定 ...................................................................................................................................................................................... 23
無線 LAN(wlan0)の設定.................................................................................................................................................................................... 24
設定内容をフラッシュ・メモリに保存 ................................................................................................................................................................. 25
CKB-RZ/A1H 再起動 ....................................................................................................................................................................................... 25
ライセンス .................................................................................................................................................................................................................. 25
5.3 LCD、タッチパネル、LED 用サンプル .................................................................................................................26
5.4 拡張コネクタ(EXT1_CN)用サンプル .................................................................................................................27
5.4.1 拡張コネクタのマルチプレクス設定 .....................................................................................................27
5.4.2 メモリバス(/CS2 空間)アクセスサンプル(8 ビット) ...........................................................................27
5.4.3 GPIO クラス ................................................................................................................................................29
GPIO 番号表 ......................................................................................................................................................................................................... 29
EXT1_CN 信号表 ................................................................................................................................................................................................. 30
Linux の GPIO クラスを使って EXT1_CN の GPIO ピンを操作する ....................................................................................................... 31
GPIO クラスを使ったアプリケーション例 ............................................................................................................................................................ 31
5.4.4 ADC コンバータ .........................................................................................................................................32
EXT2_CN 信号表 ................................................................................................................................................................................................. 32
デバイス・ファイル..................................................................................................................................................................................................... 32
5.4.5 SPI2 .............................................................................................................................................................33
EXT2_CN 信号表 ................................................................................................................................................................................................. 33
デバイス・ファイル..................................................................................................................................................................................................... 33
サンプル・ソース ....................................................................................................................................................................................................... 33
5.4.6 RIIC3(I2C) ..................................................................................................................................................34
EXT1_CN 信号表 ................................................................................................................................................................................................. 34
第 6 章 使用例 .......................................................................................................35
6.1 はじめに .....................................................................................................................................................................35
6.2 マスストレージ(USB/microSD)をマウントする ...............................................................................................35
6.2.1 USB メモリ/USB ハードディスクのフォーマット ..................................................................................35
vFAT でフォーマットする ....................................................................................................................................................................................... 35
ext2 でフォーマットする ......................................................................................................................................................................................... 35
6.2.2 USB メモリ/USB ハードディスクのマウント ........................................................................................36
6.2.3 USB メモリ/USB ハードディスクのアンマウント .................................................................................36
6.2.4 microSD カードのフォーマット ................................................................................................................37
vFAT でフォーマットする ....................................................................................................................................................................................... 37
ext2 でフォーマットする ......................................................................................................................................................................................... 37
6.2.5 microSD カードのマウント ......................................................................................................................37
パーティション 1 を/mnt フォルダにマウントする場合 .................................................................................................................................... 37
パーティション 2 を/usr フォルダにマウントする場合 ..................................................................................................................................... 37
6.2.6 microSD カードのアンマウント...............................................................................................................37
6.3 Linux ホストのディレクトリをマウントする(NFS) ...............................................................................................38
6.3.1 Linux ホスト側の準備 ............................................................................................................................38
NFS サーバのインストール ................................................................................................................................................................................... 38
/etc/exports ファイルを編集する .................................................................................................................................................................... 38
NFS サーバを再起動する ................................................................................................................................................................................... 38
6.3.2 CKB-RZ/A1H 側でマウントする .........................................................................................................38
mount コマンドを使ってマウントする ................................................................................................................................................................. 38
/etc/fstab を使って Linux ホスト上のディレクトリをマウントする ............................................................................................................ 38
6.4 CM-J100 による無線 LAN を使う ....................................................................................................................39
6.4.1 CM-J100 ローダブル・モジュール .........................................................................................................39
6.4.2 無線 LAN 設定ファイル .........................................................................................................................40
6.5 ネットワークの設定方法 .......................................................................................................................................41
6.5.1 設定ファイル ..............................................................................................................................................42
6.5.2 ネットワークの接続、切断 .....................................................................................................................43
6.5.3 タイムサーバから時刻を設定する .......................................................................................................44
6.5.4 システム時刻を RTC に設定する .......................................................................................................44
第 7 章 CKB-RZ/A1H に含まれるソフトウェア................................................45
第 8 章 トラブル・シューティング ............................................................................46
8.1 最新情報、FAQ など ...........................................................................................................................................46
第1章 はじめに
1.1 はじめに
このマニュアルは、CKB-RZ/A1H ボード用の組み込み Linux について記述しています。
本版で説明する機能は、CKB Linux SDK V2.01.01 で使用可能です。
主な特長は以下のとおりです。

ルネサス製 Cortex-A9 コア搭載 RZ/A1H(400MHz 品)に対応

USB2.0 ホスト(High-Speed)を 2 つ搭載し、マスストレージに対応

microSD カードスロットを搭載

有線 LAN(10Base-T/100Base-TX)を搭載

無線 LAN モジュール(SDIO 接続:CM-J100)を搭載可能(オプション)

タッチパネル付き LCD モジュールを搭載可能
Note
ハードウェアに関わる資料は、「組み込みボード CKB-RZ/A1H」に付属する CD-ROM の中にある資料を参照してくださ
い。
本製品のマニュアルは以下のマニュアルで構成されています。

CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル(本書)
「組み込みボード CKB-RZ/A1H」で動作する組み込み Linux の機能について記載されています。

CKB Linux オプション 2.1 導入ガイド
「組み込みボード CKB シリーズ」共通の Linux 開発環境(Linux ホスト)の構築から、ビルド、フラッシュ・メモリへの書
込み、および、当社デバッガ(C-Shark と、PALMiCE3)でデバッグするための手順までの概要が記載されていま
す。
本製品をセットアップされる場合は、「 CKB Linux オプション 2.1 導入ガイド」に沿って行い、必要な箇所は本書や
「CKB-RZ/A1H ハードウェア・マニュアル」を参照することをお勧めします。
当社のホーム・ページには、この他デバッガの便利な使い方などを記載しているほか、各種ドキュメントを用意しています。当
社ホーム・ページを是非参照してください。
CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 1 章 はじめに 1
マニュアルの構成は以下のとおりです。

第 1 章 はじめに
「組み込みボード CKB-RZ/A1H」で動作する Linux の開発を行う為の準備について記述しています。


第 2 章 メモリ・マップ
CKB-RZ/A1H で動作する Linux が使用する CPU、SPI フラッシュ、RAM のメモリ・マップを記述しています。


第 3 章 ブート仕様
CKB-RZ/A1H で動作する Linux のブート手順を記述しています。


第 4 章 SPI フラッシュ・メモリへの書き込み
CKB Linux SDK で開発したプログラム(バイナリ・ファイル)を CKB-RZ/A1H の SPI フラッシュに書き込む方法を記
述しています。


第 5 章 サンプル・プログラム
CKB-RZ/A1H Linux に標準でコンパイルされるサンプル・プログラムについて記述しています。


第 6 章 使用例
CKB-RZ/A1H Linux で行える各種機能についての使用例を記述しています。


第 7 章 CKB-RZ/A1H に含まれるソフトウェア
CKB-RZ/A1H に含まれるソフトウェアやライセンスについて記述しています。


第 8 章 トラブル・シューティング
CSIDE が使用できない場合や、デバッグ時のトラブル・シューティングです。

1.2 コマンド表記について
本マニュアルで説明する表記について説明します。
コマンドの表記は以下のように記述します。
コマンド表記
説明
WINPC> command parameter …
Windows ホスト・パソコンで実行するコマンドを示します。
LINUXPC$ command parameter …
Linux ホスト(Ubuntu)で実行するコマンドを示します。
U-BOOT> command parameter …
CKB-RZ/A1H のコンソールで実行する U-Boot コマンドを示します。
CKB# command parameter …
CKB-RZ/A1H のコンソールで実行する Linux コマンドを示します。
Linux ホストと、CKB-RZ/A1H コマンドのプロンプトが“#”の場合は root 権限で、“$”の場合はユーザ権限で実行します。
ユーザ権限から sudo コマンドで root 権限の実行が行えます。
CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 1 章 はじめに 2
1.3 CKB-RZ/A1H ボードについて
詳細仕様については、「CKB-RZ/A1H ハードウェア・マニュアル」を参照してください。
[2] USB_CN
[3] SIO_CN
[1] LAN_CN
[4] POWER
[16] DBG_CN
[5] PCN2
[6] PCN1
[7] SW2
[8] SW1
[9] WLAN_CN
[15] EXT1_CN
[10] EXT2_CN
[11] LED1
[12] LED2
[14] microSD_CN
[13] RCA1_CN
CKB-RZ/A1H TOP VIEW
[17] SIOEX_CN
[19] LCD_CN
[18] CAMERA_CN
CKB-RZ/A1H BOTTOM VIEW
CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 1 章 はじめに 3
 名称一覧
No.
名称
仕様
[1]
LAN_CN
LAN コネクタ
[2]
USB_CN
USB ホストコネクタ
[3]
SIO_CN
シリアル I/F コネクタ
[4]
POWER
POWER LED (緑)
[5]
PCN2
2 芯電源ケーブル接続用コネクタ
[6]
PCN1
DC ジャック
[7]
SW2
CPU リセット・スイッチ
[8]
SW1
CPU モード・スイッチ
[9]
WLAN_CN
無線 LAN モジュール接続用コネクタ ※1
[10]
EXT2_CN
拡張用端子
[11]
LED1
モニタ用 LED (赤)
[12]
LED2
モニタ用 LED (赤)
[13]
RCA1_CN
コンポジットビデオ入力端子 ※2
[14]
microSD_CN
microSD カードスロット
[15]
EXT1_CN
拡張用端子
[16]
DBG_CN
デバッガ接続用コネクタ
[17]
SIOEX_CN
シリアル I/F 拡張端子
[18]
CAMERA_CN
カメラ・モジュール接続用コネクタ ※2
[19] LCD_CN
ディスプレイ・モジュール接続用コネクタ
※1 無線 LAN モジュール(CM-J100)が接続可能です。
※2 Linux ドライバは用意しておりません。
CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 1 章 はじめに 4
1.4 対応ドライバについて
CKB Linux SDK V2.01.01 で対応する RZ/A1H 用の内蔵モジュールは以下になります。
内蔵モジュール
用途
対応状況
SDRAM
MT48LC16M16A2P-6A (CS3) 32M バイト
○
UART0
UART0 コンソール入出力
○
RIIC1
TSC2007 タッチパネル入力(Addr=0x48)
○
RIIC2
M24C01-RMN6 EEPROM(Addr=0x51)
○
VDC 出力
LCD 表示用フレームバッファ(LCD_CN)に対応
○
USB0
USB ホスト(下段)
○
USB1
USB ホスト(上段)
○
SD0
microSD スロット
○
SD1
SDIO 接続無線 LAN アダプタ(CM-J100)用コネクタ
○
SPI マルチ I/O バス Ch.0
MX25L12835FZNI-10G SPI シリアルフラッシュ
○
イーサネットコントローラ(ETHER)
Ether Phy(μPD60610) 10/100Mbps
○
ユーザ制御用 LED
GPIO(P8_8, P8_9)
○
EXT1_CN (8 ビットメモリバス)
/CS2、/X_WE0、/X_RD、D0-D7、A2-A5
○
EXT1_CN (RIIC3)
I2C(SCL3、SDA3)
○
EXT1_CN (SSI)
SSISCK0、SSIWS0、SSITXD0、SSIRXD0
--
EXT2_CN (ADC)
AN0, AN1, AN2, AN3, AN5
○
EXT2_CN (SPI)
RSPCK2、SSL20、MOSI2、MISO2
○
CAMERA_CN
カメラ・モジュール接続用コネクタ
--
RCA1_CN
コンポジット・ビデオ入力端子
--
上記対応表の「--」の内蔵モジュールについては、Linux ドライバは用意しておりません。
EX_CN で使用可能な機能は一部マルチプレクスによる選択が可能です。
CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 1 章 はじめに 5
1.5 準備するもの

CKB Linux オプション 2.1: OPT-CKB-L2.1 (本製品)
● AC 電源アダプタ
● CKB Linux SDK V2.01.01 (DVD-ROM)
● microSD カード
● LAN ケーブル
● USB シリアル・コンバータ
● USB ケーブル(USB シリアル・コンバータ用)
以下はユーザ様にてご用意してください。

組み込みボード CKB-RZ/A1H (別売 / CKB Linux オプションを使用する場合に必要です。)
● CKB-RZ/A1H ボード本体
● 2 芯電源ケーブル
● CKB-RZ/A1H CD (CD-ROM)

無線 LAN モジュール CM-J100 (別売 / SDIO 接続、無線 LAN 機能を使用する場合に必要です。)
● CM-J100 本体

ディスプレイ・モジュール CKB-LCD-02 (別売)
● CKB-LCD-02 ボード本体 (タッチパネル付き LCD ボード)
● 接続ケーブル

作業用パソコン (ユーザ様にてご用意ください)
仕様に関しては「1.6 動作環境」を参照してください。

VMware Player (ユーザ様にてご用意ください)
VMware Player 5.0.2 推奨。無償版を使用可能です。
Linux 開発環境(Linux ホスト)を動作させるために、作業用パソコンにインストールします。
ホスト・パソコンがインターネットに接続できない場合は、あらかじめ入手しておいてください。

Ubuntu 12.04 LTS (ユーザ様にてご用意ください)
CKB-RZ/A1H の Linux 開発環境として”Ubuntu 12.04 LTS”を使用します。
このマニュアルでは、Windows ホスト・パソコンの VMware Player 上で動作させます。
インターネットに接続できない場合は、開発に必要なパッケージとともにあらかじめ入手しておいてください。

その他、有線 LAN を使用するための HUB や、無線 LAN を使用するための無線 LAN アクセス・ポイントはお客様でご用意
ください。
Note
buildroot をコンパイルするホスト OS が、「Ubuntu 12.04 LTS」以外の場合は、buildroot でコンパイル・エラーとなる
場合があります。
CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 1 章 はじめに 6
1.6 動作環境
組み込み Linux の開発を行うには、以下のホスト環境が必要です。

動作環境
Windows ホスト・パソコン
CPU
メモリ
HDD
DVD ドライブ
USB
対応 OS が動作するパソコン
intel Core i シリーズ(2 コア以上) 2GHz 以上
4GB 以上
500GB 以上
DVD-R メディアの読み込みが可能であること
USB2.0
LAN インターフェース
100BASE/TX、1000BASE-T
RS-232C ポート
メモリカードリーダ
USB シリアル変換アダプタを使用する場合は USB ポートが必要
microSD/SDHC スロット。または microSD→USB 変換アダプタ
Windows Vista
Windows 7
Windows 8, Windows 8.1
OS
補足
インストール時に必要
USB シリアル・コンバータに使用
開発に必要なソフトウェア(Linux パッケ
ージ等)をオンラインで入手する場合は
インターネットに接続可能のこと
32 ビット版
32 ビット版、64 ビット版
32 ビット版、64 ビット版
1.7 Linux クロス開発環境
CKB Linux SDK による開発には Linux クロス開発環境の構築が必要です。

VMware Player Ver5 または、Ver6
Ubuntu 12.04 LTS を動作させる仮想マシンとして必要です。

Ubuntu 12.04 LTS
CKB-RZ/A1H の Linux 開発環境です。VMware Player 上で動作するようにインストールします。
以降の説明では、Linux ホストと記述します。

CKB Linux SDK V2.01.01
Linux ホストにインストールして開発環境を構築します。
必要なソフトウェアのインストールと環境構築の詳細については「CKB Linux オプション 2.1 導入ガイド」を参照してください。
CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 1 章 はじめに 7
第2章 メモリ・マップ
2.1 はじめに
この章では、CKB-RZ/A1H に実装されたデバイスのメモリ・マップについて記述します。
2.2 メモリ・デバイス
RZ/A1H に接続されるメモリ・デバイスのアドレスを下表に記述します。
RZ/A1H アドレス
デバイス
サイズ
0x08000000 - 0x0800003F(/CS2)
外部拡張 8 ビット・データバス(EXT_CN1)
信号:A2-5, D0-7, /CS2, /RD, /WE0
0x0C000000 - 0x0DFFFFFF(/CS3)
SDRAM
32M バイト
0x18000000 - 0x18FFFFFF(SPI0)
SPI フラッシュ・メモリ
16M バイト
0x20000000 - 0x209FFFFF
内蔵 RAM
10M バイト
2.2.1 SPI フラッシュ・メモリ
SPI フラッシュ・メモリにはブートローダ、OS や各種データを格納しています。
CPU のアドレスと SPI フラッシュのアドレス、Linux ターゲットから見たブロック・デバイスを以下の表に記述します。
RZ/A1H
(CPU)
MX25L12835FZNI-10G
(SPI-Flash)
Address
Address
18000000
1807FFFF
000000
07FFFF
ブートローダ格納用
u-boot.bin
/dev/mtdblock0
512K バイト
18080000
180DFFFF
080000
0DFFFF
LCD 起動画像用(*1)
/dev/mtdblock1
384K バイト
180E0000
180FFFFF
0E0000
0FFFFF
U-Boot 変数格納用
/dev/mtdblock2
128K バイト
18100000
18EFFFFF
100000
EFFFFF
Linux バイナリ・イメージ格納用(*2)
uImage.bin
/dev/mtdblock3
14M バイト
/dev/mtdblock4
1M バイト
用途
18F00000
F00000
予備(保存データなどに使用可能)
18FFFFFF
FFFFFF
*1 :LCD オプションを使用しない場合は不要です。
*2 :SD/MMC カード上の uImage.bin を実行する場合は不要です。
Linux
ブロック・デバイス
サイズ
Note
SPI フラッシュを書き換えるプログラムは RAM で実行します。SPI フラッシュで実行しないでください。
CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 2 章 メモリ・マップ 8
予備の領域を使用する場合
デフォルトでの SPI フラッシュ・メモリは最後のブロックを予備として空けています。
電源断やリセットしても保持したいデータをこの領域に保存することができます。

予備領域(mtdblock4)をフォーマット
mtdblock4 を ext2 でフォーマットします。
CKB# mkfs.ext2 /dev/mtdblock4

予備領域(mtdblock4)にデータを保存する例を以下に記述します。
/etc 以下にある保存したいファイルを mtdblock4 に保存して Linux 起動時に上書き設定する例を記述します。
/etc フォルダ以下のファイルを保存したい場合の例
CKB# mkdir -p /mnt/save_settings
CKB# mount /dev/mtdblock4 /mnt/save_settings
CKB# cp -fp /etc/{保存したいファイル} /mnt/save_settings/etc ; 保存したいデータをすべて記述します。
CKB# umount /mnt/save_settings
CKB# rm -r /mnt/save_settings
保存したデータを Linux 起動時に上書き設定する例を以下に記述します。
以下の初期化シェルを設定します。
/etc/init.d/S30load_settings
CKB# mkdir -p /mnt/save_settings
CKB# mount /dev/mtdblock4 /mnt/save_settings
CKB# cp -rfp /mnt/save_settings/etc/* /etc/
CKB# umount /mnt/save_settings
CKB# rm -r /mnt/save_settings
MTD ブロックの配置を変更する場合
以下のソースに記述された変数の値を変更することで MTD ブロックのサイズや配置を変更できます。

変更箇所
Linux ソース・パス
buildroot-{日付}/output/build/linux-3.8.13/arch/arm/mach-ckbrza1h/board-ckbrza1h.c
変数
static struct mtd_partition spibsc0_flash_partitions[]
2.2.2 SDRAM メモリ
CKB-RZ/A1H 上で動作する組み込み Linux では SDRAM を使用します。
ここでは、Linux が使用する SDRAM について記述します。

Linux 使用メモリ(仮想アドレス)
アドレス
0xC0000100 - 0xC0007FFF
0xC0008000 - 0xC07FFFFF
0xC0800000 - 0xC1FFFFFF
0x20200000 – 0x209FFFFF
用途
Linux Parameter
Linux Kernel
initrd & free memory
LCD Framebuffer
CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1
サイズ
31.75KByte
7.97MByte
24MByte
8MByte
第 2 章 メモリ・マップ 9
2.2.3 EEPROM
EEPROM の仕様は下表のとおりです。
メーカー名
ST マイクロ
品名
M24C01-RMN6
I2C アドレス
0x51
容量
1Kbit(128x8)
出荷時に当社ベンダ ID を使った有線 LAN の MAC アドレスが書き込まれています。
CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 2 章 メモリ・マップ 10
2.3 microSD カード
CKB-RZ/A1H では microSD カードを Linux のファイル・システムとして使用できます。
CKB-RZ/A1H では SPI フラッシュ・メモリと SDRAM だけで Linux が起動するようになっており、基本ファイル・システムは、
uImage.bin にリンクされた initrd を RAM ディスクに展開して実行するようになっています。
/usr フォルダには必要最低限のファイルのみコピーして initrd を作成するようになっていますが、より大きなファイル・サイズの
アプリケーションやデータを扱う場合は、microSD カードに配置して起動時にマウントするように変更してください。
2.3.1 microSD カードを/usr フォルダとして使用する場合
microSD カードを/usr フォルダとして使用する場合は以下のようにしてください。

Linux ホストから見た microSD のデバイスが、/dev/sde1 で、/dev/mmcblk0p1 を/usr フォルダとする場合の microSD 作成例
1. Linux ホストで microSD カードに ext2 形式のパーティションを作成します。
2.
microSD カードをフォーマットします。マウントしている場合はアンマウントしてからフォーマットしてください。
LINUXPC$ sudo mkfs.ext2 /dev/sde1 -L mmc_usr
3. buiildroot をコンパイルすると、microSD カード用の/usr フォルダのファイルは、以下のフォルダに作成されます。
~/buildroot-{日付}/output/images/sdcard_usr_folder/
4.
microSD カードをマウントして/usr フォルダのファイルをコピーします。
コマンドでマウントする方法を記載していますが、一旦 microSD カードを抜き差しして自動的にマウントしても構いません。
LINUXPC$ sudo mkdir /media/mmc_usr
LINUXPC$ sudo mount /dev/sde1 /media/mmc_usr
LINUXPC$ sudo cp -rfp ~/buildroot-{日付}/output/images/sdcard_usr_folder/* /media/mmc_usr/
5.
microSD カードを umount して Linux ホストから取り出します。
LINUXPC$ sudo umount /media/mmc_usr
CKB-RZ/A1H の Linux で起動時に上記で作成した microSD をマウントするには、以下の設定をしてください。
~/buildroot-{日付}/board/ckb/ckb-rz/fs/etc/fstab
# /etc/fstab: static file system information.
#
# <file system>
<mount pt>
<type>
<options>
<dump> <pass>
ext2
ro,relatime,errors=continue 0 0
;
;
/dev/mmcblk0p1 /usr
<=== この行を追加
options に rw を設定すると書き込み可能になりますが、書き込み中に電源断するとファイルが失われる可能性があります。ファ
イルの破壊を防ぐには ro(リードオンリー)でマウントしてください。
書き込む必要のある時にのみ、rw フラグで remount することで microSD の破壊を最小限にしてください。
CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 2 章 メモリ・マップ 11
第3章 ブート仕様
3.1 はじめに
CKB-RZ/A1H で動作する Linux のブート手順を記述します。
3.2 CPU ブート・モード
CKB-RZ/A1H では、RZ/A1H の SPI フラッシュ・ブート・モードと SD ブート・モードがディップ・スイッチで切り替え可能です。
ブート・モード
SPI フラッシュ・ブート
eSD ブート
ディップ・スイッチ(SW1-1)
OFF
ON
出荷時は、SPI フラッシュ・ブート・モードに設定されています。
3.3 イメージ・ファイル
CKB-RZ/A1H で Linux を実行するためには、以下のバイナリ・ファイルが必要です。
buildroot-{日付}/output/images フォルダに作成されます。
ファイル名
種類
ファイルサイズ制限
u-boot.bin
ブートローダ
512K バイト以内
title_image.bin
起動時のタイトル画像
384K バイト以内
uImage.bin
Linux カーネル
initrd(RAM ディスク)を含みます。
14M バイト以内
CKB-RZ/A1H では、カーネルと initrd を含む uImage.bin のサイズを 14MB 以内になるように作成してください。なお、initrd
に入りきらないアプリケーションやデータなどは microSD カードや USB マスストレージにファイル・システムを構築してください。
また、本ボードに搭載される SDRAM は 32M バイトです。カーネル、ファイル・システム、アプリケーションが使用するメモリが
32M バイトを超えないようにしてください。
CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 3 章 ブート仕様
12
3.4 ブート手順
CPU がリセットまたは、電源 ON すると、まず CPU 内蔵 ROM のプログラムが実行され、Boot ピンに応じた動作が行われます。
ここでは、SPI ブート・モードによる組み込み Linux が起動するまでの手順を記述します。
まず、u-boot のスタートアップルーチンの先頭で u-boot 自身を内蔵 RAM にコピーします。
順
プログラム
説明
1
CPU 内蔵 ROM プログラム
0xFFFF0000 番地から実行
(システム ROM、書換不可)
Boot ピンから SPI-Flash ブートと判断、SPI-Flash の先頭にジャンプ
2
3
u-boot.bin(SPI-Flash:0x18000000 番地)を内蔵 RAM(0x20020000 番地)にコピー
コピーされた内蔵 RAM の u-boot のアドレスにジャンプ
ブートローダ(U-Boot)では、CPU やメモリの初期化などを行い U-Boot の環境設定により指定されたデバイスからカーネルを
読み込んで実行します。
順
プログラム
説明
4
u-boot.bin(ブートローダ)
0x20020000 番地
SDRAM、MMU、キャッシュの初期化
5
6
1.
起動時のタイトル画像(title_image.bin)を SPI-Flash(0x18080000 番地)から、
FlameBuffer にコピーして LCD に表示
u-boot-env の情報により以下のいずれかに分岐
1.SPI-Flash にある Linux を実行
2.USB メモリにある Linux を実行
SPI-Flash にある Linux を実行
U-Boot 環境変数の設定例:
U-BOOT> setenv bootcmd 'fread_kernel 0x0C007FC0;bootm 0x0C007FC0'
順
プログラム
説明
7
u-boot.bin の続き
uImage.bin の先頭にあるヘッダに書かれたサイズを SPI-Flash(0x18100000 番地)から
サイズ分 SDRAM にコピー
8
9
2.
カーネルの先頭(SDRAM 0x0C007FC0 番地)にジャンプ
uImage.bin
0x0C007FC0 番地から実行
Linux カーネルとファイル・システムがブートします
USB メモリの/uImage.bin)にある Linux を実行
U-Boot 環境変数の設定例:
U-BOOT> setenv bootcmd 'usb start;fatload usb 0 0x0C007FC0 /uImage.bin;bootm 0x0C007FC0
順
プログラム
説明
7
u-boot.bin の続き
USB メモリ(fat 形式)の先頭パーティションに書かれた/uImage.bin ファイルを SDRAM
にコピー
8
9
コピーされたプログラムの先頭(SDRAM 0x0C007FC0 番地)にジャンプ
uImage.bin
0x0C007FC0 番地から実行
Linux カーネルがブートします。
CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 3 章 ブート仕様
13
第4章 SPI フラッシュ・メモリへの書き込み
4.1 はじめに
この章では Linux のイメージ・ファイルを SPI フラッシュに書き込む方法について説明します。
4.2 イメージ・ファイルの書き込み
4.2.1 eSD ブート・モードを使って Linux ホストから書き込む場合
Windows ホスト・パソコンにインストールされた VMware Player で動作する Linux ホストから eSD ブート・モードを使って SPI フ
ラッシュを書き換えることができます。
microSD カードに書かれたモニタ・プログラム「init_CKB-RZA1H.bin」が eSD ブートにより実行され、そのモニタ・プログラムと
「uartflasher_CKB」が UART 通信によりバイナリ・ファイルを転送し、SPI フラッシュに書き込みます。
そのため、モニタ・プログラム「init_CKB-RZA1H.bin」をあらかじめ dd コマンドで microSD カードに書いておく必要があります。
まず、Windows ホスト・パソコンに microSD カードを挿入し、パーティション情報より microSD のデバイス名を特定します。
入力としてモニタ・プログラムのバイナリ・ファイルを指定し、出力先として microSD のデバイスを指定します。
LINUXPC$ cd SPI-Flash-images/ckb-rza1h
LINUXPC$ cat /proc/partitions
major minor #blocks
name
11
0
1048575
sr0
8
0
41943040
sda
8
1
40893440
sda1
8
2
1
8
80
3858432
sdb
sda2
8
81
3857408
sdb1
← sdb が microSD
microSD にパーティションがある場合は、sdb1、sdb2…等のデバイスがあります。 この場合は、パーティションを全て削除して
からモニタ・プログラムを書き込んでください。
CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 4 章 SPI フラッシュ・メモリへの書き込み 14
パーティションを削除する場合は、fdisk コマンドで行います。
$ sudo fdisk /dev/sdb
コマンド (m でヘルプ): p
← p コマンドで確認
ディスク /dev/sdb: 3951 MB, 3951034368 バイト
ヘッド 26, セクタ 34, シリンダ 8729, 合計 7716864 セクタ
Units = セクタ数 of 1 * 512 = 512 バイト
セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト
ディスク識別子: 0xffffffff
デバイス ブート
/dev/sdb1
始点
2048
終点
7716863
ブロック
Id システム
3857408
b
W95 FAT32
コマンド (m でヘルプ): d
← d コマンドで削除
選択したパーティション 1
← 削除するパーティション番号を指定
コマンド (m でヘルプ): w
← w コマンドで変更を保存
パーティションテーブルは変更されました!
ioctl() を呼び出してパーティションテーブルを再読込みします。
ディスクを同期しています。
モニタ・プログラムの microSD への書き込みは dd コマンドで行います。
LINUXPC$ sudo dd if=init_CKB-RZA1H.bin of=/dev/sdb
57+0 レコード入力
57+0 レコード出力
29184 バイト (29 kB) コピーされました、 0.34774 秒、 83.9 kB/秒
準備が整いましたら以下の手順で uartflasher_CKB により SPI フラッシュを書き換えます。
1. CKB ボードにモニタ・プログラムが書き込まれた microSD カードが挿入されていることを確認して、CKB ボードのディップ・
スイッチ(SW1-1)を ON にし、eSD ブートに変更します。
2. Windows ホスト・パソコンと CKB-RZ/A1H を RS-232C ケーブルで接続します。
3. VMware Player の「取り外し可能デバイス」の「Future Devices FT232R USB UART」を有効にしてください。
Linux ホストからは、/dev/ttyUSB0 で USB シリアル・コンバータを使った転送ができます。
CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 4 章 SPI フラッシュ・メモリへの書き込み 15
4. 以下のコマンドで書き換えたいバイナリ・ファイルをロードします。
LINUXPC$ cd buildroot-{日付}/output/images
LINUXPC$ sudo ./uartflasher_CKB -flashimages -p /dev/ttyUSB0 -d CKB-RZ/A1H -u u-boot.bin -k uImage.bin -t
title_image.bin
書き換えるバイナリのオプションとファイル名を以下の表に記述します。(同時に複数指定が可能です)
種類
ブートローダ
Linux イメージ・ファイル
起動時の LCD 画像
オプション
-u
-k
-t
ファイル名
u-boot.bin
uImage.bin
title_image.bin
以下のコマンドでオプションの詳細を確認できます。
LINUXPC$ ./uartflasher_CKB -h
一度 uartflasher_CKB を実行するとその時の設定を.uart_flasher.settings ファイルに保存します。前回と同様の設定で書
き込む場合は以下のようにオプション指定なしでコマンドを実行し、以降の確認では Enter キーを押します。
LINUXPC$ sudo ./uartflasher_CKB
uartflasher_CKB はコンパイル済みの実行バイナリを CKB Linux SDK の DVD-ROM にも用意しています。
DVD-ROM から Linux ホストにコピーした時に実行権がない場合は、以下のコマンドで実行権を付加してください。
# chmod +x uartflasher_CKB
5. 「Waiting for target... (power on or reset target now)」と表示されたら、CKB ボードの電源を ON または、リセット・ボタンを
押すと転送と書き込みを開始します。
6. 必要なバイナリ・ファイルをすべて書き込んだら CKB-RZ/A1H のディップ・スイッチ(SW1-1)を OFF にし、SPI ブートに変更
してリセットします。
CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 4 章 SPI フラッシュ・メモリへの書き込み 16
4.2.2 シリアル・ケーブルを使って書き込む場合
Windows ホスト・パソコンからシリアル・ケーブルを使って SPI フラッシュを書き換えることができます。
詳細は、「CKB Linux オプション 2.1 導入ガイド」の「フラッシュ・メモリへの書き込み」の章を参照してください。
4.2.3 PALMiCE3 を使って書き込む場合
CSIDE for PALMiCE3 ARM を使って SPI フラッシュにデータを書き込む方法を以下に記述します。
1. buildroot をコンパイルしておきます。
2. CKB Linux SDK DVD-ROM にある CSIDE プロジェクトファイル (PALMiCE3-ckb-rza1h.cpf)を使って PALMiCE3 ARM を
起動します。
3. CSIDE メニュー[ファイル]-[ロード]を選択するとファイル・サーバのダイアログが開きます。
4. この中から、以下のファイルを選択(ファイル名のチェックボックスを ON)してから[ダウンロード]ボタンを押してください。
ファイル名
ファイルの種類
ロード環境
ロード・アドレス
buildroot-{日付}\output\images\title_image.bin
バイナリ(*.bin)
オブジェクトのみ
20100000
buildroot-{日付}\output\images\uImage.bin
バイナリ(*.bin)
オブジェクトのみ
0c007fc0
buildroot-{日付}\output\build\uboot-2013.04\u-boot
ELF/DWARF2(*.axf…..)
オブジェクトとデバッグ情報
00000000
5. Tera Term 等のシリアル・コンソールを開いてください。
ボーレート:115200、データ:8bit、パリティ:none、ストップ:1bit
6. PALMiCE3 にて実行[F5 キー]するとシリアル・コンソールに U-Boot が起動します。AUTOBOOT が設定されている場合は、
bootcmd が実行される前に、いずれかのキーで U-BOOT プロンプトに移行してください。
7. U-Boot コマンドで DDR メモリから NOR フラッシュに以下のコマンドで書き込みます。
u-boot.bin
U-BOOT> flash_uboot
title_image.bin
U-BOOT> flash_titleimage 20100000
uImage
U-BOOT> flash_kernel 0c007fc0
8. U-Boot の環境変数で以下のように設定して変更できます。
NOR フラッシュ
U-BOOT> setenv bootcmd 'fread_kernel 0c007FC0; bootm 0c007FC0'
USB メモリ
U-BOOT> setenv bootcmd 'usb start;fatload usb 0 0c007fc0 /uImage.bin; bootm 0c007FC0'
9. saveenv コマンドにて U-Boot 環境変数を NOR フラッシュにセーブしてください。
環境変数の保存
U-BOOT> saveenv
CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 4 章 SPI フラッシュ・メモリへの書き込み 17
4.2.4 USB メモリから uImage.bin を書き換える場合
U-Boot コマンドを使って USB メモリのバイナリを SPI フラッシュに書き込む
U-Boot が既に SPI フラッシュに書き込まれている場合は、USB メモリを使って SPI フラッシュを書き換えることができます。
1. USB メモリを FAT でフォーマットしておきます。
2. 書き換える uImage.bin ファイルを USB メモリのルート(/)フォルダに書き込みます。
なお、Windows ホスト・パソコンで書き込む場合は、USB メモリが X ドライブであれば以下のように配置します。
X:\uImage.bin
3. CKB-RZ/A1H ボードの USB ホスト(下段)に USB メモリを挿入して電源を入れます。
4. U-Boot が、autoboot に設定されている場合はカーネルが起動する前になんらかのキーを押して U-Boot のコマンド・プロ
ンプトに移行してください。
5. 以下のコマンドで USB メモリからカーネルを SPI フラッシュに書き換えます。
U-BOOT> usb start
U-BOOT> fatload usb 0 0x0C007FC0 /uImage.bin
U-BOOT> sf probe
U-BOOT> sf erase 100000 +800000
; +{サイズ} uImage.bin ファイルのサイズ以上を指定
U-BOOT> sf write 0x0C007FC0 100000 800000
; {サイズ} uImage.bin ファイルのサイズ以上を指定
ext2 形式でフォーマットされた USB メモリを使用する場合は、上記の fatload コマンドを ext2load コマンドに置き換えて行うこと
も可能です。
Linux から USB メモリを使って書き換える
Linux が起動した状態で SPI フラッシュを書き換えるには以下のように行います。
システム・イメージや、ブートローダなどの製品自体のアップデートを行いたい場合に、この方法を推奨します。
1. USB メモリの第 1 パーティションにあらかじめ uImage.bin をコピーしておきます。
2. 以下のコマンドで USB メモリをマウントします。
CKB# mount /dev/sda1 /mnt
3. 以下のコマンドでシリアルフラッシュの/dev/mtdblock3 に uImage.bin を書き込みます。
CKB# dd if=/mnt/uImage.bin of=/dev/mtdblock3
CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 4 章 SPI フラッシュ・メモリへの書き込み 18
4.3 U-Boot の設定
U-Boot はコマンドや環境変数を使用することで様々な設定や機能を使うことができます。
CKB-RZ/A1H で動作する U-Boot について記述します。
4.3.1 U-Boot 環境変数の確認と設定
U-Boot の環境変数は、"printenv"コマンドで確認できます。
U-BOOT> printenv
baudrate=115200
bootargs=console=ttyS1,115200n8
bootcmd=bootm 0x0C007FC0
bootdelay=3
bootfile="uImage.bin"
usbboot=usb start;fatload usb 0 0x0C007FC0 /uImage.bin;bootm 0x0C007FC0
spiboot=fread_kernel 0x0C007FC0;bootm 0x0C007FC0
stderr=serial
stdin=serial
stdout=serial
ver=U-Boot 2011.03 (May 24 2013 - 15:12:44)
Environment size: 367/2044 bytes
U-Boot の環境変数の設定を変更する場合は、"setenv"と”saveenv”コマンドで設定を変更できます。
以下の例は、SPI フラッシュメモリに書かれたカーネルを実行します。
U-BOOT> setenv bootcmd ‘fread_kernel 0x0C007FC0;bootm 0x0C007FC0’
U-BOOT> saveenv
Saving Environment to Flash...
. done
Un-Protected 1 sectors
Erasing Flash...
. done
Erased 1 sectors
Writing to Flash... 9....8....7....6....5....4....3....2....1....9....8....7....6....5....4....3....2....1....done
. done
Protected 1 sectors
フラッシュ・メモリに保存された U-Boot 環境変数をクリアしたい場合には以下のコマンドでクリアできます。
U-BOOT> sf erase 0xe0000 +0x20000
U-Boot 環境変数に設定された内容を実行するには、run コマンドで実行できます。
以下のコマンドでは、usbboot 環境変数に設定されたコマンドが実行されます。
U-BOOT> run usbboot
CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 4 章 SPI フラッシュ・メモリへの書き込み 19
第5章 サンプル・プログラム
5.1 はじめに
CKB Linux SDK では、デフォルトで、HTTP サーバと C 言語を使った CGI プログラムを簡単なサンプル・プログラムと拡張バ
ス(EX_CN)を使用する場合のサンプル・プログラムを用意しています。

HTTP サーバ&CGI サンプル

LED アプリケーション

有線 LAN(eth0)サンプル

無線 LAN(wlan0)サンプル (CM-J100 オプションが必要)

タッチパネル・サンプル(CKB-LCD-02 オプションが必要)

拡張コネクタ用サンプル
で構成されています。
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 20
5.2 HTTP サーバ&CGI サンプル
5.2.1 概要
Web ブラウザ経由で CKB-RZ/A1H ボード上の LED 制御をしたり、有線 LAN、無線 LAN の設定を変更、保存できます。
5.2.2 ソース・ファイル
本 Web アプリケーションの CGI プログラムは C 言語で記述されています。
httpd 関連ファイル: buildroot-{日付}/board/ckb/ckb-rz/fs/root/www/
index.html
httpd サーバのメインのホーム・ページです。
style.css
HTML のスタイルを設定したファイルです。
[cgi-bin]
生成された CGI(バイナリ)が格納されます。
[images]
サンプル・プログラムで使用する画像ファイルが格納されています。
CGI ソース・ファイル: buildroot-{日付}/board/ckb/ckb-rz/cgi-bin/
Makefile
すべての CGI 実行バイナリを make します。
led_main.c
LED を点灯/消灯するアプリケーション
ethernet_form_main.c
有線 LAN(eth0)の IP アドレスを設定するアプリケーション
wireless_form_main.c
無線 LAN(wlan0)のセキュリティや SSID、IP アドレス、DHCP サーバを設定するアプリケーション
save_settings_main.c
設定をフラッシュ・メモリの/dev/mtdblock5 に保存するアプリケーション
reboot_main.c
CKB-RZ/A1H を再起動するアプリケーション
licenses_main.c
ライセンス・ファイルを表示するアプリケーション
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 21
5.2.3 コンパイル
CGI サンプル・プログラムをコンパイルするには、作業ディレクトリへ移動して make コマンドを使用します。
作業ディレクトリ: buildroot-{日付}/board/ckb/ckb-rz/cgi-bin
LINUXPC$ make
デバッグするにはデバッグ情報を出力しておく必要があります。デバッグ情報を出力するには、コンパイラの引数に"-ggdb"を
指定します。
コンパイル操作に変更が必要な場合は Makefile を編集してください。
5.2.4 Web サーバの起動
Web アプリケーションを動作させるためには、Web サーバが必要になります。
本サンプルでは Web サーバに httpd を使用しています。
CKB-RZ/A1H ボード起動時に httpd を動作させるには下記のファイルを使用します。(デフォルトで起動します。)
httpd 実行制御ソース・ファイル: buildroot-{日付}/board/ckb/ckb-rz/fs/etc/
httpd.conf
httpd 設定ファイル
[init.d]
+--- S80httpd
httpd 初期化シェル
CKB-RZ/A1H の有線 LAN(eth)は、出荷時の設定で DHCP クライアントとして設定されています。
DHCP サーバから割り当てられた IP アドレスを確認して、CKB-RA/A1H と同一ネットワークにある Windows ホスト・パソコンのブ
ラウザ(Google Chrome または、Firefox を推奨)で CKB-RZ/A1H の IP アドレスを入力してください。
CKB# ifconfig eth0
eth0
Link encap:Ethernet HWaddr 00:A0:0B:00:00:01
inet addr:192.168.0.132 Bcast:192.168.0.255 Mask:255.255.255.0
inet6 addr: fe80::2a0:bff:fe00:1/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:5741 errors:0 dropped:490 overruns:0 frame:0
TX packets:617 errors:0 dropped:0 overruns:1 carrier:0
collisions:0 txqueuelen:1000
RX bytes:474569 (463.4 KiB) TX bytes:336168 (328.2 KiB)
Interrupt:33
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 22
5.2.5 各操作の説明
CKB-RZ/A1H と LAN で接続された Windows ホスト・パソコンからブラウザで CKB-RZ/A1H の IP アドレスを URL として入力
してください。
Firefox または、Google Chrome を推奨します。Internet Explorer では、stylesheet が適用されない部分があるので一部のスタ
イルが文字でのみ表示されます。
LED 制御
概要
LED のアイコンをクリックすると LED の状態が反転します。
CGI プログラム
led_main.cgi
ソース・ファイル
led_main.c
ブラウザの操作ナビから、「LED 制御」を選択すると、LED のアイコンが表示されます。
LED のアイコンをクリックすると LED の状態が反転します。アイコンの状態と CKB-RZ/A1H ボード上の LED の状態が同じで
あることを確認してください。
有線 LAN(eth0)の設定
概要
有線 LAN の IP アドレスを変更します。
CGI プログラム
ethernet_form_main.cgi
ソース・ファイル
ethernet_form_main.c
ブラウザの操作ナビから、「有線 LAN(eth0)の設定」を選択すると、IP アドレスを設定する項目が表示されます。
設定項目を入力して「上記変更を有効にします」をクリックすると有線 LAN の IP アドレスが変更されます。
IP アドレスを DHCP サーバから取得するか、固定 IP を指定することができます。
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 23
無線 LAN(wlan0)の設定
概要
無線 LAN の設定を行います。
CGI プログラム
wireless_form_main.cgi
ソース・ファイル
wireless_form_main.c
動作モード、セキュリティ方式、SSID およびパスフレーズ(パスワード)を設定します。無線の動作モードで「アクセス・ポイント・
モード」にすると CKB ボード自身をアクセス・ポイントとして動作させます。このとき、固定 IP アドレスを指定して、DHCP サーバを
起動するかどうかを選択します。変更を実際の動作に反映するには、「上記変更を有効にします」をクリックしてください。
無線の動作モードで「インフラストラクチャ・モード」にすると指定されたアクセス・ポイントに接続します。IP アドレスを DHCP サ
ーバから取得するか、固定 IP を指定することができます。変更を実際の動作に反映するには、「上記変更を有効にします」をクリ
ックしてください。
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 24
設定内容をフラッシュ・メモリに保存
概要
IP アドレスの設定および無線 LAN セキュリティの設定の内容をフラッシュ・メモリに保存します。
CGI プログラム
save_settings_main.cgi
ソース・ファイル
save_settings_main.c
[書き込み]ボタンを押すと、IP アドレスの設定および無線 LAN セキュリティの設定の内容をフラッシュ・メモリに保存します。再
起動すると、保存内容を読み出して実際の動作に反映します。
CKB-RZ/A1H 再起動
概要
CKB-RZ/A1H ボードを再起動します。
CGI プログラム
reboot_main.cgi
ソース・ファイル
reboot_main.c
[再起動]ボタンをクリックすると、CKB-RZ/A1H ボードを再起動します。
なお、PALMiCE3 でデバッグ中の場合はデバッグを継続できなくなります。
ライセンス
概要
ライセンス・ファイルを表示します。
CGI プログラム
licenses_main.cgi
ソース・ファイル
licenses_main.c
buildroot で使用されているソフトウェアのライセンス情報を表示します。
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 25
5.3 LCD、タッチパネル、LED 用サンプル
LCD ボード CKB-LCD-02 に付属するタッチパネルを使った GUI アプリケーションや、LED を制御するアプリケーションを付
属しています。
アプリケーションのソースは以下にあります。
アプリケーション
ソースファイル
gui1
buildroot-{日付}/board/ckb/common/samples/gui1/
ts_led
buildroot-{日付}/board/ckb/common/samples/ts_led/
LCD ボード(CKB-LCD-01)に付属するタッチパネルを使った GUI アプリケーションや、LED を制御するアプリケーションは、
以下のデバイス・ファイルまたは、クラス・ドライバのシステム・ファイルを使用します。
デバイス・ファイル
説明
/dev/fb0
LCD 用のフレームバッファ用のデバイス・ファイルです。
/dev/input/touchscreen0
タッチパネル用のデバイス・ファイルです。
/sys/class/leds/led1/brightness
LED1 を点灯、消灯するシステム・ファイルです。
/sys/class/leds/led2/brightness
LED2 を点灯、消灯するシステム・ファイルです。
LCD のカーネル・ドライバは、以下のソースで制御しています。
buildroot ディレクトリの output/build/linux-3.8.13/以下のソースを参照してください。
カーネル・コンフィギュレーション
System Type --->
[*] Support LCD --->
Select LCD board
--->
(X) CKB LCD-02
( ) Visionx KTM050AL02
フラグ
CONFIG_CKB_LCD_02 または、CONFIG_VISIONX_KTM050AL02
ソース
arch/arm/mach-shmobile/board-ckbrza1h.c
arch/arm/mach-shmobile/rskrza1-vdc5fb.c
タッチパネルのカーネル・ドライバは、以下のソースで制御しています。
カーネル・コンフィギュレーション
[*] Device Drivers --->
Input device support
[*]
--->
Touchscreens
<*>
--->
TSC2007 based touchscreens
フラグ
CONFIG_TOUCHSCREEN_TSC2007
ソース
drivers/input/touchscreen/tsc2007.c
LED のカーネル・ドライバは、以下のソースで制御しています。
カーネル・コンフィギュレーション
[*] Device Drivers --->
[*] LED Support --->
[*] LED Class Support
<*>
フラグ
LED Support for GPIO connected LEDs
CONFIG_LEDS_CLASS
CONFIG_LEDS_GPIO
ソース
drivers/leds/led-class.c
drivers/leds/led-gpio.c
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 26
5.4 拡張コネクタ(EXT1_CN)用サンプル
CKB-RZ/A1H の EXT1_CN に拡張ボードを接続してアクセスする場合のアプリケーションサンプルを付属しています。
5.4.1 拡張コネクタのマルチプレクス設定
CKB-RZ/A1H の拡張コネクタ(EX_CN)では、ピンのマルチプレクスを変更して各種機能に使用する事が出来ます。
buildroot から、make linux-menuconfig にて、以下の設定で拡張コネクタのピンの設定が行えます。
カーネル・コンフィギュレーション
System Type --->
;
EXT1_CN devices/ pin multiplex options
--->
EXT2_CN devices/ pin multiplex options
--->
WLAN_CN multiplex options
--->
;
5.4.2 メモリバス(/CS2 空間)アクセスサンプル(8 ビット)
EXT1_CN のメモリバス(/CS2 空間 : 0x08000000 番地)をメモリ・マップしてデータを R/W するアプリケーションです。
EXT1_CN をメモリバス(/CS2)として使用するピンです。
8 ビットアクセスの場合は EXT1_CN の下記のピンを使用します。
No
3
5
7
9
11
13
15
信号名
P6_1 / D1 / LCD1_DATA9 / RLIN30TX / IRQ4 / TIOC1B /
SSIDATA4 / TXD3 / DV0_DATA17
P6_3 / D3 / LCD1_DATA11 / RLIN31TX / IRQ2 / CTS5 /
TIOC2B / TXD2 / DV0_DATA19
P6_5 / D5 / LCD1_DATA13 / CAN2TX / SCK5 / SSL10 /
DV0_DATA21
P6_7 / D7 / LCD1_DATA15 / LCD0_TCON6 / RXD5 /
MISO1 / DV0_DATA23
P5_8 / LCD0_EXTCLK / IRQ0 / DV1_CLK / DV0_CLK /
CS2
P7_6 / WE0 / DQMLL / DV0_DATA22 / ET_TXD2 / CTS7 /
SSIWS2 / TIOC2A
P7_8 / RD / SSISCK3 / AVB_COMP_MATCH / CAN0RX /
TIOC3A / IRQ1
No
4
6
8
10
信号名
P6_0 / D0 / LCD1_DATA8 / RLIN30RX / DV0_CLK / TIOC1A /
IRQ5 / RXD3 / DV0_DATA16
P6_2 / D2 / LCD1_DATA10 / RLIN31RX / IRQ7 / TCLKA /
TIOC2A / RXD2 / DV0_DATA18
P6_4 / D4 / LCD1_DATA12 / CAN2RX / IRQ3 / RTS5 /
RSPCK1 / DV0_DATA20
P6_6 / D6 / LCD1_DATA14 / LCD0_TCON5 / TXD5 / MOSI1 /
DV0_DATA22
12
P7_10 / A2 / SSIRXD3 / ET_RXD1 / CAN1TX / TIOC3C / IRQ2
14
P7_11 / A3 / SSITXD3 / ET_RXD2 / CAN1RX / TIOC3D / IRQ3
16
P7_12 / A4 / SSISCK4 / ET_RXD3 / TIOC4A / IRQ4
18
P7_13 / A5 / SSIWS4 / ET_MDIO / TIOC4B / IRQ5
アプリケーションのソースは以下にあります。
ソース・ファイル
buildroot-{日付}/board/ckb/ckb-rz/samples/ex1_cn_mem/
8 ビットアクセス用サンプル
buildroot-{日付}/board/ckb/ckb-rz/samples/ex1_16bit_cn_mem/
16 ビットアクセス用サンプル
ドライバのソースは以下にあります。
メモリのタイプによりアクセスタイミングの変更を行う場合は、このファイルをカスタムしてください。
ソース・ファイル
buildroot-{日付}/output/build/linux-3.8.13/drivers/mtd/chips/ckb_bsc_cs2.c
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 27
アプリケーションを実行します。CS2 空間の指定されたアドレスのデータをリードまたは、ライトします。
CPU の A0, A1 は未接続なので、RW 可能なアドレスは4バイトバウンダリでアクセスします。
書式 1(リード): ex1_cn_mem –r [番地 0,4,8,c,10,…]
書式 2(ライト): ex1_cn_mem –w [番地 0,4,8,c,10,…] [データ]
CKB# ex1_cn_mem –r 4
/CS2 空間 4 番地を 8 ビットアクセスでリードします。
Data at 0x08000004 = 0x73
CKB# ex1_cn_mem –w 1c 55
/CS2 空間 1c 番地に 8 ビットアクセスで 55 をライトします。
Wrote 0x55 at 0x0800001c
書式 3(リード): ex1_16bit_cn_mem –r [番地 0,4,8,c,10,…]
書式 4(ライト): ex1_16bit_cn_mem –w [番地 0,4,8,c,10,…] [データ]
CKB# ex1_cn_mem –r 4
/CS2 空間 4 番地を 16 ビットアクセスでリードします。
Data at 0x08000004 = 0x7312
CKB# ex1_cn_mem –w 1c 55aa
/CS2 空間 1c 番地に 16 ビットアクセスで 55aa をライトします。
Wrote 0x55aa at 0x0800001c
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 28
5.4.3 GPIO クラス
GPIO をアクセスする為の GPIO クラスについて説明します。
GPIO 番号表
GPIO クラスを使用して GPIO をアクセスするには、以下の番号を使ってアクセスします。
ポート
番号
ポート
番号
ポート
番号
ポート
番号
ポート
番号
ポート
番号
P0_0
0
P1_0
6
P2_0
22
P3_0
38
P4_0
54
P5_0
70
P0_1
1
P1_1
7
P2_1
23
P3_1
39
P4_1
55
P5_1
71
P0_2
2
P1_2
8
P2_2
24
P3_2
40
P4_2
56
P5_2
72
P0_3
3
P1_3
9
P2_3
25
P3_3
41
P4_3
57
P5_3
73
P0_4
4
P1_4
10
P2_4
26
P3_4
42
P4_4
58
P5_4
74
P0_5
5
P1_5
11
P2_5
27
P3_5
43
P4_5
59
P5_5
75
P1_6
12
P2_6
28
P3_6
44
P4_6
60
P5_6
76
P1_7
13
P2_7
29
P3_7
45
P4_7
61
P5_7
77
P1_8
14
P2_8
30
P3_8
46
P4_8
62
P5_8
78
P1_9
15
P2_9
31
P3_9
47
P4_9
63
P5_9
79
P1_10
16
P2_10
32
P3_10
48
P4_10
64
P5_10
80
P1_11
17
P2_11
33
P3_11
49
P4_11
65
P1_12
18
P2_12
34
P3_12
50
P4_12
66
P1_13
19
P2_13
35
P3_13
51
P4_13
67
P1_14
20
P2_14
36
P3_14
52
P4_14
68
P1_15
21
P2_15
37
P3_15
53
P4_15
69
ポート
番号
ポート
番号
ポート
番号
ポート
番号
ポート
番号
ポート
番号
P6_0
81
P7_0
97
P8_0
113
P9_0
129
P10_0
137
P11_0
153
P6_1
82
P7_1
98
P8_1
114
P9_1
130
P10_1
138
P11_1
154
P6_2
83
P7_2
99
P8_2
115
P9_2
131
P10_2
139
P11_2
155
P6_3
84
P7_3
100
P8_3
116
P9_3
132
P10_3
140
P11_3
156
P6_4
85
P7_4
101
P8_4
117
P9_4
133
P10_4
141
P11_4
157
P6_5
86
P7_5
102
P8_5
118
P9_5
134
P10_5
142
P11_5
158
P6_6
87
P7_6
103
P8_6
119
P9_6
135
P10_6
143
P11_6
159
P6_7
88
P7_7
104
P8_7
120
P9_7
136
P10_7
144
P11_7
160
P6_8
89
P7_8
105
P8_8
121
P10_8
145
P11_8
161
P6_9
90
P7_9
106
P8_9
122
P10_9
146
P11_9
162
P6_10
91
P7_10
107
P8_10
123
P10_10
147
P11_10
163
P6_11
92
P7_11
108
P8_11
124
P10_11
148
P11_11
164
P6_12
93
P7_12
109
P8_12
125
P10_12
149
P11_12
165
P6_13
94
P7_13
110
P8_13
126
P10_13
150
P11_13
166
P6_14
95
P7_14
111
P8_14
127
P10_14
151
P11_14
167
P6_15
96
P7_15
112
P8_15
128
P10_15
152
P11_15
168
マルチプレクスで GPIO 以外の機能にしている場合はポートとして使用できません。
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 29
EXT1_CN 信号表
EXT1_CN の GPIO 番号は以下の通りです。
No
1
3
5
7
9
11
13
15
17
19
21
23
25
27
29
信号名
+5V (VCC50)
P6_1 / D1 / LCD1_DATA9 / RLIN30TX / IRQ4
/ TIOC1B / SSIDATA4 / TXD3 /
DV0_DATA17
P6_3 / D3 / LCD1_DATA11 / RLIN31TX /
IRQ2 / CTS5 / TIOC2B / TXD2 /
DV0_DATA19
P6_5 / D5 / LCD1_DATA13 / CAN2TX /
SCK5 / SSL10 / DV0_DATA21
P6_7 / D7 / LCD1_DATA15 / LCD0_TCON6 /
RXD5 / MISO1 / DV0_DATA23
P5_8 / LCD0_EXTCLK / IRQ0 / DV1_CLK /
DV0_CLK / CS2
P7_6 / WE0 / DQMLL / DV0_DATA22 /
ET_TXD2 / CTS7 / SSIWS2 / TIOC2A
P7_8 / RD / SSISCK3 / AVB_COMP_MATCH
/ CAN0RX / TIOC3A / IRQ1
P8_12 / A20 / SPBCLK_1 / TIOC3C / SCK5 /
PWM1E / SGOUT_2 / SSISCK4
P2_12 / D28 / RSPCK0 / DV0_DATA12 /
SPBIO01_0 / CAN3RX / IRQ6 /
LCD1_DATA12 / TIOC1B
P2_11 / D27 / ET_RXD3 / DV0_DATA11 /
SSITXD0 / TIOC1A / LCD1_DATA11 /
VIO_D11 / MISO4
P2_10 / D26 / ET_RXD2 / DV0_DATA10 /
SSIRXD0 / RLIN30TX / LCD1_DATA10 /
VIO_D10 / MOSI4
GPIO 番号
No
2
信号名
+3.3V (VCC33)
82
4
P6_0 / D0 / LCD1_DATA8 / RLIN30RX / DV0_CLK
/ TIOC1A / IRQ5 / RXD3 / DV0_DATA16
81
84
6
P6_2 / D2 / LCD1_DATA10 / RLIN31RX / IRQ7 /
TCLKA / TIOC2A / RXD2 / DV0_DATA18
83
86
8
88
10
78
12
103
14
105
16
125
18
34
20
GND
33
22
+3.3V (VCC33)
32
24
P3_1 / LCD0_TCON0 / ET_TXER / IRQ6 / TXD2 /
SCI_TXD1 / AUDIO_CLK / PWM2B / SSL30
12
26
13
28
P1_6 / RIIC3SCL / DV1_VSYNC / IERXD /
IRQ6 / VIO_D12 / DV0_DATA12
P1_7 / RIIC3SDA / DV1_HSYNC / RLIN30RX
/ IRQ7 / VIO_D13 / DV0_DATA13
GND
30
P6_4 / D4 / LCD1_DATA12 / CAN2RX / IRQ3 /
RTS5 / RSPCK1 / DV0_DATA20
P6_6 / D6 / LCD1_DATA14 / LCD0_TCON5 /
TXD5 / MOSI1 / DV0_DATA22
P7_10 / A2 / SSIRXD3 / ET_RXD1 / CAN1TX /
TIOC3C / IRQ2
P7_11 / A3 / SSITXD3 / ET_RXD2 / CAN1RX /
TIOC3D / IRQ3
P7_12 / A4 / SSISCK4 / ET_RXD3 / TIOC4A /
IRQ4
P7_13 / A5 / SSIWS4 / ET_MDIO / TIOC4B /
IRQ5
P2_8 / D24 / ET_RXD0 / DV0_DATA8 / SSISCK0
/ LCD0_TCON6 / LCD1_DATA8 / VIO_D8 /
RSPCK4
P2_9 / D25 / ET_RXD1 / DV0_DATA9 / SSIWS0 /
RLIN30RX / LCD1_DATA9 / VIO_D9 / SSL40
RES
GPIO 番号
85
87
107
108
109
110
39
30
31
CKB-RZ/A1H の拡張コネクタ(EX_CN)で、ピンのマルチプレクスを変更して各種機能に使用する事が出来ます。
buildroot から、make linux-menuconfig にて、以下の設定で拡張コネクタのピンの設定が行えます。
カーネル・コンフィギュレーション
System Type --->
;
EXT1_CN devices/ pin multiplex options
--->
EXT2_CN devices/ pin multiplex options
--->
WLAN_CN multiplex options
--->
;
GPOI として使用する場合は、各ピンのモードを上記メニューの指定のコネクタの使用するピンを GPIO に切り替える必要があ
ります。
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 30
Linux の GPIO クラスを使って EXT1_CN の GPIO ピンを操作する
Linux の GPIO クラスを使って GPIO 信号を High/Low する方法を記述します。
EXT1_CN コネクタの 17pin(P8_12)を出力ポートにして信号を High/Low する手順を以下に記述します。
① /sys/class/gpio/export ファイルに操作したい GPIO 番号を設定します。
P8_12 は、GPIO 番号表から、“125”になります。
コマンド書式 : # echo 125 > /sys/class/gpio/export
② GPIO のディレクションを出力に設定します。
コマンド書式 : # echo out > /sys/class/gpio/P8_12/direction
③ GP8_12 に High レベルを出力します。
コマンド書式 : # echo 1 > /sys/class/gpio/P8_12/value
④ GP8_12 に Low レベルを出力します。
コマンド書式 : # echo 0 > /sys/class/gpio/P8_12/value
⑤ 制御が終わったら gpio47 を閉じます。
コマンド書式 : # echo 125 > /sys/class/gpio/unexport
GPIO クラスを使ったアプリケーション例
アプリケーションのソースは以下にあります。
アプリケーション
ソース・ファイル
gpio_int
buildroot-{日付}/board/ckb/common/samples/gpio_int/
書式と仕様は以下のとおりです。指定 GPIO の立ち上がり、立下りの両エッジの割り込みを許可し変化を監視します。
[書式] # gpio_int <gpio-pin>
gpio-pin = GPIO 番号
ここでは、EXT1_CN の 17 ピンの P8_12 を指定する例を示します。
アプリケーションを実行すると、P8_12 が Low もしくは、High に変化する度にメッセージを表示します。
何かキーが押されるとアプリケーションを終了します。
CKB# gpio_int 125
Press any key to terminate the application
Current val=1
......
poll() GPIO 8 interrupt occurred
poll() GPIO 8 interrupt occurred
poll() GPIO 8 interrupt occurred
poll() GPIO 8 interrupt occurred
Current val=0
......
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 31
5.4.4 ADC コンバータ
ADC コンバータを使用する方法について説明します。
EXT2_CN 信号表
RZ/A1H の ADC 用のピンは、EXT2_CN コネクタに接続されています。
EXT2_CN の GPIO 番号は以下の通りです。
ピン番号
3
5
6
7
11
信号名
AN0
AN1
AN2
AN3
AN5
デバイス・ファイル
ADC(oneshot モード)で使用するデバイス・ファイルは、以下のファイルです。
CKB# echo 0 > /sys/bus/iio/devices/iio\:device0/buffer/enable
バッファを禁止
CKB# cat /sys/bus/iio/devices/iio\:device0/in_voltage5_raw
AN5 の値をリード
ADC(continuous モード)で使用するデバイス・ファイルは、以下のファイルです。
CKB# echo 0 > /sys/bus/iio/devices/iio\:device0/buffer/enable
バッファを禁止
CKB#
CKB#
CKB#
CKB#
CKB#
AN0 を使用許可
AN1 を使用許可
AN2 を使用許可
AN3 を使用許可
Timestamp を許可
echo 1 >
echo 1 >
echo 1 >
echo 1 >
echo 1 >
/sys/bus/iio/devices/iio\:device0/scan_elements/in_voltage0_en
/sys/bus/iio/devices/iio\:device0/scan_elements/in_voltage1_en
/sys/bus/iio/devices/iio\:device0/scan_elements/in_voltage2_en
/sys/bus/iio/devices/iio\:device0/scan_elements/in_voltage3_en
/sys/bus/iio/devices/iio\:device0/scan_elements/in_timestamp_en
CKB# echo 125 > /sys/bus/iio/devices/iio\:device0/in_voltage_sampling_frequency
サンプリング周波数
(1-125Hz)
CKB# echo 100 > /sys/bus/iio/devices/iio\:device0/buffer/length
バッファ長をライト
CKB# echo 1 > /sys/bus/iio/devices/iio\:device0/buffer/enable
バッファを許可
CKB# hexdump /dev/iio\:device0
0000000 07b6 07a5 0794 07a6 11af 2dd2 df0c 137a
許可した ADC(AN0-AN3)とタ
イムスタンプ値をリード
/dev/iio:device0 を読み出すことで、設定したバッファ分の ADC データが許可した ADC の順に 16 ビット単位で取得できます。
一度に設定できるのは 4 つまでの AN になります。
/dev/iio:device0 のデータ・フォーマット
種類
ビット長
AN0 値
16bit
AN1 値
16bit
AN2 値
16bit
AN3 値
16bit
タイムスタンプ
64bit
アプリケーションから、ADC をアクセスする場合は、これらデバイス・ファイルを使用してください。
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 32
5.4.5 SPI2
EXT2_CN の SPI2 を使用する方法について説明します。
EXT2_CN 信号表
RZ/A1H の SPI2 用のピンは、EXT2_CN コネクタに接続されています。
EXT2_CN
ピン番号
4
6
8
10
信号名
RSPCK2
SSL20
MOSI2
MISO2
デバイス・ファイル
使用するデバイス・ファイルは、以下のファイルです。
/dev/spidev2.0
SPI2 デバイス・ファイル
サンプル・ソース
spidev_test は、SPI 通信を行うアプリケーションのサンプルです。
ドライバのソースは以下にあります。
ソース・ファイル
buildroot-{日付}/output/build/linux-3.8.13/drivers/spi/
アプリケーションのソースは以下にあります。
ソース・ファイル
buildroot-{日付}/board/ckb/common/samples/spidev_test/
spidev_test 使用例
CKB# # spidev_test -D /dev/spidev2.0 -b 8 -s 100000
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
SPI2 を 8bit、100KHz で通信する実行例です
第 5 章 サンプル・プログラム 33
5.4.6 RIIC3(I2C)
EXT1_CN の RIIC3 を I2C マスターモードで使用する方法について説明します。
EXT1_CN 信号表
RZ/A1H の RIIC3 用のピンは、EXT1_CN コネクタに接続されています。
No
25
27
信号名
P1_6 / RIIC3SCL / DV1_VSYNC / IERXD
/ IRQ6 / VIO_D12 / DV0_DATA12
P1_7 / RIIC3SDA / DV1_HSYNC /
RLIN30RX / IRQ7 / VIO_D13 /
DV0_DATA13
GPIO 番号
12
13
ドライバのソースは以下にあります。
ソース・ファイル
buildroot-{日付}/output/build/linux-3.8.13/drivers/i2c/busses/i2c-riic.c
アプリケーションは、i2c-tools を使用します。ソースは以下にあります。
ソース・ファイル
buildroot-{日付}/output/build/i2c-tools-3.1.0/tools/
i2c-tools 使用例
CKB# i2cdetect –r –y 2
/dev/i2c-2 で検出された応答のあるデバイスを表示します。
CKB# i2cget -f -y 2 0x51 0x03 b
/dev/i2c-2 に接続された 0x51 アドレスを持つ I2C デバイスの 0x03 番地をリ
ードします。
CKB# i2cget –f –y 2 0x51 0x12 0x55 b
/dev/i2c-2 に接続された 0x51 アドレスを持つ I2C デバイスの 0x12 番地に
0x55 をライトします。
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 5 章 サンプル・プログラム 34
第6章 使用例
6.1 はじめに
この章では、CKB-RZ/A1H 組み込み Linux の使用方法について記述します。
6.2 マスストレージ(USB/microSD)をマウントする
USB メモリ、USB ハードディスク、microSD カードをマウントする方法を以下に記述します。
フォーマットされてない場合は、マウントする前にフォーマットしてください。
6.2.1 USB メモリ/USB ハードディスクのフォーマット
USB メモリや USB ハードディスクをフォーマットする例を記述します。
尚、フォーマットする場合はアンマウントしてから行ってください。
vFAT でフォーマットする
CKB# mkfs.vfat /dev/sda1
ext2 でフォーマットする
CKB# mkfs.ext2 /dev/sda1
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 6 章 使用例 35
6.2.2 USB メモリ/USB ハードディスクのマウント
CKB-RZ/A1H の USB ホストコネクタは 2 つあります。
コネクタの上段は USB 2.0 Full-Speed 対応のホスト、下段は USB2.0 High-Speed 対応のホストです。
USB メモリやハードディスクを CKB-RZ/A1H の USB ホストに挿入すると以下のメッセージが表示されます。
usb 1-1: new high speed USB device number 2 using musb-hdrc
usb 1-1: New USB device found, idVendor=058f, idProduct=6387
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: Mass Storage
usb 1-1: Manufacturer: Generic
usb 1-1: SerialNumber: 627DC7F1
scsi2 : usb-storage 1-1:1.0
scsi 2:0:0:0: Direct-Access
Generic
Flash Disk
8.07 PQ: 0 ANSI: 2
sd 2:0:0:0: Attached scsi generic sg0 type 0
sd 2:0:0:0: [sda] 4057088 512-byte logical blocks: (2.07 GB/1.93 GiB)
sd 2:0:0:0: [sda] Write Protect is off
sd 2:0:0:0: [sda] Assuming drive cache: write through
sd 2:0:0:0: [sda] Assuming drive cache: write through
sda: sda1
sd 2:0:0:0: [sda] Assuming drive cache: write through
sd 2:0:0:0: [sda] Attached SCSI removable disk
デバイスが"sda"と、パーティション"sda1"と表示されます。 このメッセージは、"dmesg"コマンドで再表示できます。
尚、他のマスストレージ(USB メモリ、USB ハードディスク)がすでにある場合は、"sdb", "sdc", "sde"... と、接続された順にデ
バイス名が追加されます。
CKB# mount /dev/sda1 /mnt
6.2.3 USB メモリ/USB ハードディスクのアンマウント
CKB-RZ/A1H の電源を切ったり、リセットする場合は、リード/ライトでマウントされたマスストレージはアンマウントしてくださ
い。
CKB# umount /dev/sda1
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 6 章 使用例 36
6.2.4 microSD カードのフォーマット
microSD カードをフォーマットする例を記述します。尚、フォーマットする場合はアンマウントしてから行ってください。
vFAT でフォーマットする
CKB# mkfs.vfat /dev/mmcblk0p1
ext2 でフォーマットする
CKB# mkfs.ext2 /dev/mmcblk0p2
6.2.5 microSD カードのマウント
microSD カードを CKB-RZ/A1H の microSD スロットに挿入します。
以下のメッセージが表示されます。このメッセージは、"dmesg"コマンドで再表示できます。
mmc0: new high speed SD card at address e624
mmcblk0: mmc0:e624 SU02G 1.84 GiB
mmcblk0: p1 p2
デバイスが"mmcblk0"と、microSD カードにパーティションが 2 つある場合は、パーティション"p1", "p2" と表示されます。
パーティション 1 を/mnt フォルダにマウントする場合
CKB# mount /dev/mmcblk0p1 /mnt
パーティション 2 を/usr フォルダにマウントする場合
CKB# mount /dev/mmcblk0p2 /usr
6.2.6 microSD カードのアンマウント
CKB-RZ/A1H の電源を切ったり、リセットする場合は、リード/ライトでマウントされたマスストレージはアンマウントしてくださ
い。
CKB# umount /dev/mmcblk0p1
CKB# umount /dev/mmcblk0p2
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 6 章 使用例 37
6.3 Linux ホストのディレクトリをマウントする(NFS)
以下のようにマウントする例を記述します。
Linux ホスト IP アドレス
192.168.0.11
Linux ホスト ディレクトリ・パス
/home/ubuntu/CKB/buildroot-{日付}/output/target/usr
CKB-RZ/A1H ターゲット ディレクトリ・パス
/usr
6.3.1 Linux ホスト側の準備
NFS サーバのインストール
Linux ホストにて、以下のコマンドを実行して NFS サーバをインストールしてください。
LINUXPC$ sudo apt-get install nfs-kernel-server
/etc/exports ファイルを編集する
Linux ホストにて、以下のコマンドを実行して NFS でマウントされるディレクトリを/etc/exportfs ファイルに追加してください。
/etc/exports ファイルに以下の 1 行を追加します。
/home/ubuntu 192.168.0.0/255.255.0.0(rw,sync,no_subtree_check)
NFS サーバを再起動する
Linux ホストにて、以下のコマンドを実行して NFS サーバを再起動してください。
LINUXPC$ sudo service nfs-kernel-server restart
LINUXPC$ sudo exportfs -r
6.3.2 CKB-RZ/A1H 側でマウントする
mount コマンドを使ってマウントする
CKB-RZ/A1H の Linux で以下のコマンドで Linux ホストのディレクトリをマウントしてください。
Linux ホストの IP アドレスが 192.168.0.11 の場合は、以下のコマンドでマウントします。
CKB# mount -o nolock,tcp -t nfs 192.168.0.11:/home/ubuntu/SDK/buildroot-{日付}/output/target/usr/usr
/etc/fstab を使って Linux ホスト上のディレクトリをマウントする
起動時に毎回マウントする場合は、/etc/fstab に記述してください。
192.168.0.11:/home/ubuntu/SDK/buildroot-{日付}/output/target/usr /usr nfs rw,relatime,hard,nolock,tcp 0 0
/etc/fstab を記述後に以下のコマンドでマウントしてください。
CKB# mount -a
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 6 章 使用例 38
6.4 CM-J100 による無線 LAN を使う
CKB-RZ/A1H では、オプションの CM-J100 を使って無線 LAN(802.11b/g/n : 2.4GHz 帯)が使用できます。
無線 LAN モジュール(CM-J100)は、以下のファイルを使用します。
ローダブル・モジュール本体
ローダブル・モジュール初期化シェル
WPA クライアント設定アプリ
WPA サプリカント本体
hostapd 本体
iw 本体
connect.sh 作成シェル
アクセスポイント設定用シェル
hostapd(OPEN)設定用シェル
hostapd(WEP)設定用シェル
hostapd(WPA/WPA2-TKIP/AES)設定用シェル
Infra(OPEN)設定用シェル
Infra(WEP)設定用シェル
Infra(WPA/WPA2-TKIP/AES)設定用シェル
/lib/modules/cmj100.ko
/etc/init.d/S35cmj100
/usr/sbin/wpa_cli
/usr/sbin/wpa_supplicant
/usr/sbin/hostapd
/usr/sbin/iw
/etc/init.d/S36create_connect_sh
/etc/network/wlan-scripts/connect.sh
/etc/network/wlan-scripts/HOSTAPD_OPEN.sh
/etc/network/wlan-scripts/HOSTAPD_WEP.sh
/etc/network/wlan-scripts/HOSTAPD_WPA2.sh
/etc/network/wlan-scripts/INFR_OPEN.sh
/etc/network/wlan-scripts/INFR_WEP.sh
/etc/network/wlan-scripts/INFR_WPA2.sh
6.4.1 CM-J100 ローダブル・モジュール
CM-J100 のデバイス・ドライバは、ローダブル・モジュールの形で提供します。
Linux のカーネル・コンフィギュレーションでローダブル・モジュールの指定が可能です。
Linux カーネル・コンフィギュレーションを変更するには以下のコマンドを実行します。
ubuntu:~/SDK/buildroot-{日付}$ make linuux-menuconfig
[*] Device Drivers --->
[*] Network device support
[*] Wireless LAN
--->
--->
[*] Computex CM-J100 support
--->
System Type --->
CKB Implementations
--->
Select WLAN daughter board (CM-J100)
--->
(X) CM-J100
CKB-RZ/A1H ではデフォルトで有効になっています。
デバイス・ドライバのソースは、以下のフォルダにあります。
buildroot-{日付}/board/ckb/common/cmj100-module
buildroot-{日付}/output/build/linux-3.8.13/drivers/net/wireless/cm-j100
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 6 章 使用例 39
6.4.2 無線 LAN 設定ファイル
無線 LAN モジュール(CM-J100)のローダブル・モジュールは以下のシェルで有効にします。
/etc/inti.d/S35cmj100
#!/bin/sh
#
# Start the insmod CM-J100 modules....
#
if [ -e /lib/modules/cmj100.ko ]; then
echo "insmod CM-J100..."
/sbin/insmod /lib/modules/cmj100.ko
fi
"/etc/network/wlan-scripts/connect.sh"ファイルが存在しない場合は、"/etc/inti.d/S36create_connect_sh"によって起動時
に作成します。デフォルトでは以下のシェルで、CKB ボード自身をアクセス・ポイントとして起動します。
/etc/network/wlan-scripts/connect.sh
#!/bin/sh
# $ Examples
# /etc/network/wlan-scripts/INFRA_WPA2.sh '"SSID"' '"Passphrase"'
/etc/network/wlan-scripts/HOSTAPD_WPA2.sh n 1 'CKB00a00b112257' 'pass1234'
# DHCP Server Start
udhcpd /etc/udhcpd.wlan0.conf
既存のアクセス・ポイントを使用する場合は、セキュリティに対応したシェルを使用してください。
デフォルトでは、アクセス・ポイント・モードで無線セキュリティ"WPA/WPA2-PSK(TKIP/AES)"、SSID"CKB{MAC アドレス}"、パス
ワード"pass1234"に設定されていますので、無線 LAN に対応した機器を同じ設定にして接続できます。また、DHCP サーバも
デフォルトで起動しています。
Note
無線 LAN(wlan0)は、別売の CM-J100(無線 LAN モジュール)が必要です。
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 6 章 使用例 40
6.5 ネットワークの設定方法
CKB-RZ/A1H では、起動時のネットワークの設定を以下のファイルで行っています。
/etc/network/interfaces.lo
設定ファイル
/etc/network/interfaces.eth0
/etc/network/interfaces.wlan0
/etc/init.d/S40network
ネットワーク・インターフェースの設定は、"/etc/init.d/S40network"が起動時にインターフェース毎の設定ファイルから
"/etc/network/interfaces"ファイルを出力することで設定します。
実際に ifup コマンドで設定されるファイルは、この"/etc/network/interfaces"ファイルになります。
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 6 章 使用例 41
6.5.1 設定ファイル
インターフェース毎(lo, eth0, wlan0)の設定は、各ファイル(interfaces.lo, interfaces.eth0, interfaces.wlan0)で行ってください。
/etc/init.d/S40network
#!/bin/sh
#
# Start the network ....
#
echo "Starting network..."
# create interaces
echo auto lo wlan0 eth0 > /etc/network/interfaces
if [ -e /etc/network/interfaces.lo ]; then
cat /etc/network/interfaces.lo >> /etc/network/interfaces
fi
if [ -e /etc/network/interfaces.eth0 ]; then
cat /etc/network/interfaces.eth0 >> /etc/network/interfaces
fi
if [ -d /sys/class/net/wlan0 ]; then
# wait for wlan0 to be created
echo "Waiting for wlan0 interface to be ready..."
echo "Waiting for wlan0 interface to be ready..." > /dev/tty0
loop_cnt=0
# Send output and error messages of ifconfig to /dev/null
while [ 1 ]; do
ifconfig wlan0 > /dev/null 2>&1
if [ $? == 0 ]; then
break;
fi
echo "Please be patient...."
echo "Please be patient...." > /dev/tty0
sleep 1;
loop_cnt=$(( loop_cnt + 1));
if [ $loop_cnt == 10 ]; then
echo "Giving up...Interface wlan0 not found."
echo "Giving up...Interface wlan0 not found." > /dev/tty0
exit
fi
done
# add wlan0 interfaces
cat /etc/network/interfaces.wlan0 >> /etc/network/interfaces
# starting wpa_supplicant
echo "Starting wpa_supplicant..."
echo "Starting wpa_supplicant..." > /dev/tty0
wpa_supplicant -Dwext -iwlan0 -C/var/run -B
fi
/sbin/ifup -a
if [ -d /sys/class/net/wlan0 ]; then
# Connect to a network if it is specified
sh /etc/network/wlan-scripts/connect.sh
fi
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 6 章 使用例 42
ループバック・デバイスの設定
/etc/network/interfaces.lo
iface lo inet loopback
有線 LAN の設定
/etc/network/interfaces.eth0
DHCP クライアントの場合
iface eth0 inet dhcp
スタティック IP の場合
iface eth0 inet static
例: 192.168.0.25
address 192.168.0.25
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
無線 LAN の設定
/etc/network/interfaces.wlan0
DHCP クライアントの場合
iface wlan0 inet dhcp
スタティック IP の場合
iface wlan0 inet static
例: 192.168.100.1
address 192.168.100.1
netmask 255.255.255.0
network 192.168.100.0
broadcast 192.168.100.255
gateway 192.168.100.1
デフォルトでは有線 LAN が DHCP クライアント、無線 LAN がスタティック IP で設定されています。
6.5.2 ネットワークの接続、切断
設定ファイルを変更したり、ネットワークを切断、接続する場合は、以下のコマンドを実行します。
すべての I/F を接続
CKB# ifup -a
すべての I/F を切断
CKB# ifdown -a
有線 LAN のみ I/F を接続
CKB# ifup eth0
有線 LAN のみ I/F を切断
CKB# ifdown eth0
無線 LAN のみ I/F を接続
CKB# ifup wlan0
無線 LAN のみ I/F を切断
CKB# ifdown wlan0
ネットワーク設定(/etc/network/interfaces) を変更した場合は、ifdown して ifup し直すと変更が反映されます。
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 6 章 使用例 43
6.5.3 タイムサーバから時刻を設定する
以下のコマンドでネットワークにあるタイムサーバ(ntp サーバ)から時刻を設定します。
CKB# ntpdate {ntp-server IP}
6.5.4 システム時刻を RTC に設定する
以下のコマンドでネットワークにあるシステム時刻を RTC に設定します。
CKB# hwclock –u –w
RTC に設定された時刻は Linux 起動時にシステム時刻にロードされます。
CKB-RZ-A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 6 章 使用例 44
第7章 CKB-RZ/A1H に含まれるソフトウェア
CKB Linux SDK に含まれるソフトウェアのライセンス、ソース・パッケージのリストについては、「CKB Linux オプション 2.1 導
入ガイド」を参照してください。
CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 7 章 CKB-RZ/A1H に含まれるソフトウェア 45
第8章 トラブル・シューティング
8.1 最新情報、FAQ など
当社ホーム・ページ( http://www.computex.co.jp/ )に、CKB-RZ/A1H の最新情報や、FAQ を設けます。そちらの方もご参照
ください。
CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1
第 8 章 トラブル・シューティング 46
CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1
変更履歴
日付
2014-08
2015-01
版
1
2
内容
初版
・CKB Linux SDK のバージョンを V2.01.00 から V2.01.01 に変更
CKB-RZ/A1H 組み込み Linux
技術的なお問い合わせについて
CKB-RZ/A1H に関する技術的なお問い合わせについては、当社ホーム・ページ(http://www.computex.co.jp/)内、サポート
ページの「技術的なお問い合わせ」に掲載されているご質問用紙にご記入の上、E-mail 又は FAX にてテクニカルセンタまでお
送りください。
株式会社コンピューテックス
テクニカルセンタ
E-mail : [email protected]
FAX :
075 (551)2585
株式会社コンピューテックス
本 社
〒605-0846 京都市東山区五条橋東 4-432-13 對嵐坊ビル
TEL:075-551-0528(代) FAX:075-551-2585
東京営業所
TEL:03-5753-9911(代) FAX:03-5753-9917
テクニカルセンタ
TEL:075-551-0373 FAX:075-551-2585
CKB-RZ/A1H 組み込み Linux ユーザーズ・マニュアル V2.1
2015 年 1 月 2 版
CM1553(B)1501
Fly UP