.section .intro

@@ This is a growing collection of links to handy resources for learning about and
@@ working low-level with ARM CPUs (primarily ASM related)
@@ If you want to contribute an interesting link, feel free to get in touch!

        .section .data
        .align 2

        .asciz "https://github.com/thi-ng/asm.thi.ng"

        .quad 1459026639338 @ 2016-03-26 21:11:39

        .word 77

        .section .links.tools

        .asciz "GCC ARM embedded (arm-none-eabi)"
        @ ARM cross-compiler toolchain

        .asciz "GNU ARM Eclipse"
        @ Eclipse CDT plugin & debugger for embedded devices

        .asciz "Zylin Embedded CDT"
        @ GDB / Eclipse debugger bridge

        .asciz "ST-Link"
        @ Easy-to-use programmer for ST-Link devices (e.g. STM32, Nucleo...)

        .asciz "OpenOCD"
        @ Most flexible of the opensource chip debuggers

        .asciz "STM32CubeF4 SDK"
        @ Official STM SDK, incl. HAL, ARM CMSIS base & board specific drivers

        .asciz "STM32CubeF7 SDK"
        @ Official STM SDK, incl. HAL, ARM CMSIS base & board specific drivers

        .asciz "ARM CMSIS"
        @ Vendor independnt hardware abstraction layer for Cortex-M devices

        .asciz "CMSIS DSP library"

        .asciz "ChibiOS"
        @ Open source environment for embedded applications incl. RTOS, HAL, peripheral drivers

        .asciz "libopencm3"
        @ Firmware library for various ARM Cortex-M microcontrollers & GCC toolchain

        .asciz "Protothreads"
        @ Extremely lightweight stackless threads designed for severely memory constrained systems

        .asciz "STM32Fxx HAL libs"
        @ Highlevel wrapper's for standard STM HAL drivers (incl. examples)

        .asciz "Eclipse project templates for STM32Nucleo-F4"

        .asciz "mbed-os"
        @ Modular operating system for ARM microcontrollers

        .asciz "Yotta"
        @ X-platform build system for Mbed OS based projects

        .asciz "STM32CubeMX"
        @ Comprehensive CPU & middleware config, code/project generator

        .asciz "CMSIS-SVD-sourcegen"
        @ Extensible multi-language codegen for CPU peripheral register definitions

        .asciz "CMSIS-SVD"
        @ ARM CMSIS-SVD Repository and Parsers

        .asciz "mbed IDE/SDK"

        .asciz "GCC Interactive compiler"
        @ Multi-platform GCC w/ color coded mapping from C to Asm sections

        .asciz "ODA Online Disassembler"
        @ Multi-platform disassembler and code graph visualization

        .asciz "VisUAL - A highly visual ARM emulator"
        @ Java based x-platform tool to make learning ARM Assembly language easier

        .section .links.devices

@@ The STM32 family by ST Microelectronics is one of the largest and
@@ most popular ARM Cortex-M CPUs. We also use them for our workshops...

        .asciz "STM32 family device selector"
        @ Overview of the 100+ CPU & board variations in this family

        .asciz "STM32 discovery boards (Cortex-M0 - Cortex-M7)"

        .asciz "STM32F4-DISCO"
        @ 1MB Flash, 192KB RAM, accel/gyro, USB, Audio DAC

        .asciz "STM32F429I-DISCO"
        @ 2MB Flash, 256KB RAM, 2.4" LCD-TFT, accel/gyro, USB

        .asciz "STM32F469I-DISCO"
        @ Cortex-M4, 2MB Flash, 324KB RAM, 4" LCD-TFT (800x480), USB, Audio DAC, Ethernet, Arduino conn

        .asciz "STM32F746G-DISCO"
        @ Cortex-M7, 1MB Flash, 340KB RAM, 4" LCD-TFT (480x272), USB, Audio, Ethernet, Arduino conn

        .section .links.references

        .asciz "STM32F3/STM32F4 Series Cortex-M4 programming manual (PM0214)"
        @ Includes full instruction set reference

        .asciz "STM32F401x reference manual"
        @ Device specific documentation incl. pinouts and all peripherals

        .asciz "STM32F405/415, 407/417, 427/437 & 429/439 reference manual"
        @ Device specific documentation incl. pinouts and all peripherals

        .asciz "STM32F4xx HAL driver manual"

        .asciz "STM32F7xx HAL driver user manual"

        .asciz "ARM Cortex-M4 Technical Reference Manual"

        .asciz "ARM and Thumb-2 Instruction Set Quick Reference Card"

        .asciz "Book: Mastering STM32"
        @ Still WIP, but shaping up to be a great intro book to the STM32 platform

        .asciz "Discovering the STM32 Microcontroller"
        @ Course textbook by Geoffrey Brown, lots of example code

        .asciz "E-book: The Insider's Guide to the STM32"
        @ Indepth coverage and guide to working with core peripherals

        .asciz "E-book: Modern C"

        .asciz "E-book: Computer Science from the Bottom Up"
        @ Contains essential reading about ELF format

        .asciz "ARM Assembly Language Programming"
        @ Slightly outdated (from 2001), but essentials still valid

        .asciz "How to C in 2016"

        .asciz "Efficient C for ARM"
        @ Lots of bitesize examples in both C & Asm

        .asciz "A whirlwind tour of ARM assembly"
        @ Comprehensive overview

        .asciz "Introduction to ARM assembly (course notes)"

        .asciz "GNU Assembler documentation (v2.24)"

        .asciz "ARM: Introduction to ARM: Start"

        .asciz "Embedded Programming with the GNU Toolchain"

        .asciz "ARM GCC Inline Assembler Cookbook"

        .asciz "Useful assembler directives and macros for the GNU assembler"

        .asciz "ARM VFP instruction set"

        .asciz "ARM VFP Vector Programming"

        .asciz "Defining structs in GNU AS"

        .asciz "ARM Interrupt handling"

        .asciz "Writing your own Asm startup code for Cortex-M"

        .asciz "ARM assembly language"
        @ Assembly language programming on ARM microprocessors with code examples

        .asciz "Carmine Noviello"

        .asciz "stm32f4-discovery.com"

        .asciz "Hackaday (ARM category)"

        .asciz "codingforspeed.com"

        .asciz "A Fixed-Point Introduction by Example"

        .asciz "Fast fixed-point Sine approximation"

        .asciz "A Guide to Approximations"

        .asciz "Fixed Point Arithmetic on the ARM"

        .asciz "Intel HEX format"
        @ Binary data ASCII encoding, often used as target format for flashing MCUs

        .section .links.projects

        .asciz "DIY Synth London workshop repo (STM32F7 - Jan 2016)"
        @ Complete Eclipse project w/ 4 examples (incl. polyphonic synth & touchscreen GUI)

        .asciz "DIY Synth London workshop repo (STM32F4 - Dec 2015)"
        @ Complete Eclipse project w/ 8 examples (incl. polyphonic MIDI synth)

        .asciz "Mutable Intrument's Eurorack synth modules"
        @ C++, incl. fully featured DSP lib

        .asciz "MrBlueXav/Dekrispator_v2"
        @ Experimental synthesizer & autonomous noise box w/ USB MIDI

        .asciz "MrBlueXav/Juronstruktor"
        @ Basic sample player with sequencer and effects based on the Dekrispator

        .asciz "stm32doom"
        @ DOOM port for the STM32F429-DISCO board

        .asciz "TDAbboud/STM32F4_Examples"

        .asciz "rowol/stm32_discovery_arm_gcc"

        .section .links.contact

@@ Get in touch, submit a link or sign up to a workshop

        .asciz "@toxi"

        .asciz "@forthcharlie"

        .asciz "workshop.thi.ng"