There are no reviews yet. Be the first to send feedback to the community and the maintainers!
PUBLIC ANNOUNCEMENT! ==================== THIS PROJECT IS NOT UNDER ACTIVE DEVELOPMENT ANY MORE. THERE IS A BETTER REPLACEMENT FOR THIS! Since not so long ago there is a very good toolchain available that replaces summon-arm-toolchain. Is better tested and there are more people working on it. Consider visiting: https://launchpad.net/gcc-arm-embedded REMEMBER! ========= THE RESULTING TOOLCHAIN IS FOR BARE BONE ARM PROCESSOR SOFTWARE. NOT FOR USE WITH GLIBC OR THE LINUX KERNEL. DO NOT EVEN BOTHER TO ASK FOR THAT! Contact ======= You can find developers and users of this script on freenode IRC network in #summon-arm-toolchain channel. Feel free to join us and ask questions. Remember if you have a question it may take some time untill someone answers so ask your question and wait for a while untill someone sees your message. 10min is not long enough. :) If you don't have an irc client installed you can use the web interface here: http://webchat.freenode.net/?channels=summon-arm-toolchain&uio=d4 To compile the ARM toolchain for barebone ARM devices: ====================================================== * git clone https://github.com/esden/summon-arm-toolchain.git or * wget https://github.com/esden/summon-arm-toolchain/zipball/master; unzip master * cd *summon-arm-toolchain* * ./summon-arm-toolchain * Profit Command line options ==================== You can suffix the script call with the following variable parameters: TARGET= ------- By default the target is arm-none-eabi, you may want to use a different target, for example arm-elf. Use that option on your own risk it may brake things. PREFIX= ------- By default the installation prefix is "$(HOME)/sat" you can change it to "/usr" then the binaries will be installed into "/usr/bin" and the toolchain specific files in "/usr/arm-none-eabi" assuming you did not change the TARGET variable. DARWIN_OPT_PATH= ---------------- When compiling on Mac OS X the build script has to know where MacPorts or Fink is installed. The default value is "/opt/local". SUDO= ----- By default this variable is empty. If you need root rights for the install step you may set this variable to "sudo". $ ./summon-arm-toolchain SUDO=sudo This will prefix all make install steps with the sudo command asking for your root password. QUIET= ------ By default set to 0. To decrease console output (may increase compile speed in some cases) you can set this variable to 1. USE_LINARO= ----------- By default set to 1. To disable the usage of the Linaro GCC and use of the vanilla GCC instead set to 0. OOCD_EN= -------- By default set to 1. To disable compilation of OpenOCD JTAG programming software set to 0. LIBSTM32_EN= ------------ By default set to 0. To enable compilation of the non-free libstm32 library set to 1. LIBOPENCM3_EN= ---------------- By default set to 1. To disable compilation of the open source libopencm3 library set to 0. DEFAULT_TO_CORTEX_M3= --------------------- By default set to 0. To enable compilation of binutils and GCC to generate code for the Cortex-M3 ARM architecture by default set to 1. Tests have shown that using these options is not very reliable and is discouraged. It is more reliable to add the necessary options to your build environment instead. CPUS= ----- Overrides the autodetection of CPU cores on the host machine. This option is translated into the -j$CPUS+1 option to the make command when running the script. Example: -------- $ ./summon-arm-toolchain LIBSTM32_EN=1 CPUS=5 This will run the script with libstm32 enabled and with 5 CPUs on your host machine resulting in calling all make commands with -j6. Currently tested and known to work target platforms: ==================================================== * STM32F10x (Olimex STM32-H103 eval board, Open-BLDC v0.1, v0.2, v0.3, v1.0) Currently tested and known to work host platforms: ================================================== * Linux 32bit and 64bit (Debian unstable) * Mac OS X Snow Leopard with MacPorts Notes for Mac OS X users: ========================= For Mac OS X there are a few dependencies which must be installed. The wget and libftdi packages are required and gmp, mpfr, mpc and libiconv are needed by GCC-4.5.1. These can be installed using MacPorts, DarwinPorts or fink. $ port install gmp mpfr libmpc wget libftdi git-core py27-yaml python_select For XML support in gdb you may want to install expat too. And add the --with-expat parameter to the GDB target. Notes for Linux users: ====================== You need to install several packages. On Debian just run: $ apt-get install flex bison libgmp3-dev libmpfr-dev libncurses5-dev \ libmpc-dev autoconf texinfo build-essential libftdi-dev zlib1g-dev \ git zlib1g-dev python-yaml You may want to try running the following command instead too: $ apt-get build-dep gcc-4.5 git zlib1g-dev python-yaml For XML support in gdb you may want to install libexpat1 and libexpat1-dev too. Usage notes: ============ We support multilib now in SAT thanks to Eric Parsonage's and Bernard Davison's amazing work. You want to use the following GCC flag combinations to generate full fledged floating point supporting code for some selected architectures (default is to use software floating point). * ARM7TDMI-S targets: -mthumb -mcpu=arm7tdmi-s * Cortex-M0 targets: -mthumb -mcpu=cortex-m0 * Cortex-M3 targets: -mthumb -mcpu=cortex-m3 * Cortex-M4 targets: -mthumb -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=fpv4-sp-d16 If you need support for some other ARM MCU and know the parameters for it, just drop us a line and we will add that combination to the multilibs. You can list available combinations by running: $ arm-none-eabi-gcc -print-multi-lib Known Bugs: =========== - linaro gcc compilation exits without an apparent error Sometimes the compilation of GCC exits without any error, RERUNNING the sat script manages to compile a working gcc though. Stable tarball downloads and GIT cloning ======================================== The script has a section containing version numbers of the respective packages. Some packages have beside the stable release version number also a variable with the suffix _GIT. If that variable is set to either a branch name or a revision SHA the script will try to clone the repository and checkout the respective branch or SHA instead of downloading the stable version. If you provide a GIT branch name the script will contact the GIT server and query the associated SHA. If this SHA is already present in the sources directory it will not attempt to reclone the repository. How to submit improvements and patches ====================================== As more and more people start to submit patches and improvements to Summon-Arm-Toolchain (SAR) this section seems to become necessary. First of all any way of submission is appreciated, if you just want to dump your version of the script to us feel free to do so. Still if you want your improvements and fixes to go upstream quicker there is a good way to do that. 1) Create an account on GitHub (or some other git hosting service, if you really have to). 2) Fork the main SAR repository. 3) Clone the forked repository to your disk. 4) Change the script, try to make small changes adding one feature or bugfix at a time (that makes review much easier for us). 5) Push your changes to GitHub, or the other service you chose. 6) Test your changes, by compiling the toolchain (you probably want to do that with different options). 7) Make sure that everything still works. 8) Test a little bit more. 9) Click on "pull request" on GitHub or drop us a line so that we can pull your changes. I know that sounds like a lot of work, but if you don't we have to do it and that means that your awesome improvement or bugfix will take longer to be integrated into the official script. And as you, we want everyone to profit from such changes sooner then later. :)
open-bldc
OpenSource Brushless Drive Controller - The official repository is at http://github.com/open-bldc/open-bldcbitmagic
Open Source Logic Analyzers and data Syphonspretty-kicad-libs
Esden style kicad libraries.stm32-kicad-lib
KiCad libraries generated from the STM32Cube database.led-panel-docs
This repository contains RGB Matrix panel documentation. Schematics, datasheets and more.hadbadge2019_workshops
This repository contains all the materials for the Hackaday Supercon 2019 Pasadena FPGA Badge workshopspretty-eagle-libs
Eagle libraries pretty footprints...floss-jtag
Free Libre Open-Source/-Hardware JTAG/UART adapter based on FTDI2232HKiBus
KiCad bus length matching script.open-bldc-mk
A sideproject of Open BLDC. Open source Firmware for Mikrokopter BrushLess DC Motor controllers.fxload
A continuation of the fxload tool from linux-hotplug.superbitrf-firmware
Firmware for the superbit open source radio system.1BitSy
Small breadboard friendly STM32 (eventually other mcu's too) eval boards with exposed JTAG and SWD for the use with Black Magic Probe!icekeeb
iCEBreaker FPGA Keyboard Gateware and Firmware.ftdi-multitool
A modular FTDI FT232H USB to X tool.glasgow-addons
Various interface addon boards and expansions for the Glasgow Digital Interface Explorer1bitsy-bmpm-exercises
Class exersizes to learn about cross compilation, programming and debugging using 1Bitsy, Black Magic Probe GCC and GDB.locm3-stm32-ws2812
Example project to blink WS2812 leds from a STM32F4 discovery board.openocd
Free and Open On-Chip Debugging, In-System Programming and Boundary-Scan Testingelco
Embedded Lisp COmpiler (a Lisp compiler for bare metal 32bit embedded systems)pretty-kicad-scripts
Esden's collection of scripts and helpers for kicadopenmulticopter
openmulticopter is an effort to create a multicopter based on 100% Free Software and Free Hardware.stm32cube-database
STM32Cube database mirror/history tracking repositoryppm_to_spektrum_encoder
An atmega based board converting standard servo data to spektrum satellite serial protocol for use with Paparazzitimelapse_stitch
Some scripts for recording and stitching time lapse video.redcuttle
JTAG/SWD/UART signal multiplexer and switcherflosslogic
A portable, cross-platform, Free/Libre/Open-Source (floss) logic analyzer software that supports various (usually USB-based) logic analyzer hardware productspyTWANG
This is a python port of the 1D dungeon game TWANGicebreaker-temp
xslisp2
Next generation of xslisp fused together with brickos for saving space, plus additional functionalitymcu-perdef
Machine readable MCU peripheral register definition and annotation files.hadbadge2019_fpga
This repository contains HDL examples for the Hackaday Supercon 2019 badge.libstm32
Legacy firmware library for stm32. DO NOT USE!!!usb-io-tester
Small firmware for testing io on an stm32 based device using USB interface.stm32-datasheets
This repository contains the STM32 mcu datasheets, for future reference and possibility to version the files.lcdemu
Lcdemu is an Matrix Orbital character display emulator.sigrok
Portable, cross-platform, Free/Libre/Open-Source logic analyzer software.ppztool
Simplified interface for configuration, flashing, calibration and bring-up of paparazzi vehicles.icestorm-playground
Test/example projects for the IceStorm open source FPGA flow.libcmsis
Legacy cmsis library for stm32. DO NOT USE!!!stmwerk
STM32 eval boardlispcl
A Lisp client for the Player Projectplayer
Network server for robot control.osst
OpenSource Security Token1bitsy-selftest
Firmware that does it's best to test 1bitsy from within itself.rtwang
Rust implementation of the TWANG 1D Dungeon Game. (Just an excercise to learn rust...)simplux
Simple 8x8 led matrix driven by an stm32. Free to evolve! :)timelapse-screencaster
These are some helper shellscripts for generating timelapse screencasts.rgblights
RGB Portable Blinkenlightsdragon-obs-studio
obs-studio PKGBUILD integrating cef binary instead of relying on a separate package.libstm32usb
Legacy USB library for stm32. DO NOT USE!!!blackmagic-pinout-diagrams
Collection of useful connection standard pinouts for the use in documentation.stm32-pinouts
Machine readable stm32 pinouts and some scripts for manipulating those.Love Open Source and this site? Check out how you can help us