(toppers-users 3943) Re: TOPPERS/FMPカーネルのトレースログの取得

Shinya Honda honda @ ertl.jp
2012年 3月 5日 (月) 19:40:44 JST


葛坂さん

本田です.

*.log は,コンソールの出力をコピーして手動で作成する必要があります.あ
と,fmp.exe があるフォルダに kernel.res というファイルが出来ているはずで
すので,この二つファイルをTLVにドロップすると可視化されるはずです.

以上,よろしくお願いします.

(2012/03/05 18:46), masato.kuzusaka.bh @ hitachi.com wrote:
> 本田様
> 
> 葛坂です。
> 承知しました。
> 
> ということは、*.logと*.tlvファイルが出力されていないということですね。
> ちなみにこの2ファイルは実行ディレクトリに生成されるのでしょうか。
> 
>> 送信者: honda @ ertl.jp
>> 主題: Re: (toppers-users 3935) TOPPERS/FMPカーネルのトレースログの取得
>> 受信日: 12/03/05 17:52
>> 属性: なし
>>
>> 葛坂さん
>>
>> 本田です.
>>
>> ログを見る限りトレースログは出力されています.起動ログに見えるのは,ト
>> レースログに保存された起動ログが出力されているからです.
>>
>> トレースログのフォーマットは次のようになっており,xが時刻,yがプロセッサ
>> IDとなります.
>>
>> [x]:[y]
>>
>> 以上,よろしくお願いします.
>>
>> (2012/03/05 15:03), masato.kuzusaka.bh @ hitachi.com wrote:
>>> 本田様
>>>
>>> 葛坂です。いつもお世話になっています。
>>>
>>> 下記、(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 で良いです.
>>>>
>>>> 以上,よろしくお願いします.
>>>>
>>>>
>>>
>>
>>
>