Quick start using WinARM

WinARM is a collection of GNU tools for ARM MCU family packed by Martin Thomas that works on MS Windows. WinARM is developed by inspiration on WinAVR project and it is really simple to start working with it if you had a chance to try WinAVR. WinARM doesn’t depend on cygwin or mingw-environment like GNUARM tools does. WinARM toolset is compilled to work with most ARM microcontrollers including LPC2000 series, Atmel’s ARM microcontrollers and Analog devices ARM microcontrollers as well. Basically tools should work with any microcontroller with ARM architecture.

Latest WinARM includes in Version 20060606:

  • GNU-C/C++-Compiler Version 4.1.1 incl. stdlib3. The configuration supports ARM-Mode, Thumb-Mode and Mixed(ARM/Thumb)-Mode, little/big-endian and floating point-emulation;

  • GNU-Binutil;

  • newlib Version 1.14.0;

  • newlib-lpc Rel.5a (reentrant syscalls for newlib and Philips LPCs)

  • GNU-Utils to support the compiler/linker;

  • ARM header-files (register-defintions);

  • Example applications with full source-code, makefiles, linker-scripts and startup-code for Philips LPC2000, ADuC7k and Atmel AT91SAM7 ARM7TDMI controllers.

  • Programmers Notepad Editor Version

  • The lpc21isp in-system-programming-software for Philips LPC2xxx and the Analog Devices ADUC 70xx family by Martin Maurer. Included Versions: 1.31 and 1.37(BETA)

  • Bray Terminal by Vlado Brajer

  • Insight-GDB 6.5.50-20060517 – Win32-Native from devkitpro.org

  • gdb (command-line without Insight) GNU gdb from;

  • Setup-Exe of Macraigor’s OCDRemote (Wigger-gdb interface, Ver. 2.16);

  • Open On-Chip debugger (OpenOCD, SVN Version 65) made by Dominic Rath ;

  • H-JTAG (Ver. 0.2.1 beta 20060402) made by “twentyone” ;

  • J-Link gdb-Server V1.0 from the gnuarm yahoo-group;

There is still installer needs to be done.

Few ease steps to start working with WINARM:

  • Download WinARM from here or more compressed 7zip package here.

  • Extract package contents in system root (for instant on C:\WinARM);

  • Set Environmental variables. Goto “Control Panel” -> “System” -> “Advanced Tab” -> “Environmental variables”

    Edit “System Variables” -> Path

    add the following lines in the end of the Path variable.

    (if you extracted WinARM to c:\) ;c:\WinARM\bin;c:\WinARM\utils\bin;

You are set up. Now lets compile an example project:

Open Programmers Notepad (pn.exe) from C:\WinARM\pn folder:

Programmers Notepad Winarm

Then in Programmes Notepad (PN) open example project from: c:\WinARM\examples\lpc2106_blink_switch\ folder called ledswitch.pnproj:

WinARM project

And now you can compile(make) the program by selecting one of following commands:

Winarm make project

  • Make All – compile the program to hex file;
  • Make Clean – remove all the object files and binaries of previous compilation;
  • Make Program – run the lpc21isp to download the compiled hex file to your LPC ARM( makefile has to be set up for this operation).

Now you know ho the things are working. It is time to dig more deeper.

Related posts:

About author

This article was written by admin

Admin has over twenty years experience in the electronics industry, largely dedicated to embedded software. A frequent presenter at conferences and seminars and author of numerous technical articles. Working presently as Development Manager in India. A firm Believer in Knowledge grows when it shared.


Comments (1)
  1. Amedar Consulting Group says - Posted: September 8, 2012

    What’s Happening i’m new to this, I stumbled upon this I’ve found It positively useful and it has helped me out loads. I hope to contribute & aid other users like its helped me. Great job.

Leave your comment

Your email address will not be published. Required fields are marked *