J'ai un script de liaison qui commenceComment placer les variables dans la banque d'accès - script de liaison PIC 18 MPASM
INCLUDE 18f14K50_g.lkr
Je veux que mes variables de service d'interruption pour aller dans la banque ACCESS. (Mon programme est si petit pour le moment, mais peut-être à l'avenir ...). Alors
SECTION NAME=VarsModemISR RAM=accessram
qui se traduit par:
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
examen du dossier inclus Je crois qu'il est. Soit ça ou je travaille en mode étendu et "gpre" est. Je peux utiliser un #IFDEF pour vérifier, que j'ai essayé. Le résultat, il essayait d'utiliser "accessram" pas "gpre".
Peut-être que si je tente de définir la banque d'accès explicitement en copiant la ligne du fichier include:
ACCESSBANK NAME=accessram START=0x0 END=0x5F
SECTION NAME=VarsModemISR RAM=accessram
Il en résulte l'erreur
MPLINK 4.39, Linker
Device Database Version 1.1
Copyright (c) 1998-2011 Microchip Technology Inc.
Error - duplicate definition of memory 'accessram'
Errors : 1
qui m'a confondu. Selon la documentation de l'assembleur/éditeur de liens, j'utilise SECTION avec l'option RAM, où la RAM a déjà été déclarée en utilisant ACCESSBANK, SHAREBANK ou DATABANK. Ça devrait marcher.
Merci - Richard
Ce serait bien car je suis en train de régler A manuellement. Cela code cependant les emplacements dans le code, où j'ai utilisé l'éditeur de liens pour le faire. J'ai plusieurs fichiers sources donc la localisation tardive est sympa. Je vais essayer udata_acs et laisser de côté la déclaration SECTION - ça sonne comme si c'était le bon moyen de le faire. –
Bien sûr, c'est la seule façon raisonnable de le faire ... :) –
Cela a fonctionné. En raison des contraintes d'espace dans le commentaire, je publie l'information complète comme une autre réponse. –