1 ===============================================================
2 TOPPERS/ASPを使ってもっと便利に小規模組み込み開発
3 TraceLogVisualizer(TLV)を使ってカーネル動作を確認しよう
4 ===============================================================
7 README.1stとREADME.2ndで示したように、Cortex-M3を使った小規模
8 組み込みシステムの実現に関する幾つかのトピックを扱いました。
10 ここでは先に取り上げたLPCXpresso IDE上での開発、Natural Tiny
11 Shellを使ったデバッグ環境に加えて、TOPPERSプロジェクトが公開
12 しているTraceLog Visualizer(TLV)を使った動作確認方法について
17 TraceLogVisualizerの企画、開発、公開を行なってくださった方々に
18 感謝致します。このような興味深いツールを無償で公開して頂いた事
23 ベースとなっているのは@suikan_blackfinさんがポーティングされた
24 TOPPERS/ASP for LPCです。
25 これに加えて公開されている最新のTLVを組み込む形をとっています。
27 * http://www.toppers.jp/tlv.htmlからTLV_1.2.zipをダウンロード。
28 (http://www.toppers.jp/download.cgi/TLV_1.2.zip)
29 * ダウンロードしたファイルを展開してlogtrace/aspの内容をコピー。
30 * コピーしたファイルのtrace_config.hの中で定義されているトレース
31 ログバッファのサイズをCortex-M3のRAMサイズを考慮して小さくする。
33 $INCLUDE"arch/logtrace/tlv.tf"$
34 * Makefileのトレースを有効にする。
36 * コンフィギュレーションファイルに以下を追加。
37 #include "logtrace/trace_config.h"
38 ATT_INI({ TA_NULL, TRACE_STOP, trace_initialize });
39 ATT_TER({ TA_NULL, target_fput_log, trace_dump });
40 * trace_config.hで指定されているLOG_TEX_LEAVEの引数を1つに修正。
42 * trace_config.hで定義されている以下の定義をコメントアウト。
43 これはGUIで「指定されたリソース(CPUExceptionHandler(id==21))が
44 見つかりません。」といった内容の例外が発生する事に対する暫定的
46 本来正しくはルールファイルの修正が必要と思う。
47 #define LOG_EXC_ENTER(excno) trace_1(LOG_TYPE_EXC|LOG_ENTER, excno)
48 #define LOG_EXC_LEAVE(excno) trace_1(LOG_TYPE_EXC|LOG_LEAVE, excno)
49 * syssvc/syslog.hのTCNT_SYSLOG_BUFFERを64に変更。
50 * syssvc/logtask.hのLOGTASK_STACK_SIZEを512に変更。
56 trace_sta_log(TRACE_AUTOSTOP);を呼ぶとトレースが開始されます。
57 バッファサイズが一杯になった時点で自動的に停止します。
58 ext_ker();を呼ぶとカーネルを終了させることができます。
59 この時、コンフィギュレーションファイルでATT_TERしたtrace_dumpが
60 呼ばれ、システムコンソールにトレース結果が出力されます。
63 [37182007] task 1 becomes RUNNABLE.
64 [37182019] dispatch to task 1.
65 [37182026] leave from dly_tsk ercd=0.
66 [37182034] enter to dly_tsk dlytim=10.
67 [37182047] task 1 becomes WAITING.
68 [37182053] dispatch from task 1.
69 [37193007] task 1 becomes RUNNABLE.
70 [37193019] dispatch to task 1.
71 [37193026] leave from dly_tsk ercd=0.
72 [37193034] enter to dly_tsk dlytim=10.
73 [37193047] task 1 becomes WAITING.
74 [37193053] dispatch from task 1.
75 [37204007] task 1 becomes RUNNABLE.
77 システムコンソールに出力されたトレース結果をテキストファイルと
78 して保存して下さい。例えば、kernel.logのような感じです。
80 トレース機能を組み込んだカーネルをビルドするとリソースファイル
81 というものが生成されています。これはkernel.resのような名前で
93 "task" :"task_ledblink",
100 上記の「トレース結果のファイル」と「リソースが記述されたファイル」
101 をTOPPERSプロジェクトが公開しているファイルに読み込ませることで
102 カーネル動作を可視化させることができるようになっています。
106 * LinuxホストとWindowsホストを用意します。
107 (あるいはWindows上でVMware Playerを使ってLinuxを動作させます。)
108 * LPCXpresso IDEはLinux上で動作させます。
109 * ビルド時に生成されたリソースファイルをWindowsホストにコピーします。
110 * UART出力をUSB-シリアル変換ケーブルを利用してWindowsホストに接続
112 * 出力されたトレースログをファイル化してGUIで観察します。
116 このプロジェクトに関するお問い合せは下記までお願いします。
120 shinta.main.jp@gmail.com
121 http://shinta-main-jp.blogspot.com/