<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.element14.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/"><channel><title>Interfacing FRDM-KL25Z with Arduino Ethernet Shield R3 on Processor Expert, Part 1: SD Card</title><link>https://community.element14.com/products/devtools/kinetiskl2freedomboard/w/documents/16851/interfacing-frdm-kl25z-with-arduino-ethernet-shield-r3-on-processor-expert-part-1-sd-card</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>Interfacing FRDM-KL25Z with Arduino Ethernet Shield R3 on Processor Expert, Part 1: SD Card</title><link>https://community.element14.com/products/devtools/kinetiskl2freedomboard/w/documents/16851/interfacing-frdm-kl25z-with-arduino-ethernet-shield-r3-on-processor-expert-part-1-sd-card</link><pubDate>Tue, 18 Mar 2014 13:27:02 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:9bd80ec1-e9cb-495d-802f-7b2ead37b5c6</guid><dc:creator>bheemarao</dc:creator><comments>https://community.element14.com/products/devtools/kinetiskl2freedomboard/w/documents/16851/interfacing-frdm-kl25z-with-arduino-ethernet-shield-r3-on-processor-expert-part-1-sd-card#comments</comments><description>Current Revision posted to Documents by bheemarao on 3/18/2014 1:27:02 PM&lt;br /&gt;
&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;&lt;span style="color:#ff6600;font-size:10pt;font-family:inherit;font-weight:inherit;"&gt;&lt;em&gt;This tutorial was extracted from Erich Styger blog &lt;/em&gt;&lt;/span&gt;&lt;span style="font-size:10pt;color:#373737;"&gt;&lt;a class="jive-link-external-small" href="http://mcuoneclipse.wordpress.com/" rel="nofollow" style="font-weight:inherit;font-style:inherit;font-family:inherit;color:#592d5f;" target="_blank"&gt;&lt;span style="font-style:inherit;font-family:inherit;font-weight:inherit;"&gt;&lt;em&gt;http://mcuoneclipse.wordpress.com&lt;/em&gt;&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style="color:#ff6600;font-size:10pt;font-family:inherit;font-weight:inherit;"&gt;&lt;em&gt; with his agreement.&lt;/em&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;Sometimes it takes a very long time to realize a project. Adding the &lt;span&gt;&lt;span class="e14-init-shown" id="addProduct-SqqGX6CJ-linked" style="white-space:nowrap;"&gt;&lt;a class="jive-link-product-addtolist" href="https://www.element14.com/community/view-product.jspa?fsku=2212783&amp;amp;nsku=&amp;amp;COM=noscript" target="_blank"&gt;&lt;span class="pf-widget-map pf-productlink-cart-icon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;a class="jive-link-product pf-embedded-product-link" href="https://www.element14.com/community/view-product.jspa?fsku=2212783&amp;amp;nsku=&amp;amp;COM=noscript" target="_blank"&gt;Arduino Ethernet Shield R3&lt;/a&gt;&lt;/span&gt;&lt;span class="e14-init-hidden" id="addProduct-SqqGX6CJ-unlinked"&gt;Arduino Ethernet Shield R3&lt;/span&gt;&lt;/span&gt; to one of my Freescale FRDM boards is one of it: it took me a year until I have found a few days to work on using the Ethernet Shield with my &lt;span style="color:#1982d1;font-style:inherit;font-size:14.666666984558105px;font-family:inherit;font-weight:inherit;"&gt;&lt;span&gt;&lt;span class="e14-init-shown" id="addProduct-c3ZPjdqw-linked" style="white-space:nowrap;"&gt;&lt;a class="jive-link-product-addtolist" href="https://www.element14.com/community/view-product.jspa?fsku=2191861&amp;amp;nsku=&amp;amp;COM=noscript" target="_blank"&gt;&lt;span class="pf-widget-map pf-productlink-cart-icon"&gt;&lt;/span&gt;&lt;/a&gt;&lt;a class="jive-link-product pf-embedded-product-link" href="https://www.element14.com/community/view-product.jspa?fsku=2191861&amp;amp;nsku=&amp;amp;COM=noscript" target="_blank"&gt;FRDM-KL25Z&lt;/a&gt;&lt;/span&gt;&lt;span class="e14-init-hidden" id="addProduct-c3ZPjdqw-unlinked"&gt;FRDM-KL25Z&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;.&lt;/p&gt;&lt;p style="margin:0;padding:0px;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;a href="http://mcuoneclipse.files.wordpress.com/2014/01/frdm-kl25z-with-ethernet-shield.png" rel="nofollow ugc noopener" style="font-family:inherit;font-size:14.666666984558105px;font-style:inherit;font-weight:inherit;color:#1982d1;" target="_blank"&gt;&lt;img alt="FRDM-KL25Z with Ethernet Shield" class="wp-image-10367 jiveImage size-full" height="297" src="http://mcuoneclipse.files.wordpress.com/2014/01/frdm-kl25z-with-ethernet-shield.png?w=584&amp;amp;h=363" style="border-color:#eeeeee;padding:6px;height:297.11301369863014px;width:478px;" width="478" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;font-family:Georgia, serif;font-size:12px;font-style:inherit;font-weight:inherit;margin-bottom:0.6em;padding-top:10px;padding-bottom:5px;padding-left:40px;color:#666666;"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; FRDM-KL25Z with Ethernet Shield&lt;/p&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;I have not everything in place yet, so I decided to publish things in parts. So this is about part one: using the Micro SD Card on the Shield.&lt;/p&gt;&lt;p style="margin:0;padding:0px;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h1 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:0.8125em;color:#000000;"&gt;List of Tutorials&lt;/h1&gt;&lt;ol style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;margin-left:2.5em;list-style-position:initial;list-style-image:initial;color:#373737;"&gt;&lt;li&gt;&lt;a class="jive-link-external-small" href="#" target="_blank"&gt;FRDM with Arduino Ethernet Shield R3, Part 1: SD Card&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a class="jive-link-external-small" href="/products/devtools/kinetiskl2freedomboard/w/documents/16852/interfacing-frdm-kl25z-with-arduino-ethernet-shield-r3-on-processor-expert-part-2-ping" target="_blank"&gt;FRDM with Arduino Ethernet Shield R3, Part 2: Ping&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a class="jive-link-external-small" href="/products/devtools/kinetiskl2freedomboard/w/documents/16853/interfacing-frdm-kl25z-with-arduino-ethernet-shield-r3-on-processor-expert-part-3-embedded-web-server" target="_blank"&gt;FRDM with Arduino Ethernet Shield R3, Part 3: Embedded Web Server&lt;/a&gt;&lt;/li&gt;&lt;/ol&gt;&lt;h1 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:0.8125em;color:#000000;"&gt;Arduino Ethernet Shield&lt;/h1&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;The &lt;a class="jive-link-external-small" href="http://arduino.cc/en/Main/ArduinoEthernetShield" rel="nofollow ugc noopener" style="color:#1982d1;font-family:inherit;font-size:14.666666984558105px;font-style:inherit;font-weight:inherit;" target="_blank"&gt;Arduino Ethernet Shield R&lt;/a&gt;&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://arduino.cc/en/Main/ArduinoEthernetShield" rel="nofollow ugc noopener" style="color:#1982d1;font-family:inherit;font-style:inherit;font-weight:inherit;font-size:14.666666984558105px;" target="_blank"&gt;3&lt;/a&gt;&lt;span style="color:#373737;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;"&gt; has two main features:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;a href="http://mcuoneclipse.files.wordpress.com/2014/01/arduino-ethernet-shield-with-frdm-kl25z.png" rel="nofollow ugc noopener" style="color:#1982d1;text-decoration:underline;font-family:inherit;font-style:inherit;font-weight:inherit;line-height:1.5em;font-size:14.666666984558105px;" target="_blank"&gt;&lt;img loading="lazy" alt="Arduino Ethernet Shield with FRDM-KL25Z" class="jiveImage size-full wp-image-10379" height="368" src="http://mcuoneclipse.files.wordpress.com/2014/01/arduino-ethernet-shield-with-frdm-kl25z.png?w=584&amp;amp;h=433" style="border-color:#eeeeee;padding:6px;width:495px;height:367.9856115107914px;" width="495" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Arduino Ethernet Shield with FRDM-KL25Z&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;ol style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;margin-left:2.5em;list-style-position:initial;list-style-image:initial;color:#373737;"&gt;&lt;li&gt;The &lt;span style="font-family:inherit;font-size:14.666666984558105px;font-style:inherit;"&gt;&lt;strong&gt;&lt;a class="jive-link-external-small" href="http://www.wiznet.co.kr/Sub_Modules/en/product/product_detail.asp?Refid=82&amp;amp;page=1&amp;amp;cate1=5&amp;amp;cate2=7&amp;amp;cate3=26&amp;amp;pid=1011&amp;amp;cType=2" rel="nofollow ugc noopener" style="font-family:inherit;font-size:14.666666984558105px;font-style:inherit;font-weight:inherit;color:#1982d1;" target="_blank"&gt;Wiznet W5100 Ethernet Chip&lt;/a&gt;&lt;/strong&gt;&lt;/span&gt; which makes an Ethernet connection possible for small microcontrollers. The W5100 has a Ethernet PHY and a microcontroller can use a simple socket API over SPI to communicate over Ethernet.&lt;/li&gt;&lt;li&gt;A &lt;span style="font-family:inherit;font-size:14.666666984558105px;font-style:inherit;"&gt;&lt;strong&gt;Micro-SD card socket&lt;/strong&gt;&lt;/span&gt; which is on the same SPI bus as the W5100 chip. The SD card can be used for data logging or to host web pages/etc.&lt;/li&gt;&lt;/ol&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;There might be better or less expensive solutions to connect a microcontroller to the Internet, but that Arduino Ethernet Shield is very affordable and easy to use. The shield is available for less than $15 from many online vendors. There is the option to add a PoE (Power over Ethernet) to the shield too (I don’t have this option).&lt;/span&gt;&lt;span style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;The schematics and Eagle files of the shield are available &lt;a class="jive-link-external-small" href="http://arduino.cc/en/Main/ArduinoEthernetShield" rel="nofollow ugc noopener" style="font-family:inherit;font-size:14.666666984558105px;font-style:inherit;font-weight:inherit;color:#1982d1;" target="_blank"&gt;on the official Arduino site here&lt;/a&gt;. There are different versions of the shield: earlier versions had problems with the W5100 and SPI signals. I’m using the ’06 R3′ version which to my knowledge is the latest version.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;h1 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:0.8125em;color:#000000;"&gt;Hardware Modification&lt;/h1&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;Both the SD card and the W5100 are connected with SPI to the microcontroller. The shield is using the Arduino programming (SPI) adapter, and the SPI MISO/MOSI/CLK signals are *not* connected to the Arduino headers! So to have it working with my FRDM boards, I have to route the signals to the header.&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;h2 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:0.8125em;color:#000000;"&gt;Removal of SPI Programming Header&lt;/h2&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#373737;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:15px;"&gt;First, I removed the 2×3 SPI programming socket on the bottom side of the board:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;a href="http://mcuoneclipse.files.wordpress.com/2014/01/remove-spi-programming-header.png"&gt;&lt;img loading="lazy" alt="image" class="jiveImage" src="http://mcuoneclipse.files.wordpress.com/2014/01/remove-spi-programming-header.png"  /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="margin:0;"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Remove SPI Programming Header&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;h2 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:0.8125em;color:#000000;"&gt;Connecting SPI Signals to Header&lt;/h2&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#373737;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;line-height:1.5em;"&gt;Next, I wired the SPI Signals MISO, MOSI and CLK to the Arduino header pins:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="color:#373737;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;line-height:1.5em;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;a href="http://mcuoneclipse.files.wordpress.com/2014/01/routing-spi-signals.png"&gt;&lt;img loading="lazy" alt="image" class="jiveImage" height="383" src="http://mcuoneclipse.files.wordpress.com/2014/01/routing-spi-signals.png" style="width:540px;height:382.80542986425337px;" width="540"  /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="margin:0;"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Routing SPI Signals&lt;/p&gt;&lt;h2 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:0.8125em;color:#000000;"&gt;&lt;/h2&gt;&lt;h2 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:0.8125em;color:#000000;"&gt;&lt;/h2&gt;&lt;h2 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:0.8125em;color:#000000;"&gt;Pin Assignments&lt;/h2&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;With this, I have all the SPI Signals on the header:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Pin 13: &lt;span style="font-family:inherit;font-size:14.666666984558105px;font-style:inherit;"&gt;&lt;strong&gt;CLK&lt;/strong&gt;&lt;/span&gt; (SPI Clock) (to FRDM-KL2Z: &lt;span style="font-family:inherit;font-size:14.666666984558105px;font-style:inherit;"&gt;&lt;strong&gt;PTD1&lt;/strong&gt;&lt;/span&gt;)&lt;/li&gt;&lt;li&gt;Pin 12: &lt;span style="font-family:inherit;font-size:14.666666984558105px;font-style:inherit;"&gt;&lt;strong&gt;MISO&lt;/strong&gt;&lt;/span&gt; (to FRDM-KL2Z: &lt;span style="font-family:inherit;font-size:14.666666984558105px;font-style:inherit;"&gt;&lt;strong&gt;PTD3&lt;/strong&gt;&lt;/span&gt;)&lt;/li&gt;&lt;li&gt;Pin 11: &lt;span style="font-family:inherit;font-size:14.666666984558105px;font-style:inherit;"&gt;&lt;strong&gt;MOSI&lt;/strong&gt;&lt;/span&gt; (to FRDM-KL2Z: &lt;span style="font-family:inherit;font-size:14.666666984558105px;font-style:inherit;"&gt;&lt;strong&gt;PTD2&lt;/strong&gt;&lt;/span&gt;)&lt;/li&gt;&lt;li&gt;Pin 10: &lt;span style="font-family:inherit;font-size:14.666666984558105px;font-style:inherit;"&gt;&lt;strong&gt;ETH CS&lt;/strong&gt;&lt;/span&gt; (Chip Select of W5100) (to FRDM-KL2Z: &lt;span style="font-family:inherit;font-size:14.666666984558105px;font-style:inherit;"&gt;&lt;strong&gt;PTD0&lt;/strong&gt;&lt;/span&gt;)&lt;/li&gt;&lt;li&gt;Pin: 4: &lt;span style="font-family:inherit;font-size:14.666666984558105px;font-style:inherit;"&gt;&lt;strong&gt;SC CS&lt;/strong&gt;&lt;/span&gt; (Chip Select of SD Card) (to FRDM-KL2Z: &lt;span style="font-family:inherit;font-size:14.666666984558105px;font-style:inherit;"&gt;&lt;strong&gt;PTA4&lt;/strong&gt;&lt;/span&gt;)&lt;/li&gt;&lt;/ul&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;With this, I can nicely check the signals with a logic analyzer too:&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2014/01/spi-signal-connections.png" rel="nofollow ugc noopener" style="font-family:inherit;font-size:14.666666984558105px;font-style:inherit;font-weight:inherit;color:#1982d1;" target="_blank"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;img loading="lazy" alt="SPI Signal Connections" class="jiveImage size-full wp-image-10371" height="292" src="http://mcuoneclipse.files.wordpress.com/2014/01/spi-signal-connections.png?w=584&amp;amp;h=292" style="border-color:#eeeeee;padding:6px;" width="584" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;font-family:Georgia, serif;font-size:12px;font-style:inherit;font-weight:inherit;margin-bottom:0.6em;padding-top:10px;padding-bottom:5px;padding-left:40px;color:#666666;"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; SPI Signal Connections&lt;/p&gt;&lt;h1 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:0.8125em;color:#000000;"&gt;Application with SD Card Driver&lt;/h1&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;For my project I’m using &lt;a class="jive-link-external-small" href="http://mcuoneclipse.com/tag/fatfs/" rel="nofollow ugc noopener" style="font-family:inherit;font-size:14.666666984558105px;font-style:inherit;font-weight:inherit;color:#1982d1;" target="_blank"&gt;FatFS&lt;/a&gt; with &lt;a class="jive-link-external-small" href="http://mcuoneclipse.com/tag/freertos/" rel="nofollow ugc noopener" style="font-family:inherit;font-size:14.666666984558105px;font-style:inherit;font-weight:inherit;color:#1982d1;" target="_blank"&gt;FreeRTOS&lt;/a&gt;. Using multiple Processor Expert components the project is easily built up like with Lego bricks:&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2014/01/processor-expert-components-for-ethernet-shield.png" rel="nofollow ugc noopener" style="font-family:inherit;font-size:14.666666984558105px;font-style:inherit;font-weight:inherit;color:#1982d1;" target="_blank"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;img loading="lazy" alt="Processor Expert Components for Ethernet Shield" class="jiveImage wp-image-10373 size-full" src="http://mcuoneclipse.files.wordpress.com/2014/01/processor-expert-components-for-ethernet-shield.png?w=584" style="border-color:#eeeeee;padding:6px;" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;font-family:Georgia, serif;font-size:12px;font-style:inherit;font-weight:inherit;margin-bottom:0.6em;padding-top:10px;padding-bottom:5px;padding-left:40px;color:#666666;"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Processor Expert Components for Ethernet Shield&lt;/p&gt;&lt;h2 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:0.8125em;color:#000000;"&gt;Concurrent Access to SPI Bus&lt;/h2&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;Because both the SD card and the W5100 are using the same SPI bus, I need to make sure that access to it is protected with a critical section. For this I use a FreeRTOS semaphore.&lt;/p&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;First, I enable in FatFS reentrant and protected access to the file system:&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2014/01/reentrant-fatfs.png" rel="nofollow ugc noopener" style="font-family:inherit;font-size:14.666666984558105px;font-style:inherit;font-weight:inherit;color:#1982d1;" target="_blank"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;img loading="lazy" alt="Reentrant FatFS" class="jiveImage wp-image-10380 size-full" src="http://mcuoneclipse.files.wordpress.com/2014/01/reentrant-fatfs.png?w=584" style="border-color:#eeeeee;padding:6px;" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;font-family:Georgia, serif;font-size:12px;font-style:inherit;font-weight:inherit;margin-bottom:0.6em;padding-top:10px;padding-bottom:5px;padding-left:40px;color:#666666;"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Reentrant FatFS&lt;/p&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;This not only gives me fully reentrant access to the file system (multiple tasks can access the file system without reentrancy problems). It creates as well events for activating/deactivating the bus:&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2014/01/activate-and-deactivate-of-sd-card.png" rel="nofollow ugc noopener" style="font-family:inherit;font-size:14.666666984558105px;font-style:inherit;font-weight:inherit;color:#1982d1;" target="_blank"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;img loading="lazy" alt="Activate and Deactivate of SD Card" class="wp-image-10381 jiveImage size-full" src="http://mcuoneclipse.files.wordpress.com/2014/01/activate-and-deactivate-of-sd-card.png?w=584" style="border-color:#eeeeee;padding:6px;" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;font-family:Georgia, serif;font-size:12px;font-style:inherit;font-weight:inherit;margin-bottom:0.6em;padding-top:10px;padding-bottom:5px;padding-left:40px;color:#666666;"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Activate and Deactivate of SD Card&lt;/p&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;These events I can route to my W5100 driver which there could lock/unlock a semaphore to protect access to the SPI bus, both for the SD card driver and for the Ethernet/W5100 driver:&lt;/p&gt;&lt;p style="margin:0;padding:0px;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;color:#373737;"&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="syntaxhighlighter cpp" style="font-family:inherit;font-style:inherit;font-weight:inherit;"&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter" style="border:0px solid black;"&gt;&lt;div class="number1 alt2 line index0"&gt;1&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="number2 alt1 index1 line" style="margin:0;"&gt;2&lt;/p&gt;&lt;p class="number3 index2 alt2 line" style="margin:0;"&gt;3&lt;/p&gt;&lt;p class="index3 number4 alt1 line" style="margin:0;"&gt;4&lt;/p&gt;&lt;p class="index4 alt2 number5 line" style="margin:0;"&gt;5&lt;/p&gt;&lt;p class="index5 alt1 line number6" style="margin:0;"&gt;6&lt;/p&gt;&lt;p class="number7 alt2 index6 line" style="margin:0;"&gt;7&lt;/p&gt;&lt;p class="index7 number8 alt1 line" style="margin:0;"&gt;8&lt;/p&gt;&lt;p class="number9 alt2 line index8" style="margin:0;"&gt;9&lt;/p&gt;&lt;p class="alt1 line index9 number10" style="margin:0;"&gt;10&lt;/p&gt;&lt;p class="alt2 index10 number11 line" style="margin:0;"&gt;11&lt;/p&gt;&lt;p class="alt1 number12 line index11" style="margin:0;"&gt;12&lt;/p&gt;&lt;p class="number13 alt2 line index12" style="margin:0;"&gt;13&lt;/p&gt;&lt;p class="index13 number14 alt1 line" style="margin:0;"&gt;14&lt;/p&gt;&lt;p class="index14 number15 alt2 line" style="margin:0;"&gt;15&lt;/p&gt;&lt;p class="number16 index15 alt1 line" style="margin:0;"&gt;16&lt;/p&gt;&lt;p class="number17 index16 alt2 line" style="margin:0;"&gt;17&lt;/p&gt;&lt;p class="index17 alt1 line number18" style="margin:0;"&gt;18&lt;/p&gt;&lt;p class="alt2 index18 line number19" style="margin:0;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 19&lt;/p&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code" style="border:0px solid black;"&gt;&lt;p class="container" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="number1 alt2 line index0"&gt;&lt;code class="keyword cpp bold"&gt;static&lt;/code&gt; &lt;code class="cpp plain"&gt;xSemaphoreHandle SPImutex = NULL; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* Semaphore to protect shell SCI access */&lt;/code&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="number2 alt1 index1 line" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="number3 index2 alt2 line" style="margin:0;"&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt; &lt;code class="cpp plain"&gt;W5100_RequestSPIBus(&lt;/code&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt;&lt;code class="cpp plain"&gt;) {&lt;/code&gt;&lt;/p&gt;&lt;p class="index3 number4 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;(&lt;/code&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt;&lt;code class="cpp plain"&gt;)xSemaphoreTakeRecursive(SPImutex, portMAX_DELAY);&lt;/code&gt;&lt;/p&gt;&lt;p class="index4 alt2 number5 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="index5 alt1 line number6" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="number7 alt2 index6 line" style="margin:0;"&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt; &lt;code class="cpp plain"&gt;W5100_ReleaseSPIBus(&lt;/code&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt;&lt;code class="cpp plain"&gt;) {&lt;/code&gt;&lt;/p&gt;&lt;p class="index7 number8 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;(&lt;/code&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt;&lt;code class="cpp plain"&gt;)xSemaphoreGiveRecursive(SPImutex);&lt;/code&gt;&lt;/p&gt;&lt;p class="number9 alt2 line index8" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 line index9 number10" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="alt2 index10 number11 line" style="margin:0;"&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt; &lt;code class="cpp plain"&gt;W5100_GetBus(&lt;/code&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt;&lt;code class="cpp plain"&gt;) {&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 number12 line index11" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_RequestSPIBus();&lt;/code&gt;&lt;/p&gt;&lt;p class="number13 alt2 line index12" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_CS_ENABLE();&lt;/code&gt;&lt;/p&gt;&lt;p class="index13 number14 alt1 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="index14 number15 alt2 line" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="number16 index15 alt1 line" style="margin:0;"&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt; &lt;code class="cpp plain"&gt;W5100_ReleaseBus(&lt;/code&gt;&lt;code class="keyword cpp bold"&gt;void&lt;/code&gt;&lt;code class="cpp plain"&gt;) {&lt;/code&gt;&lt;/p&gt;&lt;p class="number17 index16 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_CS_DISABLE();&lt;/code&gt;&lt;/p&gt;&lt;p class="index17 alt1 line number18" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;W5100_ReleaseSPIBus();&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index18 line number19" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;More about this in a future post.&lt;/p&gt;&lt;h2 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:0.8125em;color:#000000;"&gt;Mounting File System&lt;/h2&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;Because there is no ‘card detect’ pin available with the SD card socket, I have added the ‘mount’ and ‘unmount’ commands to the application shell command handler:&lt;/p&gt;&lt;p style="margin:0;padding:0px;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;color:#373737;"&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="syntaxhighlighter cpp" style="font-family:inherit;font-style:inherit;font-weight:inherit;"&gt;&lt;table border="0" cellpadding="0" cellspacing="0"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td class="gutter" style="border:0px solid black;"&gt;&lt;div class="number1 alt2 line index0"&gt;1&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="number2 alt1 index1 line" style="margin:0;"&gt;2&lt;/p&gt;&lt;p class="number3 index2 alt2 line" style="margin:0;"&gt;3&lt;/p&gt;&lt;p class="index3 number4 alt1 line" style="margin:0;"&gt;4&lt;/p&gt;&lt;p class="index4 alt2 number5 line" style="margin:0;"&gt;5&lt;/p&gt;&lt;p class="index5 alt1 line number6" style="margin:0;"&gt;6&lt;/p&gt;&lt;p class="number7 alt2 index6 line" style="margin:0;"&gt;7&lt;/p&gt;&lt;p class="index7 number8 alt1 line" style="margin:0;"&gt;8&lt;/p&gt;&lt;p class="number9 alt2 line index8" style="margin:0;"&gt;9&lt;/p&gt;&lt;p class="alt1 line index9 number10" style="margin:0;"&gt;10&lt;/p&gt;&lt;p class="alt2 index10 number11 line" style="margin:0;"&gt;11&lt;/p&gt;&lt;p class="alt1 number12 line index11" style="margin:0;"&gt;12&lt;/p&gt;&lt;p class="number13 alt2 line index12" style="margin:0;"&gt;13&lt;/p&gt;&lt;p class="index13 number14 alt1 line" style="margin:0;"&gt;14&lt;/p&gt;&lt;p class="index14 number15 alt2 line" style="margin:0;"&gt;15&lt;/p&gt;&lt;p class="number16 index15 alt1 line" style="margin:0;"&gt;16&lt;/p&gt;&lt;p class="number17 index16 alt2 line" style="margin:0;"&gt;17&lt;/p&gt;&lt;p class="index17 alt1 line number18" style="margin:0;"&gt;18&lt;/p&gt;&lt;p class="alt2 index18 line number19" style="margin:0;"&gt;19&lt;/p&gt;&lt;p class="number20 alt1 index19 line" style="margin:0;"&gt;20&lt;/p&gt;&lt;p class="alt2 index20 line number21" style="margin:0;"&gt;21&lt;/p&gt;&lt;p class="alt1 index21 number22 line" style="margin:0;"&gt;22&lt;/p&gt;&lt;p class="alt2 number23 index22 line" style="margin:0;"&gt;23&lt;/p&gt;&lt;p class="number24 alt1 line index23" style="margin:0;"&gt;24&lt;/p&gt;&lt;p class="index24 number25 alt2 line" style="margin:0;"&gt;25&lt;/p&gt;&lt;p class="index25 number26 alt1 line" style="margin:0;"&gt;26&lt;/p&gt;&lt;p class="number27 index26 alt2 line" style="margin:0;"&gt;27&lt;/p&gt;&lt;p class="number28 index27 alt1 line" style="margin:0;"&gt;28&lt;/p&gt;&lt;p class="alt2 index28 line number29" style="margin:0;"&gt;29&lt;/p&gt;&lt;p class="number30 alt1 index29 line" style="margin:0;"&gt;30&lt;/p&gt;&lt;p class="number31 index30 alt2 line" style="margin:0;"&gt;31&lt;/p&gt;&lt;p class="index31 alt1 line number32" style="margin:0;"&gt;32&lt;/p&gt;&lt;p class="alt2 index32 number33 line" style="margin:0;"&gt;33&lt;/p&gt;&lt;p class="number34 alt1 index33 line" style="margin:0;"&gt;34&lt;/p&gt;&lt;p class="number35 alt2 line index34" style="margin:0;"&gt;35&lt;/p&gt;&lt;p class="index35 number36 alt1 line" style="margin:0;"&gt;36&lt;/p&gt;&lt;p class="index36 number37 alt2 line" style="margin:0;"&gt;37&lt;/p&gt;&lt;p class="number38 index37 alt1 line" style="margin:0;"&gt;38&lt;/p&gt;&lt;p class="number39 index38 alt2 line" style="margin:0;"&gt;39&lt;/p&gt;&lt;p class="number40 index39 alt1 line" style="margin:0;"&gt;40&lt;/p&gt;&lt;p class="number41 index40 alt2 line" style="margin:0;"&gt;41&lt;/p&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class="code" style="border:0px solid black;"&gt;&lt;p class="container" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;div class="number1 alt2 line index0"&gt;&lt;code class="keyword cpp bold"&gt;static&lt;/code&gt; &lt;code class="color1 cpp bold"&gt;bool&lt;/code&gt; &lt;code class="cpp plain"&gt;cardMounted = FALSE;&lt;/code&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="number2 alt1 index1 line" style="margin:0;"&gt;&lt;code class="keyword cpp bold"&gt;static&lt;/code&gt; &lt;code class="cpp plain"&gt;FAT1_FATFS fileSystemObject;&lt;/code&gt;&lt;/p&gt;&lt;p class="number3 index2 alt2 line" style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p class="index3 number4 alt1 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;uint8_t APP_ParseCommand(&lt;/code&gt;&lt;code class="keyword cpp bold"&gt;const&lt;/code&gt; &lt;code class="cpp plain"&gt;unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt; &lt;code class="cpp plain"&gt;*cmd, &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;bool&lt;/code&gt; &lt;code class="cpp plain"&gt;*handled, CLS1_ConstStdIOType *io) {&lt;/code&gt;&lt;/p&gt;&lt;p class="index4 alt2 number5 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(UTIL1_strcmp((&lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)cmd, CLS1_CMD_HELP)==0 || UTIL1_strcmp((&lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)cmd, &lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;app help&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;)==0) {&lt;/code&gt;&lt;/p&gt;&lt;p class="index5 alt1 line number6" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;CLS1_SendHelpStr((unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;app&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;, (&lt;/code&gt;&lt;code class="keyword cpp bold"&gt;const&lt;/code&gt; &lt;code class="cpp plain"&gt;unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;Group of CLS1 commands\r\n&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;, io-&amp;gt;stdOut);&lt;/code&gt;&lt;/p&gt;&lt;p class="number7 alt2 index6 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;CLS1_SendHelpStr((unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;&amp;nbsp; mount|unmount&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;, (&lt;/code&gt;&lt;code class="keyword cpp bold"&gt;const&lt;/code&gt; &lt;code class="cpp plain"&gt;unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;Print help or status information\r\n&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;, io-&amp;gt;stdOut);&lt;/code&gt;&lt;/p&gt;&lt;p class="index7 number8 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;*handled = TRUE;&lt;/code&gt;&lt;/p&gt;&lt;p class="number9 alt2 line index8" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_OK;&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 line index9 number10" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;} &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;else&lt;/code&gt; &lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(UTIL1_strcmp((&lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)cmd, CLS1_CMD_STATUS)==0 || UTIL1_strcmp((&lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)cmd, &lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;app status&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;)==0) {&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index10 number11 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;CLS1_SendStatusStr((unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;app&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;, (unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;\r\n&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;, io-&amp;gt;stdOut);&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 number12 line index11" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;CLS1_SendStatusStr((unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;&amp;nbsp; mounted&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;, cardMounted?(unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;yes\r\n&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;:(unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;no\r\n&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;, io-&amp;gt;stdOut);&lt;/code&gt;&lt;/p&gt;&lt;p class="number13 alt2 line index12" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;*handled = TRUE;&lt;/code&gt;&lt;/p&gt;&lt;p class="index13 number14 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_OK;&lt;/code&gt;&lt;/p&gt;&lt;p class="index14 number15 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;} &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;else&lt;/code&gt; &lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(UTIL1_strcmp((&lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)cmd, &lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;app mount&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;)==0) {&lt;/code&gt;&lt;/p&gt;&lt;p class="number16 index15 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;*handled = TRUE;&lt;/code&gt;&lt;/p&gt;&lt;p class="number17 index16 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(cardMounted) {&lt;/code&gt;&lt;/p&gt;&lt;p class="index17 alt1 line number18" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;CLS1_SendStr((unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;card already mounted!\r\n&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;, io-&amp;gt;stdErr);&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index18 line number19" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_FAILED;&lt;/code&gt;&lt;/p&gt;&lt;p class="number20 alt1 index19 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index20 line number21" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(FAT1_MountFileSystem(&amp;amp;fileSystemObject, 0, io)!=ERR_OK) {&lt;/code&gt;&lt;/p&gt;&lt;p class="alt1 index21 number22 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;CLS1_SendStr((unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;failed!\r\n&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;, io-&amp;gt;stdErr);&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 number23 index22 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_FAILED;&lt;/code&gt;&lt;/p&gt;&lt;p class="number24 alt1 line index23" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;} &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;else&lt;/code&gt; &lt;code class="cpp plain"&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p class="index24 number25 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;cardMounted = TRUE;&lt;/code&gt;&lt;/p&gt;&lt;p class="index25 number26 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="number27 index26 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;} &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;else&lt;/code&gt; &lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(UTIL1_strcmp((&lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)cmd, &lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;app unmount&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;)==0) {&lt;/code&gt;&lt;/p&gt;&lt;p class="number28 index27 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;*handled = TRUE;&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index28 line number29" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(!cardMounted) {&lt;/code&gt;&lt;/p&gt;&lt;p class="number30 alt1 index29 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;CLS1_SendStr((unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;card not mounted!\r\n&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;, io-&amp;gt;stdErr);&lt;/code&gt;&lt;/p&gt;&lt;p class="number31 index30 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_FAILED;&lt;/code&gt;&lt;/p&gt;&lt;p class="index31 alt1 line number32" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="alt2 index32 number33 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;if&lt;/code&gt; &lt;code class="cpp plain"&gt;(FAT1_UnMountFileSystem(0, io)!=ERR_OK) {&lt;/code&gt;&lt;/p&gt;&lt;p class="number34 alt1 index33 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;CLS1_SendStr((unsigned &lt;/code&gt;&lt;code class="color1 cpp bold"&gt;char&lt;/code&gt;&lt;code class="cpp plain"&gt;*)&lt;/code&gt;&lt;code class="string cpp"&gt;&amp;quot;failed!\r\n&amp;quot;&lt;/code&gt;&lt;code class="cpp plain"&gt;, io-&amp;gt;stdErr);&lt;/code&gt;&lt;/p&gt;&lt;p class="number35 alt2 line index34" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_FAILED;&lt;/code&gt;&lt;/p&gt;&lt;p class="index35 number36 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;} &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;else&lt;/code&gt; &lt;code class="cpp plain"&gt;{&lt;/code&gt;&lt;/p&gt;&lt;p class="index36 number37 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;cardMounted = FALSE;&lt;/code&gt;&lt;/p&gt;&lt;p class="number38 index37 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="number39 index38 alt2 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;p class="number40 index39 alt1 line" style="margin:0;"&gt;&lt;code class="spaces cpp"&gt;&amp;nbsp; &lt;/code&gt;&lt;code class="keyword cpp bold"&gt;return&lt;/code&gt; &lt;code class="cpp plain"&gt;ERR_OK; &lt;/code&gt;&lt;code class="cpp comments"&gt;/* no error */&lt;/code&gt;&lt;/p&gt;&lt;p class="number41 index40 alt2 line" style="margin:0;"&gt;&lt;code class="cpp plain"&gt;}&lt;/code&gt;&lt;/p&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;With the Shell I have a command line interface to my application running on the board:&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2014/01/shell-interface.png" rel="nofollow ugc noopener" style="font-family:inherit;font-size:14.666666984558105px;font-style:inherit;font-weight:inherit;color:#1982d1;" target="_blank"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;img loading="lazy" alt="Shell Interface" class="jiveImage size-full wp-image-10376" height="333" src="http://mcuoneclipse.files.wordpress.com/2014/01/shell-interface.png?w=584&amp;amp;h=333" style="border-color:#eeeeee;padding:6px;" width="584" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;font-family:Georgia, serif;font-size:12px;font-style:inherit;font-weight:inherit;margin-bottom:0.6em;padding-top:10px;padding-bottom:5px;padding-left:40px;color:#666666;"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Shell Interface&lt;/p&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;With a card inserted, I can mount the file system.&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;a href="http://mcuoneclipse.files.wordpress.com/2014/01/mounting-file-system.png" rel="nofollow ugc noopener" style="font-family:inherit;font-size:14.666666984558105px;font-style:inherit;font-weight:inherit;color:#1982d1;" target="_blank"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&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;img loading="lazy" alt="Mounting File System" class="jiveImage wp-image-10377 size-full" height="318" src="http://mcuoneclipse.files.wordpress.com/2014/01/mounting-file-system.png?w=584&amp;amp;h=318" style="border-color:#eeeeee;padding:6px;" width="584" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p class="wp-caption-text" style="margin:0;font-family:Georgia, serif;font-size:12px;font-style:inherit;font-weight:inherit;margin-bottom:0.6em;padding-top:10px;padding-bottom:5px;padding-left:40px;color:#666666;"&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;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Mounting File System&lt;/p&gt;&lt;h1 style="font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:0.8125em;color:#000000;"&gt;Summary&lt;/h1&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;In this part I have covered how to use the SD card of the Arduino Ethernet Shield. The software project is available on &lt;a class="jive-link-external-small" href="https://github.com/ErichStyger/mcuoneclipse/tree/master/Examples/FRDM-KL25Z/FRDM-KL25Z_Eth" rel="nofollow ugc noopener" style="font-family:inherit;font-size:14.666666984558105px;font-style:inherit;font-weight:inherit;color:#1982d1;" target="_blank"&gt;GitHub here&lt;/a&gt;. That project already has an first version of the W5100 driver, and this will be subject of a future post.&lt;/p&gt;&lt;p style="margin:0;font-family:&amp;#39;Helvetica Neue&amp;#39;, Helvetica, Arial, sans-serif;font-size:14.666666984558105px;margin-bottom:1.625em;color:#373737;"&gt;Happy SD-Carding&amp;nbsp; &lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/16x16/__key/communityserver-wikis-components-files/00-00-00-01-49/7331.contentimage_5F00_1.png"&gt;&lt;img loading="lazy" alt="image" src="https://community-storage.element14.com/communityserver-components-secureimagefileviewer/communityserver/wikis/components/files/00/00/00/01/49/7331.contentimage_1.png-16x16.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=qPeiRQkwfPFRdFpzbNLET9yRrZ8aL%2BTN1AsjlWy5b9Y%3D&amp;amp;se=2026-10-12T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=zGEM7pHL10Vt71gae75OdA==" style="max-height: 16px;max-width: 16px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;
</description></item></channel></rss>