TODOPIC
Microcontroladores PIC => Todo en microcontroladores PIC => Mensaje iniciado por: nahueldiaz1992 en 05 de Agosto de 2023, 16:20:59
-
Estimados , buenas tardes , como les va ?
Les comento estoy teniendo problemas en darme cuenta que me estoy pasando por alto , ya que intento debuguear un codigo en asemmbler , coloco un par de breakpoints y cuando comienza a simular , directamente se rompen los mismos y da mensaje de error
"Break point at line 18 in file C:/Users/NahuelCDiaz-PC/MPLABXProjects/CODIGO SANTIAGO.X/newAsmTemplate.asm cannot be resolved to a valid program memory address"
y tambien
"No source code lines were found at current PC 0x7d5. Open program memory view to see instruction code disassembly. "
mi consulta es si se me esta pasando algo en el codigo o en la configuracion del MPLAB o el compilador
*MPLABX 6.10
*XC8 pic-as 2.41
*Debug tool simulator
#include <xc.inc>
#define _XTAL_FREQ 4000000;
CONFIG FOSC = INTOSCIO ; Oscillator Selection bits (INTOSC oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN)
CONFIG WDTE = OFF ; Watchdog Timer Enable bit (WDT disabled)
CONFIG PWRTE = OFF ; Power-up Timer Enable bit (PWRT disabled)
CONFIG MCLRE = OFF ; RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is digital input, MCLR internally tied to VDD)
CONFIG BOREN = OFF ; Brown-out Detect Enable bit (BOD disabled)
CONFIG LVP = OFF ; Low-Voltage Programming Enable bit (RB4/PGM pin has digital I/O function, HV on MCLR must be used for programming)
CONFIG CPD = OFF ; Data EE Memory Code Protection bit (Data memory code protection off)
CONFIG CP = OFF ; Flash Program Memory Code Protection bit (Code protection off)
MAIN:
BCF STATUS, 6
BCF STATUS, 5
CLRF PORTA
MOVLW 0x25
MOVWF PORTA
MOVLW 0x02
CLRF PORTB
MOVWF PORTB
LOOP:
MOVLW 0x25
ADDWF PORTA
MOVWF PORTA
DECFSZ PORTB
GOTO LOOP
CLRF PORTB
MOVF PORTA,W
MOVWF PORTB
GOTO MAIN
END
La verdad es que estoy perdido y es para un examen , si a alguien se le ocurre alguna idea de como resolverlo se lo agradeceria .
-
la primera dice que no es una dirección valida por eso puede ser que este roto el punto y la otra de igual modo no puede acceder o esta vacía esa línea pero creo que puede ser por el ensambador que usas que es el pic asm y antes se usaba el mpasm creo pueda ser por hay por que aunque sigue siendo ensamblador si tiene diferencias o que sea que el código es de un pic y este con otro micro en mplab
-
Estimados , buenas tardes , como les va ?
Les comento estoy teniendo problemas en darme cuenta que me estoy pasando por alto , ya que intento debuguear un codigo en asemmbler , coloco un par de breakpoints y cuando comienza a simular , directamente se rompen los mismos y da mensaje de error
"Break point at line 18 in file C:/Users/NahuelCDiaz-PC/MPLABXProjects/CODIGO SANTIAGO.X/newAsmTemplate.asm cannot be resolved to a valid program memory address"
y tambien
"No source code lines were found at current PC 0x7d5. Open program memory view to see instruction code disassembly. "
mi consulta es si se me esta pasando algo en el codigo o en la configuracion del MPLAB o el compilador
*MPLABX 6.10
*XC8 pic-as 2.41
*Debug tool simulator
#include <xc.inc>
#define _XTAL_FREQ 4000000;
CONFIG FOSC = INTOSCIO ; Oscillator Selection bits (INTOSC oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN)
CONFIG WDTE = OFF ; Watchdog Timer Enable bit (WDT disabled)
CONFIG PWRTE = OFF ; Power-up Timer Enable bit (PWRT disabled)
CONFIG MCLRE = OFF ; RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is digital input, MCLR internally tied to VDD)
CONFIG BOREN = OFF ; Brown-out Detect Enable bit (BOD disabled)
CONFIG LVP = OFF ; Low-Voltage Programming Enable bit (RB4/PGM pin has digital I/O function, HV on MCLR must be used for programming)
CONFIG CPD = OFF ; Data EE Memory Code Protection bit (Data memory code protection off)
CONFIG CP = OFF ; Flash Program Memory Code Protection bit (Code protection off)
MAIN:
BCF STATUS, 6
BCF STATUS, 5
CLRF PORTA
MOVLW 0x25
MOVWF PORTA
MOVLW 0x02
CLRF PORTB
MOVWF PORTB
LOOP:
MOVLW 0x25
ADDWF PORTA
MOVWF PORTA
DECFSZ PORTB
GOTO LOOP
CLRF PORTB
MOVF PORTA,W
MOVWF PORTB
GOTO MAIN
END
La verdad es que estoy perdido y es para un examen , si a alguien se le ocurre alguna idea de como resolverlo se lo agradeceria .
Tal vez sea de utilidad este hilo en el foro de MCHP:
https://forum.microchip.com/s/topic/a5C3l000000MIwcEAG/t302882?comment=P-2258140 (https://forum.microchip.com/s/topic/a5C3l000000MIwcEAG/t302882?comment=P-2258140)
-
Una pregunta, no he trabajado en años en ensamblador, pero... ¿No debes indicar el vector de reinicio del CPU?:
-
la primera dice que no es una dirección valida por eso puede ser que este roto el punto y la otra de igual modo no puede acceder o esta vacía esa línea pero creo que puede ser por el ensambador que usas que es el pic asm y antes se usaba el mpasm creo pueda ser por hay por que aunque sigue siendo ensamblador si tiene diferencias o que sea que el código es de un pic y este con otro micro en mplab
Cómo va ? Si yo también pensaba lo mismo ya que hace años trabajaba con la versión antigua de asm pero ahora que volví a necesitarlo me encontré con esta versión nueva y varios cambios .. algunos sutiles y otros no , lo que me llama la atención es que ya de por si cuando compilo reconoce que no usa espacio en el programa como si estuviera vacío ... Sobreentendido está que si trabajamos en asm casi no ocupa memoria de programa pero para tanto como marcar 0.0%? ..
Otra cosa que me encontré como ayuda me hablaba de eliminar la optimización de código del compilador pero ya hace tantos años que no trabajaba con el mplab que no se dónde tocar esa configuración y eh visitado varias páginas sin tener una idea clara del tema en cuestión.
Muchas gracias por tomarte el tiempo en este tema
-
Estimados , buenas tardes , como les va ?
Les comento estoy teniendo problemas en darme cuenta que me estoy pasando por alto , ya que intento debuguear un codigo en asemmbler , coloco un par de breakpoints y cuando comienza a simular , directamente se rompen los mismos y da mensaje de error
"Break point at line 18 in file C:/Users/NahuelCDiaz-PC/MPLABXProjects/CODIGO SANTIAGO.X/newAsmTemplate.asm cannot be resolved to a valid program memory address"
y tambien
"No source code lines were found at current PC 0x7d5. Open program memory view to see instruction code disassembly. "
mi consulta es si se me esta pasando algo en el codigo o en la configuracion del MPLAB o el compilador
*MPLABX 6.10
*XC8 pic-as 2.41
*Debug tool simulator
#include <xc.inc>
#define _XTAL_FREQ 4000000;
CONFIG FOSC = INTOSCIO ; Oscillator Selection bits (INTOSC oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN)
CONFIG WDTE = OFF ; Watchdog Timer Enable bit (WDT disabled)
CONFIG PWRTE = OFF ; Power-up Timer Enable bit (PWRT disabled)
CONFIG MCLRE = OFF ; RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is digital input, MCLR internally tied to VDD)
CONFIG BOREN = OFF ; Brown-out Detect Enable bit (BOD disabled)
CONFIG LVP = OFF ; Low-Voltage Programming Enable bit (RB4/PGM pin has digital I/O function, HV on MCLR must be used for programming)
CONFIG CPD = OFF ; Data EE Memory Code Protection bit (Data memory code protection off)
CONFIG CP = OFF ; Flash Program Memory Code Protection bit (Code protection off)
MAIN:
BCF STATUS, 6
BCF STATUS, 5
CLRF PORTA
MOVLW 0x25
MOVWF PORTA
MOVLW 0x02
CLRF PORTB
MOVWF PORTB
LOOP:
MOVLW 0x25
ADDWF PORTA
MOVWF PORTA
DECFSZ PORTB
GOTO LOOP
CLRF PORTB
MOVF PORTA,W
MOVWF PORTB
GOTO MAIN
END
La verdad es que estoy perdido y es para un examen , si a alguien se le ocurre alguna idea de como resolverlo se lo agradeceria .
Tal vez sea de utilidad este hilo en el foro de MCHP:
https://forum.microchip.com/s/topic/a5C3l000000MIwcEAG/t302882?comment=P-2258140 (https://forum.microchip.com/s/topic/a5C3l000000MIwcEAG/t302882?comment=P-2258140)
Muchas Gracias me voy a fijar si encuentro algo que me ayude ahí
-
Una pregunta, no he trabajado en años en ensamblador, pero... ¿No debes indicar el vector de reinicio del CPU?:
Vos te referís a la instrucción ORG ? .. con ella colocada también me rompe los breakpoint
-
Una pregunta, no he trabajado en años en ensamblador, pero... ¿No debes indicar el vector de reinicio del CPU?:
Vos te referís a la instrucción ORG ? .. con ella colocada también me rompe los breakpoint
Mira estos ejemplos de ASM de MCHP:
https://onlinedocs.microchip.com/pr/GUID-205B1F42-0E06-45E1-8D34-E3D05C15710F-en-US-3/index.html?GUID-F4498102-B6F9-455A-ACF9-4CB5E1667727 (https://onlinedocs.microchip.com/pr/GUID-205B1F42-0E06-45E1-8D34-E3D05C15710F-en-US-3/index.html?GUID-F4498102-B6F9-455A-ACF9-4CB5E1667727)
-
Una pregunta, no he trabajado en años en ensamblador, pero... ¿No debes indicar el vector de reinicio del CPU?:
Vos te referís a la instrucción ORG ? .. con ella colocada también me rompe los breakpoint
Mira estos ejemplos de ASM de MCHP:
https://onlinedocs.microchip.com/pr/GUID-205B1F42-0E06-45E1-8D34-E3D05C15710F-en-US-3/index.html?GUID-F4498102-B6F9-455A-ACF9-4CB5E1667727 (https://onlinedocs.microchip.com/pr/GUID-205B1F42-0E06-45E1-8D34-E3D05C15710F-en-US-3/index.html?GUID-F4498102-B6F9-455A-ACF9-4CB5E1667727)
Muchas Gracias!! Voy a ver de probarlo en un rato cuando llegue a casa , lo que si nunca use el reset vector en otros proyectos y nunca tuve este problema pero bueno mejor así saco provecho y aprendo algo nuevo de paso , mantengo al tanto de como me va y si lo pude solucionar
-
a ok si es que ya me parece y creo que también pic asm ya esta también en desuso ya se enfocan mas en c por los nuevos micros, pero lo bueno es que se puede descargar unas versiones antes que todavía tienen el mpasm me parece que es la versión mplab x 5.4 o para no fallar mejor una antes y hay si puedes poner el código en ensamblador sin problemas y compilar con mpasm para que sigas con los proyectos antiguos y nuevo igual
-
Buenas Tardes , para finalizar , vi que era lo que no me estaba permitiendo lograr debbuguear el codigo , necesitaba colocar la directiva "PSECT code" antes de colocar el main.
#include <xc.inc>
#define _XTAL_FREQ 4000000;
CONFIG FOSC = INTOSCIO ; Oscillator Selection bits (INTOSC oscillator: I/O function on RA6/OSC2/CLKOUT pin, I/O function on RA7/OSC1/CLKIN)
CONFIG WDTE = OFF ; Watchdog Timer Enable bit (WDT disabled)
CONFIG PWRTE = OFF ; Power-up Timer Enable bit (PWRT disabled)
CONFIG MCLRE = OFF ; RA5/MCLR/VPP Pin Function Select bit (RA5/MCLR/VPP pin function is digital input, MCLR internally tied to VDD)
CONFIG BOREN = OFF ; Brown-out Detect Enable bit (BOD disabled)
CONFIG LVP = OFF ; Low-Voltage Programming Enable bit (RB4/PGM pin has digital I/O function, HV on MCLR must be used for programming)
CONFIG CPD = OFF ; Data EE Memory Code Protection bit (Data memory code protection off)
CONFIG CP = OFF ; Flash Program Memory Code Protection bit (Code protection off)
PSECT code
MAIN:
BCF STATUS, 6
BCF STATUS, 5
CLRF PORTA
MOVLW 0x25
MOVWF PORTA
MOVLW 0x02
CLRF PORTB
MOVWF PORTB
LOOP:
MOVLW 0x25
ADDWF PORTA
MOVWF PORTA
DECFSZ PORTB
GOTO LOOP
CLRF PORTB
MOVF PORTA,W
MOVWF PORTB
GOTO MAIN
END
Tambien en caso de generar variables con la directiva EQU , hay que declararla como global para poder visualizarla entre los FSR y visualizar como se alteran sus valores con el programa . Todo esto de la siguiente manera:
V4 EQU 0x13
GLOBAL V4
Espero que le sirva a alguien y en caso de tener errores porfavor corregir sobre el foro .
Esto se comprobo con la version 6.1 de mplabx y con la version 2.41 de pic-as