CoOS Demonstrator adapted to mbed Hardware.

Dependencies:   mbed

Revision:
0:57690853989a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/OsArch.h	Fri Dec 03 19:45:30 2010 +0000
@@ -0,0 +1,50 @@
+/**
+ *******************************************************************************
+ * @file       OsArch.h
+ * @version    V1.1.3    
+ * @date       2010.04.26
+ * @brief      Implement function declare related to Cortex-M3(ARM-v7)
+ * @details    This header file including functions or defines related to 
+ *             Cortex-M3(ARM-v7).	 		
+ *******************************************************************************
+ * @copy
+ *
+ * INTERNAL FILE,DON'T PUBLIC.
+ * 
+ * <h2><center>&copy; COPYRIGHT 2009 CooCox </center></h2>
+ *******************************************************************************
+ */ 
+
+
+#ifndef  _CPU_H
+#define  _CPU_H
+
+
+#define NVIC_ST_CTRL    (*((volatile U32 *)0xE000E010))
+#define NVIC_ST_RELOAD  (*((volatile U32 *)0xE000E014))
+#define RELOAD_VAL      ((U32)(( (U32)CFG_CPU_FREQ) / (U32)CFG_SYSTICK_FREQ) -1)
+
+/*!< Initial System tick.	*/
+#define InitSysTick()   NVIC_ST_RELOAD =  RELOAD_VAL; \
+                        NVIC_ST_CTRL   =  0x0007    
+
+#define NVIC_SYS_PRI2   (*((volatile U32 *)0xE000ED1C))
+#define NVIC_SYS_PRI3   (*((volatile U32 *)0xE000ED20))
+
+/*!< Initialize PendSV,SVC and SysTick interrupt priority to lowest.          */
+#define InitInt()       NVIC_SYS_PRI2 |=  0xFF000000;\
+                        NVIC_SYS_PRI3 |=  0xFFFF0000
+
+
+/*---------------------------- Variable declare ------------------------------*/
+extern U64      OSTickCnt;          /*!< Counter for current system ticks.    */									
+
+/*!< Initial context of task being created	*/
+extern OS_STK  *InitTaskContext(FUNCPtr task,void *param,OS_STK *pstk);
+extern void    SwitchContext(void);         /*!< Switch context                   */
+extern void    SetEnvironment(OS_STK *pstk);/*!< Set environment for run          */
+extern U8      Inc8 (volatile U8 *data);
+extern U8      Dec8 (volatile U8 *data);
+extern void    IRQ_ENABLE_RESTORE(void);
+extern void    IRQ_DISABLE_SAVE(void);
+#endif