株式会社インタフェース Topページへ

ログオン / ユーザID登録

Made in 日本
新着情報 サポート 購入方法 会社概要 資料請求
 
SH_Howtoタイトル ご意見・ご要望はこちら
>>How toのTopへ

iTRON4.0(TOPPERS/JPSカーネル)の移植とサンプルプログラムの実行 最終更新日:2003/02/15
 
このHow-toでは、TOPPERSプロジェクト (http://www.ertl.ics.tut.ac.jp/TOPPERS/)が開発したuITRON4.0仕様に準拠したリアルタイムカーネル(TOPPERS/JSPカーネル)を弊社SH CPUボードで動作させることを目的とします。
GNU開発環境が構築できたので、弊社SH4 CPUボード用にconfig/*を作り、TOPPERS/JSPカーネル内のサンプルプログラムを動作させます。
このHow-toは、その時の手順を記しており、同様の作業をされる方の参考になれば幸いです。
なお、GNU開発環境の構築に関しては、別のHow-toを見てください。
注) 記載している内容は、動作の保証はありません。使用される場合は、すべて自己責任でお願いします。
    弊社Web siteからファイルをダウンロードする場合は、ユーザIDを取得してください。
(お断り)
・ SH4 CPU側のiplは、Linux用の物を変更せず使用するので、trapaを使用している箇所は変更が必要な場合があります。
・ 弊社SH4 CPUは、SCIF用のコネクタが付いていないので、そのままでは使用できません。
・ jsp/sample/sample1内の一部の処理を動かしただけなので、TOPPERS/JSPカーネルの全てが動くとは限りません。
  不具合・修正内容等あれば、 是非お知らせ下さい。

1. 弊社SH4 CPUボード用のロードモジュール(jsp)を作る
(1) http://www.ertl.ics.tut.ac.jp/TOPPERS/JSP/jsp-1.3.tar.gzを/usr/src/にダウンロードする
(2) #cd /usr/src
(3) #tar zxvf jsp-1.3.tar.gzで展開
(4) SH4 CPU用に、既にjsp/config/sh3/kz_sh4/*があるので、これを参考に、自社CPU用に変更する。

主な変更点は、以下の通り。
    ・リトルエンディアンにする
    ・gdbを使用してSH4 CPU側にダウンロードする
    ・セグメントの開始アドレスを変える
    ・SCIFの初期化の一部を削除する
依存部が分かれているのと、SH用のコードが揃っているので、ほとんど変更無しで出来た。

参考までに、弊社Web siteにkz_sh4との差分SH4 CPU用TOPPERS/JSPカーネルパッチ(mk-mpc1211.patch)を掲載しております。
    #cd /usr/src/jsp/config/sh3
    #cp -a kz_sh4 mpc1211
    #cd mpc1211
    #patch -p4 <パッチをダウンロードした場所/mk-mpc1211.patch
で、構築できます。

(5) 過去MLの(toppers-users 416, 736)辺りを参考にして、jsp/cfg/mpstrstream.hとjsp/utils/makedepを変更する
 --- jsp/cfg/mpstrstream.h~ Fri Apr 5 17:48:31 2002
 +++ jsp/cfg/mpstrstream.h Fri Feb 14 12:12:00 2003
 @@ -58,7 +58,6 @@
   public:
      enum { DEFAULT = 0, NO_SERIALIZE = 1 };

 -protected:
     struct tagStreamPartInfo
     {
        std::string name;
 @@ -66,6 +65,7 @@
        int flags;
     };

 +protected:
     std::string filename;

     std::list<struct tagStreamPartInfo *> container;

 --- jsp/utils/makedep~ Mon Apr 8 14:28:34 2002
 +++ jsp/utils/makedep Fri Feb 14 12:12:32 2003
 @@ -121,7 +121,7 @@
      exit(1);
    }
    while ($line = <INPUT>) {
 -      if ($line =~ /^\#\s*([0-9]+)\s*\"([^\"]+)\"/) {
 +      if ($line =~ /^\#\s*([0-9]+)\s*\"([^\"\<\>]+)\"/) {
              $dependlist{$2} = 1;
        }
    }
 
(6) #mkdir /usr/src/jsp/OBJ
(7) #cd /usr/src/jsp/OBJ
(8) ../configure -C sh3 -S mpc1211 -P /usr/local
(9) 過去MLの(toppers-users 725)辺りを参考にして、jsp/OBJ/Makefileを変更するまた、サンプルプログラムの実行は、gdbを使わないのでGDB_STUB = trueは コメントにする
 --- jsp/OBJ/Makefile~ Sat Feb 15 08:59:37 2003
 +++ jsp/OBJ/Makefile Sat Feb 15 09:03:09 2003
 @@ -55,7 +55,7 @@
   # 実行環境の定義(複数の実行環境を同時に選択してはならない)
   # (どれにも該当しない場合は,すべてコメントアウトする)
   #
 -GDB_STUB = true
 +#########################GDB_STUB = true
   #PARTNER_J = true

   #
 @@ -151,8 +151,8 @@
   # カーネルのコンフィギュレーションファイルの生成
   #
   kernel_cfg.c kernel_id.h kernel_chk.c: $(UTASK_CFG)
 -      $(CPP) $(INCLUDES) $(CDEFS) $(UTASK_CFG) | $(JSPDIR)/cfg/cfg -s -c  \
 -                  -cpu $(CPU) -system $(SYS) -obj
 +      $(CPP) $(INCLUDES) $(CDEFS) $(UTASK_CFG) > cfg.tmp
 +      $(JSPDIR)/cfg/cfg -s -c -cpu $(CPU) -system $(SYS) -obj < cfg.tmp

 ##### 以下は編集しないこと #####

 
(10) #make depend
(11) #make

これで、弊社SH CPU用のサンプロのロードモジュール(jsp)ができた。
参考までに、各ログファイルと、ls -R /usr/src/jsp/OBJを掲載します。
     jsp-mpc1211-config-log-20030215
     jsp-mpc1211-depend-log-20030215
     jsp-mpc1211-make-log-20030215
     jsp-mpc1211-ls-R

2. ロードモジュール(jsp)を動かす
SH4 CPU側のiplは、Linux用の物を変更せず使用するので、TOPPERSプロジェクトからダウンロードできるSH3用スタブを使った場合と若干異なるかもしれない。
gdb起動後の手順(以下の内容)を、/usr/src/OBJ/.gdbinitに作る。
     set remotebaud 115200
     target remote /dev/ttyS0
     load
     detach
(1) SH4 CPUボードを、gdb起動の設定にする
(2) パソコン側で#cu -l /dev/ttyS0 -s 115200
(3) SH4 CPUボードの電源を入れる

以下、すべてパソコン側の操作。
(4) パソコン側に起動メッセージとプロンプト(>)が表示されるのでgと打ち込む
(5) $S05#b8と表示されるので、cuを止める
(6) #cd /usr/src/jsp/OBJ
(7) #sh-hitachi-elf-gdb jsp
gdbの起動メッセージ, jspのローディングメッセージを表示後、(gdb)と表示される。
(8) 別のtermを開き、#cu -l /dev/ttyS0 -s 115200とし、コネクト後、リターンを押すと、SH4 CPUボード内にローディングしたjspが起動する。実行時の画面は、以下のように表示される。
 JSP Kernel Release 1.3 (patchlevel = 0) for MPC1211(SH7750 interface CTP/PCI/MPC-SH02
 GreenArt & Jeanne) (Feb 15 2003, 09:06:20)
 Copyright (C) 2000-2002 by Embedded and Real-Time Systems Laboratory
                     Toyohashi Univ. of Technology, JAPAN

 Serial driver service starts on port 1.
 System logging task is started on port 1.
 Sample task starts (exinf = 0).
 task1 is running (001).    |
 task1 is running (002).    |
 task1 is running (003).    |
 task1 is running (004).    |
 task1 is running (005).    |
 task1 is running (006).    |
 #rot_rdq(three priorities)
 task2 is running (001).    +
 task2 is running (002).    +
 task2 is running (003).    +
 #rot_rdq(three priorities)
 task3 is running (001).    *
 task3 is running (002).    *
 task3 is running (003).    *
 task3 is running (004).    *
 task3 is running (005).    *
 task3 is running (006).    *
 task3 is running (007).    *
 task3 is running (008).    *
 #rot_rdq(three priorities)
 task1 is running (007).    |
 task1 is running (008).    |
 task1 is running (009).    |
 task1 is running (010).    |
 -- buffered messages --
 Sample task ends.

 Unregistered Expevt error occurs.
 Expevt = 00000160 SPC = 08005fd6 SR = 40000000 PR=08005924

上へ


© 2014 Interface Corporation. All rights reserved.
産業用パソコン
Classembly Devices®
  ・省エネ
  ・車載
  ・タッチパネル
  ・ハイグレード
  ・エコ
  ・I/O CD
I/O付きCD
  ・ビギナーズ
  ・ソルコン
  ・タフコン
  ・I/O付きタッチパネル
  ・マザコン
FAコントローラ
  ・長期安心
  ・スロットイン
  ・分散処理

インタフェースモジュール
・PCIバス
・PCI Express
・CompactPCIバス
・CardBus
・光のぞみLine®
・拡張ユニット
・アクセサリ
  (ケーブル, 端子台, メディア他)

・ソフトウェア

ソリューション
・電気自動車 急速充電器
  プロトコルモニタ(CHAdeMO)


お得なキャンペーン/特集
・10万円以下!FAコントローラ特集!
・クラシック販売
・リファービッシュ販売(メーカー再生品)
・最大50%OFF 特別キャンペーン
・DOSが動くコンピュータ特集
・電子部品販売(900種〜)

i99-BASIC®
・簡単プログラミング
製品を選ぶ
・スペック検索
・用途/使い方
・産業用コンピュータの特長
・新製品
・瞬低対策用電源装置
・広告一覧
・拡張バス付きコンピュータ
・コンピュータ性能マップ

サポート
・ダウンロード
・営業訪問依頼
・購入する
・販売店情報
・海外で購入
・製品貸出サービス
・コラム集
・FAQ検索
・新着情報
・サイトマップ
・個人情報の取扱について
・Web siteへのご意見

海外
・Interface Global Site
・Subsidiary & Distributor in U.S.
   Interface Amita Solutions