Field Data Aquision Unit
Development
&counter([total|today|yesterday]); - 0 - 0 - 15
おしらせ†
- TOPPERSカーネルをアップデート1.4.1
- TINETをアップデート1.2.1
TOPPERSアプリケーションの作り方†
TOPPERSディレクトリ直下でconfigureする方法
nservを参考にする方法
本体はtinet/netapp/dbg_cons.c
- Interface誌2003年9月〜連載があった。
- ToppersDevel参照
FDAUアプリケーション†
定数一覧†
定数名 | 値 | 内容 |
SAMPLING_AVG_N | 3 | 平均値個数 |
RAM_VER | 0x218000 | リングバッファバージョン |
RAM_DSIZE | 0x218001 | 要素のサイズ |
RAM_TOP | 0x218002 | リングバッファTOPポインタ |
RAM_BOTTOM | 0x218004 | リングバッファBOTTOMポインタ |
RAM_START | 0x218010 | リングバッファの先頭 |
RAM_END | 0x21fffff | リングバッファの最後 |
グローバル変数†
タスク分割†
タスク名 | 優先度 | ファイル | 起動条件 | 内容 |
fdau_rtc_task | 5 | fdau.c | 常時ループ | RTCを読んで、各タスクを起動する |
fdau_sampling_task | 5 | fdau.c | fdau_rtc_task | サンプリングタスク(移動平均SAMPLING_AVR_N回) |
fdau_logging_task | 5 | fdau.c | fdau_rtc_task | ログタスク(固定RAM領域のリングバッファ) |
fdau_send_task | 5 | fdau.c | fdau_rtc_task | FDML送信タスク |
fdml_client_task | 5 | fdml.c | fdau_sampling_task, fdau_send_task | FDMLクライアントタスク |
fdml_send_task | 5 | fdml.c | データキュー | FDAML変換、HTML化、TCPコネクト、TCP送信 |
fdml_recv_task | 5 | fdml.c | fdml_client_task | HTTPレスポンス処理 |
fdau_cons_task | 5 | fdau.c | シリアル入力 | FDAUタスク(メイン&コンソール) |
fdau_rtc_task†
- RTCを読んで、各タスクを起動する
- サンプリング周期になったらfdau_sampling_taskをwup_taskする。
- ロギング周期になったらfdau_logging_taskをwup_taskする。
- 送信周期になったらfdau_send_taskをwup_taskする。
fdau_sampling_task†
- サンプリングタスク(移動平均SAMPLING_AVR_N回)
- もし、送信イベント状態になっていたら、fdml_client_taskをwup_taskする。
fdau_logging_task†
- ログタスク(固定RAM領域のリングバッファ)
- 最終サンプリングデータをRAMリングバッファに格納する
fdau_send_task†
- FDML送信タスク
- fdml_client_taskをwup_task
fdml_client_task†
- FDMLクライアントタスク
- RAMリングバッファの内容をFDML化する
- fdml_recv_taskをwup_task
- fdml_send_taskをwup_task
fdml_send_task†
- FDAML変換、HTML化、TCPコネクト、TCP送信
fdml_recv_task†
fdau_cons_task†
タスク間通信と同期†
汎用関数†
A/D変換器制御(adc.h, adc.c) |
ER adc_init(void); | A/D変換器初期化 |
ER adc_get(UB ch); | A/D変換値を取得 |
EEPROM関数 (eeprom.h, eeprom.c) |
ER eeprom_init(void); | EEPROM I/Fの初期化 |
ER eeprom_gets(UINT adr, UB *dat, UINT len); | 文字列取得 |
ER eeprom_puts(UINT adr, UB *dat, UINT len); | 文字列書込み |
RTC制御 (rtc.h, rtc.c) |
ER rtc_init(void); | RTC I/F初期化 |
ER rtc_set(TIM tim); | RTCに時刻を設定 |
ER rtc_get(TIM *tim); | RTCから時刻を取得 |
TOPPERSのポーティング†
- システム名fdau10として、config/h8/fdau10を作成
- config/h8/fdau10/release.ld
- RAM領域をCS1に変更
- RAM容量を128Kバイトに変更
- config/h8/fdau10/sys_support.S
- CS1をSRAM領域に変更
- LANC割込みハンドラをIRQ0に変更
- config/h8/fdau10/tinet_sys_config.h
- LANCのベースアドレスを0x400000に変更
- LANCの割り込みをIRQ0に変更
- config/h8/fdau10/Makefile.config
- ROM上で実行させるなら、DBGENVを全てコメントアウト
- H8 to LANC I/Fの変更
- tinet/netdev/if_ed/if_edreg.h
- Makefile内のDBGENV:=は全てコメントアウト
- sample1.cでの動作確認
JSP Kernel Release 1.4 (patchlevel = 0) for FDAU10 (Oct 12 2004, 12:14:16)
Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
Toyohashi Univ. of Technology, JAPAN
System logging task is started on port 2.
Sample program 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). |
キーには反応なし・・・
フロー制御しなければOK。TOPPERSはフロー制御していない様子。
- nservで動作確認
JSP Kernel Release 1.4 (patchlevel = 0) for FDAU10 (Oct 12 2004, 12:17:26)
Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
Toyohashi Univ. of Technology, JAPAN
System logging task is started on port 2.
[CONSOLE:7] started.
[WWW:08,05] started.
[WWW:09,06] started.
[UDP ECHO SRV (NBLK):10,2] started.
[UDP ECHO CLI:11,1] started.
[UDP DISCARD CLI:12,3] started.
[TCP ECHO CLI SND:13,1] started.
[TCP ECHO CLI (NBLK) RCV:14,1] started.
[TCP DISCARD CLI:15,2] started.
[TCP DISCARD SRV:16,4] started.
[TCP ECHO SRV (NBLK) RCV:17,3] started.
[TCP ECHO SRV (NBLK) SND:18,3] started.
[ETHER INPUT: 6] started on MAC Addr: 00:02:cb:01:74:db.
[ETHER OUTPUT:5] started.
TINET Release 1.2 for JSP Kernel Release 1.4 (Oct 12 2004, 08:10:07)
Copyright (C) 2001-2004 by Dep. of Computer Science and Engineering
Tomakomai National College of Technology, JAPAN
[NET/TIMER:2] started.
[TCP OUTPUT:3] started.
[UDP OUTPUT:4] started.
MACアドレスは読めてるけど、キー入力に応答なし
フロー制御しなければOK。TOPPERSはフロー制御していない様子。