開始するリンカースクリプトがあります
INCLUDE 18f14K50_g.lkr
割り込みサービス変数を ACCESS バンクに入れたいです。(私のプログラムは現時点では非常に小さいですが、将来的には...)。そう
SECTION NAME=VarsModemISR RAM=accessram
その結果:
MPLINK 4.39, Linker
Device Database Version 1.1
Copyright (c) 1998-2011 Microchip Technology Inc.
Error - section 'VarsModemISR' has a memory 'accessram' which is not defined in the linker command file.
Errors : 1
含まれているファイルを調べると、そうであると思います。それか、私は拡張モードで作業しており、「gpre」はそうです。#IFDEF を使用して確認できます。これを試しました。その結果、「gpre」ではなく「accessram」を使用しようとしていました。
インクルード ファイルから次の行をコピーして、アクセス バンクを明示的に定義しようとすると、次のようになります。
ACCESSBANK NAME=accessram START=0x0 END=0x5F
SECTION NAME=VarsModemISR RAM=accessram
これにより、エラーが発生します
MPLINK 4.39, Linker
Device Database Version 1.1
Copyright (c) 1998-2011 Microchip Technology Inc.
Error - duplicate definition of memory 'accessram'
Errors : 1
これは私を混乱させました。アセンブラー/リンカーのドキュメントによると、RAM オプションを指定して SECTION を使用します。ここで、RAM は以前に ACCESSBANK、SHAREBANK、または DATABANK を使用して宣言されています。それはうまくいくはずです。
ありがとう - リチャード