/* * ======== Deh_Module_startup ======== */ Int Deh_Module_startup(Int phase) { if (AMMU_Module_startupDone() == TRUE) { Watchdog_init(ti_sysbios_family_arm_m3_Hwi_excHandlerAsm__I); return Startup_DONE; } return Startup_NOTDONE; }
/* * ======== Deh_Module_startup ======== * * Uses SYS/BIOS Exception handler function for Hwi-based Watchdog ISR. * This is used in order to cause the Watchdog expiration to appear like * an exception, but since Exception_handler() is not called from the * exception dispatcher (Hwi 1, NMI vector) the register and stack * information that is printed is not valid (all zeroes for my runs). * And we can't just plug the exception dispatcher into an Hwi, since it * looks for an actual exception status and returns immediately (through * NRP, which wasn't set for an Hwi) when no real exception is seen. */ Int Deh_Module_startup(Int phase) { #if defined(HAS_AMMU) if (AMMU_Module_startupDone() == TRUE) { Watchdog_init((Void (*)(Void))ti_sysbios_family_c64p_Exception_handler); return Startup_DONE; } return Startup_NOTDONE; #else Watchdog_init((Void (*)(Void))ti_sysbios_family_c64p_Exception_handler); return Startup_DONE; #endif }