source: asp_wo_cfg/trunk/README.txt@ 62

Last change on this file since 62 was 62, checked in by ertl-hiro, 10 years ago

ASP Release 1.9.0 への追従。

  • Property svn:keywords set to Id
File size: 3.9 KB
Line 
1
2 TOPPERS/ASP Kernel without Configurator(Release 1.9.0)
3 Toyohashi Open Platform for Embedded Real-Time Systems/
4 Advanced Standard Profile Kernel
5
6TOPPERS/ASPカーネル without Configurator(以下,ASP_WO_CFGカーネル)は,
7コンフィギュレータなしでTOPPERS/ASPカーネルを使いたいという要望に対応し
8て,ASPカーネルを改造して作成したものです.改造にあたっては,ASPカーネ
9ルの動的機能生成拡張パッケージのコードも活用しました.
10
11【使用方法】
12
13ASP_WO_CFGカーネルのユーザーズマニュアルを用意する予定はありません.ま
14ずは,サンプルプログラム(sampleディレクトリの下のファイル)を,ASPカー
15ネルのものと比較することで,使い方を把握して下さい.
16
17カーネルオブジェクトの数を定義するkernel_cfg.hファイルと,カーネルオブ
18ジェクトのIDを定義するkernel_id.hファイルは,アプリケーション側で用意し
19てください.kernel_cfg.cは,カーネル側で用意しているものをそのまま使用
20してください.
21
22初期化処理と終了時処理は,アプリケーション側で以下の名称で用意して下さ
23い.
24
25 void inirtn(void);
26 void terrtn(void);
27
28カーネルオブジェクトの生成は,システムコンフィギュレーションファイルに
29静的APIを記述する代わりに,初期化処理(inirtn)から以下のサービスコール
30を呼び出すことで行います.これらのサービスコールは,初期化処理の中での
31み呼び出すことができます(カーネルの起動後は呼び出せません).
32
33 ER cre_tsk(ID tskid, const T_CTSK *pk_ctsk);
34 ER cre_sem(ID semid, const T_CSEM *pk_csem);
35 ER cre_flg(ID flgid, const T_CFLG *pk_cflg);
36 ER cre_dtq(ID dtqid, const T_CDTQ *pk_cdtq);
37 ER cre_pdq(ID pdqid, const T_CPDQ *pk_cpdq);
38 ER cre_mbx(ID mbxid, const T_CMBX *pk_cmbx);
39 ER cre_mpf(ID mpfid, const T_CMPF *pk_cmpf);
40 ER cre_cyc(ID cycid, const T_CCYC *pk_ccyc);
41 ER cre_alm(ID almid, const T_CALM *pk_calm);
42 ER cfg_int(INTNO intno, const T_CINT *pk_cint);
43 ER att_isr(const T_CISR *pk_cisr);
44 ER def_inh(INHNO inhno, const T_DINH *pk_dinh);
45 ER def_exc(EXCNO excno, const T_DEXC *pk_dexc);
46
47【質問・バグレポート・意見等の送付先】
48
49ASP_WO_CFGカーネルに対するご意見・ご質問等は,TOPPERSユーザーズメーリン
50グリスト(users@toppers.jp)宛にお願いします.
51
52TOPPERSユーザーズメーリングリストへの登録方法については,以下のページに
53説明があります.
54
55 http://www.toppers.jp/community.html
56
57【ポーティングにあたって】
58
59ASPカーネルのターゲット依存部に対して,以下の修正が必要です.
60
61(1) 割込み要求ライン属性の設定方法と,割込みハンドラおよびCPU例外ハンド
62ラの登録方法が,大幅に変更されています.cfg_int,def_inh,def_excの各サー
63ビスコールは,カーネル内の標準的なデータ構造に登録内容を書き込みます.
64それらの処理が終わった後,カーネルの起動前に,ターゲット依存部の
65target_prepare が呼ばれます.
66
67 void target_prepare(void)
68
69target_prepareの中では,カーネル内の標準的なデータ構造を読み込んで,割
70込み要求ラインの属性の設定と,割込みハンドラおよびCPU例外ハンドラの登録
71処理を行って下さい.
72
73この変更に伴って,以下のマクロと関数(または,それに変わるマクロと関数
74など)は不要になります.
75
76 void x_config_int(INTNO intno, ATR intatr, PRI intpri)
77
78 INT_ENTRY(inhno, inthdr)
79 INTHDR_ENTRY(inhno, inhno_num, inthdr)
80 void x_define_inh(INHNO inhno, FP int_entry)
81
82 EXC_ENTRY(excno, exchdr)
83 EXCHDR_ENTRY(excno, excno_num, exchdr)
84 void x_define_exc(EXCNO excno, FP exc_entry)
85
86(2) cre_tsk,att_isr,cfg_int,def_inh,def_excでターゲット依存にエラー
87チェックを行うための以下の関数が必要になります.ターゲット依存にチェッ
88クすべきエラーがない場合には,こららの関数を,常にE_OKを返す関数として
89実装してください.
90
91 ER target_check_ctsk(ID tskid, const T_CTSK *pk_ctsk)
92 ER target_check_aisr(const T_CISR *pk_cisr)
93 ER target_check_cint(INTNO intno, const T_CINT *pk_cint)
94 ER target_check_dinh(INHNO inhno, const T_DINH *pk_dinh)
95 ER target_check_dexc(EXCNO excno, const T_DEXC *pk_dexc)
96
97(3) ターゲット依存部にコンフィギュレーションファイル(例えば,
98target_timer.cfgやtarget_serial.cfg)があった場合,その内容を,初期化処
99理(例えば,target_timer_initializeやsio_initialize)に追加します.
100
101また,コンフィギュレータを使わないとい趣旨からは,offset.hの自動生成も
102使わないのが望ましいと考えます.ターゲット毎にoffset.hを準備する方法を
103推奨します.
104
105以上
Note: See TracBrowser for help on using the repository browser.