Skip to main content
Associate III
August 6, 2024
Solved

Adding EEPROM emulation to existing project

  • August 6, 2024
  • 2 replies
  • 1179 views

I'm a noob to the 32-bit world trying to add EEPROM emulation to my ToF application. I read AN3969 and downloaded the associated code, then added eeprom.c and eeprom.h to my project. That didn't compile due to typedef FLASH_Status missing amongst other things. Looking at some other posts, I learned that it is defined in stm32f4xx_flash.h which isn't included in the download but I was able to find on githib. Added it to the project and #included it in eeprom.c, now get even more errors, including in some of the hal .h files.

It seems that the code associated with AN3969 is only half the solution. Please could someone offer some guidance?

This topic has been closed for replies.
Best answer by Saket_Om

Hello @pretoriandave 

 

>> That didn't compile due to typedef FLASH_Status missing amongst other things. Looking at some other posts, I learned that it is defined in stm32f4xx_flash.h which isn't included in the download, but I was able to find on GitHub. 

 

The file should be included in the package downloaded from st.com. You need to download the full release package first and then apply the patch release.

Saket_Om_0-1723023259447.png

For your application you can refer to the EEPROM emulation example available in the STM32F4 firmware. 

2 replies

Andrew Neil
Super User
August 6, 2024

IIRC, The code in AN3969 predates HAL - it uses the old "Standard Peripheral Library" (aka "SPL", or "StdPeriph").

I suggest:

  1. Get the AN3969 example application working in a project of its own.
  2. Port that example to HAL
  3. Take the ported code, and add it to your HAL project.

 

A complex system that works is invariably found to have evolved from a simple system that worked.A complex system designed from scratch never works and cannot be patched up to make it work.
Saket_OmBest answer
ST Technical Moderator
August 7, 2024

Hello @pretoriandave 

 

>> That didn't compile due to typedef FLASH_Status missing amongst other things. Looking at some other posts, I learned that it is defined in stm32f4xx_flash.h which isn't included in the download, but I was able to find on GitHub. 

 

The file should be included in the package downloaded from st.com. You need to download the full release package first and then apply the patch release.

Saket_Om_0-1723023259447.png

For your application you can refer to the EEPROM emulation example available in the STM32F4 firmware. 

In order to give better visibility on the answered topics, please click on 'Best answer' on the reply which solved your issue or answered your question. Saket_Om