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.
Part Number: CC3220MODA
I'd like to know if it is possible to wake-up faster from hibernation by any kind of trick.
As datasheet describes, there is 50 ms + (KB)*1.7 ms wake-up time which is about 450 ms in my case.
But the problem is my application has frequent wake-up (not short enough to have LPDS reasonable) so a battery is unhappy with 450 ms at every wake-up.
(currently, bin size is about 240 KB, wake-up every 10 mins)
So my questions are
There is no easy solution.
Are you able to to split your firmware to 2 (small wake-up firmware and then another normal one)?
Is the normal firmware required frequently?
You can use 2 firmware files or one firmware with overlays but you will need to manage the code replacement and the authentication by your self.
It will be worth implementing only if the switch from wakeup firmware to the full one is rare enough.
In such case you can store the 2 FW files on the file system and copy the required one as "/sys/mcuimg.bin" (Such as during OTA), or you can just copy the overlay part. In both cases you will need the NWP to be up (to access the file system) which will add to the wakeup time - so it won't be useful if this happens frequently.
We are glad that we were able to resolve this issue, and will now proceed to close this thread.
If you have further questions related to this thread, you may click "Ask a related question" below. The newly created question will be automatically linked to this question.
In reply to Kobi Leibovitch:
I think approach with two interchangeable file /sys/mcuimg.bin is not a best way. Better is to have one small /sys/mcuimg.bin with wake-up functionality. And if will be needed that this firmware will load full firmware into RAM and jump there for execution. This approach is similar like a secondary bootlaoder at CC3200 OTA example. Another option can be use approach similar like dynamic_lib_loader at CC3200 SDK.
Please click to "Verify Answer", if your question was answered.
In reply to Jan D:
I agree. Using a "secondary bootloader" to the wakeup fw is probably the most efficient way. if you compile the code with overlays, the "2nd bootloader" can just replace the relevant "overlay" sections.
Using 2 files, can be easier as it uses standard mechanism of cc3220, but it will be less efficient.
My application can be split into two - a very light wake-up firmware which supposed to run over 100 times a day and a relatively heavy one which will run 10~20 times a day.
Now I roughly understand the situation but I would appreciate if you could share more things (examples or docs) I can practice with. Quite hard to find one.
In reply to YunJung Kim:
As Jan mentioned you can download the CC3200 sdk (https://www.ti.com/tool/CC3200SDK) and check the code of application_bootloader (specifically refer to the LoadAndExecute() function).
Note that the loadAndExecute code should be placed in a special section (that is supported by the linker cmd file) in a location that is not overwritten (in the cc3200 SDK, the first 16KB of the RAM were reserved for the entire application_bootloader code, so other applications started in address 0x20004000 rather then 0x20000000)
The CC3220 SDK doesn't include similar example.
A few comments. Some additional information related to this topic you find here. But as Kobi mentioned it is crucial to properly set memory sections (linker file). What device do you use it is CC3220MODASF or CC3220MODAS?
Thanks for the link!
I'm using MODAS without internal flash.
All content and materials on this site are provided "as is". TI and its respective suppliers and providers of content make no representations about the suitability of these materials for any purpose and disclaim all warranties and conditions with regard to these materials, including but not limited to all implied warranties and conditions of merchantability, fitness for a particular purpose, title and non-infringement of any third party intellectual property right. No license, either express or implied, by estoppel or otherwise, is granted by TI. Use of the information on this site may require a license from a third party, or a license from TI.
TI is a global semiconductor design and manufacturing company. Innovate with 100,000+ analog ICs andembedded processors, along with software, tools and the industry’s largest sales/support staff.