Git Product home page Git Product logo

libopencm3-examples's Introduction

README

Build Status

Gitter channel

This repository contains assorted example projects for libopencm3.

The libopencm3 project aims to create an open-source firmware library for various ARM Cortex-M microcontrollers.

For more information visit http://libopencm3.org

The examples are meant as starting points for different subsystems on multitude of platforms. If you're just looking to test your build environment and hardware, the libopencm3-miniblink may be more useful, as it covers many more boards, but it is much more limited.

Feel free to add new examples and send them to us either via the mailinglist or preferably via a github pull request.

Usage

You must run "make" in the top level directory first. This builds the library and all examples. If you're simply hacking on a single example after that, you can type "make clean; make" in any of the individual project directories later.

For more verbose output, to see compiler command lines, use "make V=1" For insanity levels of verboseness, use "make V=99"

The makefiles are generally useable for your own projects with only minimal changes for the libopencm3 install path (See Reuse)

Make Flash Target

Please note, the "make flash" target is complicated and not always self-consistent. Please see: libopencm3#34

For flashing the 'miniblink' example (after you built libopencm3 and the examples by typing 'make' at the top-level directory) onto the Olimex STM32-H103 eval board (ST STM32F1 series microcontroller), you can execute:

cd examples/stm32/f1/stm32-h103/miniblink
make flash V=1

The Makefiles of the examples are configured to use a certain OpenOCD flash programmer, you might need to change some of the variables in the Makefile if you use a different one.

To program via a Black Magic Probe, simply provide the serial port, eg:

cd examples/stm32/f1/stm32-h103/miniblink
make flash BMP_PORT=/dev/ttyACM0

To program via texane/stlink (st-flash utility), use the special target:

cd examples/stm32/f1/stm32vl-discovery/miniblink
make miniblink.stlink-flash

If you rather use GDB to connect to the st-util you can provide the STLINK_PORT to the flash target.

cd examples/stm32/f1/stm32vl-discovery/miniblink
make flash STLINK_PORT=:4242

Flashing Manually

You can also flash manually. Using a miriad of different tools depending on your setup. Here are a few examples.

OpenOCD

openocd -f interface/jtagkey-tiny.cfg -f target/stm32f1x.cfg
telnet localhost 4444
reset halt
flash write_image erase foobar.hex
reset

Replace the "jtagkey-tiny.cfg" with whatever JTAG device you are using, and/or replace "stm32f1x.cfg" with your respective config file. Replace "foobar.hex" with the file name of the image you want to flash.

Black Magic Probe

cd examples/stm32/f1/stm32vl-discovery/miniblink
arm-none-eabi-gdb miniblink.elf
target extended_remote /dev/ttyACM0
monitor swdp_scan
attach 1
load
run

To exit the gdb session type <Ctrl>-C and <Ctrl>-D. It is useful to add the following to the .gdbinit to make the flashing and debugging easier:

set target-async on
set confirm off
set mem inaccessible-by-default off
#set debug remote 1
tar ext /dev/ttyACM0
mon version
mon swdp_scan
att 1

Having this in your .gdbinit boils down the flashing/debugging process to:

cd examples/stm32/f1/stm32vl-discovery/miniblink
arm-none-eabi-gdb miniblink.elf
load
run

ST-Link (st-util)

This example uses the st-util by texane that you can find on GitHub.

cd examples/stm32/f1/stm32vl-discovery/miniblink
arm-none-eabi-gdb miniblink.elf
target extended-remote :4242
load
run

Reuse

If you want to use libopencm3 in your own project, the easiest way is to use the template repository we created for this purpose.

See https://github.com/libopencm3/libopencm3-template

libopencm3-examples's People

Contributors

agners avatar alios avatar bufran avatar cat-ion avatar chuckm avatar daniel-thompson avatar esden avatar fb avatar garag avatar jelmert avatar jkent avatar karlp avatar kbob avatar l29ah avatar leighbb avatar lifton avatar loldgit avatar materi avatar millerd avatar mrnuke avatar onnokort avatar paulfertser avatar petermortensen avatar plaes avatar prusnak avatar rohieb avatar schodet avatar spiccinini avatar twoerner avatar uwebonnes avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.