\r
void Mcu_DistributePllClock(void)\r
{\r
-\r
+ VALIDATE( ( 1 == Mcu_Global.initRun ), MCU_DISTRIBUTEPLLCLOCK_SERVICE_ID, MCU_E_UNINIT );\r
}\r
\r
//-------------------------------------------------------------------\r
\r
\r
Mcu_PllStatusType Mcu_GetPllStatus(void) {\r
+ VALIDATE_W_RV( ( 1 == Mcu_Global.initRun ), MCU_GETPLLSTATUS_SERVICE_ID, MCU_E_UNINIT, MCU_PLL_STATUS_UNDEFINED );\r
\r
if ((systemREG1->CSVSTAT & ((systemREG1->CSDIS ^ 0xFF) & 0xFF)) != ((systemREG1->CSDIS ^ 0xFF) & 0xFF)) {\r
return MCU_PLL_UNLOCKED;\r
* @return\r
*/\r
Mcu_ResetType Mcu_GetResetReason(void) {\r
- // TODO Not supported\r
- Mcu_ResetType rv = MCU_RESET_UNDEFINED;\r
- return rv;\r
+ VALIDATE_W_RV( ( 1 == Mcu_Global.initRun ), MCU_GETRESETREASON_SERVICE_ID, MCU_E_UNINIT, MCU_RESET_UNDEFINED );\r
+ Mcu_ResetType reason = MCU_RESET_UNDEFINED;\r
+\r
+ if (systemREG1->SYSESR & 0x00008000) {\r
+ reason = MCU_POWER_ON_RESET;\r
+ systemREG1->SYSESR = 0x00008000;\r
+ } else if (systemREG1->SYSESR & 0x00004000) {\r
+ reason = MCU_OSC_FAILURE_RESET;\r
+ systemREG1->SYSESR = 0x00004000;\r
+ } else if (systemREG1->SYSESR & 0x00002000) {\r
+ reason = MCU_WATCHDOG_RESET;\r
+ systemREG1->SYSESR = 0x00002000;\r
+ } else if (systemREG1->SYSESR & 0x00000020) {\r
+ reason = MCU_CPU_RESET;\r
+ systemREG1->SYSESR = 0x00000020;\r
+ } else if (systemREG1->SYSESR & 0x00000010) {\r
+ reason = MCU_SW_RESET;\r
+ systemREG1->SYSESR = 0x00000010;\r
+ } else if (systemREG1->SYSESR & 0x00000008) {\r
+ reason = MCU_EXT_RESET;\r
+ systemREG1->SYSESR = 0x00000008;\r
+ } else if (systemREG1->SYSESR & 0x00000004) {\r
+ reason = MCU_VSW_RESET;\r
+ systemREG1->SYSESR = 0x00000004;\r
+ } else {\r
+ reason = MCU_RESET_UNDEFINED;\r
+ }\r
+\r
+/* USER CODE BEGIN (23) */\r
+/* USER CODE END */\r
+\r
+ return reason;\r
}\r
\r
//-------------------------------------------------------------------\r
*/\r
\r
Mcu_RawResetType Mcu_GetResetRawValue(void) {\r
+ VALIDATE_W_RV( ( 1 == Mcu_Global.initRun ), MCU_GETRESETREASON_SERVICE_ID, MCU_E_UNINIT, MCU_GETRESETRAWVALUE_UNINIT_RV );\r
\r
- return 0;\r
+ Mcu_RawResetType reason = 0xFFFFFFFF;\r
+ reason = systemREG1->SYSESR & 0x0000E03B;\r
+ systemREG1->SYSESR = 0x0000E03B;\r
+\r
+ return reason;\r
}\r
\r
//-------------------------------------------------------------------\r
*/\r
void Mcu_PerformReset(void)\r
{\r
- /* Not supported yet */\r
+ VALIDATE( ( 1 == Mcu_Global.initRun ), MCU_PERFORMRESET_SERVICE_ID, MCU_E_UNINIT );\r
+ systemREG1->SYSECR = 0x00008000;\r
}\r
#endif\r
\r
\r
void Mcu_SetMode(const Mcu_ModeType McuMode)\r
{\r
+ VALIDATE( ( 1 == Mcu_Global.initRun ), MCU_SETMODE_SERVICE_ID, MCU_E_UNINIT );\r
/* NOT SUPPORTED */\r
}\r
\r