Blinky, your "Hello World!", on STM32F4-Discovery
-------------------------------------------------

This tutorial shows you how to create, build, and run the Blinky
application on the STM32F4-Discovery board.

Prerequisites
~~~~~~~~~~~~~

-  Meet the prerequisites listed in :doc:`Project Blinky <blinky>`.
-  Have a STM32F4-Discovery board.
-  Have a USB type A to Mini-B cable.
-  Install a patched version of OpenOCD 0.10.0 described in :doc:`Install OpenOCD <../../get_started/native_install/cross_tools>`.

Create a Project
~~~~~~~~~~~~~~~~

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.

Run the following commands to create a new project:

.. code-block:: console

        $ mkdir ~/dev
        $ cd ~/dev
        $ newt new myproj
        Downloading project skeleton from apache/mynewt-blinky...
        Installing skeleton in myproj...
        Project myproj successfully created.
        $ cd myproj
        $ newt install
        apache-mynewt-core
        $

Create the Targets
~~~~~~~~~~~~~~~~~~

Create two targets for the STM32F4-Discovery board - one for the
bootloader and one for the Blinky application.

Run the following ``newt target`` commands, from your project directory,
to create a bootloader target. We name the target ``stm32f4disc_boot``:

.. code-block:: console

    $ newt target create stm32f4disc_boot
    $ newt target set stm32f4disc_boot app=@mcuboot/boot/mynewt
    $ newt target set stm32f4disc_boot bsp=@apache-mynewt-core/hw/bsp/stm32f4discovery
    $ newt target set stm32f4disc_boot build_profile=optimized

Run the following ``newt target`` commands to create a target for the
Blinky application. We name the target ``stm32f4disc_blinky``:

.. code-block:: console

    $ newt target create stm32f4disc_blinky
    $ newt target set stm32f4disc_blinky app=apps/blinky
    $ newt target set stm32f4disc_blinky bsp=@apache-mynewt-core/hw/bsp/stm32f4discovery
    $ newt target set stm32f4disc_blinky build_profile=debug

You can run the ``newt target show`` command to verify the target
settings:

.. code-block:: console

    $ newt target show
    targets/my_blinky_sim
        app=apps/blinky
        bsp=@apache-mynewt-core/hw/bsp/native
        build_profile=debug
    targets/stm32f4disc_blinky
        app=apps/blinky
        bsp=@apache-mynewt-core/hw/bsp/stm32f4discovery
        build_profile=debug
    targets/stm32f4disc_boot
        app=@mcuboot/boot/mynewt
        bsp=@apache-mynewt-core/hw/bsp/stm32f4discovery
        build_profile=optimized

Build the Target Executables
~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Run the ``newt build stm32f4disc_boot`` command to build the bootloader:

.. code-block:: console

    $ newt build stm32f4disc_boot
    Building target targets/stm32f4disc_boot
    Compiling repos/mcuboot/boot/bootutil/src/image_ec.c
    Compiling repos/mcuboot/boot/bootutil/src/image_ec256.c
    Compiling repos/mcuboot/boot/bootutil/src/bootutil_misc.c
    Compiling repos/mcuboot/boot/mynewt/src/main.c
    Compiling repos/mcuboot/boot/bootutil/src/image_rsa.c
    Compiling repos/mcuboot/boot/bootutil/src/image_validate.c
    Compiling repos/mcuboot/boot/bootutil/src/loader.c

        ...

    Archiving sys_flash_map.a
    Archiving sys_mfg.a
    Archiving sys_sysinit.a
    Archiving util_mem.a
    Linking ~/dev/myproj/bin/targets/stm32f4disc_boot/app/boot/mynwet/mynewt.elf
    Target successfully built: targets/stm32f4disc_boot

Run the ``newt build stm32f4disc_blinky`` command to build the Blinky
application:

.. code-block:: console

    $newt build stm32f4disc_blinky
    Building target targets/stm32f4disc_blinky
    Compiling apps/blinky/src/main.c
    Compiling repos/apache-mynewt-core/hw/bsp/stm32f4discovery/src/sbrk.c
    Compiling repos/apache-mynewt-core/hw/bsp/stm32f4discovery/src/system_stm32f4xx.c
    Compiling repos/apache-mynewt-core/hw/bsp/stm32f4discovery/src/hal_bsp.c
    Assembling repos/apache-mynewt-core/hw/bsp/stm32f4discovery/src/arch/cortex_m4/startup_STM32F40x.s
    Compiling repos/apache-mynewt-core/hw/cmsis-core/src/cmsis_nvic.c
    Compiling repos/apache-mynewt-core/hw/drivers/uart/src/uart.c
    Compiling repos/apache-mynewt-core/hw/drivers/uart/uart_hal/src/uart_hal.c
    Compiling repos/apache-mynewt-core/hw/hal/src/hal_common.c
    Compiling repos/apache-mynewt-core/hw/hal/src/hal_flash.c

        ...

    Archiving sys_sysinit.a
    Archiving util_mem.a
    Linking ~/dev/myproj/bin/targets/stm32f4disc_blinky/app/apps/blinky/blinky.elf
    Target successfully built: targets/stm32f4disc_blinky

Sign and Create the Blinky Application Image
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Run the ``newt create-image stm32f4disc_blinky 1.0.0`` command to create
and sign the application image. You may assign an arbitrary version
(e.g. 1.0.0) to the image.

.. code-block:: console

    $newt create-image stm32f4disc_blinky 1.0.0
    App image succesfully generated: ~/dev/myproj/bin/targets/stm32f4disc_blinky/app/apps/blinky/blinky.img

Connect to the Board
~~~~~~~~~~~~~~~~~~~~

Connect a USB type A to Mini-B cable from your computer to the port the
board indicated on the diagram:

.. figure:: ../pics/stm32f4_disc.jpg

You should see the small PWR red LED light up.

Load the Bootloader and the Blinky Application Image
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Run the ``newt load stm32f4disc_boot`` command to load the bootloader
onto the board:

.. code-block:: console

    $ newt load stm32f4disc_boot
    Loading bootloader

Note: If you are using Windows and get an ``open failed`` or
``no device found`` error, you will need to install the usb driver.
Download `Zadig <http://zadig.akeo.ie>`__ and run it:

-  Select Options > List All Devices.
-  Select ``STM32 STLink`` from the drop down menu.
-  Select the ``WinUSB`` driver.
-  Click Install Driver.
-  Run the ``newt load stm32f4disc_boot`` command again.

Note: If you are running Linux and get an ``open failed`` 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
``repos/apache-mynewt-core/hw/bsp/stm32f4discovery/f4discovery.cfg``
file in a text editor, and change the line:

.. code-block:: console

    source [find interface/stlink-v2-1.cfg]

to:

.. code-block:: console

    source [find interface/stlink-v2.cfg]

If you receive an error like
``libusb_open() failed with LIBUSB_ERROR_ACCESS``, it means that your
``udev`` rules are not correctly set up for this device. You can find
some example ``udev`` rules for ST-LINK programmers
`here <https://github.com/texane/stlink/tree/master/etc/udev/rules.d>`__.

Run the ``newt load stm32f4disc_blinky`` command to load the Blinky
application image onto the board.

.. code-block:: console

    $ newt load stm32f4disc_blinky
    Loading app image into slot 1

You should see the small green LD4 LED on the board blink!

Note: If the LED does not blink, try resetting your board.

If you want to erase the flash and load the image again, start a debug
session, and enter ``mon  stm32f2x mass_erase 0`` at the gdb prompt:

**Note:** 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.

.. code-block:: console

    $ newt debug stm32f4disc_blinky
    [~/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]
    Open On-Chip Debugger 0.10.0
    Licensed under GNU GPL v2
    For bug reports, read
            http://openocd.org/doc/doxygen/bugs.html
    Info : The selected transport took over low-level target control. The results might differ compared to plain JTAG/SWD
    adapter speed: 2000 kHz
    adapter_nsrst_delay: 100
    none separate
    Info : Unable to match requested speed 2000 kHz, using 1800 kHz
    Info : Unable to match requested speed 2000 kHz, using 1800 kHz
    Info : clock speed 1800 kHz
    Info : STLINK v2 JTAG v25 API v2 SWIM v14 VID 0x0483 PID 0x374B
    Info : using stlink api v2
    Info : Target voltage: 2.881129
    Info : stm32f4x.cpu: hardware has 6 breakpoints, 4 watchpoints
    target halted due to debug-request, current mode: Thread

               ...

    Reading symbols from ~/dev/myproj/bin/targets/stm32f4disc_blinky/app/apps/blinky/blinky.elf...done.
    target halted due to debug-request, current mode: Thread
    xPSR: 0x41000000 pc: 0x08021e90 psp: 0x20002290
    Info : accepting 'gdb' connection on tcp/3333
    Info : device id = 0x10076413
    Info : flash size = 1024kbytes
    0x08021e90 in __WFI () at repos/apache-mynewt-core/hw/cmsis-core/src/ext/core_cmInstr.h:342
    342       __ASM volatile ("wfi");
    (gdb) mon stm32f2x mass_erase 0
    stm32x mass erase complete
    stm32x mass erase complete
    (gdb)
