<?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のトピックLPC55S6x Dual Core Best Practice</title>
    <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S6x-Dual-Core-Best-Practice/m-p/946035#M37622</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I was looking for some more in depth information about how to use the dual cores of the LPC55S6x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there an elaborate document I could read to clear out some of the pitfalls?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let me point out some grey zones for me.&lt;/P&gt;&lt;P&gt;- it is optimal to let the CPU0 and CPU1 run from different code-sources (flash and SRAMX). But if you don't, what will happen.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;Will one CPU wait for the other to finish the instruction fetch?&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;Will there be a collision with some error trap?&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;Will false instructions be fed to slave CPU? ....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now let's say CPU0 is running from Flash and CPU1 from SRAMX.&lt;/P&gt;&lt;P&gt;- Sharing RAM: I would like CPU0 and CPU1 to access a shared area of RAM with data in it needed for both CPUs.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;How do I properly share an SRAM block/range?&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;How do I make sure that the only 1 CPU is accessing it at the same time (I've read the part about mutex, but this only seems to work for 1 variable)?&lt;/P&gt;&lt;P&gt;- How about peripherals: CPU0 uses a set of peripherals spread over different buses and CPU1 as well.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;How do I avoid that accessing these peripherals don't cause any bus errors/collisions?&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;Are there any mutexes for this?&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;Does every bus have it's own hw-mutex or does some software mutex need to be implemented?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So some help&amp;nbsp;pointing me in the correct direction&amp;nbsp;would be much appreciated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 05 Aug 2019 08:14:07 GMT</pubDate>
    <dc:creator>dingelen</dc:creator>
    <dc:date>2019-08-05T08:14:07Z</dc:date>
    <item>
      <title>LPC55S6x Dual Core Best Practice</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S6x-Dual-Core-Best-Practice/m-p/946035#M37622</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I was looking for some more in depth information about how to use the dual cores of the LPC55S6x.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Is there an elaborate document I could read to clear out some of the pitfalls?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let me point out some grey zones for me.&lt;/P&gt;&lt;P&gt;- it is optimal to let the CPU0 and CPU1 run from different code-sources (flash and SRAMX). But if you don't, what will happen.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;Will one CPU wait for the other to finish the instruction fetch?&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;Will there be a collision with some error trap?&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;Will false instructions be fed to slave CPU? ....&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Now let's say CPU0 is running from Flash and CPU1 from SRAMX.&lt;/P&gt;&lt;P&gt;- Sharing RAM: I would like CPU0 and CPU1 to access a shared area of RAM with data in it needed for both CPUs.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;How do I properly share an SRAM block/range?&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;How do I make sure that the only 1 CPU is accessing it at the same time (I've read the part about mutex, but this only seems to work for 1 variable)?&lt;/P&gt;&lt;P&gt;- How about peripherals: CPU0 uses a set of peripherals spread over different buses and CPU1 as well.&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;How do I avoid that accessing these peripherals don't cause any bus errors/collisions?&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;Are there any mutexes for this?&lt;/P&gt;&lt;P&gt;&amp;nbsp; &amp;nbsp;Does every bus have it's own hw-mutex or does some software mutex need to be implemented?&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;So some help&amp;nbsp;pointing me in the correct direction&amp;nbsp;would be much appreciated.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 05 Aug 2019 08:14:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S6x-Dual-Core-Best-Practice/m-p/946035#M37622</guid>
      <dc:creator>dingelen</dc:creator>
      <dc:date>2019-08-05T08:14:07Z</dc:date>
    </item>
    <item>
      <title>Re: LPC55S6x Dual Core Best Practice</title>
      <link>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S6x-Dual-Core-Best-Practice/m-p/946036#M37623</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Tom,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reviewing your questions here are some comments.&lt;/P&gt;&lt;P&gt;- Generally it is possible to run both cores from flash, but it could have worse performance due to the wait time to access the memory.&amp;nbsp;Since there is&amp;nbsp;only one flash block, and the Core0 &amp;amp; Core1 use the same bus to access it, the slave core image should be assigned to run in a different bus matrix layer from the master core image. Generally, the slave core image is allocated in an independent bank of SRAM and the master core one in Flash.&lt;/P&gt;&lt;P&gt;-&amp;nbsp;If&amp;nbsp;the two CPUs are sharing a single SRAM, you need to make sure that the data memories (including stack and heap memories) used by the two processors are in different address ranges. This &lt;A href="https://community.arm.com/cfs-file/__key/telligent-evolution-components-attachments/01-1989-00-00-00-00-52-92/Multi_2D00_core-microcontroller-design-with-Cortex_2D00_M-processors-and-Cor.pdf"&gt;document&lt;/A&gt; talks about multi-core microcontrollers not specifically about the LPC55s69 but the general idea will be helpful.&lt;/P&gt;&lt;P&gt;- You can also refer to this &lt;A href="https://www.nxp.com/docs/en/application-note/AN12335.pdf"&gt;document&lt;/A&gt;&amp;nbsp;for how the LPC55 series communicates between cores.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This &lt;A href="https://freescale.jiveon.com/servlet/JiveServlet/download/11039-1-442085/LPC55xx_Multicore_v1.00.pdf"&gt;document &lt;/A&gt;details how to create, build and debug LPC55xx multicore applications using the LPC55S69-EVK LPCXpresso55S69 Development Board.&lt;/P&gt;&lt;P&gt;In addition you can find many examples in the SDK for the LPC55S69 Development board, demonstrating the different ways you can run it using both cores.&amp;nbsp;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Other documents you may find useful:&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;A class="link-titled" href="https://www.nxp.com/docs/en/application-note/AN12358.pdf" title="https://www.nxp.com/docs/en/application-note/AN12358.pdf"&gt;AN12358&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;&lt;A class="link-titled" href="https://www.nxp.com/docs/en/application-note/AN12326.pdf" title="https://www.nxp.com/docs/en/application-note/AN12326.pdf"&gt;AN12326&lt;/A&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Best Regards,&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #51626f; background-color: #ffffff;"&gt;Sabina&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 06 Aug 2019 15:40:07 GMT</pubDate>
      <guid>https://community.nxp.com/t5/LPC-Microcontrollers/LPC55S6x-Dual-Core-Best-Practice/m-p/946036#M37623</guid>
      <dc:creator>Sabina_Bruce</dc:creator>
      <dc:date>2019-08-06T15:40:07Z</dc:date>
    </item>
  </channel>
</rss>

