Autor Tema: Iniciando pic32MZ  (Leído 15189 veces)

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

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Iniciando pic32MZ
« Respuesta #30 en: 15 de Diciembre de 2014, 13:40:14 »
Puede que no ayude, pero ya está la v1.34 disponible para XC32.

Está descargable bajo el link de la 1.33, Microchip no actualizó la página frontal.

Saludos.

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: Iniciando pic32MZ
« Respuesta #31 en: 15 de Diciembre de 2014, 14:35:49 »
Tengo lo último de microchip:
CX32 v1.33
MPLABX v2.26

Y nada  :?

Algo que veo en el cx32 user guide es esto:

Note: For devices that support multiple Instruction Set Architecture (ISA) modes,
there may be a configuration bit that determines which mode the device
uses for an exception/interrupt. If your device is configured to use the
microMIPS ISA on interrupt, be sure to apply the micromips function
attribute to your interrupt function. Consult your the data sheet for your
target device to determine if it supports handling exceptions and interrupts
in an alternate ISA mode.


Código: C
  1. bit 16 ISAONEXC: ISA on Exception bit(1)
  2. 1 = microMIPS™ is used on entrance to an exception vector
  3. 0 = MIPS32® ISA is used on entrance to an exception vector
  4. bit 15-14 ISA<1:0>: Instruction Set Availability bits(1)
  5. 11 = Both MIPS32&#174; and microMIPS&#8482; are implemented; microMIPS&#8482; is used when coming out of reset
  6. 10 = Both MIPS32&#174; and microMIPS&#8482; are implemented; MIPS32&#174; ISA used when coming out of reset

Código: C
  1. #pragma config BOOTISA =    MIPS32

Leí esto en el foro de microchip:

Código: C
  1. void __ISR(_TIMER_2_VECTOR, ipl3) __attribute__((nomips16)) _T2Interrupt(void)

No sé como va eso.

Me gustaría saber donde encontrar las opciones de seteo de los fuses, en el archivo p32mz2048ecg100.h del pic no está, algo que en C30 si se podía encontrar e el archivo del pic.

 :?
« Última modificación: 15 de Diciembre de 2014, 14:41:14 por KALLITOS »
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Iniciando pic32MZ
« Respuesta #32 en: 15 de Diciembre de 2014, 16:43:05 »
Si quieres por la tarde pruebo la interrupción por UART. En mi código no la necesito, por eso no la he probado. Sólo necesito la del timer1, que funciona sin problemas.

Baja la 1.34... por si las dudas...

http://ww1.microchip.com/downloads/en/DeviceDoc/xc32-v1.34-full-install-windows-installer.exe

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: Iniciando pic32MZ
« Respuesta #33 en: 15 de Diciembre de 2014, 16:47:49 »
Muchas gracias migsantiago, ya estoy descargando desde el link que pusiste, ojala te funcione bien y poder ver que está pasando.
Gracias nuevamente.

saludos.
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re: Iniciando pic32MZ
« Respuesta #34 en: 15 de Diciembre de 2014, 17:19:41 »
del manual de usuario de xc32
Citar
Use the __ISR(v, IPL) macro to assign the vector-number location and associate it
with the specified IPL. This will place a jump to the interrupt handler at the associated
vector location. This macro also applies the nomips16 attribute since PIC32 devices
require that interrupt handlers must use the MIPS32 instruction set

Aqui es donde esta el BOOTISA, que deberia estar en 1.
DEVCFG0/ADEVCFG0: DEVICE CONFIGURATION WORD 0

De un codigo que encontre de un arhivo llamado dma_spi.c para un PIC32MZ2048ECM144

Citar
#pragma config BOOTISA = MIPS32         // Boot ISA Selection (Boot code and Exception code is MIPS32)

Tambien veo que pones ipl3 y en el manual de xc32 hace una diferencia entre auellos que tiene registros dobles ( sombras )

Citar
The compiler also supports an IPLnAUTO IPL specifier that uses the run-time value in
SRSCTL to determine whether it should use software or SRS context-saving code. The
compiler defaults to using IPLnAUTO when the IPL specifier is omitted from the
interrupt() attribute.
For devices that do not support a shadow register set for interrupt context saving, use
IPLnSOFT for all interrupt handlers.

SRS has the shortest latency and SOFT has a longer latency due to
registers saved on the stack. AUTO adds a few cycles to test if SRS or SOFT
should be used.

Probaste si cambiando los ipl3 a ipl3soft funiona o ipl3auto ?

A ciencia cierta no se nada, estoy tirando ideas de que puede ser.

Aunque el tuyo tiene SRS para cada prioridad (tiene 7), pero si se superponen 2 con la misma prioridad habria problemas ?
« Última modificación: 15 de Diciembre de 2014, 17:29:10 por KILLERJC »

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Iniciando pic32MZ
« Respuesta #35 en: 16 de Diciembre de 2014, 23:00:55 »
Kallitos, disculpa la respuesta tardía. Tengo funcionando la interrupción RX en la UART3.

+ Configuré mi PPS al pin RB3, así lo tenemos en nuestra tarjeta.



+ Habilité una segunda instancia UART, seleccionando la UART3 porque RB3 tiene disponible URX3.

+ Habilité Harmony al principio y no moví ninguna sub-prioridad. Error. Aparentemente se deben ajustar ajustar prioridades y sub-prioridades. Puedes dejarle la misma prioridad, pero no repitas sub-prioridades entre instancias.

¿Qué pasa si no habilito bien las sub-prioridades? En mi programa se llamaba la interrupción UART2 TX... que no tiene nada que ver.  :shock:

http://ww1.microchip.com/downloads/en/DeviceDoc/61108G.pdf

Checa las diferencias que Harmony le hizo a mi código (adjuntas). :D



¡Saludos!
« Última modificación: 16 de Diciembre de 2014, 23:07:15 por migsantiago »

Desconectado doppel

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1536
Re: Iniciando pic32MZ
« Respuesta #36 en: 17 de Diciembre de 2014, 00:30:46 »
Señores Mig y Kallitos!!! uds si que la tienen clara!!! espectacular
" Para ser exitoso no tienes que hacer cosas extraordinarias. Haz cosas ordinarias, extraordinariamente bien "

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Iniciando pic32MZ
« Respuesta #37 en: 17 de Diciembre de 2014, 10:36:20 »
Señores Mig y Kallitos!!! uds si que la tienen clara!!! espectacular

jajaj Hola Doppel. No, no tanto jejej. Gracias. Aún necesito que Kallitos confirme lo de las sub-prioridades... sólo tuve tiempo de probar una interrupción. ¿Qué tal que se me echo a perder la del timer? No le cambié la sub-prioridad a ésa. Es cuestión de jugar con el PIC.  :mrgreen:

Y bueno, como breviario cultural... tengo la evaluación de XC32. En nivel 3 no optimiza tanto como en nivel 1. Mi código es súper sencillo por el momento. A ver si Kallitos con sus miles de líneas nos comparte su estado de optimización.

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: Iniciando pic32MZ
« Respuesta #38 en: 18 de Diciembre de 2014, 18:01:03 »
Hola migsantiago, disculpa la demora ando con contratiempos en el trabajo.

Hola hernán, un gusto leerte, y pues la llevamos de a pocos como se dice por aca.

Bueno muchachos finalmente funcionó.

Error mío, ayuda de migsantiago y al final el error es:

Me confundí con los fuses de prioridades y subprioridad. No modifiqué las que corresponden al RX sino la interrupción por FAULT.
En pocas palabras, no las configuré. Y MplabX leyó error en esa parte por eso no ejecutaba el handler.

Migsantiago, probé seteando URX1 y URX2  Prioridad y SubPrioridad con diferentes e iguales valores y en ambos casos funciona correctamente. Pero los dejaré seteados tal cual lo hace Harmony. A tener en cuenta es que las interrupciones de los 4 timer32 e intext estaban todas con Prioridad y SubPrioridad = 1  en todos.

Bueno, que alegría que ya funcionó, ya puedo continuar probando este pic. Ojalá y MPLABX me deje usar toda la memoria del micro ya que en C30 tuve que modificar el archivo p24EP512GU810.gld y poder usar toda la memoria.

Saludos.

« Última modificación: 18 de Diciembre de 2014, 21:24:10 por KALLITOS »
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: Iniciando pic32MZ
« Respuesta #39 en: 18 de Diciembre de 2014, 21:15:50 »
Bueno ya lo probé y probé y ya kedó.

Muchas gracias migsantiago y KILLERJC.

Saludos
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado migsantiago

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8257
    • Sitio de MigSantiago
Re: Iniciando pic32MZ
« Respuesta #40 en: 19 de Diciembre de 2014, 10:24:35 »
Enhorabuena Kallitos.  ;-)

Para poder probar toda la ROM de tu micro te sugiero que le inyectes un arreglote basándote en un archivo de unos 1.8MB por ejemplo...

http://electrolinks.blogspot.com/2009/06/sl-file2array-v001.html

Yo una vez llené un PIC32MX (ya de los viejitos jejej) con 512kB aprox. para reproducir audio.

Saludos.