target.c
上传用户:yyhongfa
上传日期:2013-01-18
资源大小:267k
文件大小:6k
开发平台:

C/C++

  1. /****************************************Copyright (c)**************************************************
  2. **                               广州周立功单片机发展有限公司
  3. **                                     研    究    所
  4. **                                        产品一部 
  5. **
  6. **                                 http://www.zlgmcu.com
  7. **
  8. **--------------文件信息--------------------------------------------------------------------------------
  9. **文   件   名: target.c
  10. **创   建   人: 陈明计
  11. **最后修改日期: 2004年2月2日
  12. **描        述: lpc21xx(飞利浦的ARM)目标板特殊的代码,包括异常处理程序和目标板初始化程序
  13. **              每个工程应当具有这个文件的拷贝,用户根据程序的需要修改本文件。
  14. **--------------历史版本信息----------------------------------------------------------------------------
  15. ** 创建人: 陈明计
  16. ** 版  本: v1.0
  17. ** 日 期: 2004年2月2日
  18. ** 描 述: 原始版本
  19. **
  20. **------------------------------------------------------------------------------------------------------
  21. ** 修改人:
  22. ** 版  本:
  23. ** 日 期:
  24. ** 描 述:
  25. **
  26. **--------------当前版本修订------------------------------------------------------------------------------
  27. ** 修改人:
  28. ** 日 期:
  29. ** 描 述:
  30. **
  31. **------------------------------------------------------------------------------------------------------
  32. ********************************************************************************************************/
  33. #define IN_TARGET
  34. #include "config.h"
  35. /*********************************************************************************************************
  36. ** 函数名称: IRQ_Exception
  37. ** 功能描述: 中断异常处理程序,用户根据需要自己改变程序
  38. **
  39. ** 输 入: 无
  40. **
  41. ** 输 出: 无
  42. **         
  43. ** 全局变量: 无
  44. ** 调用模块: 无
  45. **
  46. ** 作 者: 陈明计
  47. ** 日 期: 2004年2月2日
  48. **-------------------------------------------------------------------------------------------------------
  49. ** 修改人:
  50. ** 日 期:
  51. **------------------------------------------------------------------------------------------------------
  52. ********************************************************************************************************/
  53.         void __irq IRQ_Exception(void)
  54. {
  55.     while(1);                   // 这一句替换为自己的代码
  56. }
  57. /*********************************************************************************************************
  58. ** 函数名称: FIQ_Exception
  59. ** 功能描述: 快速中断异常处理程序,用户根据需要自己改变程序
  60. **           
  61. ** 输 入: 无
  62. **
  63. ** 输 出: 无
  64. **         
  65. ** 全局变量: 无
  66. ** 调用模块: 无
  67. **
  68. ** 作 者: 陈明计
  69. ** 日 期: 2004年2月2日
  70. **-------------------------------------------------------------------------------------------------------
  71. ** 修改人:
  72. ** 日 期:
  73. **------------------------------------------------------------------------------------------------------
  74. ********************************************************************************************************/
  75.         void FIQ_Exception(void)
  76. {
  77.     while(1);                   // 这一句替换为自己的代码
  78. }
  79. /*********************************************************************************************************
  80. ** 函数名称: TargetInit
  81. ** 功能描述: 目标板初始化代码,在需要的地方调用,根据需要改变
  82. ** 输 入: 无
  83. **
  84. ** 输 出: 无
  85. **         
  86. ** 全局变量: 无
  87. ** 调用模块: 无
  88. **
  89. ** 作 者: 陈明计
  90. ** 日 期: 2004年2月2日
  91. **-------------------------------------------------------------------------------------------------------
  92. ** 修改人:
  93. ** 日 期:
  94. **------------------------------------------------------------------------------------------------------
  95. ********************************************************************************************************/
  96.        void TargetInit(void)
  97. {
  98.     /* 添加自己的代码 */
  99. }
  100. /*********************************************************************************************************
  101. ** 函数名称: TargetResetInit
  102. ** 功能描述: 调用main函数前目标板初始化代码,根据需要改变,不能删除
  103. ** 输 入: 无
  104. **
  105. ** 输 出: 无
  106. **         
  107. ** 全局变量: 无
  108. ** 调用模块: 无
  109. **
  110. ** 作 者: 陈明计
  111. ** 日 期: 2004年2月2日
  112. **-------------------------------------------------------------------------------------------------------
  113. ** 修改人:
  114. ** 日 期:
  115. **-------------------------------------------------------------------------------------------------------
  116. ********************************************************************************************************/
  117.         void TargetResetInit(void)
  118. {
  119. #ifdef __DEBUG_RAM    
  120.     MEMMAP = 0x2;                   //remap
  121. #endif
  122. #ifdef __DEBUG_FLASH    
  123.     MEMMAP = 0x1;                   //remap
  124. #endif
  125. #ifdef __IN_CHIP    
  126.     MEMMAP = 0x1;                   //remap
  127. #endif
  128.     /* 设置系统各部分时钟 */
  129.     PLLCON = 1;
  130. #if (Fpclk / (Fcclk / 4)) == 1
  131.     VPBDIV = 0;
  132. #endif
  133. #if (Fpclk / (Fcclk / 4)) == 2
  134.     VPBDIV = 2;
  135. #endif
  136. #if (Fpclk / (Fcclk / 4)) == 4
  137.     VPBDIV = 1;
  138. #endif
  139. #if (Fcco / Fcclk) == 2
  140.     PLLCFG = ((Fcclk / Fosc) - 1) | (0 << 5);
  141. #endif
  142. #if (Fcco / Fcclk) == 4
  143.     PLLCFG = ((Fcclk / Fosc) - 1) | (1 << 5);
  144. #endif
  145. #if (Fcco / Fcclk) == 8
  146.     PLLCFG = ((Fcclk / Fosc) - 1) | (2 << 5);
  147. #endif
  148. #if (Fcco / Fcclk) == 16
  149.     PLLCFG = ((Fcclk / Fosc) - 1) | (3 << 5);
  150. #endif
  151.     PLLFEED = 0xaa;
  152.     PLLFEED = 0x55;
  153.     while((PLLSTAT & (1 << 10)) == 0);
  154.     PLLCON = 3;
  155.     PLLFEED = 0xaa;
  156.     PLLFEED = 0x55;
  157.     
  158.     /* 设置存储器加速模块 */
  159.     MAMCR = 0;
  160. #if Fcclk < 20000000
  161.     MAMTIM = 1;
  162. #else
  163. #if Fcclk < 40000000
  164.     MAMTIM = 2;
  165. #else
  166.     MAMTIM = 3;
  167. #endif
  168. #endif
  169.     MAMCR = 2;
  170.     
  171.     /* 初始化VIC */
  172.     VICIntEnClr = 0xffffffff;
  173.     VICVectAddr = 0;
  174.     VICIntSelect = 0;
  175.     /* 添加自己的代码 */
  176. }
  177. /*********************************************************************************************************
  178. **                            End Of File
  179. ********************************************************************************************************/