GNU ARM compiler

gnuarm.comIt looks like I don’t need to make my own ARM cross compiler afterall, thanks to gnuarm.com. Now I can either try to compile a bootloader and a Linux kernel for the development board, I can go for a smaller “embedded” solution, or I can try to code everything myself (I could, but I won’t).

To install the environment and not have it interfere with my running Linux installation I plan to use chroot. Chroot will change the root of the running program (for example the shell you have opened) so that it appears that it’s working in a completely isolated environment, leaving the files of the mother OS untouched. However it is not true virtualisation like VMWare or Xen, and although it is often referred to as a chroot jail it is not meant to be a safe environment. There are ways to break out of that jail and still access the files from the higher operating system. But I’m pretty confident that the ARM compiler won’t do anything like that. 🙂 For everything to work I’ll need to make a second set of system files for the chroot environment.

So first I make a directory chroot_env in my home folder, and I use debootstrap (I use Ubuntu at home and at work, and I love it) to install a minimal Ubuntu filesystem, you need to be root for that or use sudo in Ubuntu. If you don’t have debootstrap installed, in Ubuntu you can install it with sudo apt-get install debootstap.

The command is: sudo debootstrap gutsy ~/chroot_env/ http://archive.ubuntu.com/ubuntu
Total size of all this is about 212MB.

Once the chroot environment is installed you can access it with (as root/sudo, and assuming that you installed it in your home folder): chroot ~/chroot_env

Once inside the new environment, I also need some build tools to get started:
apt-get install build-essential
I also need to install the toolchain from gnuarm.com: exit the chroot env and copy the tarball to an appropriate place in the chroot tree, enter chroot again, extract the tarball and put the path of the bin directory into your $PATH variable (placing symbolic links in the /usr/bin folder to the arm-elf-* executables works too).

ARM development kit

SMDK40100I asked my boss about those evaluation boards I mentioned earlier, and he allowed me to take the ARM SMDK40100 home to play with. It’s not a gift, it’s just a loan, but I wasn’t hoping for anything more. If they need it back for any reason, they know where it is.
I also have a J-Link jtag debugger for the board, but I still need to check whether the connector is wired correctly, but I’m sure it’ll make my programming alot easier if I can get it to work.

I’m sure I’ll be allowed to use the PIC controller board too under those same conditions, but for now I’ve left it where it is.

I’ve been thinking about that POV project again, and I don’t see me using that ARM board for this to be honest. It’s way too large, and it consumes way too much power. The PIC controller is a much better candidate for that, as I can make that battery operated. I believe I saw a battery operated PIC board/programmer by Velleman if I’m not mistaken… It would an ideal start for that POV project.

First job would be to get me a cross compiler for that ARM processor. I know GCC can be made into a cross compiler for ARM, but I also know how much work it is to make your own cross compiler and how important it is to get those versions to match. Second, I should have a deeper look into those Velleman PIC programming kits.

On the account of the rs232 level converter, I haven’t received the samples yet, and I can’t find all the components I need at Conrad and Vael is closed next week. So I’ll only be able to get it going again in April.