(toppers-users 3940) Re: TOPPERS/FMPカーネルのトレースログの取得
masato.kuzusaka.bh @ hitachi.com
masato.kuzusaka.bh @ hitachi.com
2012年 3月 5日 (月) 15:03:47 JST
本田様
葛坂です。いつもお世話になっています。
下記、(1)〜(3)の作業を行って実行しましたが、
ログが出力されません。足りない作業があるのでしょうか。
(1)asp/kernel/kernel.tf の最後に以下を追加.
$INCLUDE"arch/logtrace/tlv.tf"$
(2)Makefile
ENABLE_TRACE = true
(3)sample1.cfgの最後に以下を追加.
#include "logtrace/trace_config.h"
ATT_INI({ TA_NULL, TRACE_AUTOSTOP, trace_initialize});
ATT_TER({ TA_NULL, target_fput_log, trace_dump});
もう一点、サンプルが"Q"コマンドで正常に完了しないと出力されないと思い、
"Q"コマンドを入力したところ、下記のように一旦サンプルが終了した後に
再びFMPが起動されているように見えますが、これはこちらのプロセッサモデルの
影響でしょうか。
以下はサンプルを起動後に、TASK2に切替えてから"Q"コマンドを入力したログです。
:
:
task1_2 is running (16696). +
task1_2 is running (16697). +
task1_2 is running (16698). +
Sample program ends.
local_terrtn exinf = 1, counter = 2
[0]:[1]:
TOPPERS/FMP Kernel Release 1.2.0 for KZM_CA9(MPCORE) (Mar 5 2012, 14:34:32)
Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
Toyohashi Univ. of Technology, JAPAN
Copyright (C) 2004-2011 by Embedded and Real-Time Systems Laboratory
Graduate School of Information Science, Nagoya Univ., JAPAN
[0]:[1]: Processor 1 start.
[0]:[1]: local_inirtn exinf = 1, counter = 1
[0]:[1]: dispatch to task 1.
[0]:[1]: enter to sns_dpn.
[0]:[1]: leave from sns_dpn state=0.
[0]:[1]: enter to dis_dsp.
[0]:[1]: leave from dis_dsp ercd=0.
[0]:[1]: enter to loc_cpu.
[0]:[1]: leave from loc_cpu ercd=0.
[0]:[1]: enter to ena_int intno=84.
[0]:[1]: leave from ena_int ercd=0.
[0]:[1]: enter to unl_cpu.
[0]:[1]: leave from unl_cpu ercd=0.
[0]:[1]: enter to ena_dsp.
[0]:[1]: leave from ena_dsp ercd=0.
[0]:[1]: System logging task is started on port 1.
[0]:[1]: enter to sns_dpn.
[0]:[1]: leave from sns_dpn state=0.
:
:
以上よろしくお願いします。
>送信者: honda @ ertl.jp
>主題: Re: (toppers-users 3935) TOPPERS/FMPカーネルのトレースログの取得
>受信日: 12/03/01 22:59
>属性: なし
>
>葛坂さん
>
>本田です.
>
>(2012/03/01 16:53), masato.kuzusaka.bh @ hitachi.com wrote:
>> (1)Makefile
>> ENABLE_TRACE = trueにするとmake時にエラーが出ます。
>> 対処方法を教えてください。
>>
>> ../arch/logtrace/trace_config.c: In function 'trace_initialize':
>> ../arch/logtrace/trace_config.c:74:2: warning: implicit declaration of function
>> '_kernel_scu_counter_init' [-Wimplicit-function-declaration]
>> ../arch/logtrace/trace_config.c: In function 'trace_wri_log':
>> ../arch/logtrace/trace_config.c:109:3: warning: implicit declaration of function
>> 'scu_counter_get_current' [-Wimplicit-function-declaration]
>> ../arch/logtrace/trace_config.c:109:21: error: 'CORE_CLK' undeclared (first use
>> in this function)
>> ../arch/logtrace/trace_config.c:109:21: note: each undeclared identifier is repo
>> rted only once for each function it appears in
>> make: *** [trace_config.o] Error 1
>これはkzm-ca9の不具合です.ARM11ではSCUにカウンタがあり,その値をトレー
>スログの取得時のタイムスタンプとして使用していましたが,Cortex-A9にはこ
>のカウンタは存在しないので,他の方法でタイムスタンプを取得する必要があり
>ます.
>
>精度はmsecになりますが,以下の変更でカーネル内のティックをタイムスタンプ
>に使用します.精度を高めたい場合は,フリーランニングタイマ等を用意し
>て,TRACE_GET_TIM()マクロで読み込めばよいです.
>
>target/kzm_ca9_gcc/kzm_ca9.h : 154/155行目をコメントアウト
>
>/*
> * トレースログに関する定義
> * SCUを用いる.
> */
>//#define TRACE_HW_INIT() scu_counter_init()
>//#define TRACE_GET_TIM() ((scu_counter_get_current() * 1000) / CORE_CLK)
>
>
>arch/logtrace/trace_config.h : 77行目変更
>
>/*
> * トレース時刻の取得方法
> */
>#ifndef TRACE_GET_TIM
>#define TRACE_GET_TIM() (get_my_current_time())
>#endif /* TRACE_GET_TIM */
>
>次のリリースでは何らかの対応をしたいと思います.
>
>
>>
>> (2)user.txt
>> 「11.6x トレースログ記録のサンプルコードの使用方法」にある
>> システムコンフィギュレーションファイルに次のような記述を追加すると
>> ありますが、システムコンフィギュレーションファイルとは
>> sample1.cfgでよいでしょうか。
>はい,sample1.cfg で良いです.
>
>以上,よろしくお願いします.
>
>