Hi FB
The uTasker project supports the following:
- a boot project containing all library resources (OS, TCP/IP stack and other things that can be shared)
- multiple application images sharing the library routines (via a dynamic jump table)
- application firmware updates controlled by the boot project
- ability to update also the boot project (eg. when new library calls are added) using a 2k (4k for Kirin3 since it has a larger FLASH granularity) boot loader
As mentioned above, this is based on a jump table. The boot project enters its function calls in a table in RAM which can then be used as trampoline calls by any application rather than them needing to known where the code is and associated linker complications.
The actual use is very simple since the trampoline operation is invisible to the programmer as it is controlled by a header file used exclusively by the application projects which causes all relevant routines to be re-defined to their trampoline variation, causing the jump to take place via an intermediate address in SRAM.
The configuration itself is however a bit tricky since the applications needs to by able to interact with the boot program at startup enought to be able to configured the trampoline reources (based on a few FLASH locations which are fixed accordingly in the general project).
The uTasker scheduler also controls the operation, allowing an application project to also be dynamically constructed from various tasks; some taken from the boot program and some taken from certain application configurations. In your case, without an OS, your scheduler may need some additional capabilities depending on the actual goal.
Unfortunately it is not possible to give a short guide as how to actually program this (there are various possible detailed solutions) since it can get quite involved but you may get some ideas from the general description above.
Regards
Mark
www.uTasker.com
- OS, TCP/IP stack, USB, device drivers and simulator for M521X, M521XX, M5221X, M5222X, M5223X, M5225X. One package does them all - "Embedding it better..."