lpc21x4.pp 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578
  1. {******************************************************************************
  2. lpc2114.h - Register defs for Philips LPC2114, LPC2124
  3. THE SOFTWARE IS DELIVERED "AS IS" WITHOUT WARRANTY OR CONDITION OF ANY KIND,
  4. EITHER EXPRESS, IMPLIED OR STATUTORY. THIS INCLUDES WITHOUT LIMITATION ANY
  5. WARRANTY OR CONDITION WITH RESPECT TO MERCHANTABILITY OR FITNESS FOR ANY
  6. PARTICULAR PURPOSE, OR AGAINST THE INFRINGEMENTS OF INTELLECTUAL PROPERTY RIGHTS
  7. OF OTHERS.
  8. This file may be freely used for commercial and non-commercial applications,
  9. including being redistributed with any tools.
  10. If you find a problem with the file, please report it so that it can be fixed.
  11. Created by Sten Larsson (sten_larsson at yahoo com)
  12. Free Pascal conversion by the Free Pascal development team
  13. ******************************************************************************}
  14. {$IFNDEF FPC_DOTTEDUNITS}
  15. unit lpc21x4;
  16. {$ENDIF FPC_DOTTEDUNITS}
  17. {$goto on}
  18. interface
  19. {##############################################################################
  20. ## MISC
  21. ##############################################################################}
  22. { Constants for data to put in IRQ/FIQ Exception Vectors }
  23. const
  24. VECTDATA_IRQ = dword($E51FFFF0); { LDR PC,[PC,#-0xFF0] }
  25. // VECTDATA_FIQ { __TODO }
  26. type
  27. TBitvector32 = bitpacked array[0..31] of 0..1;
  28. {##############################################################################
  29. ## VECTORED INTERRUPT CONTROLLER
  30. ##############################################################################}
  31. var
  32. VICIRQStatus : DWord absolute $FFFFF000;
  33. VICFIQStatus : DWord absolute $FFFFF004;
  34. VICRawIntr : DWord absolute $FFFFF008;
  35. VICIntSelect : DWord absolute $FFFFF00C;
  36. VICIntEnable : DWord absolute $FFFFF010;
  37. VICIntEnClear : DWord absolute $FFFFF014;
  38. VICSoftInt : DWord absolute $FFFFF018;
  39. VICSoftIntClear : DWord absolute $FFFFF01C;
  40. VICProtection : DWord absolute $FFFFF020;
  41. VICVectAddr : DWord absolute $FFFFF030;
  42. VICDefVectAddr : DWord absolute $FFFFF034;
  43. VICVectAddr0 : DWord absolute $FFFFF100;
  44. VICVectAddr1 : DWord absolute $FFFFF104;
  45. VICVectAddr2 : DWord absolute $FFFFF108;
  46. VICVectAddr3 : DWord absolute $FFFFF10C;
  47. VICVectAddr4 : DWord absolute $FFFFF110;
  48. VICVectAddr5 : DWord absolute $FFFFF114;
  49. VICVectAddr6 : DWord absolute $FFFFF118;
  50. VICVectAddr7 : DWord absolute $FFFFF11C;
  51. VICVectAddr8 : DWord absolute $FFFFF120;
  52. VICVectAddr9 : DWord absolute $FFFFF124;
  53. VICVectAddr10 : DWord absolute $FFFFF128;
  54. VICVectAddr11 : DWord absolute $FFFFF12C;
  55. VICVectAddr12 : DWord absolute $FFFFF130;
  56. VICVectAddr13 : DWord absolute $FFFFF134;
  57. VICVectAddr14 : DWord absolute $FFFFF138;
  58. VICVectAddr15 : DWord absolute $FFFFF13C;
  59. VICVectCntl0 : DWord absolute $FFFFF200;
  60. VICVectCntl1 : DWord absolute $FFFFF204;
  61. VICVectCntl2 : DWord absolute $FFFFF208;
  62. VICVectCntl3 : DWord absolute $FFFFF20C;
  63. VICVectCntl4 : DWord absolute $FFFFF210;
  64. VICVectCntl5 : DWord absolute $FFFFF214;
  65. VICVectCntl6 : DWord absolute $FFFFF218;
  66. VICVectCntl7 : DWord absolute $FFFFF21C;
  67. VICVectCntl8 : DWord absolute $FFFFF220;
  68. VICVectCntl9 : DWord absolute $FFFFF224;
  69. VICVectCntl10 : DWord absolute $FFFFF228;
  70. VICVectCntl11 : DWord absolute $FFFFF22C;
  71. VICVectCntl12 : DWord absolute $FFFFF230;
  72. VICVectCntl13 : DWord absolute $FFFFF234;
  73. VICVectCntl14 : DWord absolute $FFFFF238;
  74. VICVectCntl15 : DWord absolute $FFFFF23C;
  75. VICITCR : DWord absolute $FFFFF300;
  76. VICITIP1 : DWord absolute $FFFFF304;
  77. VICITIP2 : DWord absolute $FFFFF308;
  78. VICITOP1 : DWord absolute $FFFFF30C;
  79. VICITOP2 : DWord absolute $FFFFF310;
  80. VICPeriphID0 : DWord absolute $FFFFFFE0;
  81. VICPeriphID1 : DWord absolute $FFFFFFE4;
  82. VICPeriphID2 : DWord absolute $FFFFFFE8;
  83. VICPeriphID3 : DWord absolute $FFFFFFEC;
  84. VICIntEnClr : DWord absolute $FFFFF014;
  85. VICSoftIntClr : DWord absolute $FFFFF01C;
  86. {##############################################################################
  87. ## PCB - Pin Connect Block
  88. ##############################################################################}
  89. PCB_PINSEL0 : DWord absolute $E002C000;
  90. PCB_PINSEL1 : DWord absolute $E002C004;
  91. PCB_PINSEL2 : DWord absolute $E002C014;
  92. {##############################################################################
  93. ## GPIO - General Purpose I/O
  94. ##############################################################################}
  95. GPIO0_IOPIN : DWord absolute $E0028000;
  96. GPIO0_IOSET : DWord absolute $E0028004;
  97. GPIO0_IODIR : DWord absolute $E0028008;
  98. GPIO0_IOCLR : DWord absolute $E002800C;
  99. GPIO1_IOPIN : DWord absolute $E0028010;
  100. GPIO1_IOSET : DWord absolute $E0028014;
  101. GPIO1_IODIR : DWord absolute $E0028018;
  102. GPIO1_IOCLR : DWord absolute $E002801C;
  103. {##############################################################################
  104. ## UART0 / UART1
  105. ##############################################################################}
  106. { ---- UART 0 --------------------------------------------- }
  107. UART0_RBR : DWord absolute $E000C000;
  108. UART0_THR : DWord absolute $E000C000;
  109. UART0_IER : DWord absolute $E000C004;
  110. UART0_IIR : DWord absolute $E000C008;
  111. UART0_FCR : DWord absolute $E000C008;
  112. UART0_LCR : DWord absolute $E000C00C;
  113. UART0_LSR : DWord absolute $E000C014;
  114. UART0_SCR : DWord absolute $E000C01C;
  115. UART0_DLL : DWord absolute $E000C000;
  116. UART0_DLM : DWord absolute $E000C004;
  117. { ---- UART 1 --------------------------------------------- }
  118. UART1_RBR : DWord absolute $E0010000;
  119. UART1_THR : DWord absolute $E0010000;
  120. UART1_IER : DWord absolute $E0010004;
  121. UART1_IIR : DWord absolute $E0010008;
  122. UART1_FCR : DWord absolute $E0010008;
  123. UART1_LCR : DWord absolute $E001000C;
  124. UART1_LSR : DWord absolute $E0010014;
  125. UART1_SCR : DWord absolute $E001001C;
  126. UART1_DLL : DWord absolute $E0010000;
  127. UART1_DLM : DWord absolute $E0010004;
  128. UART1_MCR : DWord absolute $E0010010;
  129. UART1_MSR : DWord absolute $E0010018;
  130. {##############################################################################
  131. ## I2C
  132. ##############################################################################}
  133. I2C_I2CONSET : DWord absolute $E001C000;
  134. I2C_I2STAT : DWord absolute $E001C004;
  135. I2C_I2DAT : DWord absolute $E001C008;
  136. I2C_I2ADR : DWord absolute $E001C00C;
  137. I2C_I2SCLH : DWord absolute $E001C010;
  138. I2C_I2SCLL : DWord absolute $E001C014;
  139. I2C_I2CONCLR : DWord absolute $E001C018;
  140. {##############################################################################
  141. ## SPI - Serial Peripheral Interface
  142. ##############################################################################}
  143. SPI_SPCR : DWord absolute $E0020000; { SPI = SPI0 }
  144. SPI_SPSR : DWord absolute $E0020004;
  145. SPI_SPDR : DWord absolute $E0020008;
  146. SPI_SPCCR : DWord absolute $E002000C;
  147. SPI_SPTCR : DWord absolute $E0020010;
  148. SPI_SPTSR : DWord absolute $E0020014;
  149. SPI_SPTOR : DWord absolute $E0020018;
  150. SPI_SPINT : DWord absolute $E002001C;
  151. SPI0_SPCR : DWord absolute $E0020000; { SPI = SPI0 }
  152. SPI0_SPSR : DWord absolute $E0020004;
  153. SPI0_SPDR : DWord absolute $E0020008;
  154. SPI0_SPCCR : DWord absolute $E002000C;
  155. SPI0_SPTCR : DWord absolute $E0020010;
  156. SPI0_SPTSR : DWord absolute $E0020014;
  157. SPI0_SPTOR : DWord absolute $E0020018;
  158. SPI0_SPINT : DWord absolute $E002001C;
  159. SPI1_SPCR : DWord absolute $E0030000;
  160. SPI1_SPSR : DWord absolute $E0030004;
  161. SPI1_SPDR : DWord absolute $E0030008;
  162. SPI1_SPCCR : DWord absolute $E003000C;
  163. SPI1_SPTCR : DWord absolute $E0030010;
  164. SPI1_SPTSR : DWord absolute $E0030014;
  165. SPI1_SPTOR : DWord absolute $E0030018;
  166. SPI1_SPINT : DWord absolute $E003001C;
  167. {##############################################################################
  168. ## Timer 0 and Timer 1
  169. ##############################################################################}
  170. { ---- Timer 0 -------------------------------------------- }
  171. T0_IR : DWord absolute $E0004000;
  172. T0_TCR : DWord absolute $E0004004;
  173. T0_TC : DWord absolute $E0004008;
  174. T0_PR : DWord absolute $E000400C;
  175. T0_PC : DWord absolute $E0004010;
  176. T0_MCR : DWord absolute $E0004014;
  177. T0_MR0 : DWord absolute $E0004018;
  178. T0_MR1 : DWord absolute $E000401C;
  179. T0_MR2 : DWord absolute $E0004020;
  180. T0_MR3 : DWord absolute $E0004024;
  181. T0_CCR : DWord absolute $E0004028;
  182. T0_CR0 : DWord absolute $E000402C;
  183. T0_CR1 : DWord absolute $E0004030;
  184. T0_CR2 : DWord absolute $E0004034;
  185. T0_CR3 : DWord absolute $E0004038;
  186. T0_EMR : DWord absolute $E000403C;
  187. { ---- Timer 1 -------------------------------------------- }
  188. T1_IR : DWord absolute $E0008000;
  189. T1_TCR : DWord absolute $E0008004;
  190. T1_TC : DWord absolute $E0008008;
  191. T1_PR : DWord absolute $E000800C;
  192. T1_PC : DWord absolute $E0008010;
  193. T1_MCR : DWord absolute $E0008014;
  194. T1_MR0 : DWord absolute $E0008018;
  195. T1_MR1 : DWord absolute $E000801C;
  196. T1_MR2 : DWord absolute $E0008020;
  197. T1_MR3 : DWord absolute $E0008024;
  198. T1_CCR : DWord absolute $E0008028;
  199. T1_CR0 : DWord absolute $E000802C;
  200. T1_CR1 : DWord absolute $E0008030;
  201. T1_CR2 : DWord absolute $E0008034;
  202. T1_CR3 : DWord absolute $E0008038;
  203. T1_EMR : DWord absolute $E000803C;
  204. {##############################################################################
  205. ## PWM
  206. ##############################################################################}
  207. PWM_IR : DWord absolute $E0014000;
  208. PWM_TCR : DWord absolute $E0014004;
  209. PWM_TC : DWord absolute $E0014008;
  210. PWM_PR : DWord absolute $E001400C;
  211. PWM_PC : DWord absolute $E0014010;
  212. PWM_MCR : DWord absolute $E0014014;
  213. PWM_MR0 : DWord absolute $E0014018;
  214. PWM_MR1 : DWord absolute $E001401C;
  215. PWM_MR2 : DWord absolute $E0014020;
  216. PWM_MR3 : DWord absolute $E0014024;
  217. PWM_MR4 : DWord absolute $E0014040;
  218. PWM_MR5 : DWord absolute $E0014044;
  219. PWM_MR6 : DWord absolute $E0014048;
  220. PWM_EMR : DWord absolute $E001403C;
  221. PWM_PCR : DWord absolute $E001404C;
  222. PWM_LER : DWord absolute $E0014050;
  223. PWM_CCR : DWord absolute $E0014028;
  224. PWM_CR0 : DWord absolute $E001402C;
  225. PWM_CR1 : DWord absolute $E0014030;
  226. PWM_CR2 : DWord absolute $E0014034;
  227. PWM_CR3 : DWord absolute $E0014038;
  228. {##############################################################################
  229. ## RTC
  230. ##############################################################################}
  231. { ---- RTC: Miscellaneous Register Group ------------------ }
  232. RTC_ILR : DWord absolute $E0024000;
  233. RTC_CTC : DWord absolute $E0024004;
  234. RTC_CCR : DWord absolute $E0024008;
  235. RTC_CIIR : DWord absolute $E002400C;
  236. RTC_AMR : DWord absolute $E0024010;
  237. RTC_CTIME0 : DWord absolute $E0024014;
  238. RTC_CTIME1 : DWord absolute $E0024018;
  239. RTC_CTIME2 : DWord absolute $E002401C;
  240. { ---- RTC: Timer Control Group --------------------------- }
  241. RTC_SEC : DWord absolute $E0024020;
  242. RTC_MIN : DWord absolute $E0024024;
  243. RTC_HOUR : DWord absolute $E0024028;
  244. RTC_DOM : DWord absolute $E002402C;
  245. RTC_DOW : DWord absolute $E0024030;
  246. RTC_DOY : DWord absolute $E0024034;
  247. RTC_MONTH : DWord absolute $E0024038;
  248. RTC_YEAR : DWord absolute $E002403C;
  249. { ---- RTC: Alarm Control Group --------------------------- }
  250. RTC_ALSEC : DWord absolute $E0024060;
  251. RTC_ALMIN : DWord absolute $E0024064;
  252. RTC_ALHOUR : DWord absolute $E0024068;
  253. RTC_ALDOM : DWord absolute $E002406C;
  254. RTC_ALDOW : DWord absolute $E0024070;
  255. RTC_ALDOY : DWord absolute $E0024074;
  256. RTC_ALMON : DWord absolute $E0024078;
  257. RTC_ALYEAR : DWord absolute $E002407C;
  258. { ---- RTC: Reference Clock Divider Group ----------------- }
  259. RTC_PREINT : DWord absolute $E0024080;
  260. RTC_PREFRAC : DWord absolute $E0024084;
  261. {##############################################################################
  262. ## AE - AD Converter
  263. ##############################################################################}
  264. AD_ADCR : DWord absolute $E0034000;
  265. AD_ADDR : DWord absolute $E0034004;
  266. {##############################################################################
  267. ## WD - Watchdog
  268. ##############################################################################}
  269. WD_WDMOD : DWord absolute $E0000000;
  270. WD_WDTC : DWord absolute $E0000004;
  271. WD_WDFEED : DWord absolute $E0000008;
  272. WD_WDTV : DWord absolute $E000000C;
  273. {##############################################################################
  274. ## SCB - System Control Block
  275. ##############################################################################}
  276. SCB_EXTINT : DWord absolute $E01FC140;
  277. SCB_EXTWAKE : DWord absolute $E01FC144;
  278. SCB_EXTMODE : DWord absolute $E01FC148;
  279. SCB_EXTPOLAR : DWord absolute $E01FC14C;
  280. SCB_MEMMAP : DWord absolute $E01FC040;
  281. SCB_PLLCON : DWord absolute $E01FC080;
  282. SCB_PLLCFG : DWord absolute $E01FC084;
  283. SCB_PLLSTAT : DWord absolute $E01FC088;
  284. SCB_PLLFEED : DWord absolute $E01FC08C;
  285. SCB_PCON : DWord absolute $E01FC0C0;
  286. SCB_PCONP : DWord absolute $E01FC0C4;
  287. SCB_VPBDIV : DWord absolute $E01FC100;
  288. {##############################################################################
  289. ## MAM - Memory Accelerator Module
  290. ##############################################################################}
  291. MAM_MAMCR : DWord absolute $E01FC000;
  292. MAM_MAMTIM : DWord absolute $E01FC004;
  293. MAM_MAMMAP : DWord absolute $E01FC040;
  294. var
  295. Undefined_Handler,
  296. SWI_Handler,
  297. Prefetch_Handler,
  298. Abort_Handler,
  299. IRQ_Handler,
  300. FIQ_Handler : pointer;
  301. type
  302. tm = 1..32;
  303. tp = 1..8;
  304. procedure InitPLL(m : tm;p : tp);
  305. procedure PLLFeed;
  306. function GetProcessorClock(CrystalFrequency : DWord) : DWord;
  307. implementation
  308. procedure PLLFeed;
  309. begin
  310. SCB_PLLFEED:=$aa;
  311. SCB_PLLFEED:=$55;
  312. end;
  313. function GetProcessorClock(CrystalFrequency : DWord) : DWord;
  314. begin
  315. if (TBitvector32(SCB_PLLSTAT)[8] and 1)<>0 then
  316. GetProcessorClock:=((SCB_PLLSTAT and $f)+1)*CrystalFrequency
  317. else
  318. GetProcessorClock:=CrystalFrequency;
  319. end;
  320. procedure InitPLL(m : tm;p : tp);
  321. begin
  322. case p of
  323. 1: p:=0;
  324. 2..3: p:=1;
  325. 4..7: p:=2;
  326. 8: p:=3;
  327. end;
  328. { set p and m }
  329. SCB_PLLCFG:=(m-1) or (p shl 5);
  330. { write changes }
  331. PLLFeed;
  332. { start PLL }
  333. TBitvector32(SCB_PLLCON)[0]:=1;
  334. { write changes }
  335. PLLFeed;
  336. { wait for pll sync }
  337. while TBitvector32(SCB_PLLSTAT)[10]=0 do
  338. ;
  339. { connect PLL }
  340. TBitvector32(SCB_PLLCON)[1]:=1;
  341. { write changes }
  342. PLLFeed;
  343. end;
  344. procedure PASCALMAIN; external name 'PASCALMAIN';
  345. procedure _FPC_haltproc; public name '_haltproc';
  346. label
  347. Lhalt;
  348. begin
  349. Lhalt:
  350. goto Lhalt;
  351. end;
  352. var
  353. _data: record end; external name '_data';
  354. _edata: record end; external name '_edata';
  355. _etext: record end; external name '_etext';
  356. _bss_start: record end; external name '_bss_start';
  357. _bss_end: record end; external name '_bss_end';
  358. _stack_top: record end; external name '_stack_top';
  359. procedure _FPC_start; assembler; nostackframe;
  360. label
  361. _start;
  362. asm
  363. // code derived from phillips appnote 10254
  364. .init
  365. .align 16
  366. .globl _start
  367. b _start
  368. b .LUndefined_Addr // Undefined Instruction vector
  369. b .LSWI_Addr // Software Interrupt vector
  370. b .LPrefetch_Addr // Prefetch abort vector
  371. b .LAbort_Addr // Data abort vector
  372. nop // reserved
  373. b .LIRQ_Addr // Interrupt Request (IRQ) vector
  374. b .LFIQ_Addr // Fast interrupt request (FIQ) vector
  375. .LUndefined_Addr:
  376. ldr r0,.L1
  377. ldr pc,[r0]
  378. .LSWI_Addr:
  379. ldr r0,.L2
  380. ldr pc,[r0]
  381. .LPrefetch_Addr:
  382. ldr r0,.L3
  383. ldr pc,[r0]
  384. .LAbort_Addr:
  385. ldr r0,.L4
  386. ldr pc,[r0]
  387. .LIRQ_Addr:
  388. ldr r0,.L5
  389. ldr pc,[r0]
  390. .LFIQ_Addr:
  391. ldr r0,.L5
  392. ldr pc,[r0]
  393. .L1:
  394. .long Undefined_Handler
  395. .L2:
  396. .long SWI_Handler
  397. .L3:
  398. .long Prefetch_Handler
  399. .L4:
  400. .long Abort_Handler
  401. .L5:
  402. .long IRQ_Handler
  403. .L6:
  404. .long FIQ_Handler
  405. _start:
  406. (*
  407. Set absolute stack top
  408. stack is already set by bootloader
  409. but if this point is entered by any
  410. other means than reset, the stack pointer
  411. needs to be set explicity
  412. *)
  413. ldr r0,.L_stack_top
  414. (*
  415. Setting up SP for IRQ and FIQ mode.
  416. Change mode before setting each one
  417. move back again to Supervisor mode
  418. Each interrupt has its own link
  419. register, stack pointer and program
  420. counter The stack pointers must be
  421. initialized for interrupts to be
  422. used later.
  423. *)
  424. (*
  425. setup irq and fiq stacks each 128 bytes
  426. *)
  427. msr cpsr_c, #0x12 // switch to irq mode
  428. mov sp, r0 // set irq stack pointer
  429. sub r0,r0,#128 // irq stack size
  430. msr cpsr_c, #0x11 // fiq mode
  431. mov sp, r0 // set fiq stack pointer
  432. sub r0,r0,#128 // fiq stack size
  433. msr cpsr_c, #0x13 // supervisor mode F,I enabled
  434. mov sp, r0 // stack
  435. ldr r1,.LDefaultHandlerAddr
  436. ldr r0,.L1
  437. str r1,[r0]
  438. ldr r0,.L2
  439. str r1,[r0]
  440. ldr r0,.L3
  441. str r1,[r0]
  442. ldr r0,.L4
  443. str r1,[r0]
  444. ldr r0,.L5
  445. str r1,[r0]
  446. ldr r0,.L6
  447. str r1,[r0]
  448. // copy initialized data from flash to ram
  449. ldr r1,.L_etext
  450. ldr r2,.L_data
  451. ldr r3,.L_edata
  452. .Lcopyloop:
  453. cmp r2,r3
  454. ldrls r0,[r1],#4
  455. strls r0,[r2],#4
  456. bls .Lcopyloop
  457. // clear onboard ram
  458. ldr r1,.L_bss_start
  459. ldr r2,.L_bss_end
  460. mov r0,#0
  461. .Lzeroloop:
  462. cmp r1,r2
  463. strls r0,[r1],#4
  464. bls .Lzeroloop
  465. bl PASCALMAIN
  466. bl _FPC_haltproc
  467. .L_bss_start:
  468. .long _bss_start
  469. .L_bss_end:
  470. .long _bss_end
  471. .L_etext:
  472. .long _etext
  473. .L_data:
  474. .long _data
  475. .L_edata:
  476. .long _edata
  477. .L_stack_top:
  478. .long _stack_top
  479. .LDefaultHandlerAddr:
  480. .long .LDefaultHandler
  481. // default irq handler just returns
  482. .LDefaultHandler:
  483. mov pc,r14
  484. .text
  485. end;
  486. end.