This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi All,
I have a question, is there a way to read and write above 0x10000 in the flash memory without using the large data and code model? I can read an write above the 0x10000 with the large data model but the Bluetopia libraries are only compiled for the small data model.
Because of this i can't use the librariy in my project, is there a way to use the small data and code model? Or is there a way to use the Bluetopia library with the large data model?
Any tips and sugestions are welcome!
The compiler offers a set of intrinsics to make a read or write operation to a given long int address. See the compiler manual for details.
However, you’ll have to manage the upper memory on your own, the linker won’t place any data (e.g. constant arrays) above 64k if you don’t use large data model.
Hi Jens!
Thank you for your answer i already found the intrinsic functions and i'm using them to read and write data that later only need so be read.
I still have a question about this: can i use the intrinsic functions to store firmeware data in the higher regions? I want to use this space to store firmeware data for updating the device firmare. If it somehow fails i need to fallback to the old firmware.
Many thanks for your feedback!
Sure you can. However, this seems pretty inefficient to me. Including the fact that restoring an old firmware includes overwriting the current one – and with it the copy function.
I’d rather suggest writing the save and restore functions in assembly. Also, if you search the forum for “custom BSL” you’ll find some discussions regarding a bootloader that does this or similar things.
**Attention** This is a public forum