|
|
AVR32, PIC32 and ARM Embedded Software |
|
|
Time is money so if any files on
this site are of use to you please
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.
I don't have the storage space to
provide files for all the
distributions that I support so I only put files for two Linux
distributions on this site.
If you need binaries for Debian, SuSE
or Fedora you can get in touch with
me and for $10 I can provide you with the necessary binaries on a CD.
You can use the secure paypal
connection to make your payment.
Mandriva is not supported by Atmel but it is possible to install the tools on it anyway. In a few weeks Atmel will replace the files on their websites with the new tools, they have allready released the beta version for Windows but not the one for Linux. The basic difference with the new tools is the added support for the AT32UC3C0512 and other UC3C devices. I will update this HOWTO when that happens. The files that work the best for Mandriva 2010.0 are those for Fedora 10. There are a few issues to deal with as it will not install at all due to differences in library versions and the way Fedora made certain packages. The Fedora 10 files needed can be found on this Atmel web site on the subdirectory 10. avr32-binutils-2.19.atmel.1.0.0-1.fc10.i386.rpm avr32-gcc-newlib-4.3.2-atmel.1.0.1_1.fc10.i386.rpm avr32-gdb-6.7.1.atmel.1.0.4-1.fc10.i386.rpm avr32gdbproxy-4.0.0-1.fc10.i386.rpm avr32headers-2.1.92-1.fc10.noarch.rpm avr32parts-2.2.0-1.fc10.noarch.rpm avr32program-4.0.0-1.fc10.i386.rpm avr32trace-2.2.0-1.fc10.i386.rpm avrfwupgrade-1.1.3-1.fc10.i386.rpm libavr32ocd-4.0.2-1.fc10.i386.rpm libavr32sim-0.2.4-1.fc10.i386.rpm libavrtools-4.0.2-1.fc10.i386.rpm libelfdwarfparser-3.0.1-1.fc10.i386.rpm Do not install the following two files, they are not necessary, they are basically empty packages to force some dependency. Normally on Fedora you would use yum and only need to call for the toolchain file. yum would find all the files that are needed. avr32-gnu-toolchain-2.2.1-1.fc10.i386.rpm avr32-buildroot-essentials-1.0.0-1.fc10.i386.rpm When you try to install the AVR32 toolchain you should have only three problems. It wants libboost_filesystem-mt.so.3 which is not on Mandriva 2010.0. Mandriva has libboost_filesystem-mt.so.5. Luckyly Fedora 10 has a different name for that library. Install the Fedora 10 boost-1.34.1-18.fc10.i386.rpm file. This will cover this dependency. The second problem has to do with elfutils. The install complains that elfutils-libelf is missing and will refuse to install. The reason is that Fedora has split the package and has a package named elfutils-libelf. You can use this file to fix that dependency, it is basically a do nothing package with just a text file telling you exactly that. Make sure that you have elfutils installed otherwise you are likely to have problems when you try to run the tools. The third problem is with libtinfo. This library used to be part of ncurses but is no longer part of it for Mandriva and many others. The name has changed for Mandriva but not for Fedora. You need to do a link to fool the program who expects to find libtinfo. ln -s /lib/libtermcap.so.2.0.8 libtinfo.so.5 An installation due to libtinfo may still fail but install it with --nodeps to force rpm to install it anyway. It will run fine later. Make sure that no other dependancies are found. Do not force any installation beside this one. If you have other dependencies errors this means that you need to install what is missing. This installation order is important as some files are dependent on others being installed. The libraries and headers should be installed first. binutils needs to be installed before gcc. ARM Software Take note that newlib is now part of the gcc package. For newlib information you need to do a little reading. 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. In order to create Ubuntu packages you need to install the packaging support files. Look here for more details. I provide the source for binutils and newlib. For gcc and gdb you need to get the official released version. To create a package you need to decompress the source in two directories. The first directory is the one as created when you decompress the file and the second one is a copy of the first on with .orig tagged to the end of the name. You then apply the patch to the first directory. From that directory you run : debuild -i -us -uc -b It will create the package without signing it. You can't sign it since you are not the maintainer of the package. I was successfull in creating packages on Ubuntu 8.10 32 bits, Ubuntu 9.04 32 bits and Ubuntu 9.04 64 bits using the exact same scripts. If you cannot create the packages this means that you have to install some missing programs. After you have created the binutils package you need to install it. You may have a conflict with the locales, if that is the case don't install the local files. You shouldn't have that problem with gcc. When comes time to create the gcc package make sure that you copy the newlib file on the same directory as the directory when you decompress your files. This is important because the script will fail if it can't find newlib. You will not be able to compile gcc without newlib's presence. Look at the commands in rules and you will understand what I am talking about. Make sure that if you look at the rules files, that you do not use an editor that will replace the tabs with spaces because the script will barf if there are any spaces at the beginning of a line. It then gives messages that have no relation whatsoever with the actual problem. Good luck finding what is wrong with your script then. Use joe or vi for your editing. I do not provide the source of the library. This is
proprietary code
and I don't want to be in trouble with Texas Instruments. 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. On Ubuntu a missing libexec directory would make arm-elf-gcc fail. This is fixed in rev 2. arm-elf-gdb needs OpenOCD to communicate with the hardware. This 0.3.1 version fixes the "brown paper bag" bug in the released version 0.3.0 With version 0.3.0 it was no longer possible to program STM32 devices. For the ubuntu version you need to copy the udev file like this : sudo cp /usr/share/openocd/contrib/openocd.udev /etc/udev/rules.d/98-openocd.rules PIC32 Software This code is from the SVN server and has not been fully tested by me yet. It is based on the source that has been made public by Microchip. The name has been changed so it will not violate any patent or registered trademark. This code has only GPL code which means that it doesn't include any proprietary software like the Microchip libraries. It also means that you need to write your own functions if you need newlib functions. I don't have any gdb version yet, I need to have OpenOCD working for the PIC32 first. Just monitor this site to see the progress. If you wish to contribute on the work let me know what part you want to work on. |
|
|
|
|
|
|
|
This page has been hit times.
Copyright 2009 Michel Catudal