Strictly necessary cookies are on by default and cannot be turned off. Functional, Performance and Tracking/targeting/sharing cookies can be turned on below based on your preferences (this banner will remain available for you to accept cookies). You may change your cookie settings by deleting cookies from your browser. Then this banner will appear again. You can learn more details about cookies HERE.
Strictly necessary (always on)
Functional, Performance and Tracking/targeting/sharing (default off)
Now, after the "build" I can see in the map file the new segment "sramCode" in the specified position, but when I debug the SW, in particular when I halt into the example routine, I can see that the PC register is not over 0x20000C00 but its value is 0x4xxx (in flash area!).
I have seen your tentative ... thanks for the efforts but I believe (maybe I'm wrong) that the moving from flash to ram has to be done "automatically" by "startup routine", giving the right attribute to the routine to move.
Here you can find an updated to the project, there I used "ram" as attribute instead of "sramCode", in this way it is not necessary to modify the linker file (.ld), now the routine NonBlockWriteRow() is located in SRAM.
Also the "SpcIntHandler" is in SRAM, but at the moment this interrupt never happen, and it is the actual issue (in vector table the address is relocated, and it is ok, address 0x20000070).
Yes I know the Em_EEPROM component..., using them the Write operation stops the cpu for some ms (about 20ms), in the project I will use a multiplexed LED display, to wait 20ms to update it produces a "flicker" effect.