2016-08-31 08:36 AM
Previously, I worked on MSP430F47197. I learnt how to read/write from flash. That was pretty easy. On the other hand, using EEPROM was really confusing to read from and write into. (Using I2C Protocol)
Now, I am working on STM32F107KC. More specifically, I am required to save Mac Address and reuse it for the next loading process. I have a written code and it seems that the Mac Address is stored within 1 page between the following addresses.0x0803F800 --- 0x00000800Also the linker file tells me that the rest of the code is written in the following range.0x08000000 --- 0x0803FFFF ==> ROM0x20000000 --- 0x2000FFFF ==> RAMTherefore, I do not see any overlapping case in here.I also, checked the datasheet of STM32F107. There is no internal non volatile memory and in our board we do not have any external one.Therefore, here is my question as follows. If there is no non-erasable memory, as I use IAR IDE for ARMS, can I go ahead and ask the compiler not to flash a certain range in flash and store my Mac Address there? In IAR IDE for MSPs, we are able to select which part of the memory to erase and flash under option menu which I do not see such feature in ARM.Any other alternatives you may think that would be a good solution for Mac Address question?2016-09-01 07:01 AM
Hi aghaei.henri,
you would use the which allow you the sector/pages to erase with other r/w functionalities.-Hannibal-2016-09-16 06:57 AM
2016-09-16 07:10 AM
Please try and keep to one thread, if you create a thread, and the topic covers the same or evolving theme then stick to one.
>>0x08000000 --- 0x0803FFFF ==> ROM You'd presumably want to shrink that to 0x0803F7FF so as not to involve your sector with configuration data. Some of the STM32 parts have a small amount of OTP, and BKP or RTC RAM, I'd have to review the F107 Managing configuration/calibration data is something I typically commit a FLASH sector too, and have a structure defined, and accessed via a pointer.