gonzui


Format: Advanced Search

t2ex/doc/ja/t2ex-guide.txtbare sourcepermlink (0.03 seconds)

Search this content:

    1: /*
    2:  *----------------------------------------------------------------------
    3:  *    T2EX Software Package
    4:  *
    5:  *    Copyright 2012-2015 by Ken Sakamura.
    6:  *    This software is distributed under the latest version of T-License 2.x.
    7:  *----------------------------------------------------------------------
    8:  *
    9:  *    Released by T-Engine Forum(http://www.t-engine.org/) at 2012/12/12.
   10:  *    Modified by T-Engine Forum at 2015/02/27.
   11:  *    Modified by TRON Forum(http://www.tron.org/) at 2015/06/04.
   12:  *
   13:  *----------------------------------------------------------------------
   14:  */
   15: /*
   16:  * 本ソフトウェアパッケージは、添付のT-License 2.xの利用条件に従って利用、
   17:  * 改変、再配布ができます。ソースコードの再配布を行う場合は、T-License 2.x
   18:  * 契約文書を添付する必要があります。
   19:  * 改変を行った場合でも改変内容を公開する義務や、トロンフォーラムに開示す
   20:  * る義務はありません。
   21:  * 改変したソースコードを配布することもできます。この場合は、T-Kernelトレー
   22:  * サビリティサービスに登録をお願いします。これにより改変の変遷を知ること
   23:  * ができ、ある修正がどの版に継承しているか、いないかを確認することができ
   24:  * ます。
   25:  *
   26:  *   http://trace.tron.org/tk/?lang=ja
   27:  *   http://trace.tron.org/tk/?lang=en
   28:  *
   29:  * T-License 2.xの規定の通り、トロンフォーラムあるいは坂村健が著作権を持
   30:  * つソフトウェアに対して第三者の著作権を侵害していないことを保証しますが、
   31:  * それ以外の保証は行いません。
   32:  * また、本ソフトウェアパッケージを利用して直接的あるいは間接的に損害を生
   33:  * じたとしてもトロンフォーラムおよび坂村健は一切免責されるものとします。
   34:  *
   35:  * 本ソフトウェアパッケージのうち、bsd_source に含まれるソースコー
   36:  * ドは NetBSD もしくは、OpenBSD 由来のソースコードであり、T-License 2.x 
   37:  * は適用されません。それぞれのソースヘッダの記述にしたがって改変、再配布
   38:  * を行う必要があります。
   39:  */
   40: /*
   41:  * 謝辞
   42:  *
   43:  * トロンフォーラムは、T2EXパッケージを完成させることに対し貢献をいただ
   44:  * いたトロンフォーラムT-Kernelワーキンググループのメンバーに謝意を表し
   45:  * ます。
   46:  * ワーキンググループメンバーは、T2EXソースコードに対して有意義なコメント
   47:  * や議論をいただくとともに、詳細なテストに多大な協力をいただきました。
   48:  *
   49:  * T-Kernelワーキンググループメンバー
   50:  *   イーソル株式会社
   51:  *   パーソナルメディア株式会社
   52:  *   株式会社日立超LSIシステムズ
   53:  *   株式会社富士通コンピュータテクノロジーズ
   54:  *   富士通セミコンダクター株式会社
   55:  *   ルネサス エレクトロニクス株式会社
   56:  *   YRPユビキタス・ネットワーキング研究所
   57:  */
   58: 
   59: ==============================================================================
   60:    T-Engineリファレンスボード用 T-Kernel 2.0 Extension 開発環境
   61: ==============================================================================
   62: 
   63: ------------------------------------------------------------------------------
   64:  目次
   65: ------------------------------------------------------------------------------
   66:   1. はじめに
   67:   2. パッケージ内容
   68:   3. 作業の流れ
   69:     3.1 開発環境のインストール
   70:     3.2 ソースコードパッケージの展開
   71:     3.3 システム構築方法
   72:     3.4 システム構成情報
   73:     3.5 アプリケーションの構築
   74: 
   75: ------------------------------------------------------------------------------
   76: 1. はじめに
   77: ------------------------------------------------------------------------------
   78: 
   79: 本書は、EclipseあるいはLinuxコマンドラインの開発環境を使用して、T-Engineリファ
   80: レンスボード(tef_em1d)用のT-Kernel 2.0 Extension、およびそれらの上で動くアプリ
   81: ケーションを構築する際の手順を説明する文書です。
   82: 
   83: T-Kernel 2.0 Extension(T2EX)は、T-Kernel 2.0上に追加される拡張機能であり、ベー
   84: スとなるT-Kernel2.0システムはそのまま使用します。
   85: 
   86: 本パッケージは、T2EXとしてT-Kernel 2.0ソフトウェアパッケージに追加される部分の
   87: みを含んでいます。T-Kernel2.0のソースコードは、T-Kernel 2.0 ソフトウェアパッケ
   88: ージ(T-Kernel 2.02.00 Software Package)に含まれている内容をそのまま使用します。
   89: 
   90: T-Kernel 2.0はバージョン2.02.00以降を使用してください。T-Kernel 2.02.00 より前
   91: のバージョンでは、正しく動作しませんので、必ず最新版を使用してください。
   92: 
   93: ------------------------------------------------------------------------------
   94: 2. パッケージ内容
   95: ------------------------------------------------------------------------------
   96: 
   97: 本パッケージには以下の内容が含まれています。
   98: 
   99:     README.md
  100:     t2ex-dist-ucode.png         ディストリビューションucode
  101:     TEF000-218-150401.pdf       T-License 2.1
  102: 
  103:     /doc/ja/
  104:         t2ex-duide.txt          T2EX説明書(本書)
  105:         impl-t2ex.txt           T2EX実装仕様書
  106:         Ver2.01.00.txt          変更履歴(v2.01.00)
  107: 
  108:     t2ex_source                 T2EXとデバイスドライバのソースコード
  109:     bsd_source                  NetBSDまたはOpenBSD由来のソースコード
  110: 
  111: --------------------------------------------------
  112: 3 ソースコードの構成
  113: --------------------------------------------------
  114: 
  115: T2EXのソースコードのうち、NetBSDまたはOpenBSD由来のソースコードはbsd_sourceディ
  116: レクトリに分けられています。T2EXを構築する際はbsd_sourceのファイルをマージする必
  117: 要があります。
  118: 
  119:     include/                定義ファイル
  120:         t2ex/**                 T2EX機能定義ファイル
  121:         sys/
  122:             atomic.h                アトミック操作定義ファイル
  123:             sysdepend/
  124:                 atomic_common.h
  125:                 tef_em1d/
  126:                     atomic_depend.h
  127:         device/
  128:             netdrv.h                ネットワークドライバ定義ファイル
  129: 
  130:     kernel/                 カーネル
  131:         extension/              拡張部
  132:             memory/
  133:                 t2ex/**             T2EX用メモリマネージャ
  134: 
  135:         sysdepend/t2ex/**       T2EX用システム依存部
  136: 
  137:         sysinit/                システム初期化
  138:             build_t2ex/**           T2EXビルド用
  139:             src_t2ex/**             T2EX用ソース
  140: 
  141:         sysmain/                システムメイン
  142:             build_t2ex/**           T2EXビルド用
  143:             src/
  144:                 usermain_t2ex.c     T2EX用ユーザメインプログラム
  145:                 appl_main.c         T2EX用アプリメインプログラム
  146:                 commoand.c          T2EX用コマンド処理プログラム
  147:                 ref_command.c       T2EX用参照コマンド処理プログラム
  148:                 network_sample/**   T2EX用ネットワークサンプルプログラム
  149: 
  150:         sysmgr/                 システムマネージャ
  151:             build_t2ex/**           T2EXビルド用
  152:             src_t2ex/**             T2EX用ソース
  153: 
  154:         tkernel/                T-Kernel
  155:             build_t2ex/**           T2EXビルド用
  156:             src_t2ex/**             T2EX用ソース
  157: 
  158:     lib/                    ライブラリ
  159:         build_t2ex/**           T2EXビルド用
  160:         libtk/                  T-Kernelライブラリ
  161:             build_t2ex/**           T2EXビルド用
  162:             src_t2ex/**             T2EX用ソース
  163:         libc/**                 標準C互換ライブラリ
  164:         libusermod/**           T2EXプログラムモジュール用ライブラリ
  165: 
  166:     t2ex/                   T2EX機能ソース
  167:         build/**                T2EXビルド用
  168:         fs/**                   T2EXファイル管理機能
  169:         network/**              T2EXネットワーク通信機能
  170:         datetime/**             T2EXカレンダー機能
  171:         load/**                 T2EXプログラムロード機能
  172: 
  173:     module/**               T2EXプログラムモジュールサンプル/ビルド用
  174: 
  175:     config/                 設定情報(RomInfo, SYSCONF, DEVCONF)
  176:         src_t2ex/**             T2EX用ソース
  177:         build_t2ex/**           T2EXビルド用
  178: 
  179:     driver/                 デバイスドライバ
  180:         tef_em1d/
  181:             build_t2ex/**       T2EXビルド用
  182:             netdrv/**           リファレンスボード用ネットワークドライバ
  183: 
  184:     etc/                    その他(スクリプト等)
  185:         mkt2exsvc               T2EX SVC I/F ライブラリ作成用
  186:         sysdepend/
  187:             cpu/
  188:                 em1d/
  189:                     makeift2ex.pl       T2EX SVC I/F ライブラリ作成用
  190:             tef_em1d/
  191:                 makerules.sysdepend     共通 Make ルール
  192: 
  193: --------------------------------------------------
  194: 4 システム構築方法
  195: --------------------------------------------------
  196: 
  197: T2EXはT-Kernel 2.0 ソフトウェアパッケージ(T-Kernel 2.02.00 Software Package)に
  198: 組み込んで使用します。
  199: 開発方法に関しては、T-Kernel2.0 システムと同様に、Eclipse、Cygwin および Linux
  200: 利用の 3 種類の開発方法を選択することができます。詳しくは、T-Kernel 2.0 ソフト
  201: ウェアパッケージ説明書を参照してください。
  202: 
  203: T-Kernel 2.0 ソフトウェアパッケージはトロンフォーラムの以下のURLら入手できます。
  204: ケージは各種の開発環境も含まれます。ただし、開発環境は公開当時のものである
  205: ことにご注意ください。
  206: 
  207: https://www.tron.org/download/index.php?route=product/product&path=37_38&product_id=133
  208: 
  209: --------------------------------------------------
  210: 4.1 開発環境のインストール
  211: --------------------------------------------------
  212: 
  213: 開発方法に関しては、T-Kernel2.0 システムと同様に、Eclipse、Cygwin および Linux
  214: 利用の 3 種類の開発方法を選択することができます。詳しくは、T-Kernel 2.0 ソフト
  215: ウェアパッケージ説明書を参照してください。
  216: 
  217: 開発用ホストPCに、T-Kernel 2.0 ソフトウェアパッケージに含まれているT-Kernel2.0
  218: 開発環境をインストールします。
  219: 
  220: インストールするディレクトリは標準では以下となりますが、別のディレクトリにイン
  221: ストールしても構いません。
  222: 
  223:     /usr/local/tef_em1d
  224: 
  225: --------------------------------------------------
  226: 4.2 ソースコードパッケージの展開
  227: --------------------------------------------------
  228: 
  229: 最初に、開発環境をインストールしたディレクトリ(/usr/local/tef_em1d)上で、
  230: T-Kernel 2.0ソフトウェアパッケージに含まれているT-Kernel ソースコードパッケージ
  231: (tkernel_source.tar.gz)を展開して、tkernel_source ディレクトリを作成します。
  232: 
  233: 次に、同じディレクトリ上で、本パッケージに含まれているt2ex_source ディレクトリを
  234: 作成します。
  235: 
  236: 続いて、以下のコマンドを実行して、t2ex_source ディレクトリの内容をすべて、
  237: tkernel_source ディレクトリにコピーします。
  238: 
  239:     $ cd /usr/local/tef_em1d/t2ex_source
  240:     $ cp -r * ../tkernel_source
  241: 
  242:     ※ コピー後は、t2ex_source ディレクトリの内容は不要になりますので、すべて
  243:        削除して構いません。
  244: 
  245: コピーにより、tkernel_source ディレクトリ内に、T2EX 用のソースファイルが追加さ
  246: れます。ただし、例外として、以下のファイルだけは、T-Kernel の元のソースを上書
  247: きします。(他のファイルはすべて追加です。)
  248: 
  249:     tkernel_source/etc/sysdepend/tef_em1d/makerules.sysdepend
  250: 
  251:     ※ 上書きされ変更された上記ファイルは、T-Kernel 用としても、そのまま利用で
  252:        きます。
  253: 
  254: --------------------------------------------------
  255: 4.3 システム構築方法
  256: --------------------------------------------------
  257: 
  258: 以下のコマンドを実行して、T-Kernel 部分を含めた、T2EXシステム全体を構築します。
  259: 
  260:     $ cd $BD/kernel/sysmain/build_t2ex/tef_em1d
  261:     $ make emu
  262: 
  263:     ※ $BD は、環境変数 BD の値、すなわち TーKernel ソースコードパッケージを
  264:        インストールしたディレクトリの tkernel_source サブディレクトリ
  265:        (/usr/local/tef_em1d/tkernel_source) となります。
  266: 
  267:     ※ Eclipse 環境の場合は、"kernel/sysmain/build_t2ex/tef_em1d" をビルド先
  268:        ディレクトリとして、ビルド環境を設定したのち、"make emu" を実行します。
  269: 
  270:     ※ 以前に $BD の下で、T-Kernel をビルドした場合は、必ず、"make clean" を実
  271:        行してから、T2EX システムをビルドしてください。
  272: 
  273:     ※ "kernel/sysmain/build/tef_em1d" 上で "make clean", "make emu" を実行す
  274:        ると、T2EX 部分を含まないオリジナルのT-Kernel システムを構築できます。
  275: 
  276: "make emu" を実行した "$BD/kernel/sysmain/build_t2ex/tef_em1d" ディレクトリに、
  277: ビルド結果である以下のファイルが生成されます。T2EX システムのファイル名には、
  278: "_t2ex" が付加されます。
  279: これらのファイルは、"$BD/bin/tef_em1d" ディレクトリにもコピーされます。
  280: 
  281:   (a) RAM 実行用 (デバッグ用)
  282: 
  283:     kernel_t2ex-ram.sys     RAM 版 T2EX の実行オブジェクト
  284:     kernel_t2ex-ram.map     RAM 版 T2EX のリンクマップ
  285:     kernel_t2ex-ram.mot     RAM 版 T2EX のロードイメージ (S-Format)
  286:     kernel_t2ex-ram.bin     RAM 版 T2EX のロードイメージ (Binary)
  287: 
  288:     rominfo_t2ex-ram.mot    RAM 版 RomInfo のロードイメージ (S-Format)
  289: 
  290:     rom_t2ex-dbg.bin        Emulator 用 RAM 版 ロードイメージ (Binary)
  291:                             ( T-Monitor + RomInfo )
  292: 
  293:   (b) ROM 実行用 (Flash ROM 書込み用)
  294: 
  295:     kernel_t2ex-rom.rom     ROM 版 T2EX の実行オブジェクト
  296:     kernel_t2ex-rom.map     ROM 版 T2EX のリンクマップ
  297:     kernel_t2ex-rom.mot     ROM 版 T2EX のロードイメージ (S-Format)
  298: 
  299:     rominfo_t2ex-rom.mot    ROM 版 RomInfo のロードイメージ (S-Format)
  300: 
  301:     rom_t2ex.bin            Emulator 用 ROM ロードイメージ (Binary)
  302:                             ( T-Monitor + RomInfo + T-Kernel )
  303: 
  304:   (c) RAM/ROM 実行用 (Flash ROM 書込み用)
  305: 
  306:     tmonitor.mot            T-Monitor のロードイメージ (S-Format)
  307:     tmonitor.map            T-Monitor のリンクマップ
  308: 
  309:     ※ T-Monitor は、T-Kernel 用に構築したものと同じです。
  310: 
  311: 上記のビルド結果のファイルを使用して、Eclipse、Cygwin、または Linux 開発環境下
  312: で、エミュレータ(QEMU)や実機を使用した実行、およびデバッグ実行を行うことができ
  313: ます。詳しくは、T-Kernel 2.0 ソフトウェアパッケージ説明書を参照してください。
  314: 
  315: 
  316: "$BD/kernel/sysmain/build_t2ex/tef_em1d" ディレクトリにある Makefile 内の以下
  317: の定義を削除することにより、T2EX の機能の一部のみを含む実行イメージを作成でき
  318: ます。
  319: 
  320:     # use T2EX memory management
  321:     T2EX_MM = _t2ex
  322: 
  323:     # use task fault function of T2EX memory management
  324:     T2EX_MM_USE_TASKEXCEPTION = 1
  325: 
  326:     # use default memory fault handlers
  327:     T2EX_MM_USE_DEFAULT_FAULT_HANDLER = 1
  328: 
  329:     # use T2EX file management
  330:     T2EX_FS = yes
  331: 
  332:     # use T2EX network communication
  333:     T2EX_NET = yes
  334: 
  335:     # use T2EX calendar
  336:     T2EX_DT = yes
  337: 
  338:     # use T2EX program load
  339:     T2EX_PM = yes
  340: 
  341:     # use T2EX network sample programs
  342:     T2EX_NET_SAMPLE = yes
  343: 
  344:     ※ ファイル管理機能、およびネットワーク通信機能を使用する場合、カレンダ
  345:        機能は必要ですので、削除できません。
  346: 
  347:     ※ ファイル管理機能を削除した場合は、標準C互換ライブラリの標準入出力は使用
  348:        できません。
  349: 
  350: また、以下の定義を変更することにより、実行イメージに組み込むデバイスドライバを
  351: 選択できます。
  352: 
  353:     # device driver definitions
  354:     DRV_CONSOLE = yes
  355:     DRV_CLOCK   = yes
  356:     DRV_SYSDISK = yes
  357:     DRV_SCREEN  = yes
  358:     DRV_KBPD    = yes
  359:     DRV_LOWKBPD = yes
  360:     DRV_NET     = yes
  361: 
  362:     ※ T2EX の各機能で必要とするデバイスドライバは以下の通りです。
  363: 
  364:          DRV_CLOCK     カレンダ機能
  365:          DRV_CONSOLE   ファイル管理機能(標準入出力)
  366:          DRV_SYSDISK   ファイル管理機能
  367:          DRV_NET       ネットワーク通信機能
  368: 
  369: --------------------------------------------------
  370: 4.4 システム構成情報
  371: --------------------------------------------------
  372: 
  373: システム構成情報には、T2EX用の設定が追加されています。
  374: 設定値を変更する場合は、以下の SYSCONF ファイルを修正してください。
  375: 
  376:     $BD/config/src_t2ex/sysdepend/tef_em1d/SYSCONF
  377: 
  378:     ※ システム構成情報の T2EX用の設定に関しては「T2EX仕様書」および「T2EX実装
  379:        仕様書」を参照してください。
  380: 
  381: --------------------------------------------------
  382: 4.5 アプリケーションの構築
  383: --------------------------------------------------
  384: 
  385: T2EXのユーザアプリケーションは、T2EX システムとリンクされ、実行時には1つのオブ
  386: ジェクトになります。
  387: 
  388: 通常は、$BD/kernel/sysmain/src ディレクトリ内のプログラムに書き替えや追加を行
  389: う形で、アプリケーションプログラムを記述します。サンプルとして、以下のファイル
  390: が含まれていますので、参考にしてください。
  391: 
  392:     usermain_t2ex.c
  393:         アプリケーションの初期タスクで実行されるプログラムです。
  394:         デバイスドライバ、およびT2EX機能の初期化処理を実行して、appl_main() を
  395:         呼び出します。
  396: 
  397:     appl_main.c
  398:         カレンダ時刻のRTCハードウェアとの同期処理、およびデバッグコンソールから
  399:         の入力によるコマンド処理を行います。
  400: 
  401:     command.c
  402:         日付時刻やファイルに関する基本的なコマンドの処理を行います。
  403:         また、T-Kernelのリソースの状態を表示する機能も入っています。
  404:         "?" によりコマンドの簡単なヘルプを表示します。
  405: 
  406:     ref_command.c
  407:         T-Kernelのリソースの状態を表示する ref コマンドの処理部分です。
  408:         command.c にインクルードされます。
  409: 
  410:     network_sample/*
  411:         T2EX ネットワーク機能をテストするためのサンプルプログラムです。
  412:         "net" コマンドにより実行できます。実行の際は、インターネットに接続可能
  413:         な DHCP サーバのあるネットワーク環境に接続する必要があります。
  414: 
  415: 本パッケージで実装されている T2EX の各機能の詳細説明や制限事項などにつきまして
  416: は、「T2EX実装仕様書」を参照してください。
  417: 
  418: 
  419: 以上