[H8-ML(3762)] Re: スタートアップルーチンのI/O定義
From: "Hiroshi Tada" <tada@xxxxxxxxxxxxxxxxxxxxxxx>
Date: 2003年08月22日(金)13時46分53秒
お世話になってます。多田です。

アドバイスをしてくれました皆さん、ありがとうございました。

Kengo Jinno <kengo@xxxxxxxxxxxx> さんは書きました。
> 仕掛けがあります。
> 日立から提供されているハードウェアマニュアルを見てください。
> 手元にあるのは H8/3048F-ONE のですが、「2.3 アドレス空間」に
>
> |  アドレス空間が1Mバイトモードの場合、実効アドレスの上位4ビットは
> | 無視され、20ビットのアドレスとなります。
>
> とあります。

マニュアルは見たつもりだったのですが、これは見逃していました。
なるほど、24ビットのアドレスを指定しても、1Mバイトモードの時は
20ビットのアドレスとみなされるのですね。



Shigeru Makino <mac@xxxxxxxxxxxxxx> さんは書きました。
> 先ほど、
> ===================================
> コンパイラYCH8のバージョンは4.11です
> コンパイラYCH8Nのバージョンは4.12です
> アセンブラYAH8のバージョンは4.12です
> リンカーのバージョンは2.665です
> ライブラリアンのバージョンは2.610です
> ===================================
> で、実際にやってみて、
> Error : E33 : 絶対アドレスの大きさが規定値を超えています
> と言うエラーが37個発生するのを確認したのですが...

当方は、日立提供のヘッダーファイルでなく自前のヘッダーファイル
を使用しているのですが、24ビットのアドレス定義の場合、
YCオプションの「/A 1Mバイトモードでアセンブラを起動する」の
チェックを入れると上記のエラーが出て、チェックを外すと
エラーなくコンパイルできました。
プロジェクトの設定にあるセグメント定義とメモリマップの設定は、
1Mバイトのアドレス空間に設定しています。

YCオプションの「/A 1Mバイトモードでアセンブラを起動する」の
チェックをしないとエラーなくコンパイルできましたので、
1Mバイトモードの時でも、このオプションをチェックしなくても
良いのですかね?

下記が当方のバージョンです。
===================================
コンパイラYCH8のバージョンは4.05です
コンパイラYCH8Nのバージョンは4.05です
アセンブラYAH8のバージョンは4.10です
リンカーのバージョンは2.663です
ライブラリアンのバージョンは2.610です
===================================



スレッド概略
[3755(R)](起点)
 └[3758(U)]
   └[表示中]
     └[3764(1)]


投稿順に移動
[←前の記事へ(P)]
[→次の記事へ(N)]


リスト表示へ
[このスレッド(T)]
[本記事の前後(L)]