Autor Tema: Memoria Flash STM32G030C8T6  (Leído 119 veces)

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

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2696
Memoria Flash STM32G030C8T6
« en: 06 de Octubre de 2019, 15:00:29 »
Buenas, estoy intentando grabar unos datos en la flash del microcontrolador STM32G030C8T6, pero no me termina de funcionar:

las paginas son de 2K y la memoria flash de 64KB.

tengo el siguiente código basico para guardar un dato:

Código: [Seleccionar]
HAL_FLASH_Unlock(); //Desbloquemos la memoria
EraseInitStruct.TypeErase   = FLASH_TYPEERASE_PAGES; //Indicamos que vamos a borrar paginas de la memoria y no la memoria entera
EraseInitStruct.Page = FLASH_USER_START_ADDR; //Indicamos el inicio de la memoria de usuario
EraseInitStruct.NbPages     = 1; //Indicamos el numero de paginas a borrar
HAL_FLASHEx_Erase(&EraseInitStruct, &pagina_error); //Iniciamos el proceso de borrado de la memoria

direccion_guardar=FLASH_USER_START_ADDR;
HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD, direccion_guardar, (uint64_t)Parametros.A01);

He probado con bastantes direcciones de memoria inicial a ver si esque estaba pisando el codigo pero nada, el debug se queda colgado justo despues de la linea :

HAL_FLASH_Program(FLASH_TYPEPROGRAM_DOUBLEWORD, direccion_guardar, (uint64_t)Parametros.A01);

la direccion que he colocado es la 0x0800 F800 que es la ultima pagina de la memoria para este micro.

¿que estoy haciendo mal?
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw

Conectado planeta9999

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3486
    • Pinballsp
Re:Memoria Flash STM32G030C8T6
« Respuesta #1 en: 06 de Octubre de 2019, 21:06:11 »
 
Una vez actualizado, descarga y edita el binario a ver lo que ha hecho el programa, pero si se bloquea parece claro que estás escribiendo en la página donde está el programa en ejecución.

Desconectado juaperser1

  • Colaborador
  • DsPIC30
  • *****
  • Mensajes: 2696
Re:Memoria Flash STM32G030C8T6
« Respuesta #2 en: 07 de Octubre de 2019, 02:25:02 »
ya lo he resuelto, resulta que el problema estaba al borrar la hoja no al escribirla, antes las librerias te pedian la direccion de memoria de la pagina a borrar, ahora te piden directamente la pagina que vas a borrar, o sea la 31.

un saludo
Visita mi canal para aprender sobre electrónica y programación:

https://www.youtube.com/channel/UCxOYHcAMLCVEtZEvGgPQ6Vw