About the 'Flash Objects Management'


Hi, just started with the development kit for Q2686H.

Our application will contain a lot of data collection, say 200kB a Day and we would like to use as much as possible of the flash memory (1.5 MB).

Let’s say, we use 600kB of the internal flash, means keeping data of the last 3 days. If we take care to continuously fill the memory like in a ring buffer, each single memory cell is erased and rewritten every three days. This multiplied 100’000 (guaranteed times) ensures me a product livetime of approximately 1000 years. - quite acceptable :wink:

So if I subscribe for 1200 Objects (limit 2000), each 512 bytes, and keep on rotating the used object ID, could you confirm my assumption?

As far as I understood the description of the
‘Flash Objects Management’, it has to work like I expect. I just like to get a confirmation. If you can’t confirm it, we have to add external memory.



Hi Philipp,

I don’t know any of the internal handling of the flash management, but I would suspect your assumption is wrong. 1200 x 522 bytes (10 bytes overhead per flash id) is roughly 612kB and I don’t think the user flash area is that big (correct me if I am wrong…).

So, the operating system would need to re-use flash locations to save the data for different IDs in the same place…

Even if this is not like that, you still don’t know if the flash is always filled from the beginning when new data is stored or if the operating system itself does the cycling to extend flash lifetime…

My advice would be - since there are too many unknowns about the OS - you should not worry about the flash use. You can not control the lifetime without knowing the internal details… Just make sure that your application does the right thing and hope that the OS does it right, too…

— edited
sorry - I think your right. the DOTA storage may be that big… but still I’d like to stick to the last paragraph…

Best Regards,


Thanks for the reply Jan.

Indeed I do have a lot of memory: the answer on AT+WOPEN=6 is 6,768,832 which means curently 768kB for DOTA and 832kB for application reserved. So don’t bother about the size. I can even shift it more to gain more application memory.

Actually I expect the Memory Management to work even better than I assumed since it says, it uses the free memoy when needed by the application and garbage collects it only, when no free block is available, which would result in shifting around my 600 kB in my currently reserved 832 kB.

Since we both are guessing and speculating (and ‘hoping’ is no option for our application) I actually wanted a confirmation of the OpenAT developers, which wrote the Memory Management. But it seams, I’m in the wrong forum. I will have a try and search some support contact.

Thanks anyway for answering.