<?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>How to Program Embedded Pi using Raspberry Pi</title><link>https://community.element14.com/products/devtools/technicallibrary/w/documents/11296/how-to-program-embedded-pi-using-raspberry-pi</link><description /><dc:language>en-US</dc:language><generator>Telligent Community 12</generator><item><title>How to Program Embedded Pi using Raspberry Pi</title><link>https://community.element14.com/products/devtools/technicallibrary/w/documents/11296/how-to-program-embedded-pi-using-raspberry-pi</link><pubDate>Mon, 12 Aug 2013 06:49:11 GMT</pubDate><guid isPermaLink="false">93d5dcb4-84c2-446f-b2cb-99731719e767:a8297546-878e-42ba-b088-ea8f6216f6ed</guid><dc:creator>atomar</dc:creator><comments>https://community.element14.com/products/devtools/technicallibrary/w/documents/11296/how-to-program-embedded-pi-using-raspberry-pi#comments</comments><description>Current Revision posted to Documents by atomar on 8/12/2013 6:49:11 AM&lt;br /&gt;
&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/224x23/__key/communityserver-wikis-components-files/00-00-00-01-46/2022.contentimage_5F00_25922.png"&gt;&lt;img alt="image" src="https://community-storage.element14.com/communityserver-components-secureimagefileviewer/communityserver/wikis/components/files/00/00/00/01/46/2022.contentimage_25922.png-224x23.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=7Fr%2BNqTmQwWiVjSPzqH128dTgEhwb3%2B8VFPaeVCQZUQ%3D&amp;amp;se=2026-04-23T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=iVGV4wzhBVyDs7Sqzk2ypA==" style="max-height: 23px;max-width: 224px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;text-align:justify;"&gt;&lt;strong&gt;&lt;span lang="EN-GB" style="font-size:14.0pt;"&gt;Overview: &lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin:0;text-align:justify;"&gt;&lt;strong&gt;&lt;span lang="EN-GB" style="font-size:14.0pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin:0;text-align:justify;"&gt;Since the release of Embedded Pi many users have found programming Embedded Pi a bit difficult, specially Linux users as CooCox CoIDE is a Windows based program. CooCox team has addressed this issue and came up with an unique open source STM32 loader ISP tool (&lt;em&gt;requires binary .bin file as input&lt;/em&gt;) which allows the Raspberry Pi users to program Embedded Pi STM32 MCU flash memory, using serial (UART) communication between Raspberry Pi and Embedded Pi, directly from Raspberry Pi Linux based Debian environment. Now Raspberry Pi users can use the in-built GCC compiler (or any other compiler) to develop embedded projects in C/C++, compile, link (generate binary &lt;em&gt;.bin &lt;/em&gt;file) and download the program into the Embedded Pi STM32 MCU flash memory to test the functionality. &lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;text-align:justify;"&gt;This document provides a step-by-step guide on how to write a simple LED Blinking C program using GCC compiler on Raspberry Pi, and later run the program on Embedded Pi by downloading into MCU flash memory using STM32 loader ISP tool. &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;p style="margin:0;text-align:justify;"&gt;&lt;strong&gt;&lt;span lang="EN-GB" style="font-size:14.0pt;"&gt;How to program Embedded Pi using Raspberry Pi&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin:0;text-align:justify;"&gt;&lt;strong&gt;&lt;span lang="EN-GB" style="font-size:14.0pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;strong&gt;Step 1:&lt;/strong&gt;&amp;nbsp; Download the resource kit from CooCox website and extract all the files:- To start first we need to download few resource files provided by CooCox team, which includes STM32 MCU startup code, STM32 ISP tool (written in Python), Serial library for Python (used by ISP tool) and LED blinky example. Use the below commands to download and extract all the files: &lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;$&lt;strong&gt;wget &lt;/strong&gt;&lt;/span&gt;&lt;a class="jive-link-external-small" href="http://www.coocox.org/Embedded_Pi/software_code/EmbeddedPi_20130807.tar.bz2" rel="nofollow ugc noopener" target="_blank"&gt;&lt;span style="background:#D9D9D9;"&gt;&lt;strong&gt;http://www.coocox.org/Embedded_Pi/software_code/EmbeddedPi_20130807.tar.bz2&lt;/strong&gt;&lt;/span&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span style="background:#D9D9D9;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;$&lt;strong&gt;tar –xjvf EmbeddedPi_30130807.tar.bz2&lt;/strong&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;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/561x489/__key/communityserver-wikis-components-files/00-00-00-01-46/2045.contentimage_5F00_25923.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/46/2045.contentimage_25923.png-561x489.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=SsPLhkW48kC54qWHQo9E9Y%2B%2Btf%2FLVg0lYEvyUSl1ASk%3D&amp;amp;se=2026-04-23T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=75c/9Wfx5o1/nr2cRoOrDw==" style="max-height: 489px;max-width: 561px;" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/strong&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;File Extracted Location:&lt;em&gt; /home/pi/EmbeddedPi&lt;/em&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;strong&gt;Step 2:&lt;/strong&gt; Install Python serial (UART) library for ISP Tool:&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="background:#D9D9D9;"&gt;pi@raspberrypi ~ /EmbeddedPi&lt;/span&gt;&lt;span lang="EN-GB" style="font-family:Consolas;background:#D9D9D9;"&gt; $&lt;strong&gt;cd tools&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-family:Consolas;background:#D9D9D9;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;pi@raspberrypi ~ / EmbeddedPi&lt;/span&gt;&lt;span lang="EN-GB" style="font-family:Consolas;background:#D9D9D9;"&gt; $&lt;strong&gt;tar –xzf pyserial-2.6.tar.&lt;/strong&gt;&lt;/span&gt;&lt;strong&gt;&lt;span lang="EN-GB" style="font-family:Consolas;background:#D9D9D9;"&gt;gz&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;strong&gt;&lt;span lang="EN-GB" style="font-family:Consolas;background:#D9D9D9;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;pi@raspberrypi ~ / EmbeddedPi&lt;/span&gt;&lt;span lang="EN-GB" style="font-family:Consolas;background:#D9D9D9;"&gt; $&lt;strong&gt;cd pyserial-2.6&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-family:Consolas;background:#D9D9D9;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;pi@raspberrypi ~ / EmbeddedPi&lt;/span&gt;&lt;span lang="EN-GB" style="font-family:Consolas;background:#D9D9D9;"&gt; $&lt;strong&gt;sudo python setup.py install&lt;/strong&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;&lt;strong&gt;Step 3:&lt;/strong&gt; Create a directory named “&lt;em&gt;LED_Blinky&lt;/em&gt;” and copy “&lt;em&gt;startup_coide.c&lt;/em&gt;” and “&lt;em&gt;stm32_f103_gcc.ld&lt;/em&gt;” files to this directory from “&lt;em&gt;/home/pi/EmbeddedPi/example&lt;/em&gt;” directory: &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="background:#D9D9D9;"&gt;pi@raspberrypi ~ / EmbeddedPi&lt;/span&gt;&lt;strong&gt;&lt;span lang="EN-GB" style="font-family:Consolas;background:#D9D9D9;"&gt; $cd ..&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-family:Consolas;background:#D9D9D9;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;pi@raspberrypi ~ $&lt;strong&gt;mkdir LED_Blinky&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;pi@raspberrypi ~ $&lt;strong&gt;cd LED_Blinky&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;pi@raspberrypi ~ /LED_Blinky $&lt;strong&gt;cp .. /EmbeddedPi/example/startup_coide.c .&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;pi@raspberrypi ~ / LED_Blinky $&lt;strong&gt;cp .. /EmbeddedPi/example/stm32_f103_gcc.ld .&lt;/strong&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;As shown below:&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/559x386/__key/communityserver-wikis-components-files/00-00-00-01-46/0882.contentimage_5F00_25924.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/46/0882.contentimage_25924.png-559x386.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=cpiyxpGNauAbSMsazFMD0SwEOURJh32J7cWWRHsaQy4%3D&amp;amp;se=2026-04-23T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=IwO4WIwSm9T0RgElRpRHjw==" style="max-height: 386px;max-width: 559px;" /&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;&lt;strong&gt;Step 4:&lt;/strong&gt; Now create &amp;quot;&lt;em&gt;led.c&lt;/em&gt;&amp;quot; &amp;amp; &amp;quot;&lt;em&gt;reg.h&lt;/em&gt;&amp;quot; files and copy the below code to the respective files. You can use any editor of your choice:&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;table border="1" cellpadding="3" cellspacing="0" class="jiveBorder" height="279" style="width:514px;border:1px solid #000000;background-color:#c7c6c7;height:235px;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #000000;background-color:transparent;padding:3px;text-align:left;color:#000000;"&gt;&lt;p style="margin:0;"&gt;&lt;strong&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;//filename: reg.h:&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;strong&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;#ifndef _REGS_H_&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;#define _REGS_H_&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;#define RCC_APB2ENR *(volatile unsigned long *)0x40021018&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;#define GPIOB_CRL *(volatile unsigned long *)0x40010C00&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;#define GPIOB_CRH *(volatile unsigned long *)0x40010C04&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;#define GPIOB_IDR *(volatile unsigned long *)0x40010C08&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;#define GPIOB_ODR *(volatile unsigned long *)0x40010C0C&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;#endif&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;table border="1" cellpadding="3" cellspacing="0" class="jiveBorder" height="442" style="width:514px;border:1px solid #000000;background-color:#c7c6c7;height:443px;" width="512"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td style="border:1px solid black;border:1px solid #000000;background-color:transparent;padding:3px;text-align:left;color:#000000;"&gt;&lt;p style="margin:0;"&gt;&lt;strong&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;//filename: led.c&lt;/span&gt;&lt;span lang="EN-US" style="font-size:9.0pt;"&gt;：&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;strong&gt;&lt;span lang="EN-US" style="font-size:9.0pt;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;#include &amp;quot;reg.h&amp;quot;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;void delay_ms(unsigned short nms)&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; unsigned long i;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(nms--)&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; for(i = 0; i &amp;lt; 1000; i++);&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;int main(void)&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;{&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RCC_APB2ENR |= (1&amp;lt;&amp;lt;3);&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOB_CRH = (2&amp;lt;&amp;lt;20) | (0&amp;lt;&amp;lt;22);&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOB_ODR = 1&amp;lt;&amp;lt;13;&amp;nbsp;&amp;nbsp; //PB13&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; while(1)&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; {&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOB_ODR |= 1&amp;lt;&amp;lt;13;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay_ms(500);&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; GPIOB_ODR &amp;amp;= ~(1&amp;lt;&amp;lt;13);&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; delay_ms(500);&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; }&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="font-size:9.0pt;font-family:&amp;#39;Courier New&amp;#39;;"&gt;}&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&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;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/558x199/__key/communityserver-wikis-components-files/00-00-00-01-46/2110.contentimage_5F00_25925.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/46/2110.contentimage_25925.png-558x199.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=F0VZkGEgBnfRhYr0KNV%2B9DxfJuzpVu720fEGYcjwtaY%3D&amp;amp;se=2026-04-23T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=KEkG6vRYLYhLqxvIQ4PuZA==" style="max-height: 199px;max-width: 558px;" /&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;&lt;strong&gt;Step 5:&lt;/strong&gt; Now we will use GCC compile to compile all these files and generate a binary &lt;em&gt;.bin&lt;/em&gt; file. It’s a 3 step process; compile, link and create &lt;em&gt;.bin&lt;/em&gt; file:&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; 1. Compile and convert the &lt;em&gt;.c&lt;/em&gt; files into &lt;em&gt;.o&lt;/em&gt; target files.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;margin-left:36.0pt;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;$ &lt;strong&gt;gcc -mcpu=cortex-m3-mthumb -Wall -g -O0 -nostartfiles -c startup_coide.c -o startup_coide.o&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;margin-left:36.0pt;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;margin-left:36.0pt;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;$ &lt;strong&gt;gcc -mcpu=cortex-m3-mthumb -Wall -g -O0 -nostartfiles -I. -c led.c -o led.o&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;margin-left:36.0pt;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2. Link the object files and create &lt;em&gt;.elf&lt;/em&gt; file.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;margin-left:36.0pt;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;$ &lt;strong&gt;ld -Tstm32_f103_gcc.ld -o led.elf led.o startup_coide.o&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;margin-left:36.0pt;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 3. Generate &lt;em&gt;.bin&lt;/em&gt; file from &lt;em&gt;.elf&lt;/em&gt; file.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;margin-left:36.0pt;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;$ &lt;strong&gt;objcopy -Obinary led.elf led.bin&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;margin-left:36.0pt;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;Now we have successfully compiled all the source files and generated a binary “&lt;em&gt;led.bin&lt;/em&gt;” file. This is the file we need to download into Embedded Pi flash memory using ISP tool. You can use the “&lt;em&gt;ls&lt;/em&gt;” command to see all the generated files as below:&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;$ &lt;strong&gt;ls -l&lt;/strong&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;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/507x188/__key/communityserver-wikis-components-files/00-00-00-01-46/0066.contentimage_5F00_25926.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/46/0066.contentimage_25926.png-507x188.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=bXQncGFoZCdBVEG6bVyUvQYmpdo58JYM04D%2FZfozsG4%3D&amp;amp;se=2026-04-23T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=v9unZz/CWtd2gRPYsZR/dg==" style="max-height: 188px;max-width: 507px;" /&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;&lt;strong&gt;Step 6:&lt;/strong&gt; Prepare your hardware; connect Raspberry Pi &amp;amp; Embedded Pi as below (please refer to &lt;a class="jive-link-wiki-small" href="/products/devtools/technicallibrary/m/files/16214"&gt;Embedded Pi User Manual&lt;/a&gt; for detail):&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;ol style="list-style-type:decimal;"&gt;&lt;li&gt;Setup the Embedded Pi in ST-Adapter mode - connect JP2, JP3 connection.&lt;/li&gt;&lt;li&gt;Connect the Embedded Pi and Raspberry Pi using 26 pin ribbon cable.&lt;/li&gt;&lt;li&gt;Connect Raspberry Pi and Embedded Pi UART communication port as shown in &amp;quot;&lt;em&gt;Yellow Lines&lt;/em&gt;&amp;quot; below:&lt;/li&gt;&lt;/ol&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;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/564x458/__key/communityserver-wikis-components-files/00-00-00-01-46/8080.contentimage_5F00_25927.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/46/8080.contentimage_25927.png-564x458.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=wjGjpKBtygAx%2BQ7GERF3PqMnbSvIrC2j%2FQZYUQRbLz4%3D&amp;amp;se=2026-04-23T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=c72FZKs7BMTzSEzQrZ5NSg==" style="max-height: 458px;max-width: 564px;" /&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;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;strong&gt;Step 7:&lt;/strong&gt; STM32 loader ISP tool requires Raspberry Pi UART port, but the Raspberry Pi UART interface is by default occupied by Raspberry Pi OS to output kernel information. So we need to configure the Raspberry Pi UART0 before we can use it for STM32 loader ISP tool to download the program into Embedded Pi. Please follow the below steps to configure Raspberry Pi UART port:&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;strong&gt;Note: It&amp;#39;s better to backup the&lt;em&gt; /boot/cmdline.txt&lt;/em&gt; file before you edit, just in case if something goes wrong ( &lt;/strong&gt;&lt;em&gt;$&lt;/em&gt;&lt;strong&gt;&lt;em&gt;sudo cp /boot/cmdline.txt /boot/cmdline_backup.txt&lt;/em&gt;)&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;Edit the file as below:&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;$ &lt;strong&gt;sudo vi /boot/cmdline.txt&lt;/strong&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;The file contained the following:&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;Delete any parameters involving the serial port &amp;quot;&lt;em&gt;ttyAMA0&lt;/em&gt;&amp;quot;, which in this example is:&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;console=ttyAMA0,115200 kgdboc=ttyAMA0,115200&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;Which gives:&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;Press ESC to return to the vi command mode and then type &amp;quot;&lt;em&gt;:wq&lt;/em&gt;&amp;quot; (without the quotation marks) to save and exit (even if it appears vi is still in editing mode just type the &amp;quot;&lt;em&gt;:wq&lt;/em&gt;&amp;quot; command).&amp;nbsp; If you need to exit without saving type &amp;quot;&lt;em&gt;:q&lt;/em&gt;&amp;quot;.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;You also need to edit this file:&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;$ &lt;strong&gt;sudo vi /etc/inittab&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;Search &lt;span style="background-color:#d9d9d9;"&gt;/ttyAMA0/&lt;/span&gt; for the serial port usage by typing:&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-size:10pt;"&gt;This should find the line of the file specifying the serial port (if there is one), move the cursor to the start of the line and press &amp;quot;&lt;em&gt;i&lt;/em&gt;&amp;quot; to select insert and then press &amp;quot;&lt;em&gt;#&lt;/em&gt;&amp;quot; to comment out the line. Now press ESC and enter &amp;quot;&lt;em&gt;:wq&lt;/em&gt;&amp;quot; to save and exit.&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-size:10pt;"&gt;Enter &amp;quot;&lt;em&gt;sudo reboot&lt;/em&gt;&amp;quot; to restart the Raspberry Pi and now the UART will be available to use in another process.&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;strong&gt;Step 8:&lt;/strong&gt; Download the &amp;quot;&lt;em&gt;led.bin&amp;quot;&lt;/em&gt; file into the Embedded Pi using STM32 loader ISP tool. &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; 1. Copy the “&lt;em&gt;stm32loader.py&lt;/em&gt;” file from&amp;nbsp; “&lt;em&gt;/home/pi/EmbeddedPi/tools&lt;/em&gt;” directory to&amp;nbsp; “&lt;em&gt;/home/pi/LED_linky&lt;/em&gt;” project directory. &lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/300x300/__key/communityserver-wikis-components-files/00-00-00-01-46/6735.contentimage_5F00_25928.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/46/6735.contentimage_25928.png-300x300.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=TI0Xizr%2FUxT6knMDDLmLeOVNlEvIbbRxZsQZW1J5P0w%3D&amp;amp;se=2026-04-23T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=BDywDdNCnqyX3KBs+0W60w==" style="max-height: 300px;max-width: 300px;" /&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; 2. Setup the Embedded Pi STM32 in serial download mode - first press the Embedded Pi &lt;em&gt;BOOT0&lt;/em&gt; key (HIGH) and without releasing press the &lt;em&gt;RESET&lt;/em&gt; button. After pressing &lt;em&gt;RESET&lt;/em&gt; button, release the &lt;em&gt;BOOT0&lt;/em&gt; key.&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; 3. Now use the below command to download the generated binary &amp;quot;&lt;em&gt;led.bin&amp;quot; &lt;/em&gt;file&lt;em&gt; (in Step 5)&lt;/em&gt;&amp;nbsp; into the Embedded Pi flash memory:&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;pi@raspberrypi ~ / LED_Blinky $ &lt;strong&gt;sudo python stm32loader.py -e -w -v led.bin&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;&lt;strong&gt;&lt;br /&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;strong&gt; Possible Outcomes:&lt;/strong&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; a. If prompted with &amp;quot;NONE&amp;quot; on screen, please re-run the above Steps 8.2 [hold boot0, reset MCU].&lt;/p&gt;&lt;p style="margin:0;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; b. If prompted with “NACK” on screen, please re-download the &lt;em&gt;.bin&lt;/em&gt; file (Step 8.3).&lt;/p&gt;&lt;p style="margin:0;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; c. If prompted with “Verification OK” on screen, indicates a successful download.&lt;/p&gt;&lt;p style="margin:0;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;span&gt;&lt;a href="https://community.element14.com/resized-image/__size/300x300/__key/communityserver-wikis-components-files/00-00-00-01-46/7416.contentimage_5F00_25929.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/46/7416.contentimage_25929.png-300x300.png?sv=2016-05-31&amp;amp;sr=b&amp;amp;sig=IdKHnZdINYnRZa3EmQHRVAHJ74kbt8qKS30svJONQiQ%3D&amp;amp;se=2026-04-23T23%3A59%3A59Z&amp;amp;sp=r&amp;amp;_=x/q6ETggCYwE1cRKtWzILQ==" style="max-height: 300px;max-width: 300px;" /&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;padding:0px;"&gt;&amp;nbsp;&lt;/p&gt;&lt;p style="margin:0;"&gt;Now restart the Embedded Pi, the program should execute and LED will start blinking.&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;p style="margin:0;"&gt;&lt;span lang="EN-GB" style="background:#D9D9D9;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin:0;"&gt;&lt;em&gt;&lt;span lang="EN-GB" style="font-family:&amp;#39;Courier New&amp;#39;;background:#D9D9D9;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/em&gt;&lt;/p&gt;
&lt;div class="migration-injected-attachments"&gt;&lt;div style="font-weight:bold;margin:15px 0 5px 0;"&gt;Attachments:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;table style="border:0;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td colspan="2"&gt;&lt;span class="_se_attachment" id="attid_https://www.element14.com/community/api/core/v3/attachments/116987"&gt;&lt;a href="https://community.element14.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-01-46/EmbeddedPi_5F00_20130807.tar.bz2"&gt;community.element14.com/.../EmbeddedPi_5F00_20130807.tar.bz2&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td width="160"&gt;&lt;span class="_se_attachment" id="attid_https://www.element14.com/community/api/core/v3/attachments/117054"&gt;&lt;a href="https://community.element14.com/cfs-file/__key/communityserver-wikis-components-files/00-00-00-01-46/How-to-Program-Embedded-Pi-using-Raspberry-Pi.pdf"&gt;community.element14.com/.../How-to-Program-Embedded-Pi-using-Raspberry-Pi.pdf&lt;/a&gt;&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;span style="font-size:80%;"&gt;How to Program Embedded Pi using Raspberry Pi.pdf&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;

&lt;div style="font-size: 90%;"&gt;Tags: cortex_m3, raspi, stm32f, Quick Start Guide, coocox, arm_cortex, stm, raspberry_pi, stm32f103, raspberrypi, rpi, ras_pi, arm, embest, embeddedpi, embedded_pi&lt;/div&gt;
</description></item></channel></rss>