This application will only work for cities in Canada. The ministry of the Environment provides RSS feeds on a
website for every (almost every) cities in canada. I made an application that downloads the RSS feed, parses it and then
presents it in a format that is suitable for the Aastra phone. The current package has the city of Ottawa hardcoded in it
but this is easily changed.
Installing the development environment
I wrote this howto because everywhere I was looking , people kept talking about the "buildroot". I didn't
want that. I just wanted the basic stuff to get me going and do standalone development without installing all the
linux kernel files and libc etc...
First, download these files:
1 - compile binutils
./configure --prefix=/opt/avr32 --program-prefix=avr32- --target=avr32-linux
Now add the /opt/avr32/bin path in your PATH.
I installed that in /opt/avr32 and all the applications are prefixed with "avr32-" (avr32-ar, avr32-as etc)
2 - compile GCC
../configure --target=avr32-linux --prefix=/opt/avr32 --enable-languages=c --disable-threads --disable-libmudflap --disable-libssp --disable-libgomp --program-prefix="avr32-"
3 - copy the header files
Now unzip the header files in /opt/avr32/avr32-linux/include (the "include" folder will need to be created first)
4 - Make a test application
I made this code as a test application that flashes a led on the board.
Compile it using this Makefile and see if it works
5 - upload the test application on your device
The first thing to do is to connect the board using a serial port. By default communication is established at 115200 8N1.
when booting the device, you have 1second to press "space" to get in the uboot prompt. I connected
the "lan" port of the device to my switch and entered the following commands:
setenv tftpip 192.168.1.3
setenv serverip 192.168.1.36
setenv bootcmd 'set ipaddr 192.168.1.37;tftpboot 0x24004000 firmware.bin;go 0x24004000'
the bootcmd variable tells uboot what to do at boot time. In this case, it will connect to the tftp server located
at the address provided in 'tftpip' and download "firmware.bin" and store it at memory location 0x24004000. After
that, it will jump to that address.
If you're trying to upload in flash memory, you need to unprotect a whole block, erase it and write to it. Blocks
are 64k in size and alligned on 64k boundaries. So let's say we want to copy our firmware at 0x100000 (23rd sector
in parallel flash chip) we would do the following. Assume that the firmware has been downloaded to 0x24004000 first
and is 0x242 byte in size:
protect off 0x100000 0x10ffff
era 0x100000 0x10ffff
cp.b 0x24004000 0x100000 242
protect on all
These are not real ALI queries but for a non-critical application, it can do just about the same. Whitepages.com provide
an API for making phone lookup and reverse lookups. All you need to do is go on the site and register to get a key that will
allow you to execute 1500 queries each day. Executing this application while on an active call (with the Aastra phone
of course) will allow you to retrieve the address of the calling party if callerID is available. At first, I wanted
to have that application executed automatically when an incomming call comes in on the phone. I know this is possible
with Action URIs but I never took the time to finish this.