Giter VIP home page Giter VIP logo

stm32-1's Introduction

STM32 Firmware Development

Build Status Coverity Scan Build Status

This repo is for firmware, OS, and application code for the STM32F4xx series of microcontrollers used on the PSAS AV3 avionics system.

To initialize the ChibiOS submodule run:

$ git submodule update --init

When ChibiOS updates you'll need to re-sync it as its origin has changed: The last time ChibiOS was updated: December 2013

$ git submodule sync
$ git submodule update

Directories:

  • projects
    • projects go here.
    • projects used on the rocket are prefixed by flight-[a-zA-z]
    • intro projects or tool chain test projects
      • e407-led
      • enet-udp (network test)
      • ??? e407-serial
  • common
    • code that tends to be reused in projects. At the top level it has makefiles and is further grouped into
    • boards
      • boardfiles for our own custom boards. Most off the shelf board boardfiles can be found in ChibiOS/boards
    • devices
      • for peripheral drivers
    • net
      • network ports and addresses (IPs)
      • this is common across the RocketNet
        • maintained outside of the stm32 repo
    • util
      • general programming utilities
      • other utilities
  • ChibiOS
    • git submodule pulled from our own fork of ChibiOS
  • toolchain
    • development directory for cross compilers and openocd
  • notes
    • general notes that don't have a more specific location

CHIBIOS

- As of Tue 04 March 2014 20:56:56 (PST)
- We are using a slightly modified version of Chibios Release 2.6.3
    - This is maintained in the PSAS Github Repository
- It is a submodule of the stm32 git project.

BOARDS

- PSAS is currently using two boards
    - Olimex e407
    - PSAS Rocketnet Hub

TOOLCHAIN SETUP

Debugger

OpenOCD is the tool we use to communicate, flash, and debug the microcontroller via JTAG.

  • Version v0.7.0 as of March 2014
  • Instillation instructions:
    • The Debian and Ubuntu v0.7.0 packages now have the correct build flags so it's as simple as
      • sudo apt-get install openocd
    • For other systems, or if you are building it yourself, ensure that it's built with --enable-ft2232_libftdi --enable-stlink
  • udev rules
    • To use OpenOCD without sudo, move 99-psas-jtag.rules in common/ to /etc/udev/rules.d/ and the run sudo udevadm control --restart. Alternativly some versions of OpenOCD ship with a more complete udev rule set in /usr/share/openocd/contrib/

Compiler

GNU Tools for ARM Embedded Processors

  • Version 4.8 as of March 2014

  • Instillation instructions:

    • The prefered way is to use the provided PPA
  • Ubuntu 14.04 and Debian testing recently (April 2014) introduced their own compiler package named gcc-arm-none-eabi, but it's not the same as ours and the packaging is broken anyway. If you've just upgraded to 14.04 run:

    sudo apt-get remove binutils-arm-none-eabi gcc-arm-none-eabi
    sudo apt-get autoremove
    sudo add-apt-repository ppa:terry.guo/gcc-arm-embedded
    sudo apt-get update
    sudo apt-get install gcc-arm-none-eabi=4-8-2014q1-0trusty8
    

Other

  • Programmers used for JTAG
    • Olimex-arm-usb-ocd and STLinkV2 are what we currently use, but any supported by OpenOCD should work
  • Debugging flow with GDB
    • make gdb will start gdb and connect it to openocd. make gdb_stl if you're using the StlinkV2 debugger.

stm32-1's People

Contributors

thirteenfish avatar kwilsonpdx avatar aperiodic avatar justrob83 avatar davidramage avatar andrewgreenberg avatar dsigma avatar natronics avatar

Watchers

James Cloos avatar  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.