Diferencia entre revisiones de «Errores en Simulacion - Codewarrior 6.3»

De Wikitronica
Saltar a: navegación, buscar
Línea 1: Línea 1:
En el desarrollo de un programa, al momento de una depuracion de un proyecto nos puede salir los siguientes mensajes de error:
+
  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==
  
==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:
  
Si el Programa Principal es muy largo y se emplea el manenejo de subrrutinas a traves del comando BRS (Branch Subrutine) y las mismas son coloadas al final del codigo del programa principal, se puede presentar el siguiente mensaje de error: "" Error: Axxx: Value out of range -128...127"" es debido a un problema en los saltos a las subrrutinas (BRS) que vamos a utilizar en nuestro programa. Debemos recordar que el comando BSR maneja un relativo, el cual permite realizar los saltos a una rutina deseada, este desplazamiento esta ubicado en el rango de 80 - 7F (-128 -- 127), ya que el mismo puede realizar el Branch para arriba o abajo (Dependiendo el caso).
+
 
 +
                '''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 dos tipos de soluciones para este caso:
+
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:
  
a. Si
+
    MOV #10, Contador
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. Por ejemplo:
+
     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

Contributors

CeMoron, Nsroger, Racuna