Available Projects and Information (Content)

"Last updated" may be just additional information not always a new version of a software-package. All presented LPC2106, LPC2129 and LPC2138 projects should work with minimal modifications in the linker-scripts and source-code on all Philips LPC2xxx controllers. Most of the code should also work on other ARM7TDMI controllers after small modifications.

If you think that I could help you with your projects: just send an e-mail. I'm looking for "freelance"-jobs.


If you send me an e-mail: Please use your full name (your _real_ full name). And it's always nice to get some kind of feedback if an answer to a question did help or did not help. I often spend a lot of time answering e-mails and would at least like to know if my suggestions did or did not help solving a problem.



WinARM

WinARM is a collection of GNU and other tools to develop software for the ARM-family of controllers/processors on MS-Windows-hosts. Unlike other collections WinARM does not depend on a cygwin or mingw-environment. All needed tools are in the distribution-package. WinARM has been tested with Philips LPC2106, Philips LPC2129, Philips LPC2138, Philips LPC2148 and Atmel AT91SAM7S64, AT91SAM7S256, AT91RM9200 ARM7TDMI(-S) controllers (the list is based on own tests and user feedback). The gnu-toolchain and the supplied tools should work with all microcontrollers based on ARM(-TDMI/Thumb etc.) architecture. WinARM has been made in the spirit of WinAVR which is a collection for Atmel AVR 8bit-Controllers.

WinARM includes in Version 20060606:

  • GNU-C/C++-Compiler (cross compiler/linker/assembler arm-elf-*) Version 4.1.1 incl. stdlib3. Compiled from the FSF-Sources The configuration supports ARM-Mode, Thumb-Mode and Mixed(ARM/Thumb)-Mode, little/big-endian and floating point-emulation
  • GNU-Binutils Version Version CVS 20060606 FSF-Sources
  • newlib Version 1.14.0 (build for reentrant syscalls)
  • newlib-lpc Rel.5a (reentrant syscalls for newlib and Philips LPCs)
  • GNU-Utils to support the compiler/linker (make, sh etc. from the mingw-project)
  • ARM header-files (register-defintions) from gnuarm.org and others
  • Example applications with full source-code, makefiles, linker-scripts and startup-code for Philips LPC2000, ADuC7k and Atmel AT91SAM7 ARM7TDMI controllers. More Examples on my ARM-Projects pages.
  • Programmers Notepad Editor Version 2.0.6.1
  • 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 6.4.50.20060226-cvs from Codesourcery
  • Setup-Exe of Macraigor's OCDRemote (Wigger-gdb interface, Ver. 2.16)
  • Open On-Chip debugger (OpenOCD, SVN Version 65) made by Dominic Rath, update available further down.
  • H-JTAG (Ver. 0.2.1 beta 20060402) made by "twentyone"
  • J-Link gdb-Server V1.0 from the gnuarm yahoo-group

Planned extensions:

  • Installer

User-Forum: A support-forum for WinARM/arm-elf-gcc and the example-projects. You are invited to visit this forum and ask questions or help others.

Download by right-click->save as, please download only one of the archives either the zip or the self-extracting-archive. The contents is the same. Please respect all licenses of the included components. WinARM itself has no additional license.

or

  • Download the same version but packed with a different packer (7zip) and available as self-extracting-archive here (just ca. 44 Megabytes).

Please do not use download-managers with more than 5 parallel connections! (There are people who use >30 parallel connections.) Download only one of the archives (zip or the self-extracting archive). Both archives have the same content, which has just been packed with a different method. I will be forced to throttle the server and use traffic-shaping if this habbits do not stop.

Mirror sites:

Updates and Add-Ons:

  • Gérald/dupon jean has sent a ARM makefile-generator similar to Jörg Wunsch's mfile (for AVR). It can be downloaded here.
  • Michael Fischer modified gdb to improve compatibilty with Eclipse. His gdb-Version is available here.
  • A zip-Archive with Dominic Rath's OpenOCD (including some drivers and information) built for Win32 (using MinGW/msys) is available here (ARM7/ARM9/Cortex-M3/XScale for ParPort and FTDI FT2232 interfaces, Mainline/Trunk SVN994). Some packages of older versions can be found here
  • OpenOCD (MS-Windows "native build") including an installer is available from Michael Fischer's Yagarto pages.
  • lpc2129_adc_stdio example-update
  • Updated AT91SAM7s-examples
  • MS Windows-binary of lpc21isb V1.43 (beta).
  • Test-release WinARM 20070505: release-notes, Download (self-extracting archive created with 7-zip, 118MB(!)), Download (zip-Archive, 180MB(!))
  • Another test-release: WinARM 20080331. Based on GNU Binutils 2.18.5, GNU gcc 4.3.0 (C/C++), newlib 1.16, GNU gdb 6.8 (with XML and TUI support), OpenOCD SVN527. The precompiled toolchain offers thumb2 support (i.e. for Cortex-M3 like LuminaryMicro LM3S and STMicro STM32.) Again: just a test-release, preliminary tests with examples for LM3S811 and STM32F103 worked as expected. Download the 20080331 test-release [here] (ca. 37MB, no examples included)

WinARM and Keil/ARM uVision

Jaroslav Ban from the Technical University Kosice kindly contributed some files which help to integrate the GNU-Tools from WinARM (arm-elf-gcc/arm-elf-as) into the Keil/ARM uVision IDE. There is a readme-file in the archive with installation- and usage-instructions. (Update mthomas 20070913: objcopy-"glue" for "create hex-file"). [Download] (glue-package version 20070913).

WinARM and Microsoft Vista

Adriaan Beluga has sent the following e-mail: Thanks for your suggestions. With them I managed to get everything to work again under Vista ! ;-) In the end I only needed to modify the path in my batch file which starts "pn.exe". Here is what it looks like now:

@echo off
set ARM=c:\WinARM
set PATH=%ARM%\libexec\gcc\arm-elf\4.1.1;%ARM%\bin;%ARM%\arm-elf\bin;%ARM%\utils\bin;
start /b pn

Thanks to Adriaan for testing WinARM with Vista (I currently do not have access to a PC running Vista). Users who do not use a batch-file to start Programmers-Notepad or another editor may add the entries to the system search-path from the Workplace properties. So where Windows NT/2K/XP users just added C:\WinARM\bin;C:\WinARM\utils\bin Vista users add C:\WinARM\libexec\gcc\arm-elf\4.1.1;C:\WinARM\bin;C:\WinARM\arm-elf\bin;C:\WinARM\utils\bin .

Information from Michael Langfort: I’m using the 20060606 version of WinARM on Vista Home Premium. When I tried to build a WinARM-based project (that builds fine on WinXp), I got an error:

1>arm-elf-objdump -h -S -C app.elf > app.lss
1>/usr/bin/sh: /c/winarm/bin/arm-elf-objdump: Invalid argument

1 comment:

  1. Hi. I have a question for you because I'm experiencing some troubles with SPI on LPC2129. The fact is that there is not SCLK signal when configuring it as master, with S0SPCCR=0x08, and S0SPCR=0X20. I've been playing with some pull-up resistor values in SSEL pin (as datasheet says), in the range 47K to 100R, but with none of them I've gotten the SPI to work as expected. Besides, when trying to write, say 0xAA, to S0SPDR register, it holds 0xFF. Hope you've resolved this issue, and any help would be very appreciated. Thank you in advanced.

    ReplyDelete