main.c
Upload User: tym7xi
Upload Date: 2018-01-17
Package Size: 6975k
Code Size: 3k
Development Platform:

C/C++

  1. //*------------------------------------------------------------------------------------------------
  2. //* 文件名 : main.c
  3. //* 功能描述 : 系统入口函数文件
  4. //* 作者     : 焦海波
  5. //* 版本 : 0.1
  6. //* 建立日期、时间 : 2007/05/25 17:00
  7. //* 最近修改日期、时间 : 
  8. //* 修改原因 : 
  9. //*------------------------------------------------------------------------------------------------
  10. //*------------------------------------------ 头文件 -----------------------------------------------
  11. #include "/uCOS-II/ucos_ii.h"
  12. #include "/at91sam7x256/include/AT91SAM7X256.h"
  13. #include "/at91sam7x256/include/lib_AT91SAM7X256.h"
  14. //*-------------------------------------- 常量及宏定义 ---------------------------------------------
  15. #define T_LWIPENTRY_PRIOR 10
  16. #define T_LWIPENTRY_STKSIZE 256
  17. OS_STK T_LWIPENTRY_STK[T_LWIPENTRY_STKSIZE];
  18. //*================================================================================================
  19. //* 函 数 区
  20. //*================================================================================================
  21. //*------------------------------------------------------------------------------------------------
  22. //* 函数名称 : __SystemInitialization
  23. //* 功能描述 : 初始化内核调度定时器并加载动态函数库到指定RAM
  24. //* 入口参数 : 无
  25. //* 出口参数 : 无
  26. //*------------------------------------------------------------------------------------------------
  27. static void __SystemInitialization(void)
  28. {
  29. AT91F_AIC_ConfigureIt(AT91C_BASE_AIC, AT91C_ID_SYS, AT91C_AIC_PRIOR_HIGHEST, AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, OSTickISR);
  30.     AT91C_BASE_AIC->AIC_IECR = 0x01 << AT91C_ID_SYS;
  31. }
  32. //*------------------------------------------------------------------------------------------------
  33. //* 函数名称 : __SetupHardware
  34. //* 功能描述 : 根据应用目的,对系统硬件进行初始化设置,主要是针对系统外围,AIC等的设置。上电复位期间使系统
  35. //*  : 能够正常运行的最基本硬件设置在AT91F_LowLevelInit()函数完成。
  36. //* 入口参数 : 无
  37. //* 出口参数 : 无
  38. //*------------------------------------------------------------------------------------------------
  39. static void __SetupHardware(void)
  40. {
  41. AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, 1 << AT91C_ID_PIOB | 1 << AT91C_ID_EMAC);
  42. AT91F_PIO_CfgOutput(AT91C_BASE_PIOB, AT91C_PIO_PB19 | AT91C_PIO_PB20 | AT91C_PIO_PB21 | AT91C_PIO_PB22);
  43. }
  44. //*------------------------------------------------------------------------------------------------
  45. //* 函数名称 : main
  46. //* 功能描述 : 系统入口
  47. //* 入口参数 : 无
  48. //* 出口参数 : 无
  49. //*------------------------------------------------------------------------------------------------
  50. int CMain(void)
  51. {
  52. extern void T_LwIPEntry(void*);
  53. __SetupHardware();
  54.     __SystemInitialization();
  55.          
  56.     OSInit();
  57.     
  58.     //* 建立任务
  59.     OSTaskCreate(T_LwIPEntry, (void*)NULL, &T_LWIPENTRY_STK[T_LWIPENTRY_STKSIZE-1], T_LWIPENTRY_PRIOR);
  60.     
  61. OSStart();
  62.     return(0);
  63. }