blob: 1b51e8cb10df43404a05d19e1db4dbc87ceb8e31 [file] [log] [blame]
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Blinky, your “Hello World!”, on STM32F4-Discovery &mdash; Apache Mynewt latest documentation</title>
<link rel="shortcut icon" href="../../_static/mynewt-logo-only-newt32x32.png"/>
<link rel="stylesheet" href="../../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/sphinx_theme.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/bootstrap-3.0.3.min.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/v2.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/custom.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/restructuredtext.css" type="text/css" />
<link rel="stylesheet" href="../../_static/css/overrides.css" type="text/css" />
<link rel="index" title="Index"
href="../../genindex.html"/>
<link rel="search" title="Search" href="../../search.html"/>
<link rel="top" title="Apache Mynewt latest documentation" href="../../index.html"/>
<link rel="up" title="Project Blinky" href="blinky.html"/>
<link rel="next" title="Enabling The Console and Shell for Blinky" href="blinky_console.html"/>
<link rel="prev" title="Blinky, your “Hello World!”, on RedBear Nano 2" href="rbnano2.html"/>
<script src="../../_static/js/modernizr.min.js"></script>
<script>
(function(i, s, o, g, r, a, m) {
i["GoogleAnalyticsObject"] = r;
(i[r] =
i[r] ||
function() {
(i[r].q = i[r].q || []).push(arguments);
}),
(i[r].l = 1 * new Date());
(a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]);
a.async = 1;
a.src = g;
m.parentNode.insertBefore(a, m);
})(window, document, "script", "//www.google-analytics.com/analytics.js", "ga");
ga("create", "UA-72162311-1", "auto");
ga("send", "pageview");
</script>
</head>
<body class="not-front page-documentation" role="document" >
<div id="wrapper">
<div class="container">
<div id="banner" class="row v2-main-banner">
<a class="logo-cell" href="/">
<img class="logo" src="../../_static/img/logo.png">
</a>
<div class="tagline-cell">
<h4 class="tagline">An OS to build, deploy and securely manage billions of devices</h4>
</div>
<div class="news-cell">
<div class="well">
<h4>Latest News:</h4> <a href="/download">Apache Mynewt 1.11.0, Apache NimBLE 1.6.0 </a> released September 7, 2023)
</div>
</div>
</div>
</div>
<header>
<nav id="navbar" class="navbar navbar-inverse" role="navigation">
<div class="container">
<!-- Collapsed navigation -->
<div class="navbar-header">
<!-- Expander button -->
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<!-- Expanded navigation -->
<div class="navbar-collapse collapse">
<!-- Main navigation -->
<ul class="nav navbar-nav navbar-right">
<li>
<a href="/"><i class="fa fa-home" style="font-size: larger;"></i></a>
</li>
<li class="important">
<a href="/quick-start/">Quick Start</a>
</li>
<li>
<a href="/about/">About</a>
</li>
<li>
<a href="/talks/">Talks</a>
</li>
<li class="active">
<a href="/documentation/">Documentation</a>
</li>
<li>
<a href="/download/">Download</a>
</li>
<li>
<a href="/community/">Community</a>
</li>
<li>
<a href="/events/">Events</a>
</li>
</ul>
<!-- Search, Navigation and Repo links -->
<ul class="nav navbar-nav navbar-right">
</ul>
</div>
</div>
</nav>
</header>
<!-- STARTS MAIN CONTENT -->
<div id="main-content">
<div id="breadcrumb">
<div class="container">
<a href="/documentation/">Docs</a> /
<a href="../tutorials.html">Tutorials</a> /
<a href="blinky.html">Project Blinky</a> /
Blinky, your “Hello World!”, on STM32F4-Discovery
<div class="sourcelink">
<a href="https://github.com/apache/mynewt-documentation/edit/master/docs/tutorials/blinky/blinky_stm32f4disc.rst" class="icon icon-github"
rel="nofollow"> Edit on GitHub</a>
</div>
</div>
</div>
<!-- STARTS CONTAINER -->
<div class="container">
<!-- STARTS .content -->
<div id="content" class="row">
<!-- STARTS .container-sidebar -->
<div class="container-sidebar col-xs-12 col-sm-3">
<div id="docSidebar" class="sticky-container">
<div role="search" class="sphinx-search">
<form id="rtd-search-form" class="wy-form" action="../../search.html" method="get">
<input type="text" name="q" placeholder="Search documentation" class="search-documentation" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
<!-- Note: only works when deployed -->
<select class="form-control" onchange="if (this.value) window.location.href=this.value">
<option value="/latest" selected>
Version: latest
</option>
<option value="/v1_11_0" >
Version: 1.11.0
</option>
<option value="/v1_10_0" >
Version: 1.10.0
</option>
<option value="/v1_9_0" selected="selected" >
Version: 1.9.0
</option>
<option value="/v1_8_0" >
Version: 1.8.0
</option>
<option value="/v1_7_0" >
Version: 1.7.0
</option>
<option value="/v1_6_0" >
Version: 1.6.0
</option>
<option value="/v1_5_0" >
Version: 1.5.0
</option>
<option value="/v1_4_0" >
Version: 1.4.0
</option>
<option value="/v1_3_0/os/introduction" >
Version: 1.3.0
</option>
<option value="/v1_2_0/os/introduction" >
Version: 1.2.0
</option>
<option value="/v1_1_0/os/introduction" >
Version: 1.1.0
</option>
<option value="/v1_0_0/os/introduction" >
Version: 1.0.0
</option>
<option value="/v0_9_0/os/introduction" >
Version: 0.9.0
</option>
</select>
<div class="region region-sidebar">
<div class="docs-menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../index.html">Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../get_started/index.html">Setup &amp; Get Started</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../concepts.html">Concepts</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../tutorials.html">Tutorials</a><ul class="current">
<li class="toctree-l2 current"><a class="reference internal" href="blinky.html">Project Blinky</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="arduino_zero.html">Blinky on Arduino Zero</a></li>
<li class="toctree-l3"><a class="reference internal" href="blinky_primo.html">Blinky on Arduino Primo</a></li>
<li class="toctree-l3"><a class="reference internal" href="olimex.html">Blinky on Olimex</a></li>
<li class="toctree-l3"><a class="reference internal" href="nRF52.html">Blinky on nRF52 DK</a></li>
<li class="toctree-l3"><a class="reference internal" href="pinetime.html">Blinky on PineTime</a></li>
<li class="toctree-l3"><a class="reference internal" href="rbnano2.html">Blinky on RedBear Nano 2</a></li>
<li class="toctree-l3 current"><a class="current reference internal" href="#">Blinky on STM32F4-Discovery</a></li>
<li class="toctree-l3"><a class="reference internal" href="blinky_console.html">Add Console and Shell to Blinky</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../repo/add_repos.html">Working with repositories</a></li>
<li class="toctree-l2"><a class="reference internal" href="../slinky/project-slinky.html">Project Slinky for Remote Comms</a></li>
<li class="toctree-l2"><a class="reference internal" href="../ble/ble.html">Bluetooth Low Energy</a></li>
<li class="toctree-l2"><a class="reference internal" href="../lora/lorawanapp.html">LoRa</a></li>
<li class="toctree-l2"><a class="reference internal" href="../os_fundamentals/os_fundamentals.html">OS Fundamentals</a></li>
<li class="toctree-l2"><a class="reference internal" href="../devmgmt/devmgmt.html">Remote Device Management</a></li>
<li class="toctree-l2"><a class="reference internal" href="../sensors/sensors.html">Sensors</a></li>
<li class="toctree-l2"><a class="reference internal" href="../tooling/tooling.html">Tooling</a></li>
<li class="toctree-l2"><a class="reference internal" href="../other/other.html">Other</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../../external_links.html">Third-party Resources</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../os/os_user_guide.html">OS User Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../network/index.html">BLE User Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../newt/index.html">Newt Tool Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../newtmgr/index.html">Newt Manager Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../mynewt_faq/index.html">Mynewt FAQ</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../misc/index.html">Appendix</a></li>
</ul>
</div>
</div>
</div>
<!-- ENDS STICKY CONTAINER -->
</div>
<!-- ENDS .container-sidebar -->
<div class="col-xs-12 col-sm-9">
<div class="alert alert-warning">
<p>
Version 1.9.0 is not the most recent version of the
Apache Mynewt documentation. Click <a href="/latest">here</a> to
read the latest version.
</p>
</div>
<div class="">
<div class="rst-content">
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<div class="section" id="blinky-your-hello-world-on-stm32f4-discovery">
<h1>Blinky, your “Hello World!”, on STM32F4-Discovery<a class="headerlink" href="#blinky-your-hello-world-on-stm32f4-discovery" title="Permalink to this headline"></a></h1>
<p>This tutorial shows you how to create, build, and run the Blinky
application on the STM32F4-Discovery board.</p>
<div class="section" id="prerequisites">
<h2>Prerequisites<a class="headerlink" href="#prerequisites" title="Permalink to this headline"></a></h2>
<ul class="simple">
<li><p>Meet the prerequisites listed in <a class="reference internal" href="blinky.html"><span class="doc">Project Blinky</span></a>.</p></li>
<li><p>Have a STM32F4-Discovery board.</p></li>
<li><p>Have a USB type A to Mini-B cable.</p></li>
<li><p>Install a patched version of OpenOCD 0.10.0 described in <a class="reference internal" href="../../get_started/native_install/cross_tools.html"><span class="doc">Install OpenOCD</span></a>.</p></li>
</ul>
</div>
<div class="section" id="create-a-project">
<h2>Create a Project<a class="headerlink" href="#create-a-project" title="Permalink to this headline"></a></h2>
<p>Create a new project if you do not have an existing one. You can skip
this step and proceed to Create the Targets if you
already have a project created.</p>
<p>Run the following commands to create a new project:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>mkdir<span class="w"> </span>~/dev
<span class="gp">$ </span><span class="nb">cd</span><span class="w"> </span>~/dev
<span class="gp">$ </span>newt<span class="w"> </span>new<span class="w"> </span>myproj
<span class="go">Downloading project skeleton from apache/mynewt-blinky...</span>
<span class="go">Installing skeleton in myproj...</span>
<span class="go">Project myproj successfully created.</span>
<span class="gp">$ </span><span class="nb">cd</span><span class="w"> </span>myproj
<span class="gp">$ </span>newt<span class="w"> </span>upgrade
<span class="go">Downloading repository mynewt-core (commit: master) ...</span>
<span class="go">apache-mynewt-core successfully upgraded to version 1.7.0</span>
<span class="gp">$</span>
</pre></div>
</div>
</div>
<div class="section" id="create-the-targets">
<h2>Create the Targets<a class="headerlink" href="#create-the-targets" title="Permalink to this headline"></a></h2>
<p>Create two targets for the STM32F4-Discovery board - one for the
bootloader and one for the Blinky application.</p>
<p>Run the following <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">target</span></code> commands, from your project directory,
to create a bootloader target. We name the target <code class="docutils literal notranslate"><span class="pre">stm32f4disc_boot</span></code>:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>newt<span class="w"> </span>target<span class="w"> </span>create<span class="w"> </span>stm32f4disc_boot
<span class="gp">$ </span>newt<span class="w"> </span>target<span class="w"> </span><span class="nb">set</span><span class="w"> </span>stm32f4disc_boot<span class="w"> </span><span class="nv">app</span><span class="o">=</span>@mcuboot/boot/mynewt
<span class="gp">$ </span>newt<span class="w"> </span>target<span class="w"> </span><span class="nb">set</span><span class="w"> </span>stm32f4disc_boot<span class="w"> </span><span class="nv">bsp</span><span class="o">=</span>@apache-mynewt-core/hw/bsp/stm32f4discovery
<span class="gp">$ </span>newt<span class="w"> </span>target<span class="w"> </span><span class="nb">set</span><span class="w"> </span>stm32f4disc_boot<span class="w"> </span><span class="nv">build_profile</span><span class="o">=</span>optimized
</pre></div>
</div>
<p>Run the following <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">target</span></code> commands to create a target for the
Blinky application. We name the target <code class="docutils literal notranslate"><span class="pre">stm32f4disc_blinky</span></code>:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>newt<span class="w"> </span>target<span class="w"> </span>create<span class="w"> </span>stm32f4disc_blinky
<span class="gp">$ </span>newt<span class="w"> </span>target<span class="w"> </span><span class="nb">set</span><span class="w"> </span>stm32f4disc_blinky<span class="w"> </span><span class="nv">app</span><span class="o">=</span>apps/blinky
<span class="gp">$ </span>newt<span class="w"> </span>target<span class="w"> </span><span class="nb">set</span><span class="w"> </span>stm32f4disc_blinky<span class="w"> </span><span class="nv">bsp</span><span class="o">=</span>@apache-mynewt-core/hw/bsp/stm32f4discovery
<span class="gp">$ </span>newt<span class="w"> </span>target<span class="w"> </span><span class="nb">set</span><span class="w"> </span>stm32f4disc_blinky<span class="w"> </span><span class="nv">build_profile</span><span class="o">=</span>debug
</pre></div>
</div>
<p>You can run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">target</span> <span class="pre">show</span></code> command to verify the target
settings:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>newt<span class="w"> </span>target<span class="w"> </span>show
<span class="go">targets/my_blinky_sim</span>
<span class="go"> app=apps/blinky</span>
<span class="go"> bsp=@apache-mynewt-core/hw/bsp/native</span>
<span class="go"> build_profile=debug</span>
<span class="go">targets/stm32f4disc_blinky</span>
<span class="go"> app=apps/blinky</span>
<span class="go"> bsp=@apache-mynewt-core/hw/bsp/stm32f4discovery</span>
<span class="go"> build_profile=debug</span>
<span class="go">targets/stm32f4disc_boot</span>
<span class="go"> app=@mcuboot/boot/mynewt</span>
<span class="go"> bsp=@apache-mynewt-core/hw/bsp/stm32f4discovery</span>
<span class="go"> build_profile=optimized</span>
</pre></div>
</div>
</div>
<div class="section" id="build-the-target-executables">
<h2>Build the Target Executables<a class="headerlink" href="#build-the-target-executables" title="Permalink to this headline"></a></h2>
<p>Run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">build</span> <span class="pre">stm32f4disc_boot</span></code> command to build the bootloader:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>newt<span class="w"> </span>build<span class="w"> </span>stm32f4disc_boot
<span class="go">Building target targets/stm32f4disc_boot</span>
<span class="go">Compiling repos/mcuboot/boot/bootutil/src/image_ec.c</span>
<span class="go">Compiling repos/mcuboot/boot/bootutil/src/image_ec256.c</span>
<span class="go">Compiling repos/mcuboot/boot/bootutil/src/bootutil_misc.c</span>
<span class="go">Compiling repos/mcuboot/boot/mynewt/src/main.c</span>
<span class="go">Compiling repos/mcuboot/boot/bootutil/src/image_rsa.c</span>
<span class="go">Compiling repos/mcuboot/boot/bootutil/src/image_validate.c</span>
<span class="go">Compiling repos/mcuboot/boot/bootutil/src/loader.c</span>
<span class="go"> ...</span>
<span class="go">Archiving sys_flash_map.a</span>
<span class="go">Archiving sys_mfg.a</span>
<span class="go">Archiving sys_sysinit.a</span>
<span class="go">Archiving util_mem.a</span>
<span class="go">Linking ~/dev/myproj/bin/targets/stm32f4disc_boot/app/boot/mynwet/mynewt.elf</span>
<span class="go">Target successfully built: targets/stm32f4disc_boot</span>
</pre></div>
</div>
<p>Run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">build</span> <span class="pre">stm32f4disc_blinky</span></code> command to build the Blinky
application:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span>newt<span class="w"> </span>build<span class="w"> </span>stm32f4disc_blinky
<span class="go">Building target targets/stm32f4disc_blinky</span>
<span class="go">Compiling apps/blinky/src/main.c</span>
<span class="go">Compiling repos/apache-mynewt-core/hw/bsp/stm32f4discovery/src/sbrk.c</span>
<span class="go">Compiling repos/apache-mynewt-core/hw/bsp/stm32f4discovery/src/system_stm32f4xx.c</span>
<span class="go">Compiling repos/apache-mynewt-core/hw/bsp/stm32f4discovery/src/hal_bsp.c</span>
<span class="go">Assembling repos/apache-mynewt-core/hw/bsp/stm32f4discovery/src/arch/cortex_m4/startup_STM32F40x.s</span>
<span class="go">Compiling repos/apache-mynewt-core/hw/cmsis-core/src/cmsis_nvic.c</span>
<span class="go">Compiling repos/apache-mynewt-core/hw/drivers/uart/src/uart.c</span>
<span class="go">Compiling repos/apache-mynewt-core/hw/drivers/uart/uart_hal/src/uart_hal.c</span>
<span class="go">Compiling repos/apache-mynewt-core/hw/hal/src/hal_common.c</span>
<span class="go">Compiling repos/apache-mynewt-core/hw/hal/src/hal_flash.c</span>
<span class="go"> ...</span>
<span class="go">Archiving sys_sysinit.a</span>
<span class="go">Archiving util_mem.a</span>
<span class="go">Linking ~/dev/myproj/bin/targets/stm32f4disc_blinky/app/apps/blinky/blinky.elf</span>
<span class="go">Target successfully built: targets/stm32f4disc_blinky</span>
</pre></div>
</div>
</div>
<div class="section" id="sign-and-create-the-blinky-application-image">
<h2>Sign and Create the Blinky Application Image<a class="headerlink" href="#sign-and-create-the-blinky-application-image" title="Permalink to this headline"></a></h2>
<p>Run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">create-image</span> <span class="pre">stm32f4disc_blinky</span> <span class="pre">1.0.0</span></code> command to create
and sign the application image. You may assign an arbitrary version
(e.g. 1.0.0) to the image.</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$</span>newt<span class="w"> </span>create-image<span class="w"> </span>stm32f4disc_blinky<span class="w"> </span><span class="m">1</span>.0.0
<span class="go">App image succesfully generated: ~/dev/myproj/bin/targets/stm32f4disc_blinky/app/apps/blinky/blinky.img</span>
</pre></div>
</div>
</div>
<div class="section" id="connect-to-the-board">
<h2>Connect to the Board<a class="headerlink" href="#connect-to-the-board" title="Permalink to this headline"></a></h2>
<p>Connect a USB type A to Mini-B cable from your computer to the port the
board indicated on the diagram:</p>
<div class="figure align-default">
<img alt="../../_images/stm32f4_disc.jpg" src="../../_images/stm32f4_disc.jpg" />
</div>
<p>You should see the small PWR red LED light up.</p>
</div>
<div class="section" id="load-the-bootloader-and-the-blinky-application-image">
<h2>Load the Bootloader and the Blinky Application Image<a class="headerlink" href="#load-the-bootloader-and-the-blinky-application-image" title="Permalink to this headline"></a></h2>
<p>Run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">load</span> <span class="pre">stm32f4disc_boot</span></code> command to load the bootloader
onto the board:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>newt<span class="w"> </span>load<span class="w"> </span>stm32f4disc_boot
<span class="go">Loading bootloader</span>
</pre></div>
</div>
<p>Note: If you are using Windows and get an <code class="docutils literal notranslate"><span class="pre">open</span> <span class="pre">failed</span></code> or
<code class="docutils literal notranslate"><span class="pre">no</span> <span class="pre">device</span> <span class="pre">found</span></code> error, you will need to install the usb driver.
Download <a class="reference external" href="http://zadig.akeo.ie">Zadig</a> and run it:</p>
<ul class="simple">
<li><p>Select Options &gt; List All Devices.</p></li>
<li><p>Select <code class="docutils literal notranslate"><span class="pre">STM32</span> <span class="pre">STLink</span></code> from the drop down menu.</p></li>
<li><p>Select the <code class="docutils literal notranslate"><span class="pre">WinUSB</span></code> driver.</p></li>
<li><p>Click Install Driver.</p></li>
<li><p>Run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">load</span> <span class="pre">stm32f4disc_boot</span></code> command again.</p></li>
</ul>
<p>Note: If you are running Linux and get an <code class="docutils literal notranslate"><span class="pre">open</span> <span class="pre">failed</span></code> message, there
are two common issues with this board. If you have a board produced
before mid-2016, it is likely that you have an older version of the
ST-LINK programmer. To correct this, open the
<code class="docutils literal notranslate"><span class="pre">repos/apache-mynewt-core/hw/bsp/stm32f4discovery/f4discovery.cfg</span></code>
file in a text editor, and change the line:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">source [find interface/stlink-v2-1.cfg]</span>
</pre></div>
</div>
<p>to:</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="go">source [find interface/stlink-v2.cfg]</span>
</pre></div>
</div>
<p>If you receive an error like
<code class="docutils literal notranslate"><span class="pre">libusb_open()</span> <span class="pre">failed</span> <span class="pre">with</span> <span class="pre">LIBUSB_ERROR_ACCESS</span></code>, it means that your
<code class="docutils literal notranslate"><span class="pre">udev</span></code> rules are not correctly set up for this device. You can find
some example <code class="docutils literal notranslate"><span class="pre">udev</span></code> rules for ST-LINK programmers
<a class="reference external" href="https://github.com/texane/stlink/tree/master/etc/udev/rules.d">here</a>.</p>
<p>Run the <code class="docutils literal notranslate"><span class="pre">newt</span> <span class="pre">load</span> <span class="pre">stm32f4disc_blinky</span></code> command to load the Blinky
application image onto the board.</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>newt<span class="w"> </span>load<span class="w"> </span>stm32f4disc_blinky
<span class="go">Loading app image into slot 1</span>
</pre></div>
</div>
<p>You should see the small green LD4 LED on the board blink!</p>
<p>Note: If the LED does not blink, try resetting your board.</p>
<p>If you want to erase the flash and load the image again, start a debug
session, and enter <code class="docutils literal notranslate"><span class="pre">mon</span>&#160; <span class="pre">stm32f2x</span> <span class="pre">mass_erase</span> <span class="pre">0</span></code> at the gdb prompt:</p>
<p><strong>Note:</strong> The output of the debug session below is for Mac OS and Linux
platforms. On Windows, openocd and gdb are started in separate Windows
Command Prompt terminals, and the terminals are automatically closed
when you quit gdb. In addition, the output of openocd is logged to the
openocd.log file in your project’s base directory instead of the
terminal.</p>
<div class="highlight-console notranslate"><div class="highlight"><pre><span></span><span class="gp">$ </span>newt<span class="w"> </span>debug<span class="w"> </span>stm32f4disc_blinky
<span class="go">[~/dev/myproj/repos/apache-mynewt-core/hw/bsp/stm32f4discovery/stm32f4discovery_debug.sh ~/dev/myproj/repos/apache-mynewt-core/hw/bsp/stm32f4discovery ~/dev/myproj/bin/targets/stm32f4disc_blinky/app/apps/blinky/blinky]</span>
<span class="go">Open On-Chip Debugger 0.10.0</span>
<span class="go">Licensed under GNU GPL v2</span>
<span class="go">For bug reports, read</span>
<span class="go"> http://openocd.org/doc/doxygen/bugs.html</span>
<span class="go">Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD</span>
<span class="go">adapter speed: 2000 kHz</span>
<span class="go">adapter_nsrst_delay: 100</span>
<span class="go">none separate</span>
<span class="go">Info : Unable to match requested speed 2000 kHz, using 1800 kHz</span>
<span class="go">Info : Unable to match requested speed 2000 kHz, using 1800 kHz</span>
<span class="go">Info : clock speed 1800 kHz</span>
<span class="go">Info : STLINK v2 JTAG v25 API v2 SWIM v14 VID 0x0483 PID 0x374B</span>
<span class="go">Info : using stlink api v2</span>
<span class="go">Info : Target voltage: 2.881129</span>
<span class="go">Info : stm32f4x.cpu: hardware has 6 breakpoints, 4 watchpoints</span>
<span class="go">target halted due to debug-request, current mode: Thread</span>
<span class="go"> ...</span>
<span class="go">Reading symbols from ~/dev/myproj/bin/targets/stm32f4disc_blinky/app/apps/blinky/blinky.elf...done.</span>
<span class="go">target halted due to debug-request, current mode: Thread</span>
<span class="go">xPSR: 0x41000000 pc: 0x08021e90 psp: 0x20002290</span>
<span class="go">Info : accepting &#39;gdb&#39; connection on tcp/3333</span>
<span class="go">Info : device id = 0x10076413</span>
<span class="go">Info : flash size = 1024kbytes</span>
<span class="go">0x08021e90 in __WFI () at repos/apache-mynewt-core/hw/cmsis-core/src/ext/core_cmInstr.h:342</span>
<span class="go">342 __ASM volatile (&quot;wfi&quot;);</span>
<span class="gp gp-VirtualEnv">(gdb)</span> <span class="go">mon stm32f2x mass_erase 0</span>
<span class="go">stm32x mass erase complete</span>
<span class="go">stm32x mass erase complete</span>
<span class="gp gp-VirtualEnv">(gdb)</span>
</pre></div>
</div>
</div>
</div>
</div>
</div>
<div class="rst-footer-buttons row" role="navigation" aria-label="footer navigation">
<a href="blinky_console.html" class="btn btn-neutral float-right" title="Enabling The Console and Shell for Blinky" accesskey="n">Next: Enabling The Console and Shell for Blinky <span class="fa fa-arrow-circle-right"></span></a>
<a href="rbnano2.html" class="btn btn-neutral" title="Blinky, your “Hello World!”, on RedBear Nano 2" accesskey="p"><span class="fa fa-arrow-circle-left"></span> Previous: Blinky, your “Hello World!”, on RedBear Nano 2</a>
</div>
</div>
</div>
</div>
<!-- ENDS CONTENT SECTION -->
</div>
<!-- ENDS .content -->
</div>
</div>
<footer>
<div class="container">
<div class="row">
<div class="col-xs-12">
<p class="copyright">Apache Mynewt is available under Apache License, version 2.0.</p>
</div>
<div class="col-xs-12">
<div class="logos">
<img src="../../_static/img/asf_logo_wide_small.png" alt="Apache" title="Apache">
<small class="footnote">
Apache Mynewt, Mynewt, Apache, the Apache feather logo, and the Apache Mynewt project logo are either
registered trademarks or trademarks of the Apache Software Foundation in the United States and other countries.
</small>
<a href="">
<img src="../../_static/img/add_to_slack.png" alt="Slack Icon" title="Join our Slack Community" />
</a>
</div>
</div>
</div>
</div>
</footer>
</div>
<!-- ENDS #wrapper -->
<script type="text/javascript">
var DOCUMENTATION_OPTIONS = {
URL_ROOT:'../../',
VERSION:'latest',
COLLAPSE_INDEX:false,
FILE_SUFFIX:'.html',
HAS_SOURCE: true,
SOURCELINK_SUFFIX: '.txt',
LINK_SUFFIX: '.html'
};
</script>
<script type="text/javascript" src="../../_static/jquery.js"></script>
<script type="text/javascript" src="../../_static/underscore.js"></script>
<script type="text/javascript" src="../../_static/doctools.js"></script>
<script type="text/javascript" src="../../_static/js/bootstrap-3.0.3.min.js"></script>
<script type="text/javascript" src="../../_static/js/affix.js"></script>
<script type="text/javascript" src="../../_static/js/main.js"></script>
</body>
</html>