<?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: LPC1756 SBL fails to flash</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1756-SBL-fails-to-flash/m-p/517551#M2236</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by robertpalmerjr on Fri Nov 14 12:18:44 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is the flash programming command:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;crt_emu_cm3_nxp -g -2 -vendor=NXP -pLPC1756 -s250 -flash-load-exec "&amp;lt;path&amp;gt;/Release/Bootloader.axf"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It fails with error code 138&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is the output of the flash programming:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Ni: LPCXpresso Debug Driver v5.2 (Apr 26 2013 19:51:18 - crt_emu_cm3_nxp build 1153)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Pc: (&amp;nbsp; 0) Reading remote configuration&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Nc: Looked for chip XML file in /Applications/lpcxpresso_5.2.4_2122/lpcxpresso/bin/LPC1756.xml&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Nc: Looked for vendor directory XML file in /Applications/lpcxpresso_5.2.4_2122/lpcxpresso/bin/nxp_directory.xml&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Nc: Found generic directory XML file in /Applications/lpcxpresso_5.2.4_2122/lpcxpresso/bin/crt_directory.xml&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Pc: (&amp;nbsp; 5) Remote configuration complete&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Pc: ( 30) Emulator Connected&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Pc: ( 40) Debug Halt&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Pc: ( 50) CPU ID&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Nc: Emu(2): Conn&amp;amp;Reset. DpID: 2BA01477. Info: FTWN9IJGA&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Nc: SWD Frequency: 250 KHz. RTCK: False. Vector catch: False.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Nc: Packet delay: 0&amp;nbsp; Poll delay: 0.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Nc: Loaded LPC175x_6x_256.cfx: LPC175x_6x (256K) Apr 22 2013 12:14:30&amp;nbsp; On-chip Flash Memory&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Nc: NXP: LPC1756&amp;nbsp; Part ID: 0x00000000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Pc: ( 65) Chip Setup Complete&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Nt: Connected: was_reset=false. was_stopped=false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Cr:v Registered license, download limit of 128K&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Pc: ( 70) License Check Complete&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Nt: Loading ELF file 'Bootloader.axf' at location 00000000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Nt: Writing 3576 bytes to 0000 in Flash (assumed clock: 4.0MHz)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Pb: 1 of 1 (&amp;nbsp; 0) Writing pages 0-0 at 0x00000000 with 3576 bytes&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Ps: (&amp;nbsp; 0) Page&amp;nbsp; 0 at 00000000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Ps: (&amp;nbsp; 0) Page&amp;nbsp; 0 at 00000000: 3576 bytes&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Nt: Erased/Wrote page&amp;nbsp; 0-0 with 3576 bytes in 1053msec&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Pb: (100) Finished writing Flash successfully.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Nt: Flash write Done&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Nt: Loading ELF file 'Bootloader.axf' at location 00000FF0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Nt: Writing 4 bytes to 0FF0 in Flash (assumed clock: 4.0MHz)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Pb: 1 of 1 (&amp;nbsp; 0) Writing pages 0-0 at 0x00000FF0 with 4 bytes&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Ps: (&amp;nbsp; 0) Page&amp;nbsp; 0 at 00000FF0&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So it appears that the first part writes correctly, but that the last 4 bytes don't.&amp;nbsp; Do flash write requests have to being on a page boundary?&amp;nbsp; Should these last 4 bytes be combined into the same write as the first 3576 bytes?&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 15 Jun 2016 17:28:45 GMT</pubDate>
    <dc:creator>lpcware</dc:creator>
    <dc:date>2016-06-15T17:28:45Z</dc:date>
    <item>
      <title>LPC1756 SBL fails to flash</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1756-SBL-fails-to-flash/m-p/517550#M2235</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by robertpalmerjr on Fri Nov 14 08:25:51 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;I'm using an LPC1756 and adding an SBL, starting with the AN11258 (I2C secondary boot loader)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I started with the Slave SBL firmware.&amp;nbsp; This is the piece that executes on boot and will check whether or not there is user code.&amp;nbsp; I have not incorporated the user code yet.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The project builds fine but when I try to flash the AFX file to the chip, it fails, every time.&amp;nbsp; From LPCXpresso, I tried using the both debug (with program before debug) and the flashing tool that is built in.&amp;nbsp; Both fail at the very end of the flashing process, as soon as it exits reset.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I was able to track it down to the SBL_APICall.&amp;nbsp; If I comment out this call, it will flash correctly and I can even debug it.&amp;nbsp; I have validated that the SBL will receive a user code image, write that user code image to FLASH and execute the user code image. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;However, as soon as I uncomment the SBL_APICall, it fails (falls into one of the exception handlers) as soon as the FLASHing is done and it exits reset.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is the original source code for the call (with these lines in, SBL FLASH fails, with them out, SBL FLASH succeeds):&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;
__SECTION(text_Flash_SBL_API, SBL_APICall) void SBL_APICall(uint32_t API, uint8_t* pData) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; SBL_APICall_Handler(API, pData);
}
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is the disassembly output from the .lss file&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;
Disassembly of section .text_Flash2:

00000ff0 &amp;lt;SBL_APICall&amp;gt;:
 *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; In case the SBL_CMD_HANDLER_FUNC is called, It should be 
 *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; the received command over bus. 
 * @return&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; None.
 **********************************************************************/
__SECTION(text_Flash_SBL_API, SBL_APICall) void SBL_APICall(uint32_t API, uint8_t* pData) {
&amp;nbsp;&amp;nbsp;&amp;nbsp; SBL_APICall_Handler(API, pData);
 ff0:f7ff bacb b.w58a &amp;lt;SBL_APICall_Handler&amp;gt;
&lt;/PRE&gt; &lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It appears that the correct brach instruction is getting put into the correct location in memory.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is my memory map (properties -&amp;gt; C/C++ Build -&amp;gt; MCU Settings):&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;
Flash&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Flash_SBL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Flash&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000ff0
Flash&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Flash_SBL_API&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Flash2&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000ff0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000010
RAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RamLoc16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x10000000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00003c00
RAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAM_FWDAT&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAM2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x10003c00&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00000400
RAM&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RamAHB16&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RAM3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x2007c000&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x00004000
&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 compared the .bin file from the two versions (one with and one without the SBL_APICall).&amp;nbsp; They are identical up to the point of between the end of the main code and the SBL_APICall.&amp;nbsp; The version WITH the call is filled with 00's up to 0xFF0 and then has the SLB_APICall code at 0xFF0.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Should the fill be 0xFF's instead of 0x00's?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;What is going wrong or what should I be looking at/looking for?&amp;nbsp; I'm obviously missing something, but just can't figure out what.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Robert&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:28:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1756-SBL-fails-to-flash/m-p/517550#M2235</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:28:44Z</dc:date>
    </item>
    <item>
      <title>Re: LPC1756 SBL fails to flash</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1756-SBL-fails-to-flash/m-p/517551#M2236</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;STRONG&gt;Content originally posted in LPCWare by robertpalmerjr on Fri Nov 14 12:18:44 MST 2014&lt;/STRONG&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is the flash programming command:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;crt_emu_cm3_nxp -g -2 -vendor=NXP -pLPC1756 -s250 -flash-load-exec "&amp;lt;path&amp;gt;/Release/Bootloader.axf"&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;It fails with error code 138&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Here is the output of the flash programming:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Ni: LPCXpresso Debug Driver v5.2 (Apr 26 2013 19:51:18 - crt_emu_cm3_nxp build 1153)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Pc: (&amp;nbsp; 0) Reading remote configuration&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Nc: Looked for chip XML file in /Applications/lpcxpresso_5.2.4_2122/lpcxpresso/bin/LPC1756.xml&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Nc: Looked for vendor directory XML file in /Applications/lpcxpresso_5.2.4_2122/lpcxpresso/bin/nxp_directory.xml&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Nc: Found generic directory XML file in /Applications/lpcxpresso_5.2.4_2122/lpcxpresso/bin/crt_directory.xml&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Pc: (&amp;nbsp; 5) Remote configuration complete&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Pc: ( 30) Emulator Connected&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Pc: ( 40) Debug Halt&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Pc: ( 50) CPU ID&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Nc: Emu(2): Conn&amp;amp;Reset. DpID: 2BA01477. Info: FTWN9IJGA&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Nc: SWD Frequency: 250 KHz. RTCK: False. Vector catch: False.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Nc: Packet delay: 0&amp;nbsp; Poll delay: 0.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Nc: Loaded LPC175x_6x_256.cfx: LPC175x_6x (256K) Apr 22 2013 12:14:30&amp;nbsp; On-chip Flash Memory&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Nc: NXP: LPC1756&amp;nbsp; Part ID: 0x00000000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Pc: ( 65) Chip Setup Complete&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Nt: Connected: was_reset=false. was_stopped=false&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Cr:v Registered license, download limit of 128K&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Pc: ( 70) License Check Complete&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Nt: Loading ELF file 'Bootloader.axf' at location 00000000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Nt: Writing 3576 bytes to 0000 in Flash (assumed clock: 4.0MHz)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Pb: 1 of 1 (&amp;nbsp; 0) Writing pages 0-0 at 0x00000000 with 3576 bytes&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Ps: (&amp;nbsp; 0) Page&amp;nbsp; 0 at 00000000&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Ps: (&amp;nbsp; 0) Page&amp;nbsp; 0 at 00000000: 3576 bytes&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Nt: Erased/Wrote page&amp;nbsp; 0-0 with 3576 bytes in 1053msec&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Pb: (100) Finished writing Flash successfully.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Nt: Flash write Done&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Nt: Loading ELF file 'Bootloader.axf' at location 00000FF0&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Nt: Writing 4 bytes to 0FF0 in Flash (assumed clock: 4.0MHz)&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Pb: 1 of 1 (&amp;nbsp; 0) Writing pages 0-0 at 0x00000FF0 with 4 bytes&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Ps: (&amp;nbsp; 0) Page&amp;nbsp; 0 at 00000FF0&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;So it appears that the first part writes correctly, but that the last 4 bytes don't.&amp;nbsp; Do flash write requests have to being on a page boundary?&amp;nbsp; Should these last 4 bytes be combined into the same write as the first 3576 bytes?&amp;nbsp; &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 15 Jun 2016 17:28:45 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC1756-SBL-fails-to-flash/m-p/517551#M2236</guid>
      <dc:creator>lpcware</dc:creator>
      <dc:date>2016-06-15T17:28:45Z</dc:date>
    </item>
  </channel>
</rss>

