The ARM Cortex M3 is a relatively new kid on the embedded controller block. This machine is as intricate as it is beautiful and getting started with the currently available tools is a usually a daunting task for most newcomers to this core, myself included. On this page I share a few bits of knowledge which I think might be useful to others.
At first, the development environment will probably seem overwhelmingly complicated. Not to worry, you are not a sissy; it is indeed very complicated. Editor, compiler, assembler, linker, debugger, jtag server & hardware, IDEs, the target system, your code... it all has to come together to work. But I can tell you this now: Compare it to a cold lake; Just take the dive. The temperature is actually not all that bad once your in :)
The following list mentions most of the documentation you may need to get started. Ofcourse you do not need to read all of it, but having these documents on your desk / laptop is very handy when working with a Cortex M3 processor.
Reference documentation
Books on ARM
I bought these, but you can find them on the web as pdf if your try hard enough, so I have been told. I do not know where. Really.
- ARM System Developers Guide
- The Definitive Guide to the ARM Cortex M3
- Embedded system design on a shoestring
GNU tools, JTAG and more
- Intro to the Cortex M3
- Hitex insiders guide to stm32
- openocd manual (compiled from source for most recent version or packaged here )
- Using Open Source Tools for STR7xx Cross Development
- Using Open Source Tools for AT91SAM7S Cross Development
- The manual of your target board (in my case an Olimex stm32-h103)
- Codesourcery GNU toolchain pdf docs (gcc, as, ld etc.)
- GNU Make manual
ARM (the company) docs
- Cortex-M3 Technical Reference Manual Revision: r1p1
- ARMv7-M Architecture Application Level Reference Manual
- AN179 - Cortex M3 Embedded Software Development
- ARM and Thumb-2 Instruction Set Quick Reference Card
- ARMv5 Architecture Reference Manual
- Thumb 16-bit Instruction Set Quick Reference Card
- CMSIS - The Cortex Microcontroller Software Interface Standard (CMSIS)
- AMBA 2 Specification
ARM RealView Compilation Tools - Version 4.0
- Developer Guide
- Assembler Guide
- Compiler Reference Guide
- Compiler User Guide
- Libraries and Floating Point Support Guide
- Linker User Guide
- Linker Reference Guide
ST Micro STM32 docs
- The datasheet of the MCU. An STM32F103B in my case.
- RM0008 STM32 Reference manual
- PM0056 STM32F10xxx Cortex-M3 programming manual
- AN2586 STM32F10xxx hardware development: getting started
- AN2606 STM32F101xx, STM32F102xx and STM32F103xx system memory boot mode
- AN2557 STM32F10x in-application programming using the USART
- PM0042 STM32F10xxx Flash programming