I'll just add that:

- this is a known bug in newer versions of avr-gcc that has been discussed here before several times

- this bug is not present in the version of avr-gcc that is distributed with TinyOS 2.1, but it is present in the avr-gcc that comes with recent versions of Ubuntu

The workaround, then, is obvious.

The line of code triggering the bug is this:

  AVR_ATOMIC_HANDLER(SIG_OUTPUT_COMPARE0) {

I believe there's a way to work around the bug by changing the way interrupt handlers are declared, but the bug is so ridiculous that this seems not really worth it.

John



On Thu, 2 Jul 2009, David Gay wrote:

Quatre Horrace <[email protected]> wrote:

Hi all. I am try to get a TinyOS-2.1.0 environment installed on a Linux Mint
machine. Linux Mint is a derivative of Ubuntu 9.04 Jaunty Jackalope.

To install the toolchain, I followed the instructions from the following
site:
http://nmlaxaman.blogspot.com/2009/01/installing-tinyos-2x-in-ubuntu-intrepid.html
These instructions are essentially the same as the ones recommended from the
tinyos install wiki:
http://docs.tinyos.net/index.php/Installing_TinyOS_2.1

The install finishes without any problems. I then go to compile the Blink
application for my target platform, micaz. Following is the output I get:

make micaz
mkdir -p build/micaz
    compiling BlinkAppC to a micaz binary
ncc -o build/micaz/main.exe  -Os -Wall -Wshadow -Wnesc-all -target=micaz
-fnesc-cfile=build/micaz/app.c -board=micasb -DDEFINED_TOS_AM_GROUP=0x22
--param max-inline-insns-single=100000 -DIDENT_APPNAME=\"BlinkAppC\"
-DIDENT_USERNAME=\"abc\" -DIDENT_HOSTNAME=\"abc-deskt\"
-DIDENT_USERHASH=0xc60ca8bfL -DIDENT_TIMESTAMP=0x4a37f0faL
-DIDENT_UIDHASH=0x378c0e71L -fnesc-dump=wiring
-fnesc-dump='interfaces(!abstract())' -fnesc-dump='referenced(interfacedefs,
components)' -fnesc-dumpfile=build/micaz/wiring-check.xml BlinkAppC.nc -lm
/opt/tinyos-2.1.0/tos/chips/atm128/timer/HplAtm128Timer0AsyncP.nc:178:
internal compiler error: in start_function, at c-decl.c:6177
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://gcc.gnu.org/bugs.html> for instructions.

This is a gcc bug, as the url would indicate, not a nesC bug. If you
want to track it down further / submit a gcc bug report, you should
start from the app.c that should still be in build/micaz/app.c. If you
runn ncc with the -v option, you'll also get the avr-gcc command line
that was used to compile app.c (and then crashed).

But before doing that, I'd try using a different (newer or older ;-))
version of avr-gcc.

David Gay, answering a little late.

_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help
_______________________________________________
Tinyos-help mailing list
[email protected]
https://www.millennium.berkeley.edu/cgi-bin/mailman/listinfo/tinyos-help

Reply via email to