Quick start using WinARM

WinARM is a collection of GNU tools for the ARM MCU family packed by Martin Thomas that works on MS Windows. WinARM is developed by inspiration on the WinAVR project, and it is effortless 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 do. WinARM toolset is compiled to work with most ARM microcontrollers, including the LPC2000 series, Atmel’s ARM microcontrollers, and Analog devices ARM microcontrollers. 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 instance 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:WinARMbin; c:WinARMutilsbin;

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

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


Then in Programmes Notepad (PN) open example project from c:WinARMexampleslpc2106_blink_switch folder called ledswitch.pnproj:


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

  • 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.


  1. Hi,
    i hav written a code in c . when i run “make all” command . i get following error . ” Process code :2 ” . why i m getting this error . ?

    Creating load file for Flash: ledswitch.hex
    arm-elf-objcopy -O ihex ledswitch.elf ledswitch.hex

    You may have to bring the target in bootloader-mode now.
    lpc21isp -control ledswitch.hex com1 115200 14746
    lpc21isp version 1.31
    File ledswitch.hex:
    converted to binary format…
    image size : 476
    Synchronizing………………………………………………………………………………………. no answer on ‘?’
    C:WinARMWinARMutilsbinmake.exe: *** [program] Error 4

    > Process Exit Code: 2
    > Time Taken: 01:31

  2. hi,i have add a example file named “lpc2106_blink_switch”in the main window but when i run ” make all” command …..i get a error in output window…..

    i.e > “make.exe” all

    > Failed to create process: The system cannot find the file specified.

    why i am getting this error ….
    please do help me…..

  3. Rohan:

    It seems that you clicked “Make Program” instead of “Make All” In your situation make script is trying to talk to programmer.

    vaibhav :

    Is your Path variable set up?

  4. when i click “Make all” i get this message.
    “This application has failed to start because cygintl-3.dll was not found. Re-installing the application may fix this problem. ”
    how to solve this problem. plz help.
    my email id is mohsin811@hotmail.com

  5. What’s the settings in the Tools – to make the [winavr] Make All ,Make Clean, & Make Program?

    pls share.thanks!

  6. how to make to WinAVR Make ALL?

  7. how to make to WinAVR Make ALL?

  8. > “make.exe” program

    Assembling (ARM-only): crt0.S
    arm-elf-gcc -c -mcpu=arm7tdmi -I. -x assembler-with-cpp -DROM_RUN -Wa,-adhlns=crt0.lst,-gdwarf-2 crt0.S -o crt0.o
    process_begin: CreateProcess((null), arm-elf-gcc -c -mcpu=arm7tdmi -I. -x assembler-with-cpp -DROM_RUN -Wa,-adhlns=crt0.lst,-gdwarf-2 crt0.S -o crt0.o, …) failed.
    make (e=2): The system cannot find the file specified.
    make.exe: *** [crt0.o] Error 2

    > Process Exit Code: 2
    > Time Taken: 00:00

    plz help me with this

  9. hii..can any1 tell me steps to run new program using winarm ????

  10. I have done the steps that are explained above
    After that i have run make all but it is giving following error


    How to remov that error??

    > “make.exe” all

    ——– begin ——–
    process_begin: CreateProcess((null), arm-elf-gcc –version, …) failed.
    make (e=2): The system cannot find the file specified.

    make.exe: *** [gccversion] Error 2

    > Process Exit Code: 2

Leave a Reply