<?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>topic Python flash script in LPC Microcontrollers</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/Python-flash-script/m-p/561122#M16225</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Floyd42 on Thu Mar 20 12:28:51 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've created a python flashing app. Might come handy for other people also.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Usage example to flash "blink.bin", then reset the device and run it:&lt;/SPAN&gt;&lt;BR /&gt;&lt;DIV class="j-rte-table"&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca" style="border:1px solid black;background-color:#cacaca;border:1px solid black;background-color:#cacaca;background-color:#cacaca;border:1px solid black;"&gt; &lt;PRE&gt;
flushmagic.py -p /dev/ttyUSB1 -r blink.bin
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Together with a UART interrupt handler that support resetting the device, one can program and test without even touching the hardware (as long as the programm is working)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV class="j-rte-table"&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca" style="border:1px solid black;background-color:#cacaca;border:1px solid black;background-color:#cacaca;background-color:#cacaca;border:1px solid black;"&gt; &lt;PRE&gt;
typedef void (*IAP)(uint32_t*, uint32_t*);
#define IAP_ENTRY ((IAP)0x1fff1ff1)

void intHdl_UART0(void) 
{
&amp;nbsp; if (0 != (LPC8xx_UART-&amp;gt;stat &amp;amp; UART_STAT_RXRDY))
&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp; char c = (char)(LPC8xx_UART-&amp;gt;rxDat)
&amp;nbsp;&amp;nbsp;&amp;nbsp; switch (c)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 'r': // reset
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC8xx_SCS-&amp;gt;AIRCR = 0x05fa0004;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(;;) { } // Loop forever as fail safe option
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 'i': // reset into ISP
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { uint32_t cmd = 57;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IAP_ENTRY( &amp;amp;cmd, NULL); }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp; }
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Then one can use:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV class="j-rte-table"&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca" style="border:1px solid black;background-color:#cacaca;border:1px solid black;background-color:#cacaca;background-color:#cacaca;border:1px solid black;"&gt; &lt;PRE&gt;
$ make &amp;amp;&amp;amp; flushmagic.py -p /dev/ttyUSB1 -r blink.bin &amp;amp;&amp;amp; picocom -b 115200 /dev/ttyUSB1
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And in picocom just type "i" and then press "CTRL+a" and the "x" to get back to the command line to flash again.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Axel&lt;/SPAN&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-337933" rel="nofollow noopener noreferrer" target="_blank"&gt;flushmagic.py_.txt.zip&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 19:59:36 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T19:59:36Z</dc:date>
    <item>
      <title>Python flash script</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Python-flash-script/m-p/561122#M16225</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by Floyd42 on Thu Mar 20 12:28:51 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I've created a python flashing app. Might come handy for other people also.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Usage example to flash "blink.bin", then reset the device and run it:&lt;/SPAN&gt;&lt;BR /&gt;&lt;DIV class="j-rte-table"&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca" style="border:1px solid black;background-color:#cacaca;border:1px solid black;background-color:#cacaca;background-color:#cacaca;border:1px solid black;"&gt; &lt;PRE&gt;
flushmagic.py -p /dev/ttyUSB1 -r blink.bin
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Together with a UART interrupt handler that support resetting the device, one can program and test without even touching the hardware (as long as the programm is working)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV class="j-rte-table"&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca" style="border:1px solid black;background-color:#cacaca;border:1px solid black;background-color:#cacaca;background-color:#cacaca;border:1px solid black;"&gt; &lt;PRE&gt;
typedef void (*IAP)(uint32_t*, uint32_t*);
#define IAP_ENTRY ((IAP)0x1fff1ff1)

void intHdl_UART0(void) 
{
&amp;nbsp; if (0 != (LPC8xx_UART-&amp;gt;stat &amp;amp; UART_STAT_RXRDY))
&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp; char c = (char)(LPC8xx_UART-&amp;gt;rxDat)
&amp;nbsp;&amp;nbsp;&amp;nbsp; switch (c)
&amp;nbsp;&amp;nbsp;&amp;nbsp; {
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 'r': // reset
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; LPC8xx_SCS-&amp;gt;AIRCR = 0x05fa0004;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(;;) { } // Loop forever as fail safe option
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;

&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; case 'i': // reset into ISP
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; { uint32_t cmd = 57;
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IAP_ENTRY( &amp;amp;cmd, NULL); }
&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; break;
&amp;nbsp;&amp;nbsp;&amp;nbsp; }
&amp;nbsp; }
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Then one can use:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV class="j-rte-table"&gt;&lt;TABLE border="1"&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD bgcolor="#cacaca" style="border:1px solid black;background-color:#cacaca;border:1px solid black;background-color:#cacaca;background-color:#cacaca;border:1px solid black;"&gt; &lt;PRE&gt;
$ make &amp;amp;&amp;amp; flushmagic.py -p /dev/ttyUSB1 -r blink.bin &amp;amp;&amp;amp; picocom -b 115200 /dev/ttyUSB1
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;/DIV&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And in picocom just type "i" and then press "CTRL+a" and the "x" to get back to the command line to flash again.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Axel&lt;/SPAN&gt;&lt;P&gt;&lt;STRONG&gt;Original Attachment has been moved to: &lt;A _jive_internal="true" href="https://community.nxp.com/docs/DOC-337933" rel="nofollow noopener noreferrer" target="_blank"&gt;flushmagic.py_.txt.zip&lt;/A&gt;&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 19:59:36 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Python-flash-script/m-p/561122#M16225</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T19:59:36Z</dc:date>
    </item>
    <item>
      <title>Re: Python flash script</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/Python-flash-script/m-p/561123#M16226</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi. I'm new with LPC8xx programming. I'd like to know how long it takes to program 16 or 32kb of flash, by Linux, using&lt;/P&gt;&lt;P&gt;1. ISP via USART&lt;/P&gt;&lt;P&gt;2. SWD with SEGGER jLink or similar&lt;/P&gt;&lt;P&gt;3. which cheap tool do you suggest for mass production (3000pcs/month, not too much)&lt;/P&gt;&lt;P&gt;I'm just drawing a PCB for LPC804M101JDH20 and I don't know if it's better to use ISP or SWD to program flash, in production.&lt;/P&gt;&lt;P&gt;Thanks for any suggestion! (I'm just starting)&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sat, 31 Mar 2018 22:25:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/Python-flash-script/m-p/561123#M16226</guid>
      <dc:creator>psubiaco</dc:creator>
      <dc:date>2018-03-31T22:25:43Z</dc:date>
    </item>
  </channel>
</rss>

