nrf51.pp 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942
  1. unit nrf51;
  2. interface
  3. {$PACKRECORDS 2}
  4. {$GOTO ON}
  5. {$MODESWITCH ADVANCEDRECORDS}
  6. // *****************************************************************************************************
  7. // * @file nrf51.h
  8. // CMSIS Cortex-M0 Peripheral Access Layer Header File for
  9. // * nrf51 from Nordic Semiconductor.
  10. // *
  11. // * @version V522
  12. // * @date 18. November 2016
  13. // *
  14. // * @note Generated with SVDConv V2.81d
  15. // * from CMSIS SVD File 'nrf51.svd' Version 522,
  16. // *
  17. // * @par Copyright (c) 2016, Nordic Semiconductor ASA
  18. // * All rights reserved.
  19. // *
  20. // * Redistribution and use in source and binary forms, with or without
  21. // * modification, are permitted provided that the following conditions are met:
  22. // *
  23. // * * Redistributions of source code must retain the above copyright notice, this
  24. // * list of conditions and the following disclaimer.
  25. // *
  26. // * * Redistributions in binary form must reproduce the above copyright notice,
  27. // * this list of conditions and the following disclaimer in the documentation
  28. // * and/or other materials provided with the distribution.
  29. // *
  30. // * * Neither the name of Nordic Semiconductor ASA nor the names of its
  31. // * contributors may be used to endorse or promote products derived from
  32. // * this software without specific prior written permission.
  33. // *
  34. // * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  35. // * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  36. // * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
  37. // * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
  38. // * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  39. // * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
  40. // * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
  41. // * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
  42. // * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  43. // * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  44. // *
  45. // *
  46. // ******************************************************************************************************
  47. // ------------------------- Interrupt Number Definition ------------------------
  48. type
  49. TIRQn_Enum = (
  50. Reset_IRQn = -15, // 1 Reset Vector, invoked on Power up and warm reset
  51. NonMaskableInt_IRQn = -14, // 2 Non maskable Interrupt, cannot be stopped or preempted
  52. HardFault_IRQn = -13, // 3 Hard Fault, all classes of Fault
  53. SVCall_IRQn = -5, // 11 System Service Call via SVC instruction
  54. DebugMonitor_IRQn = -4, // 12 Debug Monitor
  55. PendSV_IRQn = -2, // 14 Pendable request for system service
  56. SysTick_IRQn = -1, // 15 System Tick Timer
  57. POWER_CLOCK_IRQn = 0, // 0 POWER_CLOCK
  58. RADIO_IRQn = 1, // 1 RADIO
  59. UART0_IRQn = 2, // 2 UART0
  60. SPI0_TWI0_IRQn = 3, // 3 SPI0_TWI0
  61. SPI1_TWI1_IRQn = 4, // 4 SPI1_TWI1
  62. GPIOTE_IRQn = 6, // 6 GPIOTE
  63. ADC_IRQn = 7, // 7 ADC
  64. TIMER0_IRQn = 8, // 8 TIMER0
  65. TIMER1_IRQn = 9, // 9 TIMER1
  66. TIMER2_IRQn = 10, // 10 TIMER2
  67. RTC0_IRQn = 11, // 11 RTC0
  68. TEMP_IRQn = 12, // 12 TEMP
  69. RNG_IRQn = 13, // 13 RNG
  70. ECB_IRQn = 14, // 14 ECB
  71. CCM_AAR_IRQn = 15, // 15 CCM_AAR
  72. WDT_IRQn = 16, // 16 WDT
  73. RTC1_IRQn = 17, // 17 RTC1
  74. QDEC_IRQn = 18, // 18 QDEC
  75. LPCOMP_IRQn = 19, // 19 LPCOMP
  76. SWI0_IRQn = 20, // 20 SWI0
  77. SWI1_IRQn = 21, // 21 SWI1
  78. SWI2_IRQn = 22, // 22 SWI2
  79. SWI3_IRQn = 23, // 23 SWI3
  80. SWI4_IRQn = 24, // 24 SWI4
  81. SWI5_IRQn = 25 // 25 SWI5
  82. );
  83. TPPI_TASKS_CHG_Registers = record
  84. EN : longword; // Enable channel group.
  85. DIS : longword; // Disable channel group.
  86. end;
  87. TPPI_CH_Registers = record
  88. EEP : longword; // Channel event end-point.
  89. TEP : longword; // Channel task end-point.
  90. end;
  91. TPOWER_Registers = record // POWER Structure
  92. RESERVED0 : array[0..29] of longword;
  93. TASKS_CONSTLAT : longword; // Enable constant latency mode.
  94. TASKS_LOWPWR : longword; // Enable low power mode (variable latency).
  95. RESERVED1 : array[0..33] of longword;
  96. EVENTS_POFWARN : longword; // Power failure warning.
  97. RESERVED2 : array[0..125] of longword;
  98. INTENSET : longword; // Interrupt enable set register.
  99. INTENCLR : longword; // Interrupt enable clear register.
  100. RESERVED3 : array[0..60] of longword;
  101. RESETREAS : longword; // Reset reason.
  102. RESERVED4 : array[0..8] of longword;
  103. RAMSTATUS : longword; // Ram status register.
  104. RESERVED5 : array[0..52] of longword;
  105. SYSTEMOFF : longword; // System off register.
  106. RESERVED6 : array[0..2] of longword;
  107. POFCON : longword; // Power failure configuration.
  108. RESERVED7 : array[0..1] of longword;
  109. GPREGRET : longword; // General purpose retention register. This register is a retained
  110. RESERVED8 : longword;
  111. RAMON : longword; // Ram on/off.
  112. RESERVED9 : array[0..6] of longword;
  113. RESET : longword; // Pin reset functionality configuration register. This register
  114. RESERVED10 : array[0..2] of longword;
  115. RAMONB : longword; // Ram on/off.
  116. RESERVED11 : array[0..7] of longword;
  117. DCDCEN : longword; // DCDC converter enable configuration register.
  118. RESERVED12 : array[0..290] of longword;
  119. DCDCFORCE : longword; // DCDC power-up force register.
  120. end;
  121. TCLOCK_Registers = record // CLOCK Structure
  122. TASKS_HFCLKSTART : longword; // Start HFCLK clock source.
  123. TASKS_HFCLKSTOP : longword; // Stop HFCLK clock source.
  124. TASKS_LFCLKSTART : longword; // Start LFCLK clock source.
  125. TASKS_LFCLKSTOP : longword; // Stop LFCLK clock source.
  126. TASKS_CAL : longword; // Start calibration of LFCLK RC oscillator.
  127. TASKS_CTSTART : longword; // Start calibration timer.
  128. TASKS_CTSTOP : longword; // Stop calibration timer.
  129. RESERVED0 : array[0..56] of longword;
  130. EVENTS_HFCLKSTARTED : longword; // HFCLK oscillator started.
  131. EVENTS_LFCLKSTARTED : longword; // LFCLK oscillator started.
  132. RESERVED1 : longword;
  133. EVENTS_DONE : longword; // Calibration of LFCLK RC oscillator completed.
  134. EVENTS_CTTO : longword; // Calibration timer timeout.
  135. RESERVED2 : array[0..123] of longword;
  136. INTENSET : longword; // Interrupt enable set register.
  137. INTENCLR : longword; // Interrupt enable clear register.
  138. RESERVED3 : array[0..62] of longword;
  139. HFCLKRUN : longword; // Task HFCLKSTART trigger status.
  140. HFCLKSTAT : longword; // High frequency clock status.
  141. RESERVED4 : longword;
  142. LFCLKRUN : longword; // Task LFCLKSTART triggered status.
  143. LFCLKSTAT : longword; // Low frequency clock status.
  144. LFCLKSRCCOPY : longword; // Clock source for the LFCLK clock, set when task LKCLKSTART is
  145. RESERVED5 : array[0..61] of longword;
  146. LFCLKSRC : longword; // Clock source for the LFCLK clock.
  147. RESERVED6 : array[0..6] of longword;
  148. CTIV : longword; // Calibration timer interval.
  149. RESERVED7 : array[0..4] of longword;
  150. XTALFREQ : longword; // Crystal frequency.
  151. end;
  152. TMPU_Registers = record // MPU Structure
  153. RESERVED0 : array[0..329] of longword;
  154. PERR0 : longword; // Configuration of peripherals in mpu regions.
  155. RLENR0 : longword; // Length of RAM region 0.
  156. RESERVED1 : array[0..51] of longword;
  157. PROTENSET0 : longword; // Erase and write protection bit enable set register.
  158. PROTENSET1 : longword; // Erase and write protection bit enable set register.
  159. DISABLEINDEBUG : longword; // Disable erase and write protection mechanism in debug mode.
  160. PROTBLOCKSIZE : longword; // Erase and write protection block size.
  161. end;
  162. TRADIO_Registers = record // RADIO Structure
  163. TASKS_TXEN : longword; // Enable radio in TX mode.
  164. TASKS_RXEN : longword; // Enable radio in RX mode.
  165. TASKS_START : longword; // Start radio.
  166. TASKS_STOP : longword; // Stop radio.
  167. TASKS_DISABLE : longword; // Disable radio.
  168. TASKS_RSSISTART : longword; // Start the RSSI and take one sample of the receive signal strength.
  169. TASKS_RSSISTOP : longword; // Stop the RSSI measurement.
  170. TASKS_BCSTART : longword; // Start the bit counter.
  171. TASKS_BCSTOP : longword; // Stop the bit counter.
  172. RESERVED0 : array[0..54] of longword;
  173. EVENTS_READY : longword; // Ready event.
  174. EVENTS_ADDRESS : longword; // Address event.
  175. EVENTS_PAYLOAD : longword; // Payload event.
  176. EVENTS_END : longword; // End event.
  177. EVENTS_DISABLED : longword; // Disable event.
  178. EVENTS_DEVMATCH : longword; // A device address match occurred on the last received packet.
  179. EVENTS_DEVMISS : longword; // No device address match occurred on the last received packet.
  180. EVENTS_RSSIEND : longword; // Sampling of the receive signal strength complete. A new RSSI
  181. RESERVED1 : array[0..1] of longword;
  182. EVENTS_BCMATCH : longword; // Bit counter reached bit count value specified in BCC register.
  183. RESERVED2 : array[0..52] of longword;
  184. SHORTS : longword; // Shortcuts for the radio.
  185. RESERVED3 : array[0..63] of longword;
  186. INTENSET : longword; // Interrupt enable set register.
  187. INTENCLR : longword; // Interrupt enable clear register.
  188. RESERVED4 : array[0..60] of longword;
  189. CRCSTATUS : longword; // CRC status of received packet.
  190. RESERVED5 : longword;
  191. RXMATCH : longword; // Received address.
  192. RXCRC : longword; // Received CRC.
  193. DAI : longword; // Device address match index.
  194. RESERVED6 : array[0..59] of longword;
  195. PACKETPTR : longword; // Packet pointer. Decision point: START task.
  196. FREQUENCY : longword; // Frequency.
  197. TXPOWER : longword; // Output power.
  198. MODE : longword; // Data rate and modulation.
  199. PCNF0 : longword; // Packet configuration 0.
  200. PCNF1 : longword; // Packet configuration 1.
  201. BASE0 : longword; // Radio base address 0. Decision point: START task.
  202. BASE1 : longword; // Radio base address 1. Decision point: START task.
  203. PREFIX0 : longword; // Prefixes bytes for logical addresses 0 to 3.
  204. PREFIX1 : longword; // Prefixes bytes for logical addresses 4 to 7.
  205. TXADDRESS : longword; // Transmit address select.
  206. RXADDRESSES : longword; // Receive address select.
  207. CRCCNF : longword; // CRC configuration.
  208. CRCPOLY : longword; // CRC polynomial.
  209. CRCINIT : longword; // CRC initial value.
  210. TEST : longword; // Test features enable register.
  211. TIFS : longword; // Inter Frame Spacing in microseconds.
  212. RSSISAMPLE : longword; // RSSI sample.
  213. RESERVED7 : longword;
  214. STATE : longword; // Current radio state.
  215. DATAWHITEIV : longword; // Data whitening initial value.
  216. RESERVED8 : array[0..1] of longword;
  217. BCC : longword; // Bit counter compare.
  218. RESERVED9 : array[0..38] of longword;
  219. DAB : array[0..7] of longword; // Device address base segment.
  220. DAP : array[0..7] of longword; // Device address prefix.
  221. DACNF : longword; // Device address match configuration.
  222. RESERVED10 : array[0..55] of longword;
  223. OVERRIDE0 : longword; // Trim value override register 0.
  224. OVERRIDE1 : longword; // Trim value override register 1.
  225. OVERRIDE2 : longword; // Trim value override register 2.
  226. OVERRIDE3 : longword; // Trim value override register 3.
  227. OVERRIDE4 : longword; // Trim value override register 4.
  228. RESERVED11 : array[0..560] of longword;
  229. POWER : longword; // Peripheral power control.
  230. end;
  231. TUART_Registers = record // UART Structure
  232. TASKS_STARTRX : longword; // Start UART receiver.
  233. TASKS_STOPRX : longword; // Stop UART receiver.
  234. TASKS_STARTTX : longword; // Start UART transmitter.
  235. TASKS_STOPTX : longword; // Stop UART transmitter.
  236. RESERVED0 : array[0..2] of longword;
  237. TASKS_SUSPEND : longword; // Suspend UART.
  238. RESERVED1 : array[0..55] of longword;
  239. EVENTS_CTS : longword; // CTS activated.
  240. EVENTS_NCTS : longword; // CTS deactivated.
  241. EVENTS_RXDRDY : longword; // Data received in RXD.
  242. RESERVED2 : array[0..3] of longword;
  243. EVENTS_TXDRDY : longword; // Data sent from TXD.
  244. RESERVED3 : longword;
  245. EVENTS_ERROR : longword; // Error detected.
  246. RESERVED4 : array[0..6] of longword;
  247. EVENTS_RXTO : longword; // Receiver timeout.
  248. RESERVED5 : array[0..45] of longword;
  249. SHORTS : longword; // Shortcuts for UART.
  250. RESERVED6 : array[0..63] of longword;
  251. INTENSET : longword; // Interrupt enable set register.
  252. INTENCLR : longword; // Interrupt enable clear register.
  253. RESERVED7 : array[0..92] of longword;
  254. ERRORSRC : longword; // Error source. Write error field to 1 to clear error.
  255. RESERVED8 : array[0..30] of longword;
  256. ENABLE : longword; // Enable UART and acquire IOs.
  257. RESERVED9 : longword;
  258. PSELRTS : longword; // Pin select for RTS.
  259. PSELTXD : longword; // Pin select for TXD.
  260. PSELCTS : longword; // Pin select for CTS.
  261. PSELRXD : longword; // Pin select for RXD.
  262. RXD : longword; // RXD register. On read action the buffer pointer is displaced.
  263. TXD : longword; // TXD register.
  264. RESERVED10 : longword;
  265. BAUDRATE : longword; // UART Baudrate.
  266. RESERVED11 : array[0..16] of longword;
  267. CONFIG : longword; // Configuration of parity and hardware flow control register.
  268. RESERVED12 : array[0..674] of longword;
  269. POWER : longword; // Peripheral power control.
  270. end;
  271. TSPI_Registers = record // SPI Structure
  272. RESERVED0 : array[0..65] of longword;
  273. EVENTS_READY : longword; // TXD byte sent and RXD byte received.
  274. RESERVED1 : array[0..125] of longword;
  275. INTENSET : longword; // Interrupt enable set register.
  276. INTENCLR : longword; // Interrupt enable clear register.
  277. RESERVED2 : array[0..124] of longword;
  278. ENABLE : longword; // Enable SPI.
  279. RESERVED3 : longword;
  280. PSELSCK : longword; // Pin select for SCK.
  281. PSELMOSI : longword; // Pin select for MOSI.
  282. PSELMISO : longword; // Pin select for MISO.
  283. RESERVED4 : longword;
  284. RXD : longword; // RX data.
  285. TXD : longword; // TX data.
  286. RESERVED5 : longword;
  287. FREQUENCY : longword; // SPI frequency
  288. RESERVED6 : array[0..10] of longword;
  289. CONFIG : longword; // Configuration register.
  290. RESERVED7 : array[0..680] of longword;
  291. POWER : longword; // Peripheral power control.
  292. end;
  293. TTWI_Registers = record // TWI Structure
  294. TASKS_STARTRX : longword; // Start 2-Wire master receive sequence.
  295. RESERVED0 : longword;
  296. TASKS_STARTTX : longword; // Start 2-Wire master transmit sequence.
  297. RESERVED1 : array[0..1] of longword;
  298. TASKS_STOP : longword; // Stop 2-Wire transaction.
  299. RESERVED2 : longword;
  300. TASKS_SUSPEND : longword; // Suspend 2-Wire transaction.
  301. TASKS_RESUME : longword; // Resume 2-Wire transaction.
  302. RESERVED3 : array[0..55] of longword;
  303. EVENTS_STOPPED : longword; // Two-wire stopped.
  304. EVENTS_RXDREADY : longword; // Two-wire ready to deliver new RXD byte received.
  305. RESERVED4 : array[0..3] of longword;
  306. EVENTS_TXDSENT : longword; // Two-wire finished sending last TXD byte.
  307. RESERVED5 : longword;
  308. EVENTS_ERROR : longword; // Two-wire error detected.
  309. RESERVED6 : array[0..3] of longword;
  310. EVENTS_BB : longword; // Two-wire byte boundary.
  311. RESERVED7 : array[0..2] of longword;
  312. EVENTS_SUSPENDED : longword; // Two-wire suspended.
  313. RESERVED8 : array[0..44] of longword;
  314. SHORTS : longword; // Shortcuts for TWI.
  315. RESERVED9 : array[0..63] of longword;
  316. INTENSET : longword; // Interrupt enable set register.
  317. INTENCLR : longword; // Interrupt enable clear register.
  318. RESERVED10 : array[0..109] of longword;
  319. ERRORSRC : longword; // Two-wire error source. Write error field to 1 to clear error.
  320. RESERVED11 : array[0..13] of longword;
  321. ENABLE : longword; // Enable two-wire master.
  322. RESERVED12 : longword;
  323. PSELSCL : longword; // Pin select for SCL.
  324. PSELSDA : longword; // Pin select for SDA.
  325. RESERVED13 : array[0..1] of longword;
  326. RXD : longword; // RX data register.
  327. TXD : longword; // TX data register.
  328. RESERVED14 : longword;
  329. FREQUENCY : longword; // Two-wire frequency.
  330. RESERVED15 : array[0..23] of longword;
  331. ADDRESS : longword; // Address used in the two-wire transfer.
  332. RESERVED16 : array[0..667] of longword;
  333. POWER : longword; // Peripheral power control.
  334. end;
  335. TSPIS_Registers = record // SPIS Structure
  336. RESERVED0 : array[0..8] of longword;
  337. TASKS_ACQUIRE : longword; // Acquire SPI semaphore.
  338. TASKS_RELEASE : longword; // Release SPI semaphore.
  339. RESERVED1 : array[0..53] of longword;
  340. EVENTS_END : longword; // Granted transaction completed.
  341. RESERVED2 : array[0..1] of longword;
  342. EVENTS_ENDRX : longword; // End of RXD buffer reached
  343. RESERVED3 : array[0..4] of longword;
  344. EVENTS_ACQUIRED : longword; // Semaphore acquired.
  345. RESERVED4 : array[0..52] of longword;
  346. SHORTS : longword; // Shortcuts for SPIS.
  347. RESERVED5 : array[0..63] of longword;
  348. INTENSET : longword; // Interrupt enable set register.
  349. INTENCLR : longword; // Interrupt enable clear register.
  350. RESERVED6 : array[0..60] of longword;
  351. SEMSTAT : longword; // Semaphore status.
  352. RESERVED7 : array[0..14] of longword;
  353. STATUS : longword; // Status from last transaction.
  354. RESERVED8 : array[0..46] of longword;
  355. ENABLE : longword; // Enable SPIS.
  356. RESERVED9 : longword;
  357. PSELSCK : longword; // Pin select for SCK.
  358. PSELMISO : longword; // Pin select for MISO.
  359. PSELMOSI : longword; // Pin select for MOSI.
  360. PSELCSN : longword; // Pin select for CSN.
  361. RESERVED10 : array[0..6] of longword;
  362. RXDPTR : longword; // RX data pointer.
  363. MAXRX : longword; // Maximum number of bytes in the receive buffer.
  364. AMOUNTRX : longword; // Number of bytes received in last granted transaction.
  365. RESERVED11 : longword;
  366. TXDPTR : longword; // TX data pointer.
  367. MAXTX : longword; // Maximum number of bytes in the transmit buffer.
  368. AMOUNTTX : longword; // Number of bytes transmitted in last granted transaction.
  369. RESERVED12 : longword;
  370. CONFIG : longword; // Configuration register.
  371. RESERVED13 : longword;
  372. DEF : longword; // Default character.
  373. RESERVED14 : array[0..23] of longword;
  374. ORC : longword; // Over-read character.
  375. RESERVED15 : array[0..653] of longword;
  376. POWER : longword; // Peripheral power control.
  377. end;
  378. TGPIOTE_Registers = record // GPIOTE Structure
  379. TASKS_OUT : array[0..3] of longword; // Tasks asssociated with GPIOTE channels.
  380. RESERVED0 : array[0..59] of longword;
  381. EVENTS_IN : array[0..3] of longword; // Tasks asssociated with GPIOTE channels.
  382. RESERVED1 : array[0..26] of longword;
  383. EVENTS_PORT : longword; // Event generated from multiple pins.
  384. RESERVED2 : array[0..96] of longword;
  385. INTENSET : longword; // Interrupt enable set register.
  386. INTENCLR : longword; // Interrupt enable clear register.
  387. RESERVED3 : array[0..128] of longword;
  388. CONFIG : array[0..3] of longword; // Channel configuration registers.
  389. RESERVED4 : array[0..694] of longword;
  390. POWER : longword; // Peripheral power control.
  391. end;
  392. TADC_Registers = record // ADC Structure
  393. TASKS_START : longword; // Start an ADC conversion.
  394. TASKS_STOP : longword; // Stop ADC.
  395. RESERVED0 : array[0..61] of longword;
  396. EVENTS_END : longword; // ADC conversion complete.
  397. RESERVED1 : array[0..127] of longword;
  398. INTENSET : longword; // Interrupt enable set register.
  399. INTENCLR : longword; // Interrupt enable clear register.
  400. RESERVED2 : array[0..60] of longword;
  401. BUSY : longword; // ADC busy register.
  402. RESERVED3 : array[0..62] of longword;
  403. ENABLE : longword; // ADC enable.
  404. CONFIG : longword; // ADC configuration register.
  405. RESULT : longword; // Result of ADC conversion.
  406. RESERVED4 : array[0..699] of longword;
  407. POWER : longword; // Peripheral power control.
  408. end;
  409. TTIMER_Registers = record // TIMER Structure
  410. TASKS_START : longword; // Start Timer.
  411. TASKS_STOP : longword; // Stop Timer.
  412. TASKS_COUNT : longword; // Increment Timer (In counter mode).
  413. TASKS_CLEAR : longword; // Clear timer.
  414. TASKS_SHUTDOWN : longword; // Shutdown timer.
  415. RESERVED0 : array[0..10] of longword;
  416. TASKS_CAPTURE : array[0..3] of longword; // Capture Timer value to CC[n] registers.
  417. RESERVED1 : array[0..59] of longword;
  418. EVENTS_COMPARE : array[0..3] of longword; // Compare event on CC[n] match.
  419. RESERVED2 : array[0..43] of longword;
  420. SHORTS : longword; // Shortcuts for Timer.
  421. RESERVED3 : array[0..63] of longword;
  422. INTENSET : longword; // Interrupt enable set register.
  423. INTENCLR : longword; // Interrupt enable clear register.
  424. RESERVED4 : array[0..125] of longword;
  425. MODE : longword; // Timer Mode selection.
  426. BITMODE : longword; // Sets timer behaviour.
  427. RESERVED5 : longword;
  428. PRESCALER : longword; // 4-bit prescaler to source clock frequency (max value 9). Source
  429. RESERVED6 : array[0..10] of longword;
  430. CC : array[0..3] of longword; // Capture/compare registers.
  431. RESERVED7 : array[0..682] of longword;
  432. POWER : longword; // Peripheral power control.
  433. end;
  434. TRTC_Registers = record // RTC Structure
  435. TASKS_START : longword; // Start RTC Counter.
  436. TASKS_STOP : longword; // Stop RTC Counter.
  437. TASKS_CLEAR : longword; // Clear RTC Counter.
  438. TASKS_TRIGOVRFLW : longword; // Set COUNTER to 0xFFFFFFF0.
  439. RESERVED0 : array[0..59] of longword;
  440. EVENTS_TICK : longword; // Event on COUNTER increment.
  441. EVENTS_OVRFLW : longword; // Event on COUNTER overflow.
  442. RESERVED1 : array[0..13] of longword;
  443. EVENTS_COMPARE : array[0..3] of longword; // Compare event on CC[n] match.
  444. RESERVED2 : array[0..108] of longword;
  445. INTENSET : longword; // Interrupt enable set register.
  446. INTENCLR : longword; // Interrupt enable clear register.
  447. RESERVED3 : array[0..12] of longword;
  448. EVTEN : longword; // Configures event enable routing to PPI for each RTC event.
  449. EVTENSET : longword; // Enable events routing to PPI. The reading of this register gives
  450. EVTENCLR : longword; // Disable events routing to PPI. The reading of this register
  451. RESERVED4 : array[0..109] of longword;
  452. COUNTER : longword; // Current COUNTER value.
  453. PRESCALER : longword; // 12-bit prescaler for COUNTER frequency (32768/(PRESCALER+1)).
  454. RESERVED5 : array[0..12] of longword;
  455. CC : array[0..3] of longword; // Capture/compare registers.
  456. RESERVED6 : array[0..682] of longword;
  457. POWER : longword; // Peripheral power control.
  458. end;
  459. TTEMP_Registers = record // TEMP Structure
  460. TASKS_START : longword; // Start temperature measurement.
  461. TASKS_STOP : longword; // Stop temperature measurement.
  462. RESERVED0 : array[0..61] of longword;
  463. EVENTS_DATARDY : longword; // Temperature measurement complete, data ready event.
  464. RESERVED1 : array[0..127] of longword;
  465. INTENSET : longword; // Interrupt enable set register.
  466. INTENCLR : longword; // Interrupt enable clear register.
  467. RESERVED2 : array[0..126] of longword;
  468. TEMP : longint; // Die temperature in degC, 2's complement format, 0.25 degC pecision.
  469. RESERVED3 : array[0..699] of longword;
  470. POWER : longword; // Peripheral power control.
  471. end;
  472. TRNG_Registers = record // RNG Structure
  473. TASKS_START : longword; // Start the random number generator.
  474. TASKS_STOP : longword; // Stop the random number generator.
  475. RESERVED0 : array[0..61] of longword;
  476. EVENTS_VALRDY : longword; // New random number generated and written to VALUE register.
  477. RESERVED1 : array[0..62] of longword;
  478. SHORTS : longword; // Shortcuts for the RNG.
  479. RESERVED2 : array[0..63] of longword;
  480. INTENSET : longword; // Interrupt enable set register
  481. INTENCLR : longword; // Interrupt enable clear register
  482. RESERVED3 : array[0..125] of longword;
  483. CONFIG : longword; // Configuration register.
  484. VALUE : longword; // RNG random number.
  485. RESERVED4 : array[0..699] of longword;
  486. POWER : longword; // Peripheral power control.
  487. end;
  488. TECB_Registers = record // ECB Structure
  489. TASKS_STARTECB : longword; // Start ECB block encrypt. If a crypto operation is running, this
  490. TASKS_STOPECB : longword; // Stop current ECB encryption. If a crypto operation is running,
  491. RESERVED0 : array[0..61] of longword;
  492. EVENTS_ENDECB : longword; // ECB block encrypt complete.
  493. EVENTS_ERRORECB : longword; // ECB block encrypt aborted due to a STOPECB task or due to an
  494. RESERVED1 : array[0..126] of longword;
  495. INTENSET : longword; // Interrupt enable set register.
  496. INTENCLR : longword; // Interrupt enable clear register.
  497. RESERVED2 : array[0..125] of longword;
  498. ECBDATAPTR : longword; // ECB block encrypt memory pointer.
  499. RESERVED3 : array[0..700] of longword;
  500. POWER : longword; // Peripheral power control.
  501. end;
  502. TAAR_Registers = record // AAR Structure
  503. TASKS_START : longword; // Start resolving addresses based on IRKs specified in the IRK
  504. RESERVED0 : longword;
  505. TASKS_STOP : longword; // Stop resolving addresses.
  506. RESERVED1 : array[0..60] of longword;
  507. EVENTS_END : longword; // Address resolution procedure completed.
  508. EVENTS_RESOLVED : longword; // Address resolved.
  509. EVENTS_NOTRESOLVED : longword; // Address not resolved.
  510. RESERVED2 : array[0..125] of longword;
  511. INTENSET : longword; // Interrupt enable set register.
  512. INTENCLR : longword; // Interrupt enable clear register.
  513. RESERVED3 : array[0..60] of longword;
  514. STATUS : longword; // Resolution status.
  515. RESERVED4 : array[0..62] of longword;
  516. ENABLE : longword; // Enable AAR.
  517. NIRK : longword; // Number of Identity root Keys in the IRK data structure.
  518. IRKPTR : longword; // Pointer to the IRK data structure.
  519. RESERVED5 : longword;
  520. ADDRPTR : longword; // Pointer to the resolvable address (6 bytes).
  521. SCRATCHPTR : longword; // Pointer to a scratch data area used for temporary storage during
  522. RESERVED6 : array[0..696] of longword;
  523. POWER : longword; // Peripheral power control.
  524. end;
  525. TCCM_Registers = record // CCM Structure
  526. TASKS_KSGEN : longword; // Start generation of key-stream. This operation will stop by
  527. TASKS_CRYPT : longword; // Start encrypt/decrypt. This operation will stop by itself when
  528. TASKS_STOP : longword; // Stop encrypt/decrypt.
  529. RESERVED0 : array[0..60] of longword;
  530. EVENTS_ENDKSGEN : longword; // Keystream generation completed.
  531. EVENTS_ENDCRYPT : longword; // Encrypt/decrypt completed.
  532. EVENTS_ERROR : longword; // Error happened.
  533. RESERVED1 : array[0..60] of longword;
  534. SHORTS : longword; // Shortcuts for the CCM.
  535. RESERVED2 : array[0..63] of longword;
  536. INTENSET : longword; // Interrupt enable set register.
  537. INTENCLR : longword; // Interrupt enable clear register.
  538. RESERVED3 : array[0..60] of longword;
  539. MICSTATUS : longword; // CCM RX MIC check result.
  540. RESERVED4 : array[0..62] of longword;
  541. ENABLE : longword; // CCM enable.
  542. MODE : longword; // Operation mode.
  543. CNFPTR : longword; // Pointer to a data structure holding AES key and NONCE vector.
  544. INPTR : longword; // Pointer to the input packet.
  545. OUTPTR : longword; // Pointer to the output packet.
  546. SCRATCHPTR : longword; // Pointer to a scratch data area used for temporary storage during
  547. RESERVED5 : array[0..696] of longword;
  548. POWER : longword; // Peripheral power control.
  549. end;
  550. TWDT_Registers = record // WDT Structure
  551. TASKS_START : longword; // Start the watchdog.
  552. RESERVED0 : array[0..62] of longword;
  553. EVENTS_TIMEOUT : longword; // Watchdog timeout.
  554. RESERVED1 : array[0..127] of longword;
  555. INTENSET : longword; // Interrupt enable set register.
  556. INTENCLR : longword; // Interrupt enable clear register.
  557. RESERVED2 : array[0..60] of longword;
  558. RUNSTATUS : longword; // Watchdog running status.
  559. REQSTATUS : longword; // Request status.
  560. RESERVED3 : array[0..62] of longword;
  561. CRV : longword; // Counter reload value in number of 32kiHz clock cycles.
  562. RREN : longword; // Reload request enable.
  563. CONFIG : longword; // Configuration register.
  564. RESERVED4 : array[0..59] of longword;
  565. RR : array[0..7] of longword; // Reload requests registers.
  566. RESERVED5 : array[0..630] of longword;
  567. POWER : longword; // Peripheral power control.
  568. end;
  569. TQDEC_Registers = record // QDEC Structure
  570. TASKS_START : longword; // Start the quadrature decoder.
  571. TASKS_STOP : longword; // Stop the quadrature decoder.
  572. TASKS_READCLRACC : longword; // Transfers the content from ACC registers to ACCREAD registers,
  573. RESERVED0 : array[0..60] of longword;
  574. EVENTS_SAMPLERDY : longword; // A new sample is written to the sample register.
  575. EVENTS_REPORTRDY : longword; // REPORTPER number of samples accumulated in ACC register, and
  576. EVENTS_ACCOF : longword; // ACC or ACCDBL register overflow.
  577. RESERVED1 : array[0..60] of longword;
  578. SHORTS : longword; // Shortcuts for the QDEC.
  579. RESERVED2 : array[0..63] of longword;
  580. INTENSET : longword; // Interrupt enable set register.
  581. INTENCLR : longword; // Interrupt enable clear register.
  582. RESERVED3 : array[0..124] of longword;
  583. ENABLE : longword; // Enable the QDEC.
  584. LEDPOL : longword; // LED output pin polarity.
  585. SAMPLEPER : longword; // Sample period.
  586. SAMPLE : longint; // Motion sample value.
  587. REPORTPER : longword; // Number of samples to generate an EVENT_REPORTRDY.
  588. ACC : longint; // Accumulated valid transitions register.
  589. ACCREAD : longint; // Snapshot of ACC register. Value generated by the TASKS_READCLEACC
  590. PSELLED : longword; // Pin select for LED output.
  591. PSELA : longword; // Pin select for phase A input.
  592. PSELB : longword; // Pin select for phase B input.
  593. DBFEN : longword; // Enable debouncer input filters.
  594. RESERVED4 : array[0..4] of longword;
  595. LEDPRE : longword; // Time LED is switched ON before the sample.
  596. ACCDBL : longword; // Accumulated double (error) transitions register.
  597. ACCDBLREAD : longword; // Snapshot of ACCDBL register. Value generated by the TASKS_READCLEACC
  598. RESERVED5 : array[0..683] of longword;
  599. POWER : longword; // Peripheral power control.
  600. end;
  601. TLPCOMP_Registers = record // LPCOMP Structure
  602. TASKS_START : longword; // Start the comparator.
  603. TASKS_STOP : longword; // Stop the comparator.
  604. TASKS_SAMPLE : longword; // Sample comparator value.
  605. RESERVED0 : array[0..60] of longword;
  606. EVENTS_READY : longword; // LPCOMP is ready and output is valid.
  607. EVENTS_DOWN : longword; // Input voltage crossed the threshold going down.
  608. EVENTS_UP : longword; // Input voltage crossed the threshold going up.
  609. EVENTS_CROSS : longword; // Input voltage crossed the threshold in any direction.
  610. RESERVED1 : array[0..59] of longword;
  611. SHORTS : longword; // Shortcuts for the LPCOMP.
  612. RESERVED2 : array[0..63] of longword;
  613. INTENSET : longword; // Interrupt enable set register.
  614. INTENCLR : longword; // Interrupt enable clear register.
  615. RESERVED3 : array[0..60] of longword;
  616. RESULT : longword; // Result of last compare.
  617. RESERVED4 : array[0..62] of longword;
  618. ENABLE : longword; // Enable the LPCOMP.
  619. PSEL : longword; // Input pin select.
  620. REFSEL : longword; // Reference select.
  621. EXTREFSEL : longword; // External reference select.
  622. RESERVED5 : array[0..3] of longword;
  623. ANADETECT : longword; // Analog detect configuration.
  624. RESERVED6 : array[0..693] of longword;
  625. POWER : longword; // Peripheral power control.
  626. end;
  627. TSWI_Registers = record // SWI Structure
  628. UNUSED : longword; // Unused.
  629. end;
  630. TNVMC_Registers = record // NVMC Structure
  631. RESERVED0 : array[0..255] of longword;
  632. READY : longword; // Ready flag.
  633. RESERVED1 : array[0..63] of longword;
  634. CONFIG : longword; // Configuration register.
  635. ERASEPAGE : longword; // Register for erasing a non-protected non-volatile memory page.
  636. ERASEALL : longword; // Register for erasing all non-volatile user memory.
  637. ERASEPCR0 : longword; // Register for erasing a protected non-volatile memory page.
  638. ERASEUICR : longword; // Register for start erasing User Information Congfiguration Registers.
  639. end;
  640. TPPI_Registers = record // PPI Structure
  641. TASKS_CHG : array[0..3] of TPPI_TASKS_CHG_Registers; // Channel group tasks.
  642. RESERVED0 : array[0..311] of longword;
  643. CHEN : longword; // Channel enable.
  644. CHENSET : longword; // Channel enable set.
  645. CHENCLR : longword; // Channel enable clear.
  646. RESERVED1 : longword;
  647. CH : array[0..15] of TPPI_CH_Registers; // PPI Channel.
  648. RESERVED2 : array[0..155] of longword;
  649. CHG : array[0..3] of longword; // Channel group configuration.
  650. end;
  651. TFICR_Registers = record // FICR Structure
  652. RESERVED0 : array[0..3] of longword;
  653. CODEPAGESIZE : longword; // Code memory page size in bytes.
  654. CODESIZE : longword; // Code memory size in pages.
  655. RESERVED1 : array[0..3] of longword;
  656. CLENR0 : longword; // Length of code region 0 in bytes.
  657. PPFC : longword; // Pre-programmed factory code present.
  658. RESERVED2 : longword;
  659. NUMRAMBLOCK : longword; // Number of individualy controllable RAM blocks.
  660. SIZERAMBLOCK : array[0..3] of longword; // Deprecated array of size of RAM block in bytes. This name is
  661. RESERVED3 : array[0..4] of longword;
  662. CONFIGID : longword; // Configuration identifier.
  663. DEVICEID : array[0..1] of longword; // Device identifier.
  664. RESERVED4 : array[0..5] of longword;
  665. ER : array[0..3] of longword; // Encryption root.
  666. IR : array[0..3] of longword; // Identity root.
  667. DEVICEADDRTYPE : longword; // Device address type.
  668. DEVICEADDR : array[0..1] of longword; // Device address.
  669. OVERRIDEEN : longword; // Radio calibration override enable.
  670. NRF_1MBIT : array[0..4] of longword; // Override values for the OVERRIDEn registers in RADIO for NRF_1Mbit
  671. RESERVED5 : array[0..9] of longword;
  672. BLE_1MBIT : array[0..4] of longword; // Override values for the OVERRIDEn registers in RADIO for BLE_1Mbit
  673. end;
  674. TUICR_Registers = record // UICR Structure
  675. CLENR0 : longword; // Length of code region 0.
  676. RBPCONF : longword; // Readback protection configuration.
  677. XTALFREQ : longword; // Reset value for CLOCK XTALFREQ register.
  678. RESERVED0 : longword;
  679. FWID : longword; // Firmware ID.
  680. NRFFW : array[0..14] of longword; // Reserved for Nordic firmware design.
  681. NRFHW : array[0..11] of longword; // Reserved for Nordic hardware design.
  682. CUSTOMER : array[0..31] of longword; // Reserved for customer.
  683. end;
  684. TGPIO_Registers = record // GPIO Structure
  685. RESERVED0 : array[0..320] of longword;
  686. OUT : longword; // Write GPIO port.
  687. OUTSET : longword; // Set individual bits in GPIO port.
  688. OUTCLR : longword; // Clear individual bits in GPIO port.
  689. &IN : longword; // Read GPIO port.
  690. DIR : longword; // Direction of GPIO pins.
  691. DIRSET : longword; // DIR set register.
  692. DIRCLR : longword; // DIR clear register.
  693. RESERVED1 : array[0..119] of longword;
  694. PIN_CNF : array[0..31] of longword; // Configuration of GPIO pins.
  695. end;
  696. const
  697. POWER_BASE = $40000000;
  698. CLOCK_BASE = $40000000;
  699. MPU_BASE = $40000000;
  700. RADIO_BASE = $40001000;
  701. UART0_BASE = $40002000;
  702. SPI0_BASE = $40003000;
  703. TWI0_BASE = $40003000;
  704. SPI1_BASE = $40004000;
  705. TWI1_BASE = $40004000;
  706. SPIS1_BASE = $40004000;
  707. GPIOTE_BASE = $40006000;
  708. ADC_BASE = $40007000;
  709. TIMER0_BASE = $40008000;
  710. TIMER1_BASE = $40009000;
  711. TIMER2_BASE = $4000A000;
  712. RTC0_BASE = $4000B000;
  713. TEMP_BASE = $4000C000;
  714. RNG_BASE = $4000D000;
  715. ECB_BASE = $4000E000;
  716. AAR_BASE = $4000F000;
  717. CCM_BASE = $4000F000;
  718. WDT_BASE = $40010000;
  719. RTC1_BASE = $40011000;
  720. QDEC_BASE = $40012000;
  721. LPCOMP_BASE = $40013000;
  722. SWI_BASE = $40014000;
  723. NVMC_BASE = $4001E000;
  724. PPI_BASE = $4001F000;
  725. FICR_BASE = $10000000;
  726. UICR_BASE = $10001000;
  727. GPIO_BASE = $50000000;
  728. var
  729. POWER : TPOWER_Registers absolute POWER_BASE;
  730. CLOCK : TCLOCK_Registers absolute CLOCK_BASE;
  731. MPU : TMPU_Registers absolute MPU_BASE;
  732. RADIO : TRADIO_Registers absolute RADIO_BASE;
  733. UART0 : TUART_Registers absolute UART0_BASE;
  734. SPI0 : TSPI_Registers absolute SPI0_BASE;
  735. TWI0 : TTWI_Registers absolute TWI0_BASE;
  736. SPI1 : TSPI_Registers absolute SPI1_BASE;
  737. TWI1 : TTWI_Registers absolute TWI1_BASE;
  738. SPIS1 : TSPIS_Registers absolute SPIS1_BASE;
  739. GPIOTE : TGPIOTE_Registers absolute GPIOTE_BASE;
  740. ADC : TADC_Registers absolute ADC_BASE;
  741. TIMER0 : TTIMER_Registers absolute TIMER0_BASE;
  742. TIMER1 : TTIMER_Registers absolute TIMER1_BASE;
  743. TIMER2 : TTIMER_Registers absolute TIMER2_BASE;
  744. RTC0 : TRTC_Registers absolute RTC0_BASE;
  745. TEMP : TTEMP_Registers absolute TEMP_BASE;
  746. RNG : TRNG_Registers absolute RNG_BASE;
  747. ECB : TECB_Registers absolute ECB_BASE;
  748. AAR : TAAR_Registers absolute AAR_BASE;
  749. CCM : TCCM_Registers absolute CCM_BASE;
  750. WDT : TWDT_Registers absolute WDT_BASE;
  751. RTC1 : TRTC_Registers absolute RTC1_BASE;
  752. QDEC : TQDEC_Registers absolute QDEC_BASE;
  753. LPCOMP : TLPCOMP_Registers absolute LPCOMP_BASE;
  754. SWI : TSWI_Registers absolute SWI_BASE;
  755. NVMC : TNVMC_Registers absolute NVMC_BASE;
  756. PPI : TPPI_Registers absolute PPI_BASE;
  757. FICR : TFICR_Registers absolute FICR_BASE;
  758. UICR : TUICR_Registers absolute UICR_BASE;
  759. GPIO : TGPIO_Registers absolute GPIO_BASE;
  760. implementation
  761. procedure Reset_interrupt; external name 'Reset_interrupt';
  762. procedure NonMaskableInt_interrupt; external name 'NonMaskableInt_interrupt';
  763. procedure HardFault_interrupt; external name 'HardFault_interrupt';
  764. procedure SVCall_interrupt; external name 'SVCall_interrupt';
  765. procedure DebugMonitor_interrupt; external name 'DebugMonitor_interrupt';
  766. procedure PendSV_interrupt; external name 'PendSV_interrupt';
  767. procedure SysTick_interrupt; external name 'SysTick_interrupt';
  768. procedure POWER_CLOCK_interrupt; external name 'POWER_CLOCK_interrupt';
  769. procedure RADIO_interrupt; external name 'RADIO_interrupt';
  770. procedure UART0_interrupt; external name 'UART0_interrupt';
  771. procedure SPI0_TWI0_interrupt; external name 'SPI0_TWI0_interrupt';
  772. procedure SPI1_TWI1_interrupt; external name 'SPI1_TWI1_interrupt';
  773. procedure GPIOTE_interrupt; external name 'GPIOTE_interrupt';
  774. procedure ADC_interrupt; external name 'ADC_interrupt';
  775. procedure TIMER0_interrupt; external name 'TIMER0_interrupt';
  776. procedure TIMER1_interrupt; external name 'TIMER1_interrupt';
  777. procedure TIMER2_interrupt; external name 'TIMER2_interrupt';
  778. procedure RTC0_interrupt; external name 'RTC0_interrupt';
  779. procedure TEMP_interrupt; external name 'TEMP_interrupt';
  780. procedure RNG_interrupt; external name 'RNG_interrupt';
  781. procedure ECB_interrupt; external name 'ECB_interrupt';
  782. procedure CCM_AAR_interrupt; external name 'CCM_AAR_interrupt';
  783. procedure WDT_interrupt; external name 'WDT_interrupt';
  784. procedure RTC1_interrupt; external name 'RTC1_interrupt';
  785. procedure QDEC_interrupt; external name 'QDEC_interrupt';
  786. procedure LPCOMP_interrupt; external name 'LPCOMP_interrupt';
  787. procedure SWI0_interrupt; external name 'SWI0_interrupt';
  788. procedure SWI1_interrupt; external name 'SWI1_interrupt';
  789. procedure SWI2_interrupt; external name 'SWI2_interrupt';
  790. procedure SWI3_interrupt; external name 'SWI3_interrupt';
  791. procedure SWI4_interrupt; external name 'SWI4_interrupt';
  792. procedure SWI5_interrupt; external name 'SWI5_interrupt';
  793. {$i cortexm0_start.inc}
  794. procedure Vectors; assembler; nostackframe;
  795. label interrupt_vectors;
  796. asm
  797. .section ".init.interrupt_vectors"
  798. interrupt_vectors:
  799. .long _stack_top
  800. .long Startup
  801. .long Reset_interrupt
  802. .long NonMaskableInt_interrupt
  803. .long HardFault_interrupt
  804. .long 0
  805. .long 0
  806. .long 0
  807. .long 0
  808. .long 0
  809. .long 0
  810. .long SVCall_interrupt
  811. .long DebugMonitor_interrupt
  812. .long 0
  813. .long PendSV_interrupt
  814. .long SysTick_interrupt
  815. .long POWER_CLOCK_interrupt
  816. .long RADIO_interrupt
  817. .long UART0_interrupt
  818. .long SPI0_TWI0_interrupt
  819. .long SPI1_TWI1_interrupt
  820. .long 0
  821. .long GPIOTE_interrupt
  822. .long ADC_interrupt
  823. .long TIMER0_interrupt
  824. .long TIMER1_interrupt
  825. .long TIMER2_interrupt
  826. .long RTC0_interrupt
  827. .long TEMP_interrupt
  828. .long RNG_interrupt
  829. .long ECB_interrupt
  830. .long CCM_AAR_interrupt
  831. .long WDT_interrupt
  832. .long RTC1_interrupt
  833. .long QDEC_interrupt
  834. .long LPCOMP_interrupt
  835. .long SWI0_interrupt
  836. .long SWI1_interrupt
  837. .long SWI2_interrupt
  838. .long SWI3_interrupt
  839. .long SWI4_interrupt
  840. .long SWI5_interrupt
  841. .weak Reset_interrupt
  842. .weak NonMaskableInt_interrupt
  843. .weak HardFault_interrupt
  844. .weak SVCall_interrupt
  845. .weak DebugMonitor_interrupt
  846. .weak PendSV_interrupt
  847. .weak SysTick_interrupt
  848. .weak POWER_CLOCK_interrupt
  849. .weak RADIO_interrupt
  850. .weak UART0_interrupt
  851. .weak SPI0_TWI0_interrupt
  852. .weak SPI1_TWI1_interrupt
  853. .weak GPIOTE_interrupt
  854. .weak ADC_interrupt
  855. .weak TIMER0_interrupt
  856. .weak TIMER1_interrupt
  857. .weak TIMER2_interrupt
  858. .weak RTC0_interrupt
  859. .weak TEMP_interrupt
  860. .weak RNG_interrupt
  861. .weak ECB_interrupt
  862. .weak CCM_AAR_interrupt
  863. .weak WDT_interrupt
  864. .weak RTC1_interrupt
  865. .weak QDEC_interrupt
  866. .weak LPCOMP_interrupt
  867. .weak SWI0_interrupt
  868. .weak SWI1_interrupt
  869. .weak SWI2_interrupt
  870. .weak SWI3_interrupt
  871. .weak SWI4_interrupt
  872. .weak SWI5_interrupt
  873. .set Reset_interrupt, HaltProc
  874. .set NonMaskableInt_interrupt, HaltProc
  875. .set HardFault_interrupt, HaltProc
  876. .set SVCall_interrupt, HaltProc
  877. .set DebugMonitor_interrupt, HaltProc
  878. .set PendSV_interrupt, HaltProc
  879. .set SysTick_interrupt, HaltProc
  880. .set POWER_CLOCK_interrupt, HaltProc
  881. .set RADIO_interrupt, HaltProc
  882. .set UART0_interrupt, HaltProc
  883. .set SPI0_TWI0_interrupt, HaltProc
  884. .set SPI1_TWI1_interrupt, HaltProc
  885. .set GPIOTE_interrupt, HaltProc
  886. .set ADC_interrupt, HaltProc
  887. .set TIMER0_interrupt, HaltProc
  888. .set TIMER1_interrupt, HaltProc
  889. .set TIMER2_interrupt, HaltProc
  890. .set RTC0_interrupt, HaltProc
  891. .set TEMP_interrupt, HaltProc
  892. .set RNG_interrupt, HaltProc
  893. .set ECB_interrupt, HaltProc
  894. .set CCM_AAR_interrupt, HaltProc
  895. .set WDT_interrupt, HaltProc
  896. .set RTC1_interrupt, HaltProc
  897. .set QDEC_interrupt, HaltProc
  898. .set LPCOMP_interrupt, HaltProc
  899. .set SWI0_interrupt, HaltProc
  900. .set SWI1_interrupt, HaltProc
  901. .set SWI2_interrupt, HaltProc
  902. .set SWI3_interrupt, HaltProc
  903. .set SWI4_interrupt, HaltProc
  904. .set SWI5_interrupt, HaltProc
  905. .text
  906. end;
  907. end.