Autor Tema: Problemas depurando dsPIC con PICkit3 y C30  (Leído 3034 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado sal0m0n

  • PIC12
  • **
  • Mensajes: 54
    • Sobre Mí
Problemas depurando dsPIC con PICkit3 y C30
« en: 29 de Julio de 2011, 10:54:09 »
Buenos dias amigos, desde hace unos dias estoy armando un proyecto con un dsPIC33FJ128GP802, en principio lo estaba programando con MPLAB y el PLUGIN de CCS, pero tras partirme el coco para hacer andar el DMA, y darme por vencido por la falta de documentación y funciones para DMA, decidí migrar a C30...

De momento reescribí la mayoría de las funciones al estilo de C30, y el código compila aparentemente bien,  por lo visto configuré bien los fuses, el WDT y el oscilador, así como el PPS, tal y como lo había hecho con CCS, hasta ahi sin problemas....

Pero ahora me encuentro con dos problemas que supongo no son normales:

1) El IDE no me deja colocar Breakpoints en las lineas de código de los archivos de cabecera (PE: config.h, SD.h) y antes con CCS si lo podía hacer! caso contrario del principal, donde se encuentra el main que si me deja colocarlos y funcionan normal, si copio el contenido de los archivos de cabecera dentro del principal, entonces si puedo colocar breakpoints en las funciones que antes no podía pero solo si se encuentran dentro del archivo principal, y he comprobado que las funciones dentro de los de cabecera xxxx.h se ejecutan normalmente pues es dentro de los archivos de cabecera que configuro el oscilador, PPS, DAC y coloque unas instrucciones para hacer parpadear un led y lo hace sin problemas..

por otra parte dentro del explorador del proyecto, "Proyecto_cualquiera.mcw" salen dentro de los espacios "Source Files" el archivo principal, y dentro de "Header Files" los archivos de cabecera que he creado...

2) A veces se pierde de vista la flecha que indica donde está el Contador de Programa, supongo que porque se encontraría dentro de una función de algún archivo de cabecera pero no lo muestra, y noto que a veces se mete dentro de una ISR cuya configuración de interrupción aun no he activado, y cuyo bit de activación y flag permanecen puestos a cero!


 Es mi primera vez con C30 pero he leido bastante la guia de usuario y otros documentos y no se que puede estar pasando!

PD: Mi versión de MPLAB es 8.60, y del C30, no se donde buscar esa info pero la descargue hace poco de la página de microchip, por alli vi una cosa que decia "Suite_dsPIC ver 3.9.2", les agradezco mucho cualquier ayuda!!

saludos
« Última modificación: 29 de Julio de 2011, 10:59:37 por sal0m0n »
Mis herramientas!
PicKit 3, MPLAB REAL ICE, OWON SDS6062, Zeroplus LAP-C 16128, Weller WES51, Probotix Fireball Meteor,  Altium Designer y otras mas!

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problemas depurando dsPIC con PICkit3 y C30
« Respuesta #1 en: 29 de Julio de 2011, 12:13:30 »
Por lo visto es propio del debug en C30. Anteriormente en el foro se trato el mismo problema pero utilizando MPLAB SIM, lo cual genera los mismo inconvenientes que comentas  :undecided:


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado sal0m0n

  • PIC12
  • **
  • Mensajes: 54
    • Sobre Mí
Re: Problemas depurando dsPIC con PICkit3 y C30
« Respuesta #2 en: 29 de Julio de 2011, 12:32:29 »

Por lo visto es un BUG en el deBUG   :?

También he notado, que en realidad cuando el PC se posiciona sobre lo que parece la ISR del archivo principal, aun cuando no haya entrado en la interrupción, realmente está en otro archivo PE: cabecera1.h, en ese mismo numero de linea...


es como si el depurador fuese incapaz de colocar en frente el archivo correcto al momento de la depuración...


bueno muchas gracias por la ayuda!, tendré que meter todo dentro del archivo principal, para depurar, y luego ordenarlo en las cabeceras como quiero :P, por cierto, me podrias ayudar a encontrar una función similar a la make8 de CCS para C30??

make8(variable,posicion_de_byte)...


necesito "picar" una variable de 32 bits en 4 de 8!, se me ocurre usar desplazamientos de bits pero no se si habra otra manera...

por ejemplo

Código: [Seleccionar]
int32 VAR32;
char VAR8_1, VAR8_2, VAR8_3, VAR8_4;

VAR8_1=VAR32;
VAR8_2=VAR32>>8;
VAR8_3=VAR32>>16
VAR8_4=VAR32>>24;


servira??

saludos

« Última modificación: 29 de Julio de 2011, 12:41:12 por sal0m0n »
Mis herramientas!
PicKit 3, MPLAB REAL ICE, OWON SDS6062, Zeroplus LAP-C 16128, Weller WES51, Probotix Fireball Meteor,  Altium Designer y otras mas!

Desconectado Suky

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Problemas depurando dsPIC con PICkit3 y C30
« Respuesta #3 en: 29 de Julio de 2011, 14:49:38 »
Podes hacer lo siguiente, creo que cualquiera funciona:

Código: C
  1. #define make8(Variable,Byte)    *((unsigned char *)&Variable + Byte)

o

Código: C
  1. #define make8(Variable,Byte)    ((unsigned char)(Variable >> (Byte*8)))

Saludos!
No contesto mensajes privados, las consultas en el foro