Autor Tema: Busco bootloader para PIC24FJ desde SD card  (Leído 8495 veces)

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

Desconectado Belgitaes

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 215
Re: Busco bootloader para PIC24FJ desde SD card
« Respuesta #30 en: 21 de Noviembre de 2014, 02:59:12 »
La Memoria Programa Esta Organizada En Palabras De 16 Bits
 +00000000:   FFFF   = 16 Bits ( 2 Bytes)

Eso Es Porque La Direcion Es Multiplicada Por Dos
Antes De Que Sea Puesto En El Registro

   #define LOADER_SIZE     0x07FF
   #define LOADER_END      0xC00

LOADER_END (0xC00) Menos  LOADER_SIZE0 (x07FF) = 400

dirección de inicio
Código: [Seleccionar]
 10 0800 00  4200 F800 801F 7800 81E0 A900 1402 8000 F7
 
Ahora Cuando Lo Compilas Abres Tu Codigo Con Un Bloc De Notas
 Veras Que Ahora En La Direcion De La Memoria Se Han Invertidos Los Bytes
 Y (F8) Es Ahora Adress High Y (42) Low Adress
 Eso Es Debido A Que Cuando Compilas En El Formato Intel
 Una Palabra De 16 Bits Se Escribe En El Sentido (Byte LSB Seguido De Byte MSB)
 Por Eso Al Leer Tu Codigo En Un Bloc De Notas Los Opcodes Estan Invertidos  
« Última modificación: 21 de Noviembre de 2014, 03:08:19 por Belgitaes »

Desconectado Belgitaes

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 215
Re: Busco bootloader para PIC24FJ desde SD card
« Respuesta #31 en: 22 de Noviembre de 2014, 01:43:41 »
Me pasa algo raro con un HEX para 24F.

veo que la primera dirección ocupada es la 0x400, lo cual coincide con lo que he expresado en el código fuente.
Sin embargo, en tu macro, la primera posición ocupada es la 0x800.
Dejo el HEX adjunto por si quieres bichearlo.

Para Encontrar Los Datos Reales Escritos En Flash
Hay Que Dividir Entre 2 La Direcion En El Fichero Hex
Direcion (800 / 2) = Direcion 400 Datos Reales Escritos En Flash
Direcion (400 * 2) = Direcion 800 Datos Reales Escritos En El Fichero Hex