<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>LPC Microcontrollersのトピックlinker script and startup code - GCC ARM</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/linker-script-and-startup-code-GCC-ARM/m-p/573668#M18872</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by gregUR on Wed Oct 10 01:38:21 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I can build a simple code by GCC for ARM, and I am trying to run it on MCB4300 with gdbserver and arm-none-eabi.gdb. The linker script and startup code are taken from CMSIS v3 (Device/ARM/ARMCM4/Source/GCC/startup_ARMCM4.S and Device/ARM/ARMCM4/Source/GCC/gcc_arm.ld) without modifications, but I also tried to modify flash and RAM addresses in .ld file.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It builds without problems with this command:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;./arm-none-eabi-gcc -g -mthumb -mcpu=cortex-m4 -march=armv7e-m -T Device/ARM/ARMCM4/Source/GCC/gcc_arm.ld Device/ARM/ARMCM4/Source/GCC/startup_ARMCM4.S main.c -o out.elf&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have to ctrl+c because it never gets to the breakpoint. Instead, it goes to 0x1c000206, but breakpoint is at 0x200. What are memory addresses that should be put into linker script ? Should anything else be changed in CMSIS's .ld and .s files ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Output of arm-none-eabi-gbd:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;(gdb) target remote :2331&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Remote debugging using :2331&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;0x00000000 in __isr_vector ()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(gdb) load&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Loading section .text, size 0x50c lma 0x0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Loading section .ARM.exidx, size 0x8 lma 0x50c&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Loading section .data, size 0x440 lma 0x514&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Loading section .jcr, size 0x4 lma 0x954&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Start address 0x17d, load size 2392&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Transfer rate: 395 bytes/sec, 598 bytes/write.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(gdb) break main&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Breakpoint 1 at 0x200: file main.c, line 37.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(gdb) c&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Continuing.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;^C&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Program received signal SIGTRAP, Trace/breakpoint trap.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;0x1c000206 in ?? ()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(gdb)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;and from gdbserver:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;SEGGER J-Link GDB Server V4.50i&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;JLinkARM.dll V4.50i (DLL compiled Jun 22 2012 19:00:36)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The server has been started with the following settings:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;---Server related settings---&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;GDBInit file:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; none&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Listening port:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2331&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SWO thread listening port: 2332&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Accept remote connection:&amp;nbsp; yes&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Logfile:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; off&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Verify download:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; off&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Init regs on start:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; on&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Silent mode:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; off&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Single run mode:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; off&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;---J-Link related settings---&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;J-Link script:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; none&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Target interface:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JTAG&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Host interface:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Target endian:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; little&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Target interface speed:&amp;nbsp;&amp;nbsp;&amp;nbsp; 5kHz&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Waiting for J-Link connection...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;J-Link is connected.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Firmware: J-Link ARM V8 compiled Aug&amp;nbsp; 1 2012 13:40:47&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Hardware: V8.00&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;S/N: 158007019&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;OEM: IAR&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Checking target voltage...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Listening on TCP/IP port 2331&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Connecting to target...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;J-Link found 2 JTAG devices, Total IRLen = 8&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;JTAG ID: 0x4BA00477 (Cortex-M4)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Connected to target&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Waiting for GDB connection...Connected to 127.0.0.1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Reading all registers&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Read 4 bytes @ address 0x00000000 (Data = 0x1000BEC8)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Downloading 1292 bytes @ address 0x00000000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Downloading 8 bytes @ address 0x0000050C&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Downloading 1088 bytes @ address 0x00000514&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Downloading 4 bytes @ address 0x00000954&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Writing register (PC = 0x0000017d)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Read 4 bytes @ address 0x0000017C (Data = 0x4B01F810)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Read 2 bytes @ address 0x00000200 (Data = 0x4809)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Read 2 bytes @ address 0x00000200 (Data = 0x4809)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Read 2 bytes @ address 0x00000200 (Data = 0x4809)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Setting breakpoint @ address 0x00000200, Size = 2, BPHandle = 0x0001&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Starting target CPU...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Debugger requested to halt target...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;...Target halted (PC = 0x1C000206)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Reading all registers&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Removing breakpoint @ address 0x00000200, Size = 2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Read 4 bytes @ address 0x1C000206 (Data = 0xE7FEE7FE)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;main.c:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;int globalVar = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void SystemInit (void) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#if 0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;uint32_t&amp;nbsp;&amp;nbsp;&amp;nbsp; SystemCoreClock = __IRC;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#ifdef __CODE_RED&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // CodeRed startup code will modify VTOR register to match&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // when code has been linked to run from.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Check whether we are running from external flash&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (SCB-&amp;gt;VTOR == 0x1C000000)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Enable Buffer for External Flash*/&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;STATICCONFIG0 |= 1&amp;lt;&amp;lt;19;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Call clock initialisation code&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CGU_Init();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#else&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#if defined(CORE_M4) || defined(CORE_M3)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Enable VTOR register to point to vector table&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCB-&amp;gt;VTOR = getPC() &amp;amp; 0xFFF00000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Enable Buffer for External Flash*/&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;STATICCONFIG0 |= 1&amp;lt;&amp;lt;19;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;int main(void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; int i;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; while(1)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; globalVar++;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; return 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;startup_ARMCM4.S:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* File: startup_ARMCM4.S&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * Purpose: startup file for Cortex-M4 devices. Should use with&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; GCC for ARM Embedded Processors&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * Version: V1.3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * Date: 08 Feb 2012&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * Copyright (c) 2012, ARM Limited&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * All rights reserved.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * Redistribution and use in source and binary forms, with or without&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * modification, are permitted provided that the following conditions are met:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Redistributions of source code must retain the above copyright&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; notice, this list of conditions and the following disclaimer.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Redistributions in binary form must reproduce the above copyright&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; notice, this list of conditions and the following disclaimer in the&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; documentation and/or other materials provided with the distribution.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Neither the name of the ARM Limited nor the&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; names of its contributors may be used to endorse or promote products&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; derived from this software without specific prior written permission.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * DISCLAIMED. IN NO EVENT SHALL ARM LIMITED BE LIABLE FOR ANY&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .syntax unified&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .arch armv7-m&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .section .stack&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .align 3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#ifdef __STACK_SIZE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .equ&amp;nbsp;&amp;nbsp;&amp;nbsp; Stack_Size, __STACK_SIZE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .equ&amp;nbsp;&amp;nbsp;&amp;nbsp; Stack_Size, 0x400&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .globl&amp;nbsp;&amp;nbsp;&amp;nbsp; __StackTop&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .globl&amp;nbsp;&amp;nbsp;&amp;nbsp; __StackLimit&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__StackLimit:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .space&amp;nbsp;&amp;nbsp;&amp;nbsp; Stack_Size&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .size __StackLimit, . - __StackLimit&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__StackTop:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .size __StackTop, . - __StackTop&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .section .heap&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .align 3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#ifdef __HEAP_SIZE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .equ&amp;nbsp;&amp;nbsp;&amp;nbsp; Heap_Size, __HEAP_SIZE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .equ&amp;nbsp;&amp;nbsp;&amp;nbsp; Heap_Size, 0xC00&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .globl&amp;nbsp;&amp;nbsp;&amp;nbsp; __HeapBase&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .globl&amp;nbsp;&amp;nbsp;&amp;nbsp; __HeapLimit&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__HeapBase:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .if&amp;nbsp;&amp;nbsp;&amp;nbsp; Heap_Size&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .space&amp;nbsp;&amp;nbsp;&amp;nbsp; Heap_Size&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .size __HeapBase, . - __HeapBase&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__HeapLimit:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .size __HeapLimit, . - __HeapLimit&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .section .isr_vector&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .align 2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .globl __isr_vector&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__isr_vector:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; __StackTop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Top of Stack */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; Reset_Handler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reset Handler */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; NMI_Handler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* NMI Handler */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; HardFault_Handler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Hard Fault Handler */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; MemManage_Handler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MPU Fault Handler */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; BusFault_Handler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Bus Fault Handler */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; UsageFault_Handler&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Usage Fault Handler */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reserved */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reserved */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reserved */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reserved */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; SVC_Handler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* SVCall Handler */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; DebugMon_Handler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Debug Monitor Handler */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reserved */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; PendSV_Handler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* PendSV Handler */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; SysTick_Handler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* SysTick Handler */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* External interrupts */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; WDT_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; 0:&amp;nbsp; Watchdog Timer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; 1:&amp;nbsp; Real Time Clock&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; TIM0_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; 2:&amp;nbsp; Timer0 / Timer1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; TIM2_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; 3:&amp;nbsp; Timer2 / Timer3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; MCIA_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; 4:&amp;nbsp; MCIa&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; MCIB_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; 5:&amp;nbsp; MCIb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; 6:&amp;nbsp; UART0 - DUT FPGA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; UART1_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; 7:&amp;nbsp; UART1 - DUT FPGA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; UART2_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; 8:&amp;nbsp; UART2 - DUT FPGA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; UART4_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; 9:&amp;nbsp; UART4 - not connected&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; AACI_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 10: AACI / AC97&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; CLCD_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 11: CLCD Combined Interrupt&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; ENET_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 12: Ethernet&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; USBDC_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 13: USB Device&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; USBHC_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 14: USB Host Controller&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; CHLCD_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 15: Character LCD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; FLEXRAY_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 16: Flexray&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 17: CAN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; LIN_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 18: LIN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 19: I2C ADC/DAC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 20: Reserved&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 21: Reserved&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 22: Reserved&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 23: Reserved&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 24: Reserved&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 25: Reserved&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 26: Reserved&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 27: Reserved&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; CPU_CLCD_IRQHandler&amp;nbsp;&amp;nbsp; /* 28: Reserved - CPU FPGA CLCD&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 29: Reserved - CPU FPGA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; UART3_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 30: UART3&amp;nbsp;&amp;nbsp;&amp;nbsp; - CPU FPGA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 31: SPI Touchscreen - CPU FPGA */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .size&amp;nbsp;&amp;nbsp;&amp;nbsp; __isr_vector, . - __isr_vector&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .text&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .thumb&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .thumb_func&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .align 2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .globl&amp;nbsp;&amp;nbsp;&amp;nbsp; Reset_Handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .type&amp;nbsp;&amp;nbsp;&amp;nbsp; Reset_Handler, %function&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Reset_Handler:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Loop to copy data from read only memory to RAM. The ranges&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; of copy from/to are specified by following symbols evaluated in&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; linker script.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __etext: End of code section, i.e., begin of data sections to copy from.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __data_start__/__data_end__: RAM address range that data should be&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; copied to. Both must be aligned to 4 bytes boundary.&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp; r1, =__etext&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp; r2, =__data_start__&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, =__data_end__&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#if 1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Here are two copies of loop implemenations. First one favors code size&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * and the second one favors performance. Default uses the first one.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * Change to "#if 0" to use the second one */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;.flash_to_ram_loop:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r2, r3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ittt&amp;nbsp;&amp;nbsp;&amp;nbsp; lt&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldrlt&amp;nbsp;&amp;nbsp; r0, [r1], #4&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strlt&amp;nbsp;&amp;nbsp; r0, [r2], #4&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; blt&amp;nbsp;&amp;nbsp;&amp;nbsp; .flash_to_ram_loop&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; subs&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, r2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ble&amp;nbsp;&amp;nbsp;&amp;nbsp; .flash_to_ram_loop_end&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;.flash_to_ram_loop:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; subs&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, #4&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp; r0, [r1, r3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str&amp;nbsp;&amp;nbsp;&amp;nbsp; r0, [r2, r3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bgt&amp;nbsp;&amp;nbsp;&amp;nbsp; .flash_to_ram_loop&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;.flash_to_ram_loop_end:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#ifndef __NO_SYSTEM_INIT&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp; r0, =SystemInit&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; blx&amp;nbsp;&amp;nbsp;&amp;nbsp; r0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp; r0, =_start&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bx&amp;nbsp;&amp;nbsp;&amp;nbsp; r0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .pool&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .size Reset_Handler, . - Reset_Handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp; Macro to define default handlers. Default handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp;&amp;nbsp; will be weak symbol and just dead loops. They can be&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp;&amp;nbsp; overwritten by other handlers */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .macro&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; handler_name&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .align 1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .thumb_func&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .weak&amp;nbsp;&amp;nbsp;&amp;nbsp; \handler_name&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .type&amp;nbsp;&amp;nbsp;&amp;nbsp; \handler_name, %function&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;\handler_name :&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .size&amp;nbsp;&amp;nbsp;&amp;nbsp; \handler_name, . - \handler_name&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .endm&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; NMI_Handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; HardFault_Handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; MemManage_Handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; BusFault_Handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; UsageFault_Handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; SVC_Handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; DebugMon_Handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; PendSV_Handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; SysTick_Handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; Default_Handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; WDT_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; TIM0_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; TIM2_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; MCIA_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; MCIB_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; UART1_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; UART2_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; UART3_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; UART4_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; AACI_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; CLCD_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; ENET_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; USBDC_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; USBHC_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; CHLCD_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; FLEXRAY_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; LIN_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; CPU_CLCD_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .end&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;gcc_arm.ld:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Linker script to configure memory regions. */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;MEMORY&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x40000&amp;nbsp;&amp;nbsp; /* 256k */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; RAM (rwx)&amp;nbsp; : ORIGIN = 0x20000000, LENGTH = 0x08000&amp;nbsp;&amp;nbsp; /*&amp;nbsp; 32k */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Library configurations */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;GROUP(libgcc.a libc.a libm.a libnosys.a)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Linker script to place sections and symbol values. Should be used together&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * with other linker script that defines memory regions FLASH and RAM.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * It references following symbols, which must be defined in code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; Reset_Handler : Entry of reset handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * It defines following symbols, which code can use without definition:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __exidx_start&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __exidx_end&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __etext&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __data_start__&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __preinit_array_start&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __preinit_array_end&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __init_array_start&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __init_array_end&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __fini_array_start&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __fini_array_end&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __data_end__&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __bss_start__&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __bss_end__&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __end__&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; end&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __HeapLimit&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __StackLimit&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __StackTop&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __stack&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ENTRY(Reset_Handler)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;SECTIONS&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;.text :&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;KEEP(*(.isr_vector))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(.text*)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;KEEP(*(.init))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;KEEP(*(.fini))&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* .ctors */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*crtbegin.o(.ctors)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*crtbegin?.o(.ctors)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(SORT(.ctors.*))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(.ctors)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* .dtors */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *crtbegin.o(.dtors)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *crtbegin?.o(.dtors)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *(SORT(.dtors.*))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *(.dtors)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;*(.rodata*)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;KEEP(*(.eh_frame*))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;} &amp;gt; FLASH&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;.ARM.extab : &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(.ARM.extab* .gnu.linkonce.armextab.*)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;} &amp;gt; FLASH&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;__exidx_start = .;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;.ARM.exidx :&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(.ARM.exidx* .gnu.linkonce.armexidx.*)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;} &amp;gt; FLASH&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__exidx_end = .;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;__etext = .;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;.data : AT (__etext)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__data_start__ = .;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(vtable)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(.data*)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;. = ALIGN(4);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/* preinit data */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PROVIDE_HIDDEN (__preinit_array_start = .);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;KEEP(*(.preinit_array))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PROVIDE_HIDDEN (__preinit_array_end = .);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;. = ALIGN(4);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/* init data */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PROVIDE_HIDDEN (__init_array_start = .);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;KEEP(*(SORT(.init_array.*)))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;KEEP(*(.init_array))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PROVIDE_HIDDEN (__init_array_end = .);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;. = ALIGN(4);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/* finit data */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PROVIDE_HIDDEN (__fini_array_start = .);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;KEEP(*(SORT(.fini_array.*)))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;KEEP(*(.fini_array))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PROVIDE_HIDDEN (__fini_array_end = .);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;. = ALIGN(4);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/* All data end */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__data_end__ = .;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;} &amp;gt; RAM&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;.bss :&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__bss_start__ = .;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(.bss*)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(COMMON)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__bss_end__ = .;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;} &amp;gt; RAM&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;.heap :&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__end__ = .;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;end = __end__;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(.heap*)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__HeapLimit = .;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;} &amp;gt; RAM&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* .stack_dummy section doesn't contains any symbols. It is only&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * used for linker to calculate size of stack sections, and assign&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * values to stack symbols later */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;.stack_dummy :&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(.stack)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;} &amp;gt; RAM&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Set stack top to end of RAM, and stack limit move down by&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * size of stack_dummy section */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__StackTop = ORIGIN(RAM) + LENGTH(RAM);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__StackLimit = __StackTop - SIZEOF(.stack_dummy);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PROVIDE(__stack = __StackTop);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Check if data + heap + stack exceeds RAM limit */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ASSERT(__StackLimit &amp;gt;= __HeapLimit, "region RAM overflowed with stack")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 18:58:15 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T18:58:15Z</dc:date>
    <item>
      <title>linker script and startup code - GCC ARM</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/linker-script-and-startup-code-GCC-ARM/m-p/573668#M18872</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by gregUR on Wed Oct 10 01:38:21 MST 2012&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I can build a simple code by GCC for ARM, and I am trying to run it on MCB4300 with gdbserver and arm-none-eabi.gdb. The linker script and startup code are taken from CMSIS v3 (Device/ARM/ARMCM4/Source/GCC/startup_ARMCM4.S and Device/ARM/ARMCM4/Source/GCC/gcc_arm.ld) without modifications, but I also tried to modify flash and RAM addresses in .ld file.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It builds without problems with this command:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;./arm-none-eabi-gcc -g -mthumb -mcpu=cortex-m4 -march=armv7e-m -T Device/ARM/ARMCM4/Source/GCC/gcc_arm.ld Device/ARM/ARMCM4/Source/GCC/startup_ARMCM4.S main.c -o out.elf&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I have to ctrl+c because it never gets to the breakpoint. Instead, it goes to 0x1c000206, but breakpoint is at 0x200. What are memory addresses that should be put into linker script ? Should anything else be changed in CMSIS's .ld and .s files ?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Output of arm-none-eabi-gbd:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;(gdb) target remote :2331&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Remote debugging using :2331&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;0x00000000 in __isr_vector ()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(gdb) load&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Loading section .text, size 0x50c lma 0x0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Loading section .ARM.exidx, size 0x8 lma 0x50c&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Loading section .data, size 0x440 lma 0x514&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Loading section .jcr, size 0x4 lma 0x954&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Start address 0x17d, load size 2392&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Transfer rate: 395 bytes/sec, 598 bytes/write.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(gdb) break main&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Breakpoint 1 at 0x200: file main.c, line 37.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(gdb) c&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Continuing.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;^C&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Program received signal SIGTRAP, Trace/breakpoint trap.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;0x1c000206 in ?? ()&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(gdb)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;and from gdbserver:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;SEGGER J-Link GDB Server V4.50i&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;JLinkARM.dll V4.50i (DLL compiled Jun 22 2012 19:00:36)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The server has been started with the following settings:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;---Server related settings---&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;GDBInit file:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; none&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Listening port:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2331&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;SWO thread listening port: 2332&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Accept remote connection:&amp;nbsp; yes&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Logfile:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; off&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Verify download:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; off&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Init regs on start:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; on&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Silent mode:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; off&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Single run mode:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; off&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;---J-Link related settings---&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;J-Link script:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; none&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Target interface:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; JTAG&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Host interface:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; USB&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Target endian:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; little&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Target interface speed:&amp;nbsp;&amp;nbsp;&amp;nbsp; 5kHz&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Waiting for J-Link connection...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;J-Link is connected.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Firmware: J-Link ARM V8 compiled Aug&amp;nbsp; 1 2012 13:40:47&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Hardware: V8.00&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;S/N: 158007019&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;OEM: IAR&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Checking target voltage...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Listening on TCP/IP port 2331&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Connecting to target...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;J-Link found 2 JTAG devices, Total IRLen = 8&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;JTAG ID: 0x4BA00477 (Cortex-M4)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Connected to target&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Waiting for GDB connection...Connected to 127.0.0.1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Reading all registers&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Read 4 bytes @ address 0x00000000 (Data = 0x1000BEC8)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Downloading 1292 bytes @ address 0x00000000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Downloading 8 bytes @ address 0x0000050C&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Downloading 1088 bytes @ address 0x00000514&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Downloading 4 bytes @ address 0x00000954&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Writing register (PC = 0x0000017d)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Read 4 bytes @ address 0x0000017C (Data = 0x4B01F810)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Read 2 bytes @ address 0x00000200 (Data = 0x4809)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Read 2 bytes @ address 0x00000200 (Data = 0x4809)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Read 2 bytes @ address 0x00000200 (Data = 0x4809)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Setting breakpoint @ address 0x00000200, Size = 2, BPHandle = 0x0001&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Starting target CPU...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Debugger requested to halt target...&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;...Target halted (PC = 0x1C000206)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Reading all registers&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Removing breakpoint @ address 0x00000200, Size = 2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Read 4 bytes @ address 0x1C000206 (Data = 0xE7FEE7FE)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;main.c:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;int globalVar = 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void SystemInit (void) {&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#if 0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;uint32_t&amp;nbsp;&amp;nbsp;&amp;nbsp; SystemCoreClock = __IRC;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#ifdef __CODE_RED&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // CodeRed startup code will modify VTOR register to match&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // when code has been linked to run from.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Check whether we are running from external flash&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (SCB-&amp;gt;VTOR == 0x1C000000)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Enable Buffer for External Flash*/&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;STATICCONFIG0 |= 1&amp;lt;&amp;lt;19;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Call clock initialisation code&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; CGU_Init();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#else&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#if defined(CORE_M4) || defined(CORE_M3)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // Enable VTOR register to point to vector table&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SCB-&amp;gt;VTOR = getPC() &amp;amp; 0xFFF00000;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*Enable Buffer for External Flash*/&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC_EMC-&amp;gt;STATICCONFIG0 |= 1&amp;lt;&amp;lt;19;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;int main(void)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; int i;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; while(1)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; globalVar++;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; return 0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;startup_ARMCM4.S:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* File: startup_ARMCM4.S&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * Purpose: startup file for Cortex-M4 devices. Should use with&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; GCC for ARM Embedded Processors&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * Version: V1.3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * Date: 08 Feb 2012&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * Copyright (c) 2012, ARM Limited&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * All rights reserved.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * Redistribution and use in source and binary forms, with or without&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * modification, are permitted provided that the following conditions are met:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Redistributions of source code must retain the above copyright&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; notice, this list of conditions and the following disclaimer.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Redistributions in binary form must reproduce the above copyright&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; notice, this list of conditions and the following disclaimer in the&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; documentation and/or other materials provided with the distribution.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; * Neither the name of the ARM Limited nor the&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; names of its contributors may be used to endorse or promote products&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; derived from this software without specific prior written permission.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * DISCLAIMED. IN NO EVENT SHALL ARM LIMITED BE LIABLE FOR ANY&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .syntax unified&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .arch armv7-m&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .section .stack&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .align 3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#ifdef __STACK_SIZE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .equ&amp;nbsp;&amp;nbsp;&amp;nbsp; Stack_Size, __STACK_SIZE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .equ&amp;nbsp;&amp;nbsp;&amp;nbsp; Stack_Size, 0x400&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .globl&amp;nbsp;&amp;nbsp;&amp;nbsp; __StackTop&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .globl&amp;nbsp;&amp;nbsp;&amp;nbsp; __StackLimit&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__StackLimit:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .space&amp;nbsp;&amp;nbsp;&amp;nbsp; Stack_Size&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .size __StackLimit, . - __StackLimit&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__StackTop:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .size __StackTop, . - __StackTop&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .section .heap&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .align 3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#ifdef __HEAP_SIZE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .equ&amp;nbsp;&amp;nbsp;&amp;nbsp; Heap_Size, __HEAP_SIZE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .equ&amp;nbsp;&amp;nbsp;&amp;nbsp; Heap_Size, 0xC00&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .globl&amp;nbsp;&amp;nbsp;&amp;nbsp; __HeapBase&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .globl&amp;nbsp;&amp;nbsp;&amp;nbsp; __HeapLimit&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__HeapBase:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .if&amp;nbsp;&amp;nbsp;&amp;nbsp; Heap_Size&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .space&amp;nbsp;&amp;nbsp;&amp;nbsp; Heap_Size&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .size __HeapBase, . - __HeapBase&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__HeapLimit:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .size __HeapLimit, . - __HeapLimit&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .section .isr_vector&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .align 2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .globl __isr_vector&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__isr_vector:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; __StackTop&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Top of Stack */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; Reset_Handler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reset Handler */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; NMI_Handler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* NMI Handler */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; HardFault_Handler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Hard Fault Handler */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; MemManage_Handler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* MPU Fault Handler */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; BusFault_Handler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Bus Fault Handler */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; UsageFault_Handler&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Usage Fault Handler */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reserved */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reserved */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reserved */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reserved */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; SVC_Handler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* SVCall Handler */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; DebugMon_Handler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Debug Monitor Handler */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Reserved */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; PendSV_Handler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* PendSV Handler */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; SysTick_Handler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* SysTick Handler */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* External interrupts */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; WDT_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; 0:&amp;nbsp; Watchdog Timer&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; 1:&amp;nbsp; Real Time Clock&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; TIM0_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; 2:&amp;nbsp; Timer0 / Timer1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; TIM2_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; 3:&amp;nbsp; Timer2 / Timer3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; MCIA_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; 4:&amp;nbsp; MCIa&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; MCIB_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; 5:&amp;nbsp; MCIb&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; 6:&amp;nbsp; UART0 - DUT FPGA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; UART1_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; 7:&amp;nbsp; UART1 - DUT FPGA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; UART2_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; 8:&amp;nbsp; UART2 - DUT FPGA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; UART4_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; 9:&amp;nbsp; UART4 - not connected&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; AACI_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 10: AACI / AC97&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; CLCD_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 11: CLCD Combined Interrupt&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; ENET_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 12: Ethernet&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; USBDC_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 13: USB Device&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; USBHC_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 14: USB Host Controller&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; CHLCD_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 15: Character LCD&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; FLEXRAY_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 16: Flexray&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 17: CAN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; LIN_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 18: LIN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 19: I2C ADC/DAC&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 20: Reserved&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 21: Reserved&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 22: Reserved&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 23: Reserved&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 24: Reserved&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 25: Reserved&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 26: Reserved&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 27: Reserved&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; CPU_CLCD_IRQHandler&amp;nbsp;&amp;nbsp; /* 28: Reserved - CPU FPGA CLCD&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; 0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 29: Reserved - CPU FPGA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; UART3_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 30: UART3&amp;nbsp;&amp;nbsp;&amp;nbsp; - CPU FPGA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .long&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_IRQHandler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* 31: SPI Touchscreen - CPU FPGA */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .size&amp;nbsp;&amp;nbsp;&amp;nbsp; __isr_vector, . - __isr_vector&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .text&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .thumb&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .thumb_func&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .align 2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .globl&amp;nbsp;&amp;nbsp;&amp;nbsp; Reset_Handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .type&amp;nbsp;&amp;nbsp;&amp;nbsp; Reset_Handler, %function&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Reset_Handler:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Loop to copy data from read only memory to RAM. The ranges&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; of copy from/to are specified by following symbols evaluated in&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; linker script.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __etext: End of code section, i.e., begin of data sections to copy from.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; __data_start__/__data_end__: RAM address range that data should be&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; copied to. Both must be aligned to 4 bytes boundary.&amp;nbsp; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp; r1, =__etext&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp; r2, =__data_start__&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, =__data_end__&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#if 1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Here are two copies of loop implemenations. First one favors code size&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * and the second one favors performance. Default uses the first one.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * Change to "#if 0" to use the second one */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;.flash_to_ram_loop:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; cmp&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; r2, r3&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ittt&amp;nbsp;&amp;nbsp;&amp;nbsp; lt&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldrlt&amp;nbsp;&amp;nbsp; r0, [r1], #4&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; strlt&amp;nbsp;&amp;nbsp; r0, [r2], #4&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; blt&amp;nbsp;&amp;nbsp;&amp;nbsp; .flash_to_ram_loop&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#else&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; subs&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, r2&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ble&amp;nbsp;&amp;nbsp;&amp;nbsp; .flash_to_ram_loop_end&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;.flash_to_ram_loop:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; subs&amp;nbsp;&amp;nbsp;&amp;nbsp; r3, #4&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp; r0, [r1, r3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; str&amp;nbsp;&amp;nbsp;&amp;nbsp; r0, [r2, r3]&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bgt&amp;nbsp;&amp;nbsp;&amp;nbsp; .flash_to_ram_loop&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;.flash_to_ram_loop_end:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#ifndef __NO_SYSTEM_INIT&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp; r0, =SystemInit&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; blx&amp;nbsp;&amp;nbsp;&amp;nbsp; r0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#endif&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ldr&amp;nbsp;&amp;nbsp;&amp;nbsp; r0, =_start&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; bx&amp;nbsp;&amp;nbsp;&amp;nbsp; r0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .pool&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .size Reset_Handler, . - Reset_Handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/*&amp;nbsp;&amp;nbsp;&amp;nbsp; Macro to define default handlers. Default handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp;&amp;nbsp; will be weak symbol and just dead loops. They can be&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp;&amp;nbsp; overwritten by other handlers */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .macro&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; handler_name&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .align 1&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .thumb_func&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .weak&amp;nbsp;&amp;nbsp;&amp;nbsp; \handler_name&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .type&amp;nbsp;&amp;nbsp;&amp;nbsp; \handler_name, %function&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;\handler_name :&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; b&amp;nbsp;&amp;nbsp;&amp;nbsp; .&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .size&amp;nbsp;&amp;nbsp;&amp;nbsp; \handler_name, . - \handler_name&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .endm&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; NMI_Handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; HardFault_Handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; MemManage_Handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; BusFault_Handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; UsageFault_Handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; SVC_Handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; DebugMon_Handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; PendSV_Handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; SysTick_Handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; Default_Handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; WDT_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; TIM0_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; TIM2_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; MCIA_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; MCIB_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; UART0_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; UART1_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; UART2_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; UART3_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; UART4_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; AACI_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; CLCD_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; ENET_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; USBDC_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; USBHC_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; CHLCD_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; FLEXRAY_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; CAN_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; LIN_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; I2C_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; CPU_CLCD_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; def_irq_handler&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI_IRQHandler&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .end&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;gcc_arm.ld:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Linker script to configure memory regions. */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;MEMORY&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; FLASH (rx) : ORIGIN = 0x00000000, LENGTH = 0x40000&amp;nbsp;&amp;nbsp; /* 256k */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp; RAM (rwx)&amp;nbsp; : ORIGIN = 0x20000000, LENGTH = 0x08000&amp;nbsp;&amp;nbsp; /*&amp;nbsp; 32k */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Library configurations */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;GROUP(libgcc.a libc.a libm.a libnosys.a)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Linker script to place sections and symbol values. Should be used together&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * with other linker script that defines memory regions FLASH and RAM.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * It references following symbols, which must be defined in code:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; Reset_Handler : Entry of reset handler&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * It defines following symbols, which code can use without definition:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __exidx_start&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __exidx_end&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __etext&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __data_start__&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __preinit_array_start&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __preinit_array_end&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __init_array_start&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __init_array_end&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __fini_array_start&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __fini_array_end&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __data_end__&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __bss_start__&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __bss_end__&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __end__&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; end&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __HeapLimit&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __StackLimit&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __StackTop&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *&amp;nbsp;&amp;nbsp; __stack&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ENTRY(Reset_Handler)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;SECTIONS&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;.text :&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;KEEP(*(.isr_vector))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(.text*)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;KEEP(*(.init))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;KEEP(*(.fini))&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* .ctors */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*crtbegin.o(.ctors)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*crtbegin?.o(.ctors)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(EXCLUDE_FILE(*crtend?.o *crtend.o) .ctors)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(SORT(.ctors.*))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(.ctors)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* .dtors */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *crtbegin.o(.dtors)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *crtbegin?.o(.dtors)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *(EXCLUDE_FILE(*crtend?.o *crtend.o) .dtors)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *(SORT(.dtors.*))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; *(.dtors)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;*(.rodata*)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;KEEP(*(.eh_frame*))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;} &amp;gt; FLASH&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;.ARM.extab : &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(.ARM.extab* .gnu.linkonce.armextab.*)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;} &amp;gt; FLASH&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;__exidx_start = .;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;.ARM.exidx :&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(.ARM.exidx* .gnu.linkonce.armexidx.*)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;} &amp;gt; FLASH&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__exidx_end = .;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;__etext = .;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;.data : AT (__etext)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__data_start__ = .;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(vtable)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(.data*)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;. = ALIGN(4);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/* preinit data */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PROVIDE_HIDDEN (__preinit_array_start = .);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;KEEP(*(.preinit_array))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PROVIDE_HIDDEN (__preinit_array_end = .);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;. = ALIGN(4);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/* init data */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PROVIDE_HIDDEN (__init_array_start = .);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;KEEP(*(SORT(.init_array.*)))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;KEEP(*(.init_array))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PROVIDE_HIDDEN (__init_array_end = .);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;. = ALIGN(4);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/* finit data */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PROVIDE_HIDDEN (__fini_array_start = .);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;KEEP(*(SORT(.fini_array.*)))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;KEEP(*(.fini_array))&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PROVIDE_HIDDEN (__fini_array_end = .);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;. = ALIGN(4);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;/* All data end */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__data_end__ = .;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;} &amp;gt; RAM&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;.bss :&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__bss_start__ = .;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(.bss*)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(COMMON)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__bss_end__ = .;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;} &amp;gt; RAM&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;.heap :&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__end__ = .;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;end = __end__;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(.heap*)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__HeapLimit = .;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;} &amp;gt; RAM&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* .stack_dummy section doesn't contains any symbols. It is only&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * used for linker to calculate size of stack sections, and assign&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * values to stack symbols later */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;.stack_dummy :&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;*(.stack)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;} &amp;gt; RAM&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Set stack top to end of RAM, and stack limit move down by&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt; * size of stack_dummy section */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__StackTop = ORIGIN(RAM) + LENGTH(RAM);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;__StackLimit = __StackTop - SIZEOF(.stack_dummy);&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PROVIDE(__stack = __StackTop);&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;/* Check if data + heap + stack exceeds RAM limit */&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;ASSERT(__StackLimit &amp;gt;= __HeapLimit, "region RAM overflowed with stack")&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 18:58:15 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/linker-script-and-startup-code-GCC-ARM/m-p/573668#M18872</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T18:58:15Z</dc:date>
    </item>
    <item>
      <title>Re: linker script and startup code - GCC ARM</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/linker-script-and-startup-code-GCC-ARM/m-p/1654836#M52656</link>
      <description>&lt;P&gt;Hi&amp;nbsp;&lt;a href="https://community.nxp.com/t5/user/viewprofilepage/user-id/94872"&gt;@lpcware&lt;/a&gt;&amp;nbsp;,&lt;BR /&gt;&lt;BR /&gt;Had you managed to resolve the issue? I've been encountering a similar situation for about a week now, and I'm unsure of what might be causing it.&lt;BR /&gt;&lt;BR /&gt;Regards,&lt;/P&gt;</description>
      <pubDate>Mon, 22 May 2023 12:42:18 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/linker-script-and-startup-code-GCC-ARM/m-p/1654836#M52656</guid>
      <dc:creator>Ukhan</dc:creator>
      <dc:date>2023-05-22T12:42:18Z</dc:date>
    </item>
  </channel>
</rss>

