]> rtime.felk.cvut.cz Git - arc.git/blobdiff - include/Mcu.h
Merge branch 'mikulka' of git@rtime.felk.cvut.cz:arc into mikulka
[arc.git] / include / Mcu.h
index 92601e3e61312c9ac243c960d1a535e9b2998210..0ffa2a5b811f7ac4fa297b41bc31820ce0957fde 100644 (file)
@@ -23,6 +23,8 @@
 #ifndef MCU_H_\r
 #define MCU_H_\r
 \r
+#include "Modules.h"\r
+\r
 #define MCU_SW_MAJOR_VERSION           2\r
 #define MCU_SW_MINOR_VERSION               0\r
 #define MCU_SW_PATCH_VERSION           0\r
@@ -74,10 +76,6 @@ typedef enum {
 } Mcu_PllStatusType;\r
 \r
 \r
-typedef enum {\r
-       MCU_MODE_NORMAL=0\r
-} Mcu_ModeType;\r
-\r
 //TODO\r
 typedef uint8_t Mcu_RamSectionType;\r
 \r
@@ -87,7 +85,11 @@ typedef enum {
        MCU_POWER_ON_RESET,\r
        MCU_WATCHDOG_RESET,\r
        MCU_SW_RESET,\r
-       MCU_RESET_UNDEFINED\r
+       MCU_RESET_UNDEFINED,\r
+       MCU_OSC_FAILURE_RESET,\r
+    MCU_CPU_RESET,\r
+    MCU_EXT_RESET,\r
+    MCU_VSW_RESET\r
 } Mcu_ResetType;\r
 \r
 typedef struct {\r
@@ -98,6 +100,7 @@ typedef struct {
        uint8 Pll1; // PLL setting 1\r
        uint8 Pll2; // PLL setting 2\r
        uint8 Pll3; // PLL setting 3\r
+       uint8 Pll4; // PLL setting 4\r
 \r
 } Mcu_ClockSettingConfigType;\r
 \r
@@ -178,20 +181,18 @@ void Mcu_SetMode( const Mcu_ModeType McuMode );
 #define Mcu_GetVersionInfo(_vi) STD_GET_VERSION_INFO(_vi,MCU)\r
 #endif\r
 \r
-typedef uint32_t imask_t;\r
-\r
 /* ArcCore extensions */\r
+\r
 void Irq_InstallVector(void (*func)(), IrqType vector, uint8_t priority, Cpu_t cpu );\r
 void Irq_GenerateSoftInt( IrqType vector );\r
 uint8_t Irq_GetCurrentPriority( Cpu_t cpu);\r
 uint32_t McuE_GetSystemClock( void );\r
-#if defined(CFG_MPC55XX)\r
+#if defined(CFG_MPC55XX) || defined(CFG_ARM_CR4)\r
 uint32_t McuE_GetPeripheralClock( McuE_PeriperalClock_t type );\r
 #endif\r
-imask_t McuE_EnterCriticalSection(void);\r
-void McuE_ExitCriticalSection(imask_t old_state);\r
-\r
 \r
+void McuE_EnterLowPower( int mode );\r
+void McuE_LowPowerRecoverFlash( void );\r
 \r
 #endif /*MCU_H_*/\r
 /** @} */\r