void sys_startup_init(BOOL8 shutdown) { // // Check for operating mode // if (!shutdown) { // setup MMU shutdown = (*isys_startup_mmu_init)(shutdown); .... } // Shutdown if mode is not normal .... } The sys_startup_init function is entered from assembly code. The code shutdown = (*isys_startup_mmu_init)(shutdown); function pointer is where the code execution is incorrect. Changing the function to : void sys_startup_mmu_init(void) results in the correct code being executed. However is not possible to change all the indirect function calls in this manner, so this is not a feasible solution. C compiler version: 7.07h
Thanks I will keep it in mind. But, in my case 8 of 10 the function calls were set at the begining and do not change. I assume they were for future flexibility that was never needed.