...

を使った TOPPERSシステムの開発とリモート保守

by user

on
Category: Documents
3

views

Report

Comments

Transcript

を使った TOPPERSシステムの開発とリモート保守
RLL(リモートリンクローダ)を使った
TOPPERSシステムの開発とリモート保守
2005年11月18日
OS&ソリューショングループ
近年の組込みシステム
組込みシステムの制御対象
• 高機能化
• 複雑化
• ネットワーク化
• 小型化
組込みシステム開発への要求
• Time-to-marketの短縮
• 開発コストの削減 フィールドアップデートの要求
• 品質・信頼性
システムテストの重要性増大
A.I.Corporation
2
フィールドアップデートやテストでの要求
オンラインへの負荷が少ない(部分入れ替え)
可能なフィールドアップデート技術
ITRONが多い、16ビット、32ビットのローエンド
マイコンでも動作可能なこと。
MMU無しで可能なこと
動的ロードが可能なこと。
自動で連続してきること
A.I.Corporation
3
従来のロード方式
仮想多重
仮想多重
アドレス空間
アドレス空間
方式
方式
ターゲット上でロケータ動作、モジュール間の
ターゲット上でロケータ動作、モジュール間の
シンボル参照は参照時に動的に行なわれる
シンボル参照は参照時に動的に行なわれる
⇒
⇒ ターゲット負荷大きい
ターゲット負荷大きい
ターゲット
ターゲット ターゲット上でリンカ、ロケータ動作
ターゲット上でリンカ、ロケータ動作
リンク
リンク
⇒
⇒ ターゲット負荷大きい
ターゲット負荷大きい
方式
方式
A.I.Corporation
4
“リモートリンクローダ方式”とは?
リモート
リモート
リンク
リンク
方式
方式
ターゲット外のサーバで、リンク、ロケート、
ターゲット外のサーバで、リンク、ロケート、
モジュール間シンボル参照テーブル作成を行う
モジュール間シンボル参照テーブル作成を行う
⇒
⇒
RLLエージェント
FATファイル
システム
TCP/IP
モジ
ジュ
ュ
ール
ル
モ
ー
モジ
ジュ
ュ
ール
ル
モ
ー
モジ
ジュ
ュ
ール
ル
モ
ー
ダイナミックダウンロード
RLLサーバ
RLLサーバ
Windows
Windows
/Linux
/Linux
SH-C
SH-C
ADS
ADS
Diab
Diab
GCC
GCC
PC
μITRON4.0 カーネル
ターゲット
リモートリンク
TOPPERS-Pro部分
A.I.Corporation
5
RLLの特徴のまとめ
μITRONの持つ軽さと高いリアルタイム
性を損なわず、ダイナミックローディング
機能を実現
CPUパワーの小さい8、16bit、ローエン
ド32bitマイコンでもダイナミックローディ
ングが可能に
A.I.Corporation
6
リモートリンクローディング
ターゲット機器
サーバ(PC)
メモリマップ
メモリマップ
情報
情報
通信
リロケータブル
オブジェクト
メモリ
ローダ機能
アドレス
アドレス
解決した
解決した
ロードモジュール
ロードモジュール
メモリマップ情報
物理アドレス
の解決
メモリへの
ロード実行
物理アドレスに
マップした
ロードモジュール
リンク機能
ロードモジュール
A.I.Corporation
7
ITRON仕様に追加した概念
概念1:モジュール
概念2:シンボルエクスポート
A.I.Corporation
8
ITRON仕様に追加した概念 1
モジュール
• 従来ITRONシステムはカーネルを含む全ての機能が1リンクされ
るモデルが基本(モジュールの概念は持っていない)。
複数リンクモデルを採用し、リンク単位(=モジュール)で機能の
新規追加やバージョンアップが行えるようにした。モジュールは
ID番号で識別されるものとした。
Kernel
File System
Application
1Module
kernel
FileSystem
Application
Bug
A.I.Corporation
更新
Application
+
9
モジュールの種類
ベースモジュール
•
•
•
予め機器に書き込まれるモジュール、動的
な更新は出来ない基幹機能
ロードモジュールの受け皿
最小機能構成 → ITRONカーネル、RLL
ロードモジュール
•
•
RLLによって動的にロード、アンロード可能
なモジュール
ロードモジュールの属性として基幹属性とオ
プション属性を持つ
A.I.Corporation
10
機能単位でダイナミックローディングを活用
する場合の例
不具合対策
モジュール
バグや機能UPによる
チャット
アプリケーション
ロードモジュール
モジュール差し替え
バグ
電話帳
Webブラウザ
ロードモジュール ロードモジュール デジタルカメラ
編集モジュール
新機能のプラグイン
ベースモジュール( ITRONカーネル+RLL )
A.I.Corporation
11
ロードモジュール
RLLによって動的にロード、アンロード可能なモジュール
ロードモジュールの属性として基幹属性とオプション属性
を持つ
ロードモジュールはリンクするオブジェクトモジュール単位
(タスク、ドライバ、ライブラリ、データ、など)
LinuxなどプロセスモデルのOSでは一般的にプロセス単
位であり、小さな修正でもプロセス全体をロードしなけれ
ばならない
TOPPERS-Proはリンク単位なので自由度が大きい
A.I.Corporation
12
μITRONに追加した概念2
シンボルエクスポート
• リンク単位の異なる外部モジュールのシンボルは参
照できない。
→ モジュール間のシンボル参照の仕組みと
してシンボルエクスポート宣言機能を静的APIと
して提供。
エクスポート可能なシンボル
• 関数名、変数名
• ロードモジュールに生成されたカーネルオブジェクト識
別名
A.I.Corporation
13
モジュール間のシンボル参照
グローバル参照テーブル
エクスポート
モジュール1
モジュール2
モジュール3
Task 3
Task 2
共有メモリ
Task 1
間接アクセス
間接アクセス
共有ライブラリ
共有ライブラリ
直接アクセス
エクスポート
シンボル
ベースモジュール(ITRONカーネル+RLL)
A.I.Corporation
14
ベースモジュールのシンボル参照
前提条件:ベースモジュールは更新不可
→ ベースモジュールのシンボルアドレスは不変
カーネルサービスコールを含む、システムパフォー
マンスに影響する参照頻度の高いシンボルが
存在すると想像する
ベースモジュールからエクスポートされたシンボ
ルはロードモジュールから直接参照可能とした。
A.I.Corporation
15
ベースモジュールのシンボル参照解決方法
ロードモジュールビルド時、リンカ
ロードモジュールビルド時、リンカ
に定義ファイルを読み込ませる事
に定義ファイルを読み込ませる事
でシンボルのアドレス解決
でシンボルのアドレス解決
ロードモジュール
Import
Task
tslp_
slp_tsk()
tsk()
直接呼び出し
•コンフィグレータが自動生成
•コンフィグレータが自動生成
•書式は使用ツール依存
•書式は使用ツール依存
→GNUの場合ldリンカスク
→GNUの場合ldリンカスク
リプトのSyntaxで出力
リプトのSyntaxで出力
ベースモジュール
エクスポート
シンボル
定義ファイル
Export
ITRONサービスコール
ITRONサービスコール
User Library
ベースモジュール
A.I.Corporation
16
ロードモジュール間のシンボル参照
ロードモジュールのロードアドレスは機器毎に一
定でない
→ ベースモジュールのシンボル参照のように
ロードモジュールビルド時、静的に解決できな
い。
シンボルアドレステーブルを介しての間接参照
方式で実行時に動的に解決。
A.I.Corporation
17
ロードモジュール間のシンボル参照の仕組み
グローバル参照テーブル
ID
0
1
2
・
ロードモジュール
ロードモジュール
コンフィグレーションファイル
EXPORT
{"int
{"int ExptFunc(
ExptFunc( int para)"}
para)"}
EXPORT
{"User
Type ExptTable"}
{"UserType
ExptTable"}
Cソースファイル
int ExptFunc(
ExptFunc( int para)
para)
{
}
シンボルアドレス
&ExptFunc()
&ExptTable
参照
登録
(活性化時)
間接
呼び出し
ロードモジュール
Cソースファイル
/*エクスポートシンボルの
/*エクスポートシンボルの
型情報,
型情報,参照マクロを
読み込み */
#include <global_ref.h
>
<global_ref.h>
void taskfunc(
taskfunc( VP_INT para)
para)
{
ExptFunc(
ExptFunc( 3);
}
global_ref.h
#define ExptFunc ¥
(* (int
)) ¥
(int (*)(int
(*)(int))
global_reference_table[0])
UserType ExptTable;
ExptTable;
A.I.Corporation
18
RLLの活用1
フィールドアップデート
新機能の追加、既存機能のバージョンアップ、不具合対策に
■ 従来
人が現地に出向くなどして入れ替える
■ TOPPERSのRLLを使うと
ネットワーク経由で動的にリモートメンテナンス
TOPPERS+RLL
サーバ
A.I.Corporation
19
フィールドアップデート事例 1
ハンディターミナルのような、アプリケー
ションの入れ替えが必要なシステム
End
End User
User Application
Application
WEB
WEB Application
Application
機器メーカ
メンテナンス機能
メンテナンス機能
Bluetoothプロトコルスタック
Bluetoothプロトコルスタック
TOPPERS-Pro
TOPPERS-Pro
TOPPERS/FI4
TOPPERS/FI4
RLL(Remote
RLL(Remote Link
Link Loader)
Loader)
TCP/IPプロトコルスタック
TCP/IPプロトコルスタック
FATファイルシステム
FATファイルシステム
無線LANドライバ
無線LANドライバ
SDドライバ
SDドライバ
サーバ
Hardware
Hardware
A.I.Corporation
20
フィールドアップデート事例 2
ホームネットワークを利用した各種家電機器
ホームネットワークを利用した各種家電機器
のソフトウェアバージョンアップ
のソフトウェアバージョンアップ
機器メーカ
無線LAN
エアコン
照明
センサ
ADSL
保守サーバ
ホーム
ゲートウェイ
TV
インターネット網
冷蔵庫
A.I.Corporation
21
フィールドアップデート事例 3
携帯電話の赤外線を利用した
携帯電話の赤外線を利用した
各種機器のソフトウェアバージョンアップ
各種機器のソフトウェアバージョンアップ
機器メーカ
伝送路を選ばないダウンロード機能
IrDA
サーバ
携帯電話網
A.I.Corporation
22
フィールドアップデート事例 4
非接触ICカードリーダー/ライター
非接触ICカードリーダー/ライター
新しいサービスメニューにも、すぐに対応!
サーバ
乗車券
電子マネー
ICカード
個人認証
カードR/W
ネットクレジット
新サービスがスタート
A.I.Corporation
23
フィールドアップデート事例 5
デジタルカメラ
デジタルカメラ
サーバ
TOPPERS-Pro
TOPPERS-Pro
TOPPERS/FI4
TOPPERS/FI4
プリント機能
RLL(Remote
RLL(Remote Link
Link Loader)
Loader)
TCP/IPプロトコルスタック
TCP/IPプロトコルスタック
FATファイルシステム
FATファイルシステム
無線LANドライバ
無線LANドライバ
SD/SDIOドライバ
SD/SDIOドライバ
Lens
Lens Driver
Driver
Printer
Printer Driver
Driver
カメラ
レンズ
Hardware
Hardware
A.I.Corporation
24
RLLの活用
テスト
自動システムテスト
動的チューニング
A.I.Corporation
25
自動システムテスト
実ターゲットとPC仮想ターゲットのネットワークテスト環境
実ターゲットとPC仮想ターゲットのネットワークテスト環境
テストサーバ
(RLLサーバ)
実機ターゲットボード
TOPPERS+RLL
TOPPERS+RLL
テストサーバ
(RLLサーバ)
PC
TOPPERS+RLL
PCを仮想ターゲットとするケース
A.I.Corporation
26
RLLを利用した連続システムテスト
メモリが限られた実機上でも、小さいテストドライバ(テストスクリプト)
を一つづつ動的ロードして実行することで多数のテストプログラムを
自動的に連続実行。
ロード
テストタスク1
実行
テストタスク
テストタスク2
アンロード
テストタスク4
テストタスク3
テストシナリオ
テストタスク3
機器のソフトウェアが
使うメモリ
テストタスク2
テストタスク1
テストタスク4
機器の全メモリ
A.I.Corporation
27
ターゲットを止めない動的連続テスト実行
・デバッガと異なりダウンロードする度にシステムのリセットを行なわないので、
稼動状態での連続テストが可能。従って機器の操作手順などに依存した
テストパターンやタイミングや動作状況などで発生する問題などの検出率を
大幅にあげることが可能
リセット
↓
RLL
テストタスク1
リセット
↓
デバッガ
テストタスク2
リセット
↓
テストタスク1
テストタスク3
リセット
↓
テストタスク2
リセット
↓
テストタスク3
A.I.Corporation
テストタスク4
テストタスク4
28
ターゲット状況から特定テストタスクの実行をトリガー可能
・ターゲットからのトリガーでテストプログラムの動的ロードと実行ができるの
で稼動中の注目イベントや注目コンテキスト発生をもって特定のテストプログ
ラム実行が可能
注目イベント発生!
注目イベント発生!
リセット
↓
テストタスク1
テストタスク2
通知
通知
テストタスクの
ロード&実行
テストタスクの
ロード&実行
サーバ
A.I.Corporation
29
テストパターンを簡単に増せる
・テストプログラムの実行順番を変えるだけで異なるテストシナリオになり、
テストパターンの網羅率を容易に上昇可能。
パターン1
テストタスク1
テストタスク2
テストタスク3
テストタスク4
テストタスク5
パターン2
テストタスク1
テストタスク3
テストタスク2
テストタスク4
テストタスク5
パターン3
テストタスク1
テストタスク2
テストタスク3
テストタスク5
テストタスク4
パターン4
テストタスク5
テストタスク2
テストタスク3
テストタスク4
テストタスク1
こういうことはプログラムでもできるが、一度にロードするテストプログラムのサイズが増えると
やはりメモリの問題が出てくる。またテストプログラム自身がOSの一つのタスクとして動くこと
が多いので、テストプログラム自身が大きく・複雑化すると実アプリケーションに影響を与えて
しまう可能性がでてくる。(例:メモリの使用量など)。従って、一度にロードして実行するテスト
プログラムはできるだけシンプルで簡単なものであることが望ましい。
A.I.Corporation
30
動的チューニング
Matlabで対象モジュール作成
RLLモジュールビルド
RLLランタイム
生成オブジェクト
動的にダウンロード
ターゲット稼動中
RLLサーバ
結果測定
A.I.Corporation
31
動的チューニングの例
移動体機器のテスト&チューニング
移動体機器のテスト&チューニング
動いている機器(例:車)に無線を使いテストプログラムや
チューニングコード/データなどを動的にロード&実行
公衆無線網など
TOPPERS+RLL
サーバ
ECU
A.I.Corporation
32
TOPPERS-Proのご紹介
NPO法人TOPPERSプロジェクトが開発した
オープンソースμITRON4.0フルセットカーネル
をベース
リモートリンクローダ(RLL)搭載
TCP/IP、ファイルシステム標準装備
各種CPU、コンパイラ、開発環境対応
開発支援用にパソコン版が付属
メモリ保護機能(オプション)
(株)エーアイコーポレーションによるライセンス、
技術サポート、品質保証、知財補償
A.I.Corporation
33
TOPPERS-Proソリューション
TOPPERS-Pro
ユーザアプリケーション
音声認識
メール
WEBブラウザ
Bluetooth
その他各種
ミドルウェア
TTS
セキュリティ
GUI
IrDA
ZigBee
モバイルIP
SMTP
SMB
UDF
SyncML
UPnP
Webサーバ
ノンFAT信頼性
ファイルシステム
フラッシュファイル
システム
CORBA
USB
TCP/IP
各種
ドライバ
無線LAN
ドライバ
File System
SD/SDIO
ドライバ
リモートリンク
ローダ(RLL)
イーサネット
ドライバ
μITRON4.0
仕様RTOS
TOPPERS-Pro
SH,ARM,M32,PowerPC,ColdFire,V850,Pentium,その他
A.I.Corporation
34
終わり
ご静聴ありがとうございました。
E-mail
WEB
TEL
FAX
:
:
:
:
[email protected]
www.aicp.co.jp
03-3493-7981
03-3493-7993
A.I.Corporation
35
Fly UP