xmc4500.pp 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837
  1. {
  2. Register definitions and utility code for XMC450x series
  3. Created by Jeppe Johansen 2012 - [email protected]
  4. }
  5. unit xmc4500;
  6. {$goto on}
  7. interface
  8. type
  9. TBitvector32 = bitpacked array[0..31] of 0..1;
  10. {$PACKRECORDS 2}
  11. const
  12. Peripheral0Base = $40000000;
  13. Peripheral1Base = $48000000;
  14. Peripheral2Base = $50000000;
  15. Peripheral3Base = $58000000;
  16. SCUBase = Peripheral2Base+$4000;
  17. GCUBase = SCUBase+$0000;
  18. PCUBase = SCUBase+$0200;
  19. HCUBase = SCUBase+$0300;
  20. RCUBase = SCUBase+$0400;
  21. CCUBase = SCUBase+$0600;
  22. type
  23. TPBARegisters = record
  24. STS,
  25. WADDR: longword;
  26. end;
  27. TFLASHRegisters = record
  28. res1: array[0..1] of longword;
  29. ID: longword;
  30. res2: longword;
  31. FSR,
  32. FCON,
  33. MARP,
  34. PROCON0,
  35. PROCON1,
  36. PROCON2: longword;
  37. end;
  38. TWDTRegisters = record
  39. ID,
  40. CTR,
  41. SRV,
  42. TIM,
  43. WLB,
  44. WUB,
  45. WDTSTS,
  46. WDTCLR: longword;
  47. end;
  48. TRTCRegisters = record
  49. ID,
  50. CTR,
  51. RAWSTAT,
  52. STSSR,
  53. MSKSR,
  54. CLRSR,
  55. ATIM0,
  56. ATIM1,
  57. TIM0,
  58. TIM1: longword;
  59. end;
  60. TLEDTSRegisters = record
  61. ID,
  62. GLOBCTL,
  63. FNCTL,
  64. EVFR,
  65. TSVAL,
  66. LINE0,
  67. LINE1,
  68. LDCMP0,
  69. LDCMP1,
  70. TSCMP0,
  71. TSCMP1: longword;
  72. end;
  73. TEBURegisters = record
  74. CLC,
  75. MODCON,
  76. ID,
  77. USERCON,
  78. res0,res1,
  79. ADDRSEL0,
  80. ADDRSEL1,
  81. ADDRSEL2,
  82. ADDRSEL3,
  83. BUSRCON0,
  84. BUSRAP0,
  85. BUSWCON0,
  86. BUSWAP0,
  87. BUSRCON1,
  88. BUSRAP1,
  89. BUSWCON1,
  90. BUSWAP1,
  91. BUSRCON2,
  92. BUSRAP2,
  93. BUSWCON2,
  94. BUSWAP2,
  95. BUSRCON3,
  96. BUSRAP3,
  97. BUSWCON3,
  98. BUSWAP3,
  99. SDRMCON,
  100. SDRMOD,
  101. SDRMREF,
  102. SDRSTAT: longword;
  103. end;
  104. TETHRegisters = record
  105. MacConfiguration,
  106. MacFrameFilter,
  107. HashTableHigh,
  108. HashTableLow,
  109. GmiiAddress,
  110. GmiiData,
  111. FlowControl,
  112. VlanTag,
  113. Version,
  114. Debug,
  115. RemoteWakeUpFrameFilter,
  116. PmtControlStatus,
  117. res0,res1,
  118. InterruptStatus,
  119. InterruptMask,
  120. MacAddress0High,
  121. MacAddress0Low,
  122. MacAddress1High,
  123. MacAddress1Low,
  124. MacAddress2High,
  125. MacAddress2Low,
  126. MacAddress3High,
  127. MacAddress3Low: longword;
  128. res2: array[0..38] of longword;
  129. // $100 - $288 MMC Management Counters
  130. MmcRegs: array[0..96] of longword;
  131. res3: array[0..286] of longword;
  132. // $700 - $72C IEEE1588
  133. TimestampControl,
  134. SubSecondIncrement,
  135. SystemTimeSeconds,
  136. SystemTimeNanoseconds,
  137. SystemTimeSecondsUpdate,
  138. SystemTimeNanosecondsUpdate,
  139. TimestampAddend,
  140. TargetTimeSeconds,
  141. TargetTimeNanoseconds,
  142. SystemTimeHigherWordSeconds,
  143. TimestampStatus,
  144. PpsControl: longword;
  145. res4: array[0..563] of longword;
  146. // $1000 - $1024 DMA
  147. BusMode,
  148. TransmitPollDemand,
  149. ReceivePollDemand,
  150. ReceiveDescriptorListAddress,
  151. TransmitDescriptorListAddress,
  152. Status,
  153. OperationMode,
  154. InterruptEnable,
  155. MissedFrameAndBufferOverflowCounter,
  156. ReceiveInterruptWatchdogTimer,
  157. res5,
  158. AhbStatus: longword;
  159. doNotUse: array[0..5] of longword;
  160. CurrentHostTransmitDescriptor,
  161. CurrentHostReceiveDescriptor,
  162. CurrentHostTransmitBufferAddress,
  163. CurrentHostReceiveBufferAddress,
  164. HWFeatures: longword;
  165. end;
  166. TGPIORegisters = record
  167. Output,
  168. OMR,
  169. res0,res1: longword;
  170. IOCR: array[0..3] of longword;
  171. res2,
  172. Input: longword;
  173. res3: array[0..5] of longword;
  174. PDR: array[0..1] of longword;
  175. res5: array[0..5] of longword;
  176. PDISC: longword;
  177. res6: array[0..2] of longword;
  178. PPS,
  179. HWSel: longword;
  180. res7: array[0..33] of longword;
  181. end;
  182. {$ALIGN 2}
  183. var
  184. // Peripheral bus registers
  185. PBA0: TPBARegisters absolute Peripheral0Base;
  186. PBA1: TPBARegisters absolute Peripheral1Base;
  187. // PMU - Program memory unit
  188. PMU0_ID: longword absolute Peripheral3Base+$0508;
  189. // PREF - Prefetch unit
  190. PREF_PCON: longword absolute Peripheral3Base+$04000;
  191. FLASH0: TFLASHRegisters absolute Peripheral3Base+$02000;
  192. WDT: TWDTRegisters absolute Peripheral2Base+$08000;
  193. RTC: TRTCRegisters absolute Peripheral2Base+$04A00;
  194. LEDTS0: TLEDTSRegisters absolute Peripheral1Base+$10000;
  195. EBU: TEBURegisters absolute Peripheral3Base+$08000;
  196. ETH: TETHRegisters absolute Peripheral2Base+$0C000;
  197. // GPIO
  198. P0: TGPIORegisters absolute Peripheral1Base+$28000;
  199. P1: TGPIORegisters absolute Peripheral1Base+$28100;
  200. P2: TGPIORegisters absolute Peripheral1Base+$28200;
  201. P3: TGPIORegisters absolute Peripheral1Base+$28300;
  202. P4: TGPIORegisters absolute Peripheral1Base+$28400;
  203. P5: TGPIORegisters absolute Peripheral1Base+$28500;
  204. P6: TGPIORegisters absolute Peripheral1Base+$28600;
  205. P14: TGPIORegisters absolute Peripheral1Base+$28E00;
  206. P15: TGPIORegisters absolute Peripheral1Base+$28F00;
  207. SDMMC_BLOCK_SIZE: longword absolute Peripheral1Base+$1C004;
  208. SDMMC_BLOCK_COUNT: longword absolute Peripheral1Base+$1C006;
  209. SDMMC_ARGUMENT1: longword absolute Peripheral1Base+$1C008;
  210. SDMMC_TRANSFER_MODE: longword absolute Peripheral1Base+$1C00C;
  211. SDMMC_COMMAND: longword absolute Peripheral1Base+$1C00E;
  212. SDMMC_RESPONSE0: longword absolute Peripheral1Base+$1C010;
  213. SDMMC_RESPONSE2: longword absolute Peripheral1Base+$1C014;
  214. SDMMC_RESPONSE4: longword absolute Peripheral1Base+$1C018;
  215. SDMMC_RESPONSE6: longword absolute Peripheral1Base+$1C01C;
  216. SDMMC_DATA_BUFFER: longword absolute Peripheral1Base+$1C020;
  217. SDMMC_PRESENT_STATE: longword absolute Peripheral1Base+$1C024;
  218. SDMMC_HOST_CTRL: longword absolute Peripheral1Base+$1C028;
  219. SDMMC_POWER_CTRL: longword absolute Peripheral1Base+$1C029;
  220. SDMMC_BLOCK_GAP_CTRL: longword absolute Peripheral1Base+$1C02A;
  221. SDMMC_WAKEUP_CTRL: longword absolute Peripheral1Base+$1C02B;
  222. SDMMC_CLOCK_CTRL: longword absolute Peripheral1Base+$1C02C;
  223. SDMMC_TIMEOUT_CTRL: longword absolute Peripheral1Base+$1C02E;
  224. SDMMC_SW_RESET: longword absolute Peripheral1Base+$1C02F;
  225. SDMMC_INT_STATUS_NORM: longword absolute Peripheral1Base+$1C030;
  226. SDMMC_INT_STATUS_ERR: longword absolute Peripheral1Base+$1C032;
  227. SDMMC_EN_INT_STATUS_NORM: longword absolute Peripheral1Base+$1C034;
  228. SDMMC_EN_INT_STATUS_ERR: longword absolute Peripheral1Base+$1C036;
  229. SDMMC_EN_INT_SIGNAL_NORM: longword absolute Peripheral1Base+$1C038;
  230. SDMMC_ACMD_ERR_STATUS: longword absolute Peripheral1Base+$1C03C;
  231. SDMMC_FORCE_EVENT_ACMD_ERR_STATUS: longword absolute Peripheral1Base+$1C050;
  232. SDMMC_FORCE_EVENT_ERR_STATUS: longword absolute Peripheral1Base+$1C052;
  233. SDMMC_DEBUG_SEL: longword absolute Peripheral1Base+$1C074;
  234. SDMMC_SPI: longword absolute Peripheral1Base+$1C0F0;
  235. SDMMC_SLOT_INT_STATUS: longword absolute Peripheral1Base+$1C0FC;
  236. GCU_ID: longword absolute GCUBase+$000;
  237. GCU_IDCHIP: longword absolute GCUBase+$004;
  238. GCU_IDMANUF: longword absolute GCUBase+$008;
  239. GCU_STCON: longword absolute GCUBase+$010;
  240. GCU_GPR0: longword absolute GCUBase+$02C;
  241. GCU_GPR1: longword absolute GCUBase+$030;
  242. GCU_ETH0_CON: longword absolute GCUBase+$040;
  243. GCU_CCUCON: longword absolute GCUBase+$04C;
  244. GCU_SRSTAT: longword absolute GCUBase+$074;
  245. GCU_SRRAW: longword absolute GCUBase+$078;
  246. GCU_SRMSK: longword absolute GCUBase+$07C;
  247. GCU_SRCLR: longword absolute GCUBase+$080;
  248. GCU_SRSET: longword absolute GCUBase+$084;
  249. GCU_NMIREQEN: longword absolute GCUBase+$088;
  250. GCU_DTSCON: longword absolute GCUBase+$08C;
  251. GCU_DTSSTAT: longword absolute GCUBase+$090;
  252. GCU_SDMMCDEL: longword absolute GCUBase+$09C;
  253. GCU_G0RCEN: longword absolute GCUBase+$0A0;
  254. GCU_G1RCEN: longword absolute GCUBase+$0A4;
  255. GCU_MIRRSTS: longword absolute GCUBase+$0C4;
  256. GCU_RMACR: longword absolute GCUBase+$0C8;
  257. GCU_RMADATA: longword absolute GCUBase+$0CC;
  258. GCU_PEEN: longword absolute GCUBase+$13C;
  259. GCU_MCHKCON: longword absolute GCUBase+$140;
  260. GCU_PETE: longword absolute GCUBase+$144;
  261. GCU_PERSTEN: longword absolute GCUBase+$147;
  262. GCU_PEFLAG: longword absolute GCUBase+$150;
  263. GCU_PMTPR: longword absolute GCUBase+$154;
  264. GCU_PMTSR: longword absolute GCUBase+$158;
  265. GCU_TRAPSTAT: longword absolute GCUBase+$160;
  266. GCU_TRAPRAW: longword absolute GCUBase+$164;
  267. GCU_TRAPDIS: longword absolute GCUBase+$168;
  268. GCU_TRAPCLR: longword absolute GCUBase+$16C;
  269. GCU_TRAPSET: longword absolute GCUBase+$170;
  270. PCU_PWRSTAT: longword absolute PCUBase+$00;
  271. PCU_PWRSET: longword absolute PCUBase+$04;
  272. PCU_PWRCLR: longword absolute PCUBase+$08;
  273. PCU_EVRSTAT: longword absolute PCUBase+$10;
  274. PCU_EVRVADCSTAT: longword absolute PCUBase+$14;
  275. PCU_PWRMON: longword absolute PCUBase+$2C;
  276. HCU_HDSTAT:longword absolute HCUBase+$00;
  277. HCU_HDCLR:longword absolute HCUBase+$04;
  278. HCU_HDSET:longword absolute HCUBase+$08;
  279. HCU_HDCR:longword absolute HCUBase+$0C;
  280. HCU_OSCSICTRL:longword absolute HCUBase+$14;
  281. HCU_OSCULSTAT:longword absolute HCUBase+$18;
  282. HCU_OSCULCTRL:longword absolute HCUBase+$1C;
  283. RCU_RSTSTAT: longword absolute RCUBase+$00;
  284. RCU_RSTSET: longword absolute RCUBase+$04;
  285. RCU_RSTCLR: longword absolute RCUBase+$08;
  286. RCU_PRSTAT0: longword absolute RCUBase+$0C;
  287. RCU_PRSET0: longword absolute RCUBase+$10;
  288. RCU_PRCLR0: longword absolute RCUBase+$14;
  289. RCU_PRSTAT1: longword absolute RCUBase+$18;
  290. RCU_PRSET1: longword absolute RCUBase+$1C;
  291. RCU_PRCLR1: longword absolute RCUBase+$20;
  292. RCU_PRSTAT2: longword absolute RCUBase+$24;
  293. RCU_PRSET2: longword absolute RCUBase+$28;
  294. RCU_PRCLR2: longword absolute RCUBase+$2C;
  295. RCU_PRSTAT3: longword absolute RCUBase+$30;
  296. RCU_PRSET3: longword absolute RCUBase+$34;
  297. RCU_PRCLR3: longword absolute RCUBase+$38;
  298. CCU_CLKSTAT: longword absolute CCUBase+$000;
  299. CCU_CLKSET: longword absolute CCUBase+$004;
  300. CCU_CLKCLR: longword absolute CCUBase+$008;
  301. CCU_SYSCLKCR: longword absolute CCUBase+$00C;
  302. CCU_CPUCLKCR: longword absolute CCUBase+$010;
  303. CCU_PBCLKCR: longword absolute CCUBase+$014;
  304. CCU_USBCLKCR: longword absolute CCUBase+$018;
  305. CCU_EBUCLKCR: longword absolute CCUBase+$01C;
  306. CCU_CCUCLKCR: longword absolute CCUBase+$020;
  307. CCU_WDTCLKCR: longword absolute CCUBase+$024;
  308. CCU_EXTCLKCR: longword absolute CCUBase+$028;
  309. CCU_SLEEPCR: longword absolute CCUBase+$030;
  310. CCU_DSLEEPCR: longword absolute CCUBase+$034;
  311. CCU_OSCHPSTAT: longword absolute CCUBase+$100;
  312. CCU_OSCHPCTRL: longword absolute CCUBase+$104;
  313. CCU_CLKCALCONST: longword absolute CCUBase+$10C;
  314. CCU_PLLSTAT: longword absolute CCUBase+$110;
  315. CCU_PLLCON0: longword absolute CCUBase+$114;
  316. CCU_PLLCON1: longword absolute CCUBase+$118;
  317. CCU_PLLCON2: longword absolute CCUBase+$11C;
  318. CCU_USBPLLSTAT: longword absolute CCUBase+$120;
  319. CCU_USBPLLCON: longword absolute CCUBase+$124;
  320. CCU_CLKMXSTAT: longword absolute CCUBase+$138;
  321. implementation
  322. procedure NMI_interrupt; external name 'NMI_interrupt';
  323. procedure Hardfault_interrupt; external name 'Hardfault_interrupt';
  324. procedure MemManage_interrupt; external name 'MemManage_interrupt';
  325. procedure BusFault_interrupt; external name 'BusFault_interrupt';
  326. procedure UsageFault_interrupt; external name 'UsageFault_interrupt';
  327. procedure SWI_interrupt; external name 'SWI_interrupt';
  328. procedure DebugMonitor_interrupt; external name 'DebugMonitor_interrupt';
  329. procedure PendingSV_interrupt; external name 'PendingSV_interrupt';
  330. procedure SysTick_interrupt; external name 'SysTick_interrupt';
  331. procedure SCU_SR0_irq; external name 'SCU_SR0_irq';
  332. procedure ERU0_SR0_irq; external name 'ERU0_SR0_irq';
  333. procedure ERU0_SR1_irq; external name 'ERU0_SR1_irq';
  334. procedure ERU0_SR2_irq; external name 'ERU0_SR2_irq';
  335. procedure ERU0_SR3_irq; external name 'ERU0_SR3_irq';
  336. procedure ERU1_SR0_irq; external name 'ERU1_SR0_irq';
  337. procedure ERU1_SR1_irq; external name 'ERU1_SR1_irq';
  338. procedure ERU1_SR2_irq; external name 'ERU1_SR2_irq';
  339. procedure ERU1_SR3_irq; external name 'ERU1_SR3_irq';
  340. procedure PMU0_SR0_irq; external name 'PMU0_SR0_irq';
  341. procedure CADC_C0SR0_irq; external name 'CADC_C0SR0_irq';
  342. procedure CADC_C0SR1_irq; external name 'CADC_C0SR1_irq';
  343. procedure CADC_C0SR2_irq; external name 'CADC_C0SR2_irq';
  344. procedure CADC_C0SR3_irq; external name 'CADC_C0SR3_irq';
  345. procedure CADC_G0SR0_irq; external name 'CADC_G0SR0_irq';
  346. procedure CADC_G0SR1_irq; external name 'CADC_G0SR1_irq';
  347. procedure CADC_G0SR2_irq; external name 'CADC_G0SR2_irq';
  348. procedure CADC_G0SR3_irq; external name 'CADC_G0SR3_irq';
  349. procedure CADC_G1SR0_irq; external name 'CADC_G1SR0_irq';
  350. procedure CADC_G1SR1_irq; external name 'CADC_G1SR1_irq';
  351. procedure CADC_G1SR2_irq; external name 'CADC_G1SR2_irq';
  352. procedure CADC_G1SR3_irq; external name 'CADC_G1SR3_irq';
  353. procedure CADC_G2SR0_irq; external name 'CADC_G2SR0_irq';
  354. procedure CADC_G2SR1_irq; external name 'CADC_G2SR1_irq';
  355. procedure CADC_G2SR2_irq; external name 'CADC_G2SR2_irq';
  356. procedure CADC_G2SR3_irq; external name 'CADC_G2SR3_irq';
  357. procedure CADC_G3SR0_irq; external name 'CADC_G3SR0_irq';
  358. procedure CADC_G3SR1_irq; external name 'CADC_G3SR1_irq';
  359. procedure CADC_G3SR2_irq; external name 'CADC_G3SR2_irq';
  360. procedure CADC_G3SR3_irq; external name 'CADC_G3SR3_irq';
  361. procedure DSD_SRM0_irq; external name 'DSD_SRM0_irq';
  362. procedure DSD_SRM1_irq; external name 'DSD_SRM1_irq';
  363. procedure DSD_SRM2_irq; external name 'DSD_SRM2_irq';
  364. procedure DSD_SRM3_irq; external name 'DSD_SRM3_irq';
  365. procedure DSD_SRA0_irq; external name 'DSD_SRA0_irq';
  366. procedure DSD_SRA1_irq; external name 'DSD_SRA1_irq';
  367. procedure DSD_SRA2_irq; external name 'DSD_SRA2_irq';
  368. procedure DSD_SRA3_irq; external name 'DSD_SRA3_irq';
  369. procedure DAC_SR0_irq; external name 'DAC_SR0_irq';
  370. procedure DAC_SR1_irq; external name 'DAC_SR1_irq';
  371. procedure CCU40_SR0_irq; external name 'CCU40_SR0_irq';
  372. procedure CCU40_SR1_irq; external name 'CCU40_SR1_irq';
  373. procedure CCU40_SR2_irq; external name 'CCU40_SR2_irq';
  374. procedure CCU40_SR3_irq; external name 'CCU40_SR3_irq';
  375. procedure CCU41_SR0_irq; external name 'CCU41_SR0_irq';
  376. procedure CCU41_SR1_irq; external name 'CCU41_SR1_irq';
  377. procedure CCU41_SR2_irq; external name 'CCU41_SR2_irq';
  378. procedure CCU41_SR3_irq; external name 'CCU41_SR3_irq';
  379. procedure CCU42_SR0_irq; external name 'CCU42_SR0_irq';
  380. procedure CCU42_SR1_irq; external name 'CCU42_SR1_irq';
  381. procedure CCU42_SR2_irq; external name 'CCU42_SR2_irq';
  382. procedure CCU42_SR3_irq; external name 'CCU42_SR3_irq';
  383. procedure CCU43_SR0_irq; external name 'CCU43_SR0_irq';
  384. procedure CCU43_SR1_irq; external name 'CCU43_SR1_irq';
  385. procedure CCU43_SR2_irq; external name 'CCU43_SR2_irq';
  386. procedure CCU43_SR3_irq; external name 'CCU43_SR3_irq';
  387. procedure CCU80_SR0_irq; external name 'CCU80_SR0_irq';
  388. procedure CCU80_SR1_irq; external name 'CCU80_SR1_irq';
  389. procedure CCU80_SR2_irq; external name 'CCU80_SR2_irq';
  390. procedure CCU80_SR3_irq; external name 'CCU80_SR3_irq';
  391. procedure CCU81_SR0_irq; external name 'CCU81_SR0_irq';
  392. procedure CCU81_SR1_irq; external name 'CCU81_SR1_irq';
  393. procedure CCU81_SR2_irq; external name 'CCU81_SR2_irq';
  394. procedure CCU81_SR3_irq; external name 'CCU81_SR3_irq';
  395. procedure POSIF0_SR0_irq; external name 'POSIF0_SR0_irq';
  396. procedure POSIF0_SR1_irq; external name 'POSIF0_SR1_irq';
  397. procedure POSIF1_SR0_irq; external name 'POSIF1_SR0_irq';
  398. procedure POSIF1_SR1_irq; external name 'POSIF1_SR1_irq';
  399. procedure CAN_SR0_irq; external name 'CAN_SR0_irq';
  400. procedure CAN_SR1_irq; external name 'CAN_SR1_irq';
  401. procedure CAN_SR2_irq; external name 'CAN_SR2_irq';
  402. procedure CAN_SR3_irq; external name 'CAN_SR3_irq';
  403. procedure CAN_SR4_irq; external name 'CAN_SR4_irq';
  404. procedure CAN_SR5_irq; external name 'CAN_SR5_irq';
  405. procedure CAN_SR6_irq; external name 'CAN_SR6_irq';
  406. procedure CAN_SR7_irq; external name 'CAN_SR7_irq';
  407. procedure USIC0_SR0_irq; external name 'USIC0_SR0_irq';
  408. procedure USIC0_SR1_irq; external name 'USIC0_SR1_irq';
  409. procedure USIC0_SR2_irq; external name 'USIC0_SR2_irq';
  410. procedure USIC0_SR3_irq; external name 'USIC0_SR3_irq';
  411. procedure USIC0_SR4_irq; external name 'USIC0_SR4_irq';
  412. procedure USIC0_SR5_irq; external name 'USIC0_SR5_irq';
  413. procedure USIC1_SR0_irq; external name 'USIC1_SR0_irq';
  414. procedure USIC1_SR1_irq; external name 'USIC1_SR1_irq';
  415. procedure USIC1_SR2_irq; external name 'USIC1_SR2_irq';
  416. procedure USIC1_SR3_irq; external name 'USIC1_SR3_irq';
  417. procedure USIC1_SR4_irq; external name 'USIC1_SR4_irq';
  418. procedure USIC1_SR5_irq; external name 'USIC1_SR5_irq';
  419. procedure USIC2_SR0_irq; external name 'USIC2_SR0_irq';
  420. procedure USIC2_SR1_irq; external name 'USIC2_SR1_irq';
  421. procedure USIC2_SR2_irq; external name 'USIC2_SR2_irq';
  422. procedure USIC2_SR3_irq; external name 'USIC2_SR3_irq';
  423. procedure USIC2_SR4_irq; external name 'USIC2_SR4_irq';
  424. procedure USIC2_SR5_irq; external name 'USIC2_SR5_irq';
  425. procedure LEDTS0_SR0_irq; external name 'LEDTS0_SR0_irq';
  426. procedure FCE_SR0_irq; external name 'FCE_SR0_irq';
  427. procedure GPDMA0_SR0_irq; external name 'GPDMA0_SR0_irq';
  428. procedure SDMMC_SR0_irq; external name 'SDMMC_SR0_irq';
  429. procedure USB0_SR0_irq; external name 'USB0_SR0_irq';
  430. procedure ETH0_SR0_irq; external name 'ETH0_SR0_irq';
  431. procedure GPDMA1_SR0_irq; external name 'GPDMA1_SR0_irq';
  432. {$define REMAP_VECTTAB}
  433. {$i cortexm4f_start.inc}
  434. procedure Vectors; assembler; nostackframe;
  435. label interrupt_vectors;
  436. asm
  437. .section ".init.interrupt_vectors"
  438. interrupt_vectors:
  439. .long _stack_top
  440. .long Startup
  441. .long NMI_interrupt
  442. .long Hardfault_interrupt
  443. .long MemManage_interrupt
  444. .long BusFault_interrupt
  445. .long UsageFault_interrupt
  446. .long 0
  447. .long 0
  448. .long 0
  449. .long 0
  450. .long SWI_interrupt
  451. .long DebugMonitor_interrupt
  452. .long 0
  453. .long PendingSV_interrupt
  454. .long SysTick_interrupt
  455. .long SCU_SR0_irq
  456. .long ERU0_SR0_irq
  457. .long ERU0_SR1_irq
  458. .long ERU0_SR2_irq
  459. .long ERU0_SR3_irq
  460. .long ERU1_SR0_irq
  461. .long ERU1_SR1_irq
  462. .long ERU1_SR2_irq
  463. .long ERU1_SR3_irq
  464. .long 0
  465. .long 0
  466. .long 0
  467. .long PMU0_SR0_irq
  468. .long 0
  469. .long CADC_C0SR0_irq
  470. .long CADC_C0SR1_irq
  471. .long CADC_C0SR2_irq
  472. .long CADC_C0SR3_irq
  473. .long CADC_G0SR0_irq
  474. .long CADC_G0SR1_irq
  475. .long CADC_G0SR2_irq
  476. .long CADC_G0SR3_irq
  477. .long CADC_G1SR0_irq
  478. .long CADC_G1SR1_irq
  479. .long CADC_G1SR2_irq
  480. .long CADC_G1SR3_irq
  481. .long CADC_G2SR0_irq
  482. .long CADC_G2SR1_irq
  483. .long CADC_G2SR2_irq
  484. .long CADC_G2SR3_irq
  485. .long CADC_G3SR0_irq
  486. .long CADC_G3SR1_irq
  487. .long CADC_G3SR2_irq
  488. .long CADC_G3SR3_irq
  489. .long DSD_SRM0_irq
  490. .long DSD_SRM1_irq
  491. .long DSD_SRM2_irq
  492. .long DSD_SRM3_irq
  493. .long DSD_SRA0_irq
  494. .long DSD_SRA1_irq
  495. .long DSD_SRA2_irq
  496. .long DSD_SRA3_irq
  497. .long DAC_SR0_irq
  498. .long DAC_SR1_irq
  499. .long CCU40_SR0_irq
  500. .long CCU40_SR1_irq
  501. .long CCU40_SR2_irq
  502. .long CCU40_SR3_irq
  503. .long CCU41_SR0_irq
  504. .long CCU41_SR1_irq
  505. .long CCU41_SR2_irq
  506. .long CCU41_SR3_irq
  507. .long CCU42_SR0_irq
  508. .long CCU42_SR1_irq
  509. .long CCU42_SR2_irq
  510. .long CCU42_SR3_irq
  511. .long CCU43_SR0_irq
  512. .long CCU43_SR1_irq
  513. .long CCU43_SR2_irq
  514. .long CCU43_SR3_irq
  515. .long CCU80_SR0_irq
  516. .long CCU80_SR1_irq
  517. .long CCU80_SR2_irq
  518. .long CCU80_SR3_irq
  519. .long CCU81_SR0_irq
  520. .long CCU81_SR1_irq
  521. .long CCU81_SR2_irq
  522. .long CCU81_SR3_irq
  523. .long POSIF0_SR0_irq
  524. .long POSIF0_SR1_irq
  525. .long POSIF1_SR0_irq
  526. .long POSIF1_SR1_irq
  527. .long 0
  528. .long 0
  529. .long 0
  530. .long 0
  531. .long CAN_SR0_irq
  532. .long CAN_SR1_irq
  533. .long CAN_SR2_irq
  534. .long CAN_SR3_irq
  535. .long CAN_SR4_irq
  536. .long CAN_SR5_irq
  537. .long CAN_SR6_irq
  538. .long CAN_SR7_irq
  539. .long USIC0_SR0_irq
  540. .long USIC0_SR1_irq
  541. .long USIC0_SR2_irq
  542. .long USIC0_SR3_irq
  543. .long USIC0_SR4_irq
  544. .long USIC0_SR5_irq
  545. .long USIC1_SR0_irq
  546. .long USIC1_SR1_irq
  547. .long USIC1_SR2_irq
  548. .long USIC1_SR3_irq
  549. .long USIC1_SR4_irq
  550. .long USIC1_SR5_irq
  551. .long USIC2_SR0_irq
  552. .long USIC2_SR1_irq
  553. .long USIC2_SR2_irq
  554. .long USIC2_SR3_irq
  555. .long USIC2_SR4_irq
  556. .long USIC2_SR5_irq
  557. .long LEDTS0_SR0_irq
  558. .long 0
  559. .long FCE_SR0_irq
  560. .long GPDMA0_SR0_irq
  561. .long SDMMC_SR0_irq
  562. .long USB0_SR0_irq
  563. .long ETH0_SR0_irq
  564. .long 0
  565. .long GPDMA1_SR0_irq
  566. .weak NMI_interrupt
  567. .weak Hardfault_interrupt
  568. .weak MemManage_interrupt
  569. .weak BusFault_interrupt
  570. .weak UsageFault_interrupt
  571. .weak SWI_interrupt
  572. .weak DebugMonitor_interrupt
  573. .weak PendingSV_interrupt
  574. .weak SysTick_interrupt
  575. .weak SCU_SR0_irq
  576. .weak ERU0_SR0_irq
  577. .weak ERU0_SR1_irq
  578. .weak ERU0_SR2_irq
  579. .weak ERU0_SR3_irq
  580. .weak ERU1_SR0_irq
  581. .weak ERU1_SR1_irq
  582. .weak ERU1_SR2_irq
  583. .weak ERU1_SR3_irq
  584. .weak PMU0_SR0_irq
  585. .weak CADC_C0SR0_irq
  586. .weak CADC_C0SR1_irq
  587. .weak CADC_C0SR2_irq
  588. .weak CADC_C0SR3_irq
  589. .weak CADC_G0SR0_irq
  590. .weak CADC_G0SR1_irq
  591. .weak CADC_G0SR2_irq
  592. .weak CADC_G0SR3_irq
  593. .weak CADC_G1SR0_irq
  594. .weak CADC_G1SR1_irq
  595. .weak CADC_G1SR2_irq
  596. .weak CADC_G1SR3_irq
  597. .weak CADC_G2SR0_irq
  598. .weak CADC_G2SR1_irq
  599. .weak CADC_G2SR2_irq
  600. .weak CADC_G2SR3_irq
  601. .weak CADC_G3SR0_irq
  602. .weak CADC_G3SR1_irq
  603. .weak CADC_G3SR2_irq
  604. .weak CADC_G3SR3_irq
  605. .weak DSD_SRM0_irq
  606. .weak DSD_SRM1_irq
  607. .weak DSD_SRM2_irq
  608. .weak DSD_SRM3_irq
  609. .weak DSD_SRA0_irq
  610. .weak DSD_SRA1_irq
  611. .weak DSD_SRA2_irq
  612. .weak DSD_SRA3_irq
  613. .weak DAC_SR0_irq
  614. .weak DAC_SR1_irq
  615. .weak CCU40_SR0_irq
  616. .weak CCU40_SR1_irq
  617. .weak CCU40_SR2_irq
  618. .weak CCU40_SR3_irq
  619. .weak CCU41_SR0_irq
  620. .weak CCU41_SR1_irq
  621. .weak CCU41_SR2_irq
  622. .weak CCU41_SR3_irq
  623. .weak CCU42_SR0_irq
  624. .weak CCU42_SR1_irq
  625. .weak CCU42_SR2_irq
  626. .weak CCU42_SR3_irq
  627. .weak CCU43_SR0_irq
  628. .weak CCU43_SR1_irq
  629. .weak CCU43_SR2_irq
  630. .weak CCU43_SR3_irq
  631. .weak CCU80_SR0_irq
  632. .weak CCU80_SR1_irq
  633. .weak CCU80_SR2_irq
  634. .weak CCU80_SR3_irq
  635. .weak CCU81_SR0_irq
  636. .weak CCU81_SR1_irq
  637. .weak CCU81_SR2_irq
  638. .weak CCU81_SR3_irq
  639. .weak POSIF0_SR0_irq
  640. .weak POSIF0_SR1_irq
  641. .weak POSIF1_SR0_irq
  642. .weak POSIF1_SR1_irq
  643. .weak CAN_SR0_irq
  644. .weak CAN_SR1_irq
  645. .weak CAN_SR2_irq
  646. .weak CAN_SR3_irq
  647. .weak CAN_SR4_irq
  648. .weak CAN_SR5_irq
  649. .weak CAN_SR6_irq
  650. .weak CAN_SR7_irq
  651. .weak USIC0_SR0_irq
  652. .weak USIC0_SR1_irq
  653. .weak USIC0_SR2_irq
  654. .weak USIC0_SR3_irq
  655. .weak USIC0_SR4_irq
  656. .weak USIC0_SR5_irq
  657. .weak USIC1_SR0_irq
  658. .weak USIC1_SR1_irq
  659. .weak USIC1_SR2_irq
  660. .weak USIC1_SR3_irq
  661. .weak USIC1_SR4_irq
  662. .weak USIC1_SR5_irq
  663. .weak USIC2_SR0_irq
  664. .weak USIC2_SR1_irq
  665. .weak USIC2_SR2_irq
  666. .weak USIC2_SR3_irq
  667. .weak USIC2_SR4_irq
  668. .weak USIC2_SR5_irq
  669. .weak LEDTS0_SR0_irq
  670. .weak FCE_SR0_irq
  671. .weak GPDMA0_SR0_irq
  672. .weak SDMMC_SR0_irq
  673. .weak USB0_SR0_irq
  674. .weak ETH0_SR0_irq
  675. .weak GPDMA1_SR0_irq
  676. .set NMI_interrupt, HaltProc
  677. .set Hardfault_interrupt, HaltProc
  678. .set MemManage_interrupt, HaltProc
  679. .set BusFault_interrupt, HaltProc
  680. .set UsageFault_interrupt, HaltProc
  681. .set SWI_interrupt, HaltProc
  682. .set DebugMonitor_interrupt, HaltProc
  683. .set PendingSV_interrupt, HaltProc
  684. .set SysTick_interrupt, HaltProc
  685. .set SCU_SR0_irq, HaltProc
  686. .set ERU0_SR0_irq, HaltProc
  687. .set ERU0_SR1_irq, HaltProc
  688. .set ERU0_SR2_irq, HaltProc
  689. .set ERU0_SR3_irq, HaltProc
  690. .set ERU1_SR0_irq, HaltProc
  691. .set ERU1_SR1_irq, HaltProc
  692. .set ERU1_SR2_irq, HaltProc
  693. .set ERU1_SR3_irq, HaltProc
  694. .set PMU0_SR0_irq, HaltProc
  695. .set CADC_C0SR0_irq, HaltProc
  696. .set CADC_C0SR1_irq, HaltProc
  697. .set CADC_C0SR2_irq, HaltProc
  698. .set CADC_C0SR3_irq, HaltProc
  699. .set CADC_G0SR0_irq, HaltProc
  700. .set CADC_G0SR1_irq, HaltProc
  701. .set CADC_G0SR2_irq, HaltProc
  702. .set CADC_G0SR3_irq, HaltProc
  703. .set CADC_G1SR0_irq, HaltProc
  704. .set CADC_G1SR1_irq, HaltProc
  705. .set CADC_G1SR2_irq, HaltProc
  706. .set CADC_G1SR3_irq, HaltProc
  707. .set CADC_G2SR0_irq, HaltProc
  708. .set CADC_G2SR1_irq, HaltProc
  709. .set CADC_G2SR2_irq, HaltProc
  710. .set CADC_G2SR3_irq, HaltProc
  711. .set CADC_G3SR0_irq, HaltProc
  712. .set CADC_G3SR1_irq, HaltProc
  713. .set CADC_G3SR2_irq, HaltProc
  714. .set CADC_G3SR3_irq, HaltProc
  715. .set DSD_SRM0_irq, HaltProc
  716. .set DSD_SRM1_irq, HaltProc
  717. .set DSD_SRM2_irq, HaltProc
  718. .set DSD_SRM3_irq, HaltProc
  719. .set DSD_SRA0_irq, HaltProc
  720. .set DSD_SRA1_irq, HaltProc
  721. .set DSD_SRA2_irq, HaltProc
  722. .set DSD_SRA3_irq, HaltProc
  723. .set DAC_SR0_irq, HaltProc
  724. .set DAC_SR1_irq, HaltProc
  725. .set CCU40_SR0_irq, HaltProc
  726. .set CCU40_SR1_irq, HaltProc
  727. .set CCU40_SR2_irq, HaltProc
  728. .set CCU40_SR3_irq, HaltProc
  729. .set CCU41_SR0_irq, HaltProc
  730. .set CCU41_SR1_irq, HaltProc
  731. .set CCU41_SR2_irq, HaltProc
  732. .set CCU41_SR3_irq, HaltProc
  733. .set CCU42_SR0_irq, HaltProc
  734. .set CCU42_SR1_irq, HaltProc
  735. .set CCU42_SR2_irq, HaltProc
  736. .set CCU42_SR3_irq, HaltProc
  737. .set CCU43_SR0_irq, HaltProc
  738. .set CCU43_SR1_irq, HaltProc
  739. .set CCU43_SR2_irq, HaltProc
  740. .set CCU43_SR3_irq, HaltProc
  741. .set CCU80_SR0_irq, HaltProc
  742. .set CCU80_SR1_irq, HaltProc
  743. .set CCU80_SR2_irq, HaltProc
  744. .set CCU80_SR3_irq, HaltProc
  745. .set CCU81_SR0_irq, HaltProc
  746. .set CCU81_SR1_irq, HaltProc
  747. .set CCU81_SR2_irq, HaltProc
  748. .set CCU81_SR3_irq, HaltProc
  749. .set POSIF0_SR0_irq, HaltProc
  750. .set POSIF0_SR1_irq, HaltProc
  751. .set POSIF1_SR0_irq, HaltProc
  752. .set POSIF1_SR1_irq, HaltProc
  753. .set CAN_SR0_irq, HaltProc
  754. .set CAN_SR1_irq, HaltProc
  755. .set CAN_SR2_irq, HaltProc
  756. .set CAN_SR3_irq, HaltProc
  757. .set CAN_SR4_irq, HaltProc
  758. .set CAN_SR5_irq, HaltProc
  759. .set CAN_SR6_irq, HaltProc
  760. .set CAN_SR7_irq, HaltProc
  761. .set USIC0_SR0_irq, HaltProc
  762. .set USIC0_SR1_irq, HaltProc
  763. .set USIC0_SR2_irq, HaltProc
  764. .set USIC0_SR3_irq, HaltProc
  765. .set USIC0_SR4_irq, HaltProc
  766. .set USIC0_SR5_irq, HaltProc
  767. .set USIC1_SR0_irq, HaltProc
  768. .set USIC1_SR1_irq, HaltProc
  769. .set USIC1_SR2_irq, HaltProc
  770. .set USIC1_SR3_irq, HaltProc
  771. .set USIC1_SR4_irq, HaltProc
  772. .set USIC1_SR5_irq, HaltProc
  773. .set USIC2_SR0_irq, HaltProc
  774. .set USIC2_SR1_irq, HaltProc
  775. .set USIC2_SR2_irq, HaltProc
  776. .set USIC2_SR3_irq, HaltProc
  777. .set USIC2_SR4_irq, HaltProc
  778. .set USIC2_SR5_irq, HaltProc
  779. .set LEDTS0_SR0_irq, HaltProc
  780. .set FCE_SR0_irq, HaltProc
  781. .set GPDMA0_SR0_irq, HaltProc
  782. .set SDMMC_SR0_irq, HaltProc
  783. .set USB0_SR0_irq, HaltProc
  784. .set ETH0_SR0_irq, HaltProc
  785. .set GPDMA1_SR0_irq, HaltProc
  786. .text
  787. end;
  788. end.