(toppers-users 2297) Re: 時間計測とsyslog
Tetsuo TAKAHASHI
tetsu-t @ mbd.ocn.ne.jp
2006年 2月 4日 (土) 17:35:12 JST
高橋です。
#だんだん違う内容になって来たかもしれませんが・・・m(_ _)m
On 2006/02/04, at 13:53, ykominami wrote:
> 小南です.
> SH3/SH4ターゲット依存部のユーザーズマニュアル(doc/sh3.txt)
> の「3.4 メモリマップ」では以下のように記述されています.
> ・Solution Engine
> コード領域を 0x0c003000 〜 0x0c0fffff 約
> 1MB,データ領域を 0x0c100000
> 〜 の約3MB,非タスクコンテキスト用のスタック領域
> を 〜0x0c3fffff に確
> 保している.0x0c000000 〜 0x0c000fff は,
> GDBスタブのワークエリアとなっ
> ており,使用することができない.
> この領域はキャッシュ可能な領域です。
これは、P0領域にあるからと言うお話ですよね。
> ところが、例えば「SH7727ハードウェアマニュアル
> 5.2.1 キャッシュ制御レジスタ
> (CCR)」の説明にはこう書いてあります.
> 「CCRの内容を変更するプログラムは、キャッシングし
> ないアドレス空間に配置して
> ください」
えっと、「SH7750シリーズ ハードウェアマニュアル」を
見ますと、「4.2 レジスタの説明」に
========================================================================
===============
CCRへは、P4領域のH'FF00 001Cとエリア7のH'1F00
001Cからロングワードサイズでアクセス
することが可能です。CCRの各ビットは下記に示すようなキャッ
シュの設定に使われます。したが
って、CCRの書き換えは非キャッシュのP2領域のプログラ
ムのみで行わなければなりません。CCR
更新後に、P0、P1、P3、U0領域へのデータア
クセス命令は、CCR更新命令から4命令以降に配置
してください。
========================================================================
===============
とありますので、これが小南さんのおっしゃる事に該当するのでしょう
か。
> もしstart.Sに来たときにキャッシュが有効になっていると,
> start.Sで一旦
> キャッシュを無効にする操作そのものが、ハードウェアマニュアルに
> 書かれた制約に
> 反することになります。
> しかし、キャッシュが無効になっていれば、どのアドレス空間も
> キャッシングしてい
> ないので制約に反しないことになります。
そうですね。そうすると、上記の通りP2領域にstart.Sの
コードがないといけないと
言う事ですね。と言う事は、当方で作ったテストモジュールのマップを
確認して、
どこに配置されるかを確認すべきであると言う事になりますね。
> これを回避するには、
(snip)
> などが考えられます.
了解しました。
それで、当方で質問する前に一度やった方法は、メインタスクの中で
CCRの値を
設定する様にしてみましたが、これも意味がなかった事になりますね。
> ハードの故障以外にも、こういう可能性が考えられると重います。
はい。了解しました。
--
// Tetsuo TAKAHASHI <tetsu-t @ mbd.ocn.ne.jp>