Autor Tema: ¿Cómo pongo una constante definida en un archivo h en una dirección de MP?  (Leído 4482 veces)

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

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Hola.

Tengo un proyecto con PIC32MZ y XC32 v3.00

Tengo una definición en un archivo h de la siguiente manera:

Código: C
  1. #define keyCLIENT_CERTIFICATE_PEM \
  2. "-----BEGIN CERTIFICATE-----\n"\
  3. "MIIDWjCCAkKgAwIBAgIVAO7iPmD2WIgU2VydmljZXMgTz197eeMA0GCSqGSIb3DQEB\n"\
  4. "CDhsGJHYFdskjYJKJVBAsMQkFtPSHQ5e8OS+cYB+BYYXpvbiBXZWIgU2VydmljZXMgTz\n"\
  5. ".... etc etc..."
  6. "-----END CERTIFICATE-----"


Yo deseo que esta definición esté en una dirección específica de la memoria de programa que va a estar una región preservada para que un bootloader que estoy utilizando no la altere.

¿Alguna sugerencia o comentario de como hacerlo?


Gracias


« Última modificación: 20 de Noviembre de 2021, 17:07:07 por DominusDRR »
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:¿Cómo pongo una constante definida en un archivo h en una dirección de MP?
« Respuesta #1 en: 20 de Noviembre de 2021, 16:59:32 »
Buscando... encontras algunas cosas, ejemplo.

https://www.microchip.com/forums/m728879.aspx

Código: C
  1. const UINT16 __attribute__((space(prog),address(0x9D07CFF0))) bootCRC = 0xdead;

Los busque como "XC32 absolute address"

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:¿Cómo pongo una constante definida en un archivo h en una dirección de MP?
« Respuesta #2 en: 20 de Noviembre de 2021, 17:06:26 »
Buscando... encontras algunas cosas, ejemplo.

https://www.microchip.com/forums/m728879.aspx

Código: C
  1. const UINT16 __attribute__((space(prog),address(0x9D07CFF0))) bootCRC = 0xdead;

Los busque como "XC32 absolute address"

Hola.

Gracias por responder,

Encontré esto también:

https://microchipsupport.force.com/s/article/Compilers-XC32-How-to-allocate-a-variable-in-a-program-memory

Que es igual a lo que me indicas.

En mi caso posiblemente sea algo así:

Código: C
  1. string __attribute__((space(prog), address(0xMiDirección))) keyCLIENT_CERTIFICATE_PEM =
  2. "-----BEGIN CERTIFICATE-----\n"\
  3. "MIIDWjCCAkKgAwIBAgIVAO7iPmD2WIgU2VydmljZXMgTz197eeMA0GCSqGSIb3DQEB\n"\
  4. "CDhsGJHYFdskjYJKJVBAsMQkFtPSHQ5e8OS+cYB+BYYXpvbiBXZWIgU2VydmljZXMgTz\n"\
  5. ".... etc etc... "
  6. "-----END CERTIFICATE-----"

En estos días lo pruebo para ver si funciona.
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32

Desconectado KILLERJC

  • Colaborador
  • DsPIC33
  • *****
  • Mensajes: 8242
Re:¿Cómo pongo una constante definida en un archivo h en una dirección de MP?
« Respuesta #3 en: 20 de Noviembre de 2021, 17:31:29 »
Mas como (no se si posee un tipo string XC32 a estas alturas ya...) :

Código: C
  1. const char __attribute__((space(prog), address(0xMiDirección))) keyCLIENT_CERTIFICATE_PEM[] =

Desconectado DominusDRR

  • PIC24H
  • ******
  • Mensajes: 1982
    • Sicoy
Re:¿Cómo pongo una constante definida en un archivo h en una dirección de MP?
« Respuesta #4 en: 20 de Noviembre de 2021, 18:05:16 »
Mas como (no se si posee un tipo string XC32 a estas alturas ya...) :

Código: C
  1. const char __attribute__((space(prog), address(0xMiDirección))) keyCLIENT_CERTIFICATE_PEM[] =

Tienes razón, mi mente está también con C# con una aplicación que administra al hardware. 
Tengo una idea algo difusa sobre MPLAB Harmony, XC32 con PIC32


 

anything