| Blinky, your "Hello World!", on STM32F303 Discovery |
| --------------------------------------------------- |
| |
| Objective |
| ~~~~~~~~~ |
| |
| Learn how to use packages from a default application repository of |
| Mynewt to build your first *Hello World* application (Blinky) on a |
| target board. Once built using the *newt* tool, this application will |
| blink the LED lights on the target board. |
| |
| Create a project with a simple app that blinks an LED on the stmf303 |
| discovery board. In the process import some external libraries into your |
| project. Download the application to the target and watch it blink! |
| |
| What you need |
| ~~~~~~~~~~~~~ |
| |
| - Discovery kit with STM32F303VC MCU |
| - Laptop running Mac OSX. |
| - It is assumed you have already installed newt tool. |
| - It is assumed you already installed native tools as described |
| `here <../get_started/native_tools.html>`__ |
| |
| Also, we assume that you're familiar with UNIX shells. Let's gets |
| started! |
| |
| Create a project |
| ~~~~~~~~~~~~~~~~ |
| |
| Create a new project to hold your work. For a deeper understanding, you |
| can read about project creation in `Get Started -- Creating Your First |
| Project <../get_started/project_create.html>`__ or just follow the |
| commands below. |
| |
| If you've already created a project from another tutorial, you can |
| re-use that project. |
| |
| :: |
| |
| $ mkdir ~/dev |
| $ cd ~/dev |
| $ newt new myproj |
| Downloading project skeleton from apache/incubator-mynewt-blinky... |
| Installing skeleton in myproj... |
| Project myproj successfully created. |
| |
| $ cd myproj |
| |
| **Note:** Don't forget to change into the ``myproj`` directory. |
| |
| Install dependencies |
| ~~~~~~~~~~~~~~~~~~~~ |
| |
| Now you can install this into the project using: |
| |
| :: |
| |
| $ newt install -v |
| Downloading repository description for apache-mynewt-core... success! |
| ... |
| apache-mynewt-core successfully installed version 0.7.9-none |
| ... |
| Downloading repository description for mynewt_stm32f3... success! |
| Downloading repository mynewt_stm32f3 |
| ... |
| Resolving deltas: 100% (65/65), done. |
| Checking connectivity... done. |
| mynewt_stm32f3 successfully installed version 0.0.0-none |
| |
| Create targets |
| ~~~~~~~~~~~~~~ |
| |
| Create two targets to build using the stmf3 board support package and |
| the app blinky example from mynewt. The output of these commands are not |
| shown here for brevity. |
| |
| The first target is the application image itself. The second target is |
| the bootloader which allows you to upgrade your mynewt applications. |
| |
| :: |
| |
| $ newt target create stmf3_blinky |
| $ newt target set stmf3_blinky build_profile=optimized |
| $ newt target set stmf3_blinky bsp=@apache-mynewt-core/hw/bsp/stm32f3discovery |
| $ newt target set stmf3_blinky app=apps/blinky |
| |
| $ newt target create stmf3_boot |
| $ newt target set stmf3_boot app=@mcuboot/boot/mynewt |
| $ newt target set stmf3_boot bsp=@apache-mynewt-core/hw/bsp/stm32f3discovery |
| $ newt target set stmf3_boot build_profile=optimized |
| |
| $ newt target show |
| |
| targets/stmf3_blinky |
| app=apps/blinky |
| bsp=@apache-mynewt-core/hw/bsp/stm32f3discovery |
| build_profile=optimized |
| targets/stmf3_boot |
| app=@mcuboot/boot/mynewt |
| bsp=@apache-mynewt-core/hw/bsp/stm32f3discovery |
| build_profile=optimized |
| |
| Build the target executables |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| To build the images, use the ``newt build`` command below. |
| |
| :: |
| |
| $ newt build stmf3_blinky |
| ... |
| Archiving stm32f3discovery.a |
| Linking blinky.elf |
| App successfully built: ~/dev/myproj/bin/stmf3_blinky/apps/blinky/blinky.elf |
| |
| $ newt build stmf3_boot |
| Compiling log_shell.c |
| Archiving log.a |
| Linking boot.elf |
| App successfully built: ~/dev/myproj/bin/stmf3_boot/apps/boot/boot.elf |
| |
| Sign and create the blinky application image |
| ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| You must sign and version your application image to download it using |
| newt. Use the ``newt create-image`` command to perform this action. Here |
| we assign this image an arbitrary version ``1.2.3``. |
| |
| .. code-block:: console |
| |
| $ newt create-image stmf3_blinky 1.2.3 |
| App image successfully generated: ~/dev/myproj/bin/stmf3_blinky/apps/blinky/blinky.img |
| Build manifest:~/dev/myproj/bin/stmf3_blinky/apps/blinky/manifest.json |
| |
| Configure the hardware |
| ~~~~~~~~~~~~~~~~~~~~~~ |
| |
| The STM32F3DISCOVERY board includes an ST-LINK/V2 embedded debug tool |
| interface that will be used to program/debug the board. To program the |
| MCU on the board, simply plug in the two jumpers on CN4, as shown in the |
| picture in red. If you want to learn more about the board you will find |
| the User Manual at |
| http://www.st.com/st-web-ui/static/active/jp/resource/technical/document/user_manual/DM00063382.pdf |
| |
| - |STMdiscovery| |
| |
| Download the Images |
| ~~~~~~~~~~~~~~~~~~~ |
| |
| Use the ``newt load`` command to download the images to the target |
| board. |
| |
| :: |
| |
| $ newt -v load stmf3_boot |
| $ newt -v load stmf3_blinky |
| |
| Watch the LED blink |
| ~~~~~~~~~~~~~~~~~~~ |
| |
| Congratulations! You have built, downloaded, and run your first |
| application using mynewt for the stm32f3 discovery board. One of the |
| LEDs on the LED wheel should be blinking at 1 Hz. |
| |
| Want more? |
| ~~~~~~~~~~ |
| |
| Want to make your board do something a little more exciting with the |
| LEDs? Then try making the modifications to the Blinky app to make it a |
| `pin-wheel app <pin-wheel-mods.html>`__ and you can light all the LEDs in |
| a pin-wheel fashion. |
| |
| We have more fun tutorials for you to get your hands dirty. Be bold and |
| try other Blinky-like `tutorials <../tutorials/nRF52.html>`__ or try |
| enabling additional functionality such as `remote |
| comms <project-slinky.html>`__ on the current board. |
| |
| If you see anything missing or want to send us feedback, please do so by |
| signing up for appropriate mailing lists on our `Community |
| Page <../../community.html>`__. |
| |
| Keep on hacking and blinking! |
| |
| .. |STMdiscovery| image:: pics/STM32f3discovery_connector.png |
| |