<?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のトピックRe: reset vector</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596263#M22992</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Pacman on Thu Sep 18 21:40:02 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I can't explain why it always worked for you (unless you've written 32-bit ARM code, that is - but that wouldn't work on Cortex-M).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(Have you tried reading back the exception vector block from the device, to check the bits ?)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you're using the GNU Assembler, I recommend using the following two directives for each function you're writing:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .type&amp;nbsp; myLabel,%function&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .thumb_func&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;.thumb_func makes any pointer-access to the function work correctly. Eg. the ldr instruction plus exception vectors.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I've written two convenience macros; FUNCTION and ENDFUNC; both takes the function name as parameter.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;My macros handles the .global, (section), .func, .type, .thumb_func, .size and .endfunc directives; thus my sources look a bit more tidy.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 19:24:06 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T19:24:06Z</dc:date>
    <item>
      <title>reset vector</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596262#M22991</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by IanB on Wed Sep 17 04:15:59 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I've just been writing my first interrupt service routine in assembler. I learned the hard way (unexplained hard fault error, and much re-reading of Joseph Yiu's book) that bit zero of the interrupt vector must be set so that the processor knows it's a thumb instruction, and now it works.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So why has all my previous software worked - the reset vector has always been even? (Bit zero clear)&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:24:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596262#M22991</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:24:04Z</dc:date>
    </item>
    <item>
      <title>Re: reset vector</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596263#M22992</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Pacman on Thu Sep 18 21:40:02 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I can't explain why it always worked for you (unless you've written 32-bit ARM code, that is - but that wouldn't work on Cortex-M).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(Have you tried reading back the exception vector block from the device, to check the bits ?)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you're using the GNU Assembler, I recommend using the following two directives for each function you're writing:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .type&amp;nbsp; myLabel,%function&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .thumb_func&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;.thumb_func makes any pointer-access to the function work correctly. Eg. the ldr instruction plus exception vectors.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I've written two convenience macros; FUNCTION and ENDFUNC; both takes the function name as parameter.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;My macros handles the .global, (section), .func, .type, .thumb_func, .size and .endfunc directives; thus my sources look a bit more tidy.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:24:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596263#M22992</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:24:06Z</dc:date>
    </item>
    <item>
      <title>Re: reset vector</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596264#M22993</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by IanB on Tue Sep 30 09:29:59 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;As I mentioned on the LCD-Displays post, it was the ".thumb_func" - I had it for the reset vector but not the sys tick - I didn't know what it was doing at the time - I just copied it from somewhere without thinking!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Now I know.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When I put the startup routine in the normal .text section, it is happy, but if I put the startup routine in the .after_vectors section, then .thumb_func doesn't do its stuff unless it has a .type ResetISR,%function as well!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've written a startup routine (based on your "Writing your own startup code for Cortex-M" article)&amp;nbsp; - LPC Xpresso isn't quite the same as yours but it was easy enough to figure it out from the disassembly listing.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I also included in it the code to set the oscillator to 48MHz (cribbed straight from Joseph Yiu's book).&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:24:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596264#M22993</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:24:06Z</dc:date>
    </item>
    <item>
      <title>Re: reset vector</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596265#M22994</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Pacman on Fri Oct 03 03:48:27 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;It's great to hear that you could use the article. :)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I wrote it, because a teacher wanted to teach the pupils ARM (Cortex-M4) assembly language.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-That's one cool teacher! :)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Yes, I had problems also, until I used the .type directive. I should have mentioned it.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I better write some details in my docs, but not right now, as I'm almost falling asleep. ;)&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:24:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596265#M22994</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:24:07Z</dc:date>
    </item>
    <item>
      <title>Re: reset vector</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596266#M22995</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by IanB on Sun Oct 05 05:38:18 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I suppose I should post the code in case anyone else wants to use it:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;.section .after_vectors
ResetISR:
.thumb_func
.type ResetISR,%function
.global&amp;nbsp; ResetISR

ResetHandler:&amp;nbsp;&amp;nbsp; LDR R3,=__data_section_table
LDR R0,[R3]/* load address of .data section */
LDR R1,[R3,#4]/* start address of .data section */
LDR R2,[R3,#8]/* length of .data section */

copy_data:LDMIA R0!,{R3}
STMIA R1!,{R3}
SUBS R2,R2,#4
BNE copy_data

LDR R3,=__bss_section_table
LDR R0,[R3]/* start address of .bss section */
LDR R1,[R3,#4]/* length of .bss section */
MOVS R2,#0

zero_bss:STMIA R0!,{R2}
SUBS R1,R1,#4
BNE zero_bss

/*Set48MHzClock FUNCTION */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LDR R3,=LPC_SYSCON_BASE+PDRUNCFG
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LDR R1,[R3]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOVS R2,#0b10110000
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; BICS R1,R1,R2
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STR R1,[R3]

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Select PLL source as internal oscillator&amp;nbsp; */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LDR R3,=LPC_SYSCON_BASE
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOVS R2,#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; STR R2,[R3,SYSPLLCLKSEL]

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Update SYSPLL setting (0-&amp;gt;1 sequence)&amp;nbsp; */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOVS R2,#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; STR R2,[R3,SYSPLLCLKUEN]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOVS R2,#1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STR R2,[R3,SYSPLLCLKUEN]
.equ clockspeed, 48000000
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Set PLL to 48MHz generate from 12MHz&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOVS R2,#0x23
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STR R2,[R3,SYSPLLCTRL]

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* wait until PLL is locked&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */
Set48MHzClock:&amp;nbsp; LDR R2,[R3,SYSPLLSTAT]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; CMP R2,#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; BEQ Set48MHzClock

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Switch main clock to PLL clock&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOVS R2,#3
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STR R2,[R3, MAINCLKSEL]

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* Update Main Clock Select setting (0-&amp;gt;1 sequence)&amp;nbsp;&amp;nbsp; */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOVS R2,#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; STR R2,[R3,MAINCLKUEN]
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; MOVS R2,#1
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; STR R2,[R3,MAINCLKUEN]
B main&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This is the start of the vector table:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;.section .isr_vector

.word&amp;nbsp;&amp;nbsp; _vStackTop - 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; 0 Top of Stack&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; */
.word&amp;nbsp;&amp;nbsp; ResetISR&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /*&amp;nbsp; 1 Reset Handler&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;use&amp;nbsp; &lt;/SPAN&gt;&lt;STRONG&gt;_vStackTop&lt;/STRONG&gt;&lt;SPAN&gt; instead of &lt;/SPAN&gt;&lt;STRONG&gt;__top_RamLoc&lt;/STRONG&gt;&lt;SPAN&gt;, because __top_RamLoc changes slightly with each different&amp;nbsp; device, by having a suffix indicating the ram size.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm also glad someone is teaching assembler.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If no-one was teaching assembler, who would write the next compiler?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:24:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596266#M22995</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:24:08Z</dc:date>
    </item>
    <item>
      <title>Re: reset vector</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596267#M22996</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Pacman on Mon Oct 06 21:01:28 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;For the people that just came across this thread: The above startup code is for Cortex-M0 devices (but will work on Cortex-M3 too).&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Ian, I can see you've hand-picked the instructions. Very nice. &lt;SPAN class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;&lt;LI-EMOJI id="lia_slightly-smiling-face" title=":slightly_smiling_face:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: IanB&lt;/STRONG&gt;&lt;BR /&gt;LPC Xpresso isn't quite the same as yours ...&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;SPAN&gt;No, it seems that some section names are different, but fortunately the difference is not too bad. &lt;SPAN class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;&lt;LI-EMOJI id="lia_slightly-smiling-face" title=":slightly_smiling_face:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;As for the .section directive, I tend to use a macro instead:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;.macroSECTION name/* normal section (eg. executable) */
.section.\name,"ax",%progbits
.endm

.macroDSECTION name/* Data section */
.section.\name,"a",%progbits
.endm&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This makes it a lot easier writing code that is scheduled for being executed in SRAM.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;(eg. if you have sections like .fastcode, .ramcode or similar)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-The problem here is that the .section does not set the %progbits flag by default, so I experienced that my sections were just discarded.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;In some applications I use loads of sections, because the data are generated dynamically and each data type will go into its own section.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This way I can make the assembler generate tables and arrays of special lengths automatically (this is neat for graphics and special kind of fixed length code blocks too).&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:24:08 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596267#M22996</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:24:08Z</dc:date>
    </item>
    <item>
      <title>Re: reset vector</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596268#M22997</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by TheFallGuy on Mon Oct 06 23:45:04 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Why&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;vStackTop - 4&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;You are wasting the top 4 bytes of the stack...&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:24:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596268#M22997</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:24:09Z</dc:date>
    </item>
    <item>
      <title>Re: reset vector</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596269#M22998</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by IanB on Tue Oct 07 09:00:22 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Because I copied it from someone else who did it wrong.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; - - - reads manual more carefully - - -&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It decrements BEFORE it stores, so it should be vStackTop. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I stand corrected.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:24:09 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596269#M22998</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:24:09Z</dc:date>
    </item>
    <item>
      <title>Re: reset vector</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596270#M22999</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Pacman on Wed Oct 08 02:15:47 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;HR /&gt;&lt;SPAN style="color: #0000ff;"&gt;&lt;STRONG&gt;Quote: IanB&lt;/STRONG&gt;&lt;BR /&gt;It decrements BEFORE it stores, so it should be vStackTop&lt;/SPAN&gt;&lt;HR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Yes. I can confirm this, since I've used it in all my sources (and would probably have had some problems if it was wrong).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;As an alternative to placing the stack at ramtop, you can also define a fixed stack size, by creating a .stackarea section.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;This is how I do it in my linker-script:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .stackarea _ebss (NOLOAD) :
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(8);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _sstack = .;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* _sstack is located immediately after the BSS */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.stackarea .stackarea.*)

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(8);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _estack = .;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* _estack points at _sstack + your_stack_size */
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _end = .;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* this symbol marks the end of application RAM */

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PROVIDE(end = .);
&amp;nbsp;&amp;nbsp;&amp;nbsp; } &amp;gt;sram

&amp;nbsp;&amp;nbsp;&amp;nbsp; _stack = ORIGIN(sram) + LENGTH(sram);&amp;nbsp;&amp;nbsp; /* _stack is placed at ram-top and grows towards the BSS */&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I then have the option to use _estack or _stack, depending on my mood.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thus if I want an area that is protected from stack-overflow, I'd make a .stackarea section like the following:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .section .stackarea,"",%nobits
&amp;nbsp;&amp;nbsp;&amp;nbsp; .space 4*64&amp;nbsp;&amp;nbsp; /* size of stack */&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-But I also have the option to use the _stack symbol instead. Then I can use the .stackarea to define a minimum stack size.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;If there is not enough room for a stack of that size, I will get an error when I attempt to link, because the ram size is checked.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Sometimes you want to include a minimum stack size in your source files, but you should of course be aware that each time you add a .stackare, the stack grows. &lt;SPAN class="lia-unicode-emoji" title=":winking_face:"&gt;&lt;LI-EMOJI id="lia_winking-face" title=":winking_face:"&gt;&lt;/LI-EMOJI&gt;&lt;/SPAN&gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-If you have a recursive subroutine, it's useful to define the required stack size for this routine in the same source.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;main.s could then have a simple stack size of 16 words.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;-But it depends on your coding style. Normally I would just go with ramtop.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:24:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596270#M22999</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:24:10Z</dc:date>
    </item>
    <item>
      <title>Re: reset vector</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596271#M23000</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by MarcVonWindscooting on Wed Oct 08 05:16:16 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Interesting discussion, here&amp;nbsp; :)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Slightly off-topic: &lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Depending on the need for IAP, you want to add an extra padding of 32bytes from the top of RAM. I've failed so far creating a suitable LD-script + object files, because that needs (in my opinion) a section called .iap_reserved (for example) that needs to be populated &lt;/SPAN&gt;&lt;STRONG&gt;before&lt;/STRONG&gt;&lt;SPAN&gt; .stack to know its size but on the other hand &lt;/SPAN&gt;&lt;STRONG&gt;after&lt;/STRONG&gt;&lt;SPAN&gt; .stack to fit into the right place in RAM |( ?? My approach was to put a 32byte-array in the IAP library module into section .iap_reserved, which gets pulled in as soon as I use IAP functionality.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Has anyone done this or something similar?&lt;/SPAN&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:24:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596271#M23000</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:24:11Z</dc:date>
    </item>
    <item>
      <title>Re: reset vector</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596272#M23001</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Pacman on Wed Oct 08 11:12:49 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;When I started writing linker-scripts for the ARM architecture, I made a horrible mistake, which dragged me around in LD-land for a long time.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I finally got something working (by doing it the wrong way). Fortunately I got help from Erik Christiansen via the binutils mailing list.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here's a snippet, that you might find useful:&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; .ustack (NOLOAD) :&amp;nbsp; /* a user stack pseudo-section that only defines the user stack length */
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _sustack = ABSOLUTE(.);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *(.ustack .ustack.*)
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; . = ALIGN(4);
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; _eustack = ABSOLUTE(.);
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp;&amp;nbsp;&amp;nbsp; _lustack = (_eustack - _sustack);&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;-Now I got the relative length between the stack end and the stack start.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Imagine this is not called ustack but iap_reserved instead.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Now combine with my .stackarea snippet and change ...&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt; _stack = ORIGIN(sram) + LENGTH(sram);&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;SPAN&gt;... to ...&lt;/SPAN&gt;&lt;BR /&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca"&gt; &lt;PRE&gt; _stack = ORIGIN(sram) + LENGTH(sram) - _liap_reserved;&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;SPAN&gt;...Would that solve the problem ?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:24:11 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596272#M23001</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:24:11Z</dc:date>
    </item>
    <item>
      <title>Re: reset vector</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596273#M23002</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by MarcVonWindscooting on Fri Oct 10 03:29:27 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Yes I think the NOLOAD can do the trick. I'll give it a try.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:24:12 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/reset-vector/m-p/596273#M23002</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:24:12Z</dc:date>
    </item>
  </channel>
</rss>

