astroboy astroboy
/
CoOS_LWIP
Quick and dirty CoOS + LWIP ( Webserver )
Diff: CoOS/portable/OsArch.h
- Revision:
- 0:94897d537b31
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/CoOS/portable/OsArch.h Sat Sep 10 22:41:10 2011 +0000 @@ -0,0 +1,50 @@ +/** + ******************************************************************************* + * @file OsArch.h + * @version V1.1.4 + * @date 2011.04.20 + * @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>© 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