int main(void) { SystemInit(); // from Atmel Foo_Init(); // our code Bar_Init(); // our code Baz_Init(); // our code // many, many more, all hand-written for (;;) { Foo_Run(); // our code Bar_Run(); // our code Baz_Run(); // our code // many, many more, all hand-written } } #### static Func_t initFuncs[] = { Foo_Init, Bar_Init, Baz_Init, ... }; static Func_t runFuncs[] = { Foo_Run, Bar_Run, Baz_Run, ... }; int main(void) { SystemInit(); // from Atmel for (size_t i=0; i