Vai al contenuto
PLC Forum


Scrittura/lettura memoria flash stm32f10x


marco88

Messaggi consigliati

Ciao a tutti, non sono affatto nuovo nel forum ma in effetti non scrivo da tantissimo, soprattutto in questa sezione!

Piacere di ritrovavi! :D

 

Sto cercando di imparare qualcosa di nuovo sulla programmazione embedded e sto usando un stm32f103c8 che programmo con System workbench ide, usando la Standard C peripheral library.

 

Nel programmino che sto facendo ho la necessità di scrivere alcune variabili nella memoria non volatile in modo da ritrovarmele aggiornate ad ogni accensione del device.

 

Purtroppo su internet non ho trovato guide ne tutorial su come fare e speravo di trovare qualcuno qui che mi potesse dare una mano! :)

 

Nel file https://github.com/espruino/Espruino/blob/master/targetlibs/stm32f1/lib/stm32f10x_flash.h dalla riga 373 ci sono delle funzioni per l'uso della flash!

 

Inoltre mi sembra di vedere delle funzioni per scrivere sulla memoria ma non per leggere!

 

Chi mi aiuta? 😄

 

Grazie a presto

Link al commento
Condividi su altri siti


Non ci ho mai provato, ma se te usi per esempio la FLASH_Status FLASH_ProgramWord(uint32_t Address, uint32_t Data); per scrivere in un indirizzo Address in memoria, per leggerlo poi non dovrai far altro che creare un puntatore uint32_t* che punti alla locazione Address e poi farci quello che vuoi.

Cioè, dalla flash si legge sempre comunemente con normale programmazione, solo per scriverci (e cancellare) bisogna usare routine apposite.

 

Per la scrittura, dai un'occhiata qui https://github.com/hocarm/STM32F103-Tutorial/blob/master/07.PWM/Drivers/STM32F1xx_HAL_Driver/Src/stm32f1xx_hal_flash.c

Link al commento
Condividi su altri siti

ciao Ctec, non immaginavo di dover trattare una locazione di memoria nella flash come una normale variabile (puntatore)! Grazie mille! appena ci ridedico del tempo provo e ti informo!

 

ps: che poi in effetti è una cosa a cui sarei potuto arrivare per intuito considerando che la memoria è contigua!

Grazie ancora :D

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...