EPMP en pic24fj128da210

4

¿Alguien tiene alguna experiencia en el uso del Puerto maestro paralelo mejorado en la familia PIC24?

Estoy tratando de usar el ejemplo en la página 42 de manual de EPMP : el " Lea el Ejemplo ".

Mi problema es que el ejemplo ni siquiera comienza a pensar en la posibilidad más vaga de trabajar. El primer bit:

#define EXTERNAL_RESOURCE_SIZE  0x20000L
#define CS_START_ADDRESS        0x200000L

// define an array in EPMP EDS space to access the external resource
__eds__ char pmp_data[EXTERNAL_RESOURCE_SIZE]
    __attribute__((space(eds), address(CS_START_ADDRESS), noload));

no se compilará. Se queja:

error: size of array ‘pmp_data’ is too large

Ahora, el EPMP en este chip tiene 23 líneas de dirección. Eso es un enorme espacio de direcciones de 8 MB, junto con 2 líneas CS, por lo que es posible un total de 16 MB. Esto es solo 256KB que estoy usando (el ejemplo en el manual es para chips de memoria de 2 x 128KB, que es justo lo que tengo aquí).

Entonces, ¿cuál es el juego aquí? He tenido un empujón en las secuencias de comandos del vinculador, pero en ninguna parte de las secuencias de comandos de los chips puedo ver ninguna mención del espacio EDS. Francamente, estoy perdido en esos archivos gld, y la última vez que probé con uno, lo rompí por completo.

    
pregunta Majenko

1 respuesta

1

Ok, puedo responder a esta pregunta yo mismo.

Enterrado profundamente en algún código de ejemplo perdido en algún lugar del sitio web de MCP, encuentro esto:

  

Notas:

     
  1. El uso de matrices de más de 32K se debe compilar con: -mlarge-arrays     Este archivo está configurado para compilar con esta configuración. Por favor refiérase a la C30     Manual del usuario para obtener detalles sobre las matrices de matrices (DS51284)

         

    ...

  2.   

Ahora, habrías pensado que tal vez hubieran mencionado eso en el manual de EPMP, ¿verdad?

    
respondido por el Majenko

Lea otras preguntas en las etiquetas