M16C/60のコンパイル

18年くらい前の製品にM16C/62Aを使用した製品があり、今回ファームを触ることになりました。

当時はTMという三菱製統合開発環境を使用していてその環境(パソコン)がないので新たにWinXPにTMの試用版を入れてとりあえずコンパイルしてみました。

すると外部参照してる関数のサブルーチン分岐の飛び先が見つからないようなエラーが発生しています。

ソース

;=======================================
; Initialize standard I/O
;---------------------------------------------------------------------
    .GLB    _init
    .CALL    _init,G
    JSR.A    _init

コメントからstdio.hを初期化?するためのサブルーチンなのですが、いくつかのソースファイルを探しても見つかりません。

どなたかわかる方おられないでしょうか?ご教授ください。

  • M16C のことはなんもわからんのですが、適当にぐぐると見つかる FAQ に

    『FAQ 104333 : デバッグ作業中に「Communication Timeout Error」が表示され、デバッグが中断してしまいます。』
    ja-support.renesas.com/.../17796389
    > なお、CコンパイラM3T-NC30WAのサンプルスタートアッププログラム
    > (ncrt0.a30)では、 標準入出力関数(init関数)を使用する設定になっています。
    > これが設定されている場合、UART1が初期化されます。
    >
    > 以下の方法で、標準関数入出力初期化処理を無効にしてください。
    (略)

    とか書いてあるので

    init() がプロジェクトに存在しない
    → UART1 を標準入出力に使っていない
     → FAQ の説明に従い無効化すればおk

    ということではないかと思います。