Available Projects and Information (Content)
- WinARM. The gnu-toolchain and several tools and samples for ARM controller/processors for MS-Windows-Platforms. (last Update of the package 28. Mar 2008 (Testing), last Update of additional information/add-ons/bug-fixes 6. Feb. 2008)
- WinXSCALE precompiled GNU-Toolchain for xscale-elf targets (last Update 22. Sept. 2006)
- OpenOCD as flash-programming Software for AT91SAM7, LPC2000 and STR7 (last Update 31. Aug. 2008)
- Using OpenOCD with ARMv7 / Cortex-M3 / LMI Stellaris (last update 9. Apr. 2008)
- A short introduction into ARM-JTAG debugging using Wiggler(-clones) and the gnu-Debuggers (last Update 4. June 2005)
- A small demo for the LPC2106 and LPC2129 (ARM7TDMI) controllers - LED and button interfaceing (GPIO) (last Update 19. March 2007)
- A small demo for the LPC2106 and LPC2129 (ARM7TDMI) controllers - LED and button interfaceing (GPIO) and Timer-Interrupt(via VIC) (last Update 19. March 2007)
- A small demo for the LPC2106 (ARM7TDMI) controller - UART-Programming (last Update 26. Oct 2004)
- A small demo for the LPC2106, LPC2129, LPC2138, LPC2368 and LPC2378 (ARM7TDMI) controllers - interrupt-driven UART (last Update 2. May 2007)
- Controller Area Network (CAN) with Philips LPC2129 (last Update 17. May 2005)
- arm-elf-gcc and newlib stdio/"printf"-Interface and LPC2129 ADC example (last Update 13. March 2007)
- arm-elf-gcc Example Application with some Functions in RAM ("fastrun"/"ramfunc") (last Update 17. May 2005)
- C++ with LPC ARM7TDMI/newlib/newlib-lpc (inheritance, polymorphism) (last Update 11. July 2006)
- Port of the Philips LPC213x/214x example-colletion for the gnu-toolchain (last update 5. Dec. 2006)
- GPIO, UART and interrupt example for the NXP LPC2378 / NXP LPC2368 (last update 29. June 2007)
- Interfacing Philips LPC2000 ARM7TDMI-S with memory-cards (SD/MMC) (last Update 14. Sept. 2008)
- FreeRTOS example with LPC2138 (last Update 19. May 2006)
- AT91SAM7S GPIO Example (last Update 22. July 2006)
- AT91SAM7S Timer interrupt Example (last Update 22. July 2006)
- AT91SAM7S UART Example (last Update 21. Sept. 2007)
- AT91SAM7S GPIO/interrupt/UART Example with a lot of "gcc specials" (last Update 3. Dec. 2005)
- AT91SAM7S USB Examples (last Update 10. Mar. 2007)
- Interfacing ATMEL AT91SAM7S ARM7TDMI with memory-cards (SD/MMC) (last Update 27. Apr. 2007)
- GNU-Port of the Atmel "MIPS" example with "gcc/as specials" (last Update 15. July 2006)
- AT91SAM7 SWI, Remap, GPIO, PIT and stdio Example ("gamma") (last Update 30. Aug 2007)
- C++ with the GNU-Toolchain on an AT91SAM7 (last Update 14. Sept. 2006)
- Analog Devices ADµC7000 ARM7TDMI controller Examples (last Update 5. Dec. 2007)
- STR71x GPIO, Interrupt, Timer Example (last Update 25. Apr. 2007)
- STMicroelectronics ARM Controller Examples (last Update 22. Sept. 2006)
- GNU port of the STR7 UART-Bootloader (last Update 24. Sept. 2007)
- ARMv7 Cortex M3 examples for LM3S and STM32 (last update 27. July 2008)
- Interfacing Maxim/Dallas DS18x20 Temperature Sensors with an LPC2106 (ARM7TDMI) (last Update 26. Nov 2004)
- Interfacing Graphics-LCDs with the ARM controllers (KS0108, SED1520) (last Update 17. Oct 2007)
- "T"-Clock: DCF77 radio-clock-receiver with Graphics-LCD display for LPC2106 (ARM7TDMI) (last Update 23. Dec 2005)
- Machine-to-Machine (M2M) communication A data-logger with GPRS-connection (last update 1. Mar. 2006)
- A patched version of the ULINK Windows-driver (last Update 7. Sept. 2005)
"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.
- Download the WinARM 20060606 zip-Archive here (ca. 95 Megabytes, "Readme.htm" of this version).
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:
- Alex Gibson kindly provides a mirror-site (winarm.alexthegeek.com)
- Oleg Seiljus from xVerve provides a WinARM-package with an installer and additional drivers for the Signalyzer tool (in the Support/Download-section of the xVerve Web-site).
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
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