|
|
ARM7 and Cortex-m3 Embedded Software |
|
You will find here software for ARM7TDMI and ARM Cortex devices. This is work in progress, when completed, the manufacturers supported will be ST, Luminary, NXP and Atmel. This site only provides support for Linux. There are several options for windows users but not very many for Linux. If you found those files useful take a few minutes and make a small donation. This button will provide you with a secure connection to paypal. If you need to reach me by Email for any reason add an @ after my name in mcatudalcomcast.net to get my Email address. The Fedora 9 binaries provided here are 32 bits binaries. If you need the 64 bits binaries let me know and I will provide them. These binary will work on Mandriva, SuSE or any other system that uses RPM files. For ubuntu or debian you need to convert the RPM files to deb packages with alien, there is no need to build your own debian or ubuntu packages. I plan on eventually create slackware packages. If you need them in a hurry a donation will speed things up. If you want to compile your own take note of the fact that to compile gcc you need to allready have gcc and newlib installed. You can solve that problem by installing the binaries provided here and then compile and install your own. I have two set of binaries here, the latest released code and the latest CVS code. I only provide the cvs version of newlib. If you prefer the released one instead you will need to compile your own. Take note that it is compiled to not use the internal hardware functions which wouldn't work anyway.For the nxp devices you can find what you need at Aeolus Development For Atmel devices you can find some newlib replacement functions at AT91 ARM-Projects. For STM32, STR7 or luminaries you could use a modified syscall.c file from the AT91 ARM Projects site. That would remove the link error messages when you use sprintf or siprintf. For more details on newlib functions needed you can read at the Red Hat newlib C Library. Please note that the thumb2 library directories are at their default location within the thumb directory and not separate as codesourcery does. The thumb2 code is not fully tested so feedbacks are welcomed. If you install Openocd make sure that you save the file setmode on /etc/udev if it allready exists as well as 45-ft2232.rules on /etc/udev/rules.d. I support a lot of devices in there but yours might not be one of them. You would need to add the information for your usb devices in the file 45-ft2232.rules. You could also recreate the package and change the patch that I use to add this. This may not be enough for SuSE 11. Last I used SuSE 11 I had to do a global remount every time I would boot. I am not sure what SuSE's problem is. There is no such problem on Fedora or Mandriva. On Fedora there is often a permission problem, there are different ways to deal with that problem. You can use sudo or do a chmod a+s /usr/bin/openocd. The new version of OpenOCD now supports J-Link from Segger or IAR and R-Link from Raisonnance. I have not tested my R-Link device since it uses a smaller connector, as with J-Link it is very new code so don't expect much at this time. Take note that OpenOCD has issues with older versions of J-Link. No matter what I did I could not get any of my older black devices to work with OpenOCD. It connects perfectly with the newer J-Link from IAR. It even works with the ILoveST board. You can download my sample configuration files to give you an idea. The problem with the J-Link support right now is that it too slow to be usable. For example a program that takes about 12 seconds to program with Olimex Tiny, takes about 53 seconds with J-Link and gives tons of error messages as it goes. There is a bug in the latest SVN code as far as the Olimex Tiny jtag programmer is concerned. The problem has to do with a difference between the windows and Linux support of the USB device. The official interface configuration will only work with windows and not work with Linux. The maintainers of openocd don't know how to go around the problem at this time. I created a new configuration file named olimex-jtag-tiny.cfg. The nonfunctioning one is called olimex-jtag-tiny-a.cfg. Both files are situated on /usr/lib/openocd/interface Here is the content of the working configuration file : # REFERENCE: http://www.olimex.com/dev/arm-usb-tiny.html interface ft2232 ft2232_device_desc "Olimex OpenOCD JTAG TINY" ft2232_layout olimex-jtag ft2232_vid_pid 0x15BA 0x0004 Here is the content of the buggy configuration file # REFERENCE: http://www.olimex.com/dev/arm-usb-tiny.html interface ft2232 ft2232_device_desc "Olimex OpenOCD JTAG TINY A" ft2232_layout olimex-jtag Even with the garbage removed at the end of the description it would not work without specifying the ft2232_vid_pid values. If your device doesn't work you need to check in /proc/bus/usb/devices for the description of the device connected. If the description is different you need to also change the /etc/udev/rules.d/45-ft2232.rules file. Here is the information found for mine : T: Bus=05 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 3 Spd=12 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=15ba ProdID=0004 Rev= 5.00 S: Manufacturer=Olimex S: Product=Olimex OpenOCD JTAG TINY S: SerialNumber=FTPX9QML C:* #Ifs= 2 Cfg#= 1 Atr=80 MxPwr=100mA I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none) E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none) E: Ad=83(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=04(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms Si vous avez de la difficulté à comprendre l'anglais vous n'avez qu'à m'envoyer un message et je verrai si je peux vous aider. Je prévois faire une page en Français avant le printemps. Je vais éventuellement faire des versions de mes HOWTO en Français. Download Area
I will have a new HOWTO for Luminary in a few days, much like the new one for STM32 I do not provide the source of the library. This is
proprietary code
and I don't want to be in trouble with Luminary Micro. I was given the
permission to distribute the library in binary form. They make it very
clear
that they do not want any of their source code to be embedded in GPL
code. You can link the library into your code easily. The documentation
is on the /usr/arm-elf/doc directory. If you badly want to mess with the source code you can download it from the Luminary Micro's web site Eventually I will have some CAN library. If for example
you want to write some program that will read codes from your car, this
will make your coding a little easier. If anyone wants to share work on
this, feel free to get in contact with me. arm-elf-gdb needs OpenOCD to communicate with the hardware. If you use an ftdi device you will need libftd2xx. Take note that this OpenOCD package requires libftd2xx to be installed. If you wish to use the open source driver instead you will need to change the spec file of OpenOCD and recompile. You will also need to recompile if you use the wiggler or a wiggler clone. |
This page has been hit times.
Copyright 2009 Michel Catudal