lpc1768.pp 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. unit lpc1768;
  2. {$goto on}
  3. {$define lpc1768}
  4. interface
  5. var
  6. STCTRL : DWord absolute $E000E010;
  7. STRELOAD : DWord absolute $E000E014;
  8. STCURR : DWord absolute $E000E018;
  9. FIO1DIR2 : Byte absolute $2009C022;
  10. FIO1SET2 : Byte absolute $2009C03A;
  11. FIO1CLR2 : Byte absolute $2009C03E;
  12. SCS : DWord absolute $400FC1A0;
  13. CLKSRCSEL: DWord absolute $400FC10C;
  14. PLL0FEED : DWord absolute $400FC08C;
  15. PLL0CON : DWord absolute $400FC080;
  16. PLL0CFG : DWord absolute $400FC084;
  17. PLL0STAT : DWord absolute $400FC088;
  18. CCLKCFG : DWord absolute $400FC104;
  19. implementation
  20. procedure NMI_interrupt; external name 'NMI_interrupt';
  21. procedure Hardfault_interrupt; external name 'Hardfault_interrupt';
  22. procedure MemManage_interrupt; external name 'MemManage_interrupt';
  23. procedure BusFault_interrupt; external name 'BusFault_interrupt';
  24. procedure UsageFault_interrupt; external name 'UsageFault_interrupt';
  25. procedure SWI_interrupt; external name 'SWI_interrupt';
  26. procedure DebugMonitor_interrupt; external name 'DebugMonitor_interrupt';
  27. procedure PendingSV_interrupt; external name 'PendingSV_interrupt';
  28. procedure SysTick_interrupt; external name 'SysTick_interrupt';
  29. procedure Watchdog_Interrupt; external name 'Watchdog_Interrupt';
  30. procedure Timer0_Interrupt; external name 'Timer0_Interrupt';
  31. procedure Timer1_Interrupt; external name 'Timer1_Interrupt';
  32. procedure Timer2_Interrupt; external name 'Timer2_Interrupt';
  33. procedure Timer3_Interrupt; external name 'Timer3_Interrupt';
  34. procedure UART0_Interrupt; external name 'UART0_Interrupt';
  35. procedure UART1_Interrupt; external name 'UART1_Interrupt';
  36. procedure UART2_Interrupt; external name 'UART2_Interrupt';
  37. procedure UART3_Interrupt; external name 'UART3_Interrupt';
  38. procedure PWM1_Interrupt; external name 'PWM1_Interrupt';
  39. procedure I2C0_Interrupt; external name 'I2C0_Interrupt';
  40. procedure I2C1_Interrupt; external name 'I2C1_Interrupt';
  41. procedure I2C2_Interrupt; external name 'I2C2_Interrupt';
  42. procedure SPI_Interrupt; external name 'SPI_Interrupt';
  43. procedure SSP0_Interrupt; external name 'SSP0_Interrupt';
  44. procedure SSP1_Interrupt; external name 'SSP1_Interrupt';
  45. procedure PLL0_Interrupt; external name 'PLL0_Interrupt';
  46. procedure RTC_Interrupt; external name 'RTC_Interrupt';
  47. procedure EINT0_Interrupt; external name 'EINT0_Interrupt';
  48. procedure EINT1_Interrupt; external name 'EINT1_Interrupt';
  49. procedure EINT2_Interrupt; external name 'EINT2_Interrupt';
  50. procedure EINT3_Interrupt; external name 'EINT3_Interrupt';
  51. procedure ADC_Interrupt; external name 'ADC_Interrupt';
  52. procedure BOD_Interrupt; external name 'BOD_Interrupt';
  53. procedure USB_Interrupt; external name 'USB_Interrupt';
  54. procedure CAN_Interrupt; external name 'CAN_Interrupt';
  55. procedure HPDMA_Interrupt; external name 'HPDMA_Interrupt';
  56. procedure I2C_Interrupt; external name 'I2C_Interrupt';
  57. procedure Ethernet_Interrupt; external name 'Ethernet_Interrupt';
  58. procedure RITINT_Interrupt; external name 'RITINT_Interrupt';
  59. procedure MotorControlPWM_Interrupt; external name 'MotorControlPWM_Interrupt';
  60. procedure QuadratureEncoder_Interrupt; external name 'QuadratureEncoder_Interrupt';
  61. procedure PLL1_Interrupt; external name 'PLL1_Interrupt';
  62. procedure USBActivity_Interrupt; external name 'USBActivity_Interrupt';
  63. procedure CanActivity_Interrupt; external name 'CanActivity_Interrupt';
  64. {$i cortexm3_start.inc}
  65. procedure Vectors; assembler; nostackframe;
  66. label interrupt_vectors;
  67. asm
  68. .section ".init.interrupt_vectors"
  69. interrupt_vectors:
  70. .long _stack_top // stack top address
  71. .long Startup
  72. .long NMI_interrupt
  73. .long Hardfault_interrupt
  74. .long MemManage_interrupt
  75. .long BusFault_interrupt
  76. .long UsageFault_interrupt
  77. .long 0
  78. .long 0
  79. .long 0
  80. .long 0
  81. .long SWI_interrupt
  82. .long DebugMonitor_interrupt
  83. .long 0
  84. .long PendingSV_interrupt
  85. .long SysTick_interrupt
  86. .long Watchdog_Interrupt
  87. .long Timer0_Interrupt
  88. .long Timer1_Interrupt
  89. .long Timer2_Interrupt
  90. .long Timer3_Interrupt
  91. .long UART0_Interrupt
  92. .long UART1_Interrupt
  93. .long UART2_Interrupt
  94. .long UART3_Interrupt
  95. .long PWM1_Interrupt
  96. .long I2C0_Interrupt
  97. .long I2C1_Interrupt
  98. .long I2C2_Interrupt
  99. .long SPI_Interrupt
  100. .long SSP0_Interrupt
  101. .long SSP1_Interrupt
  102. .long PLL0_Interrupt
  103. .long RTC_Interrupt
  104. .long EINT0_Interrupt
  105. .long EINT1_Interrupt
  106. .long EINT2_Interrupt
  107. .long EINT3_Interrupt
  108. .long ADC_Interrupt
  109. .long BOD_Interrupt
  110. .long USB_Interrupt
  111. .long CAN_Interrupt
  112. .long HPDMA_Interrupt
  113. .long I2C_Interrupt
  114. .long Ethernet_Interrupt
  115. .long RITINT_Interrupt
  116. .long MotorControlPWM_Interrupt
  117. .long QuadratureEncoder_Interrupt
  118. .long PLL1_Interrupt
  119. .long USBActivity_Interrupt
  120. .long CanActivity_Interrupt
  121. .weak NMI_interrupt
  122. .weak Hardfault_interrupt
  123. .weak MemManage_interrupt
  124. .weak BusFault_interrupt
  125. .weak UsageFault_interrupt
  126. .weak SWI_interrupt
  127. .weak DebugMonitor_interrupt
  128. .weak PendingSV_interrupt
  129. .weak SysTick_interrupt
  130. .weak Watchdog_Interrupt
  131. .weak Timer0_Interrupt
  132. .weak Timer1_Interrupt
  133. .weak Timer2_Interrupt
  134. .weak Timer3_Interrupt
  135. .weak UART0_Interrupt
  136. .weak UART1_Interrupt
  137. .weak UART2_Interrupt
  138. .weak UART3_Interrupt
  139. .weak PWM1_Interrupt
  140. .weak I2C0_Interrupt
  141. .weak I2C1_Interrupt
  142. .weak I2C2_Interrupt
  143. .weak SPI_Interrupt
  144. .weak SSP0_Interrupt
  145. .weak SSP1_Interrupt
  146. .weak PLL0_Interrupt
  147. .weak RTC_Interrupt
  148. .weak EINT0_Interrupt
  149. .weak EINT1_Interrupt
  150. .weak EINT2_Interrupt
  151. .weak EINT3_Interrupt
  152. .weak ADC_Interrupt
  153. .weak BOD_Interrupt
  154. .weak USB_Interrupt
  155. .weak CAN_Interrupt
  156. .weak HPDMA_Interrupt
  157. .weak I2C_Interrupt
  158. .weak Ethernet_Interrupt
  159. .weak RITINT_Interrupt
  160. .weak MotorControlPWM_Interrupt
  161. .weak QuadratureEncoder_Interrupt
  162. .weak PLL1_Interrupt
  163. .weak USBActivity_Interrupt
  164. .weak CanActivity_Interrupt
  165. .set NMI_interrupt, Startup
  166. .set Hardfault_interrupt, Startup
  167. .set MemManage_interrupt, Startup
  168. .set BusFault_interrupt, Startup
  169. .set UsageFault_interrupt, Startup
  170. .set SWI_interrupt, Startup
  171. .set DebugMonitor_interrupt, Startup
  172. .set PendingSV_interrupt, Startup
  173. .set SysTick_interrupt, Startup
  174. .set Watchdog_Interrupt, Startup
  175. .set Timer0_Interrupt, Startup
  176. .set Timer1_Interrupt, Startup
  177. .set Timer2_Interrupt, Startup
  178. .set Timer3_Interrupt, Startup
  179. .set UART0_Interrupt, Startup
  180. .set UART1_Interrupt, Startup
  181. .set UART2_Interrupt, Startup
  182. .set UART3_Interrupt, Startup
  183. .set PWM1_Interrupt, Startup
  184. .set I2C0_Interrupt, Startup
  185. .set I2C1_Interrupt, Startup
  186. .set I2C2_Interrupt, Startup
  187. .set SPI_Interrupt, Startup
  188. .set SSP0_Interrupt, Startup
  189. .set SSP1_Interrupt, Startup
  190. .set PLL0_Interrupt, Startup
  191. .set RTC_Interrupt, Startup
  192. .set EINT0_Interrupt, Startup
  193. .set EINT1_Interrupt, Startup
  194. .set EINT2_Interrupt, Startup
  195. .set EINT3_Interrupt, Startup
  196. .set ADC_Interrupt, Startup
  197. .set BOD_Interrupt, Startup
  198. .set USB_Interrupt, Startup
  199. .set CAN_Interrupt, Startup
  200. .set HPDMA_Interrupt, Startup
  201. .set I2C_Interrupt, Startup
  202. .set Ethernet_Interrupt, Startup
  203. .set RITINT_Interrupt, Startup
  204. .set MotorControlPWM_Interrupt, Startup
  205. .set QuadratureEncoder_Interrupt, Startup
  206. .set PLL1_Interrupt, Startup
  207. .set USBActivity_Interrupt, Startup
  208. .set CanActivity_Interrupt, Startup
  209. .text
  210. end;
  211. end.