Forum: System Workbench for STM32

PROGMEM equivalent

Hi, in ATMEL’s IDE C compiler, there is an attribute PROGMEM (include pgmspace.h) for placing a const variable in program memory. There are read/write routines/macros, too (pgm_read_....).
Is there anything similar in System Workbench gcc?

Just use const, the linker will place it in the read-only .rodata section and the startup code will not copy it into RAM.

Thanks for your answer.

I’m aware of THAT. The background of my questions was: I want to use a portion of flash for factory and/or user settings with read/write capability without manually tinkering around with linker segments atl. Seems to be no way but diggin into it.

I’ll leave it at that.

In that case you have 3 options I think:

1. Use a microcontroller with an EEPROM (L0, L1 series) and place the user settings there
2. Use one of the available EEPROM emulation libraries - http://www.st.com/en/embedded-software/stsw-stm32066.htmlQuestion
3. Use your own functions to read/write data into the Flash memory, but be aware of flash wear-leveling problem if you want to save the settings frequently