(toppers-users 3934) Re: FMPサンプル実行に関するパラメタ設定

Shinya Honda honda @ ertl.jp
2012年 3月 1日 (木) 13:48:00 JST


葛坂さん

本田です.

メモリマップを見ると,ベクターアドレスが0x00000000から配置されていないで
すね.KAM-CA9はハードウェアのリマップ機能でDDRを0x00000000に配置して使っ
ています.

kzm_ca9_gcc/target_config.c の60行目からを次のように変更して下さい.

DDR_SIZEは最終的にはシミュレーションモデルの設定に合わせて下さい.

----------------------------------------------------------------------
/*
 * メモリのベースアドレスとサイズ
 */
#define DDR_ADDR 0x60000000
#define DDR_SIZE 0x04000000 /* 64MB */


/*
 * メモリマップの初期化(chip依存部から呼び出される)
 * 同時にキャッシュも有効にする
 */
void
target_mmu_init(void)
{
	MEMORY_ATTRIBUTE m_attribute;

	/*
	 *  Enable caching for the DDR
	 */
	m_attribute.pa   = DDR_ADDR;
	m_attribute.va   = m_attribute.pa;
	m_attribute.size = DDR_SIZE;
	m_attribute.s    = 1;		  /* 共有		 */
	m_attribute.ap   = 3;		  /* フルアクセス */
	m_attribute.tex  = 1;		  /* Outer and Inner */
	m_attribute.c    = 1;		  /* Inner Write-Back, Write Allocate */
	m_attribute.b    = 1;

	mmu_map_memory(&m_attribute);

	/*
	 *  ベクターテーブルを0x0000に置くため,DDRを
	 *  0x0000から配置する
	 */
	m_attribute.pa   = DDR_ADDR;
	m_attribute.va   = 0x00000000;
	m_attribute.size = DDR_SIZE;
	m_attribute.ap   = 3;          /* フルアクセス */
	m_attribute.tex  = 1;          /* Outer and Inner */
	m_attribute.c    = 1;          /* Inner Write-Back, Write Allocate */
	m_attribute.b    = 1;

	mmu_map_memory(&m_attribute);
}

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

(2012/03/01 13:10), masato.kuzusaka.bh @ hitachi.com wrote:
> 本田様
> 
> 葛坂です。
> 早急な回答感謝いたします。
> 
>> 1. arm-none-eabi-nm.exe -n fmp.exe の実行結果
> 添付(arm-none-eabi-nm.txt)致しました。
> 
>> 2. シミュレーションモデルのUART0の割込み番号
> Cortex-A9MPのSPI84に接続しております。
> 
>> 3. fmp.exeと同じフォルダにあるkernel_cfg.cの _kernel_prc1_inh_table[]の
>>    内容.
> 添付(kernel_prc1_inh_table.txt)致しました。
> 
>> 4. _kernel_irq_handler にブレークポイントを置いて,FMPを実行して,
>>    _kernel_irq_handler が実行されるか.
> kernel_irq_handlerには入っていないようです。
> 
> 以上お手数をお掛けして恐縮ですがよろしくお願いします。
> 
> 
>> 送信者: honda @ ertl.jp
>> 主題: Re: (toppers-users 3930) Re: FMPサンプル実行に関するパラメタ設定
>> 受信日: 12/03/01 12:35
>> 属性: なし
>>
>> 葛坂さん
>>
>> 本田です.
>>
>> (2012/03/01 11:44), masato.kuzusaka.bh @ hitachi.com wrote:
>>> 少し進みまして、以下で止まっている状態です。
>>> (#define TASK_LOOP 1000定義済)
>>>
>>> :
>>> local_inirtn exinf = 1, counter = 1
>>> System logging task is started on port 1.
>>>
>>>
>>> デバッガで確認したところ、sampe1.cのmain_task関数で何らかの
>>> エラーが発生しているようです。doループには入っています。
>>>
>>> ちょっと解らないことがあります。
>>> main_task関数の先頭で以下のステップでメッセージを出力しているものと思われますが
>>> UARTの出力には出てきていません。
>>> 最初の起動メッセージが出力されていれば出るはずとの認識ですが違いますか?
>>>
>>> syslog(LOG_NOTICE, "Sample program starts (exinf = %d).", (int_t) exinf);
>> main_task関数の先頭のログ出力からは,ログタスク経由の出力になります.ロ
>> グタスク経由の出力には,割込みが正しく設定されている必要があります(直前
>> の"SVC_PERROR(syslog_msk_log.."で切り替えています).
>>
>> 現状の状況から割込み関連の設定が正しくない可能性が高いです.
>>
>> 以下を情報をもらえないでしょうか.
>>
>> 1. arm-none-eabi-nm.exe -n fmp.exe の実行結果
>> 2. シミュレーションモデルのUART0の割込み番号
>> 3. fmp.exeと同じフォルダにあるkernel_cfg.cの _kernel_prc1_inh_table[]の
>>    内容.
>>
>> また,デバッガが使えるようでしたら,次の事項を確認して下さい.
>>
>> 4. _kernel_irq_handler にブレークポイントを置いて,FMPを実行して,
>>    _kernel_irq_handler が実行されるか.
>>
>> 以上,よろしくお願いします.
>>
>>>
>>> 以上よろしくお願いします。
>>>
>>>> 送信者: honda @ ertl.jp
>>>> 主題: Re: (toppers-users 3930) Re: FMPサンプル実行に関するパラメタ設定
>>>> 受信日: 12/03/01 10:24
>>>> 属性: なし
>>>>
>>>> 葛坂様
>>>>
>>>> 本田です.
>>>>
>>>> 起動は上手くいっているようです.
>>>>
>>>> この後は何も出力されないでしょうか?
>>>>
>>>> この後動作するサンプルプログラムでは,一定時間のビジーループの後,タスク
>>>> がログを出力します.
>>>>
>>>> シミュレーション環境ですとビジーループが長すぎる場合があるので,
>>>> sampe1.c の先頭で
>>>>
>>>> #define TASK_LOOP 1000
>>>>
>>>> と定義すると良いかと思います.1000は,出力の周期に合わせて調整して下さい.
>>>>
>>>> 以上,よろしくお願いします.
>>>>
>>>> (2012/02/29 16:19), masato.kuzusaka.bh @ hitachi.com wrote:
>>>>> 本田様、みなさま
>>>>>
>>>>> 日立情報通信エンジニアリング(株)の葛坂です。
>>>>> お世話になっています。
>>>>>
>>>>> #間髪いれずにすみません。
>>>>>
>>>>> 仮想環境でFMPのサンプルが起動し仮想UARTに以下のメッセージが出ました。
>>>>> FMPのサンプルの正しい動きがわからないのですが、これは正しく動作して
>>>>> いるのでしょうか?
>>>>>
>>>>>
>>>>> TOPPERS/FMP Kernel Release 1.2.0 for KZM_CA9(MPCORE) (Feb 29 2012, 16:05:03)
>>>>>
>>>>> 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
>>>>>
>>>>>
>>>>>
>>>>> Processor 1 start.
>>>>>
>>>>> local_inirtn exinf = 1, counter = 1
>>>>>
>>>>> 以上よろしくお願いします。
>>>>>
>>>>>> 送信者: 葛坂_将人
>>>>>> 主題: (toppers-users 3929)FMPサンプル実行に関するパラメタ設定
>>>>>> 受信日: 12/02/29 15:42
>>>>>> 属性: なし
>>>>>>
>>>>>> 本田様、みなさま
>>>>>>
>>>>>> 日立情報通信エンジニアリング(株)の葛坂です。
>>>>>> お世話になっています。
>>>>>>
>>>>>> KZM-CA9-01仮想環境にてFMPサンプルの実行を行っています。
>>>>>> 現在、コマンドトレースで実行結果を見ていますが、
>>>>>> kzm_ca9.c内のUARTの初期化処理:kzm_ca9_uart_init()を抜けないでいる状況です。
>>>>>>
>>>>>> UARTの初期化処理は割り込みなどが絡んでくるため、チップの
>>>>>> 設定を確認しようと思っています。
>>>>>>
>>>>>> そこで質問なのですが、仮想環境のチップのプロパティは
>>>>>> KZM-CA9-01の仕様通り、Cortex-A9 MPCore×4の設定をしております。
>>>>>>
>>>>>> FMPのサンプルを作成する際に必要となるパラメタに関し、
>>>>>> 現在は、以下の設定をしています。
>>>>>> Makefile:
>>>>>>   PRC_NUM = 1
>>>>>>   ENABLE_G_SYSLOG = true
>>>>>>
>>>>>> これらの他に何か必要な設定はございますでしょうか。
>>>>>>
>>>>>> MPCore依存部マニュアルを見ると、__TARGET_ARCH_ARMマクロや
>>>>>> TMPRC_INDEXマクロ、MPCORE_PMR_BASEマクロの設定が必要の
>>>>>> ようですが、どこに定義すれば良いのでしょうか。
>>>>>>
>>>>>> 以上よろしくお願いします。
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>>