Diferencia entre revisiones de «Errores en Simulacion - Codewarrior 6.3»
Línea 1: | Línea 1: | ||
− | En el desarrollo de un programa, al momento de una | + | Normal 0 21 false false false ES-PE X-NONE X-NONE MicrosoftInternetExplorer4 En el desarrollo de un programa, al momento de una depuración de un proyecto nos puede salir los siguientes mensajes de error: |
+ | ==Error Fuera de Rango== | ||
− | + | Si el Programa Principal es muy largo y se emplea el manejo de subrutinas a través del comando BRS (Branch Subrutine) y las mismas son colocadas al final del código del programa principal, se puede presentar el siguiente mensaje de error: | |
− | + | ||
+ | '''Error: Axxx: Value out of range -128...127''' | ||
+ | |||
+ | |||
+ | |||
+ | Esto es debido a que el comando BSR maneja un relativo, el cual permite realizar los saltos a una rutina deseada con un desplazamiento ubicado en el rango de 80 - 7F (-128 … 127), ya que el mismo puede realizar el Branch para arriba o abajo (Dependiendo el caso). | ||
====Soluciones==== | ====Soluciones==== | ||
− | Se pueden establecer | + | Se pueden establecer tres tipos de soluciones para este caso: |
+ | |||
+ | a. Si el Código principal es muy largo, se debe definir las subrutinas justo después de las llamadas con BSR, una vez realizada cada una de estas realizamos un BRA al código principal | ||
+ | |||
+ | <syntaxhighlight lang="c"> | ||
+ | Configuracion: | ||
+ | |||
+ | BSR Configurar_GPIO | ||
+ | BSR Configurar_RTC | ||
+ | BRS Configurar_TPM | ||
+ | BRS Configurar_IRQ | ||
+ | CLI | ||
+ | BRA main | ||
+ | |||
+ | Configurar_GPIO: | ||
+ | |||
+ | LDA #$3F | ||
+ | STA PTCDD | ||
+ | LDA #$C0 | ||
+ | STA PTEDD | ||
+ | |||
+ | LDA #$3F | ||
+ | STA PTCD | ||
+ | LDA #$C0 | ||
+ | STA PTED | ||
+ | |||
+ | RTS | ||
+ | |||
+ | BSR Configurar_RTC | ||
+ | . | ||
+ | . | ||
+ | . | ||
+ | |||
+ | RTS | ||
+ | |||
+ | BRS Configurar_TPM | ||
+ | |||
+ | . | ||
+ | . | ||
+ | . | ||
+ | |||
+ | RTS | ||
+ | |||
+ | BRS Configurar_IRQ | ||
+ | |||
+ | . | ||
+ | . | ||
+ | . | ||
+ | |||
+ | RTS | ||
+ | |||
+ | main: | ||
− | + | MOV #10, Contador | |
− | + | MOV #1, Num1 | |
+ | MOV #2, Num2 | ||
+ | </syntaxhighlight> | ||
Revisión del 19:28 24 mar 2013
Normal 0 21 false false false ES-PE X-NONE X-NONE MicrosoftInternetExplorer4 En el desarrollo de un programa, al momento de una depuración de un proyecto nos puede salir los siguientes mensajes de error:
Error Fuera de Rango
Si el Programa Principal es muy largo y se emplea el manejo de subrutinas a través del comando BRS (Branch Subrutine) y las mismas son colocadas al final del código del programa principal, se puede presentar el siguiente mensaje de error:
Error: Axxx: Value out of range -128...127
Esto es debido a que el comando BSR maneja un relativo, el cual permite realizar los saltos a una rutina deseada con un desplazamiento ubicado en el rango de 80 - 7F (-128 … 127), ya que el mismo puede realizar el Branch para arriba o abajo (Dependiendo el caso).
Soluciones
Se pueden establecer tres tipos de soluciones para este caso:
a. Si el Código principal es muy largo, se debe definir las subrutinas justo después de las llamadas con BSR, una vez realizada cada una de estas realizamos un BRA al código principal
Configuracion:
BSR Configurar_GPIO
BSR Configurar_RTC
BRS Configurar_TPM
BRS Configurar_IRQ
CLI
BRA main
Configurar_GPIO:
LDA #$3F
STA PTCDD
LDA #$C0
STA PTEDD
LDA #$3F
STA PTCD
LDA #$C0
STA PTED
RTS
BSR Configurar_RTC
.
.
.
RTS
BRS Configurar_TPM
.
.
.
RTS
BRS Configurar_IRQ
.
.
.
RTS
main:
MOV #10, Contador
MOV #1, Num1
MOV #2, Num2
Pantalla en blanco en el True-Time Simulator & Real-Timer Debugger
Modos de direccionamiento