(toppers-users 3070) [JSP/H8]内臓RAMのアドレス
中村和博
norichan1108 @ gmail.com
2010年 2月 13日 (土) 08:18:01 JST
おはようございます。中村です。
すでにH8/300Hはサポート対象外だったと思いますが、不具合?と思わしきものが
ありましたので一応報告しておきます。
h8_3069f.hの最後の方で定義されている、内臓RAMの開始位置の定義ですが、
#define H8IN_RAM_BASE 0xffbf10
#define H8IN_RAM_SIZE 0x004000
と、0xffbf10からとなっています。
手元の、3069fのハードウェアマニュアルには、
-- 引用ここから --
17.1 概要
H8/3069F は16k バイトのスタティックRAM を内蔵しています。RAM はCPU と16 ビッ
ト幅のデータバスで接続されており、アクセスはバイトデータ、ワードデータにかかわら
ず2 ステートで行われます。したがって、データの高速転送が可能です。
H8/3069F の内蔵 RAM は、モード 1、2、7 のとき H'FBF20〜H'FFF1F に、モード 3、4、5
のときH'FFBF20〜H'FFFF1F に、割り当てられています。
システムコントロールレジスタ(SYSCR)のRAM イネーブル(RAME)ビットにより
内蔵RAM 有効/無効の制御を行います。
-- 引用ここまで --
と、ffbf20〜ffff1fとなっており、アドレスが16byteずれているようにおもいます。
幸い?外部RAMでプログラムを動作させる限りは、内臓RAMはスタック程度
でしか使っていませんし、内臓RAMの上位から下位に向かって(でいいのかな?
アドレスの若い方に向かって)使うので問題になることは滅多にないようには思いますが。
おそらく、他の3048/3052も同様だとおもいます。