msp430x port

This forum is about you. Feel free to discuss anything is related to embedded and electronics, your awesome projects, your ideas, your announcements, not necessarily related to ChibiOS but to embedded in general. This forum is NOT for support.
User avatar
DeusExMachina
Posts: 223
Joined: Tue Apr 03, 2012 5:08 am
Has thanked: 3 times
Been thanked: 3 times

Re: msp430x port

Post by DeusExMachina »

I'll try to provide some feedback, and I also want to write an article about ChibiOS on Russian to make it popular in Russian community.
erwinkendo
Posts: 14
Joined: Wed Apr 25, 2012 4:44 am

Re: msp430x port

Post by erwinkendo »

Greetings

I will be happy to help, I really like ChibiOS and have pretty good experience using MSP430 (around a year), so maybe I can be of assistance, I am very interested in this port to take fly.

For any testing purpose or related about coding, count me in. :D
erwinkendo
Posts: 14
Joined: Wed Apr 25, 2012 4:44 am

Re: msp430x port

Post by erwinkendo »

Quick question:

The msp430 demo in trunk is working? Or you havent merged recent changes?
I ask this because I was testing again the msp430 port (couple of months was totally broken) but the same errors occurred:

First trouble because of missing <msp430/common.h> file in chcore.h (this file I don't know where it is, I can compile programs with my current instalation in my Archlinux machine and in the /msp430/include/ the file isn't there), and when removing it, hal errors ocurre.
../../os/hal/platforms/MSP430/pal_lld.h:53:3: error: unknown type name 'ioregister_t'
User avatar
Giovanni
Site Admin
Posts: 14892
Joined: Wed May 27, 2009 8:48 am
Has thanked: 1202 times
Been thanked: 996 times

Re: msp430x port

Post by Giovanni »

Hi,

It is working using the original MSPGCC (3.2.3 if I remember well), if you are using MSPGCC4 then there are probably differences in the headers.

I will give it a try using MSPGCC4.

Giovanni
User avatar
Giovanni
Site Admin
Posts: 14892
Joined: Wed May 27, 2009 8:48 am
Has thanked: 1202 times
Been thanked: 996 times

Re: msp430x port

Post by Giovanni »

Update:

The MSP430 port now works with the latest MSPGCC, the repository trunk has been updated. This change will be backported to version 2.4.1.

Test Report (much improved scores I must say):

Code: Select all

*** ChibiOS/RT test suite
***
*** Kernel:       2.5.0
*** Compiled:     Apr 25 2012 - 11:28:57
*** Compiler:     GCC 4.6.3 20120301 (mspgcc LTS 20120406 unpatched)
*** Architecture: MSP430
*** Core Variant: MSP430
*** Port Info:    None
*** Platform:     MSP430
*** Test Board:   Olimex MSP430-P1611

----------------------------------------------------------------------------
--- Test Case 1.1 (Threads, enqueuing test #1)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 1.2 (Threads, enqueuing test #2)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 1.3 (Threads, priority change)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 1.4 (Threads, delays)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 2.1 (Semaphores, enqueuing)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 2.2 (Semaphores, timeout)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 2.3 (Semaphores, atomic signal-wait)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 2.4 (Binary Semaphores, functionality)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.1 (Mutexes, priority enqueuing test)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.2 (Mutexes, priority inheritance, simple case)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.3 (Mutexes, priority inheritance, complex case)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.4 (Mutexes, priority return)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.5 (Mutexes, status)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.6 (CondVar, signal test)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.7 (CondVar, broadcast test)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 3.8 (CondVar, boost test)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 4.1 (Messages, loop)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 5.1 (Mailboxes, queuing and timeouts)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 6.1 (Events, registration and dispatch)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 6.2 (Events, wait and broadcast)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 6.3 (Events, timeouts)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 7.1 (Heap, allocation and fragmentation test)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 8.1 (Memory Pools, queue/dequeue)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 9.1 (Dynamic APIs, threads creation from heap)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 9.2 (Dynamic APIs, threads creation from memory pool)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 9.3 (Dynamic APIs, registry and references)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.1 (Queues, input queues)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 10.2 (Queues, output queues)
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.1 (Benchmark, messages #1)
--- Score : 22756 msgs/S, 45512 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.2 (Benchmark, messages #2)
--- Score : 17949 msgs/S, 35898 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.3 (Benchmark, messages #3)
--- Score : 17949 msgs/S, 35898 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.4 (Benchmark, context switch)
--- Score : 67552 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.5 (Benchmark, threads, full cycle)
--- Score : 12780 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.6 (Benchmark, threads, create only)
--- Score : 18071 threads/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.7 (Benchmark, mass reschedule, 5 threads)
--- Score : 5449 reschedules/S, 32694 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.8 (Benchmark, round robin context switching)
--- Score : 42200 ctxswc/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.9 (Benchmark, I/O Queues throughput)
--- Score : 73280 bytes/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.10 (Benchmark, virtual timers set/reset)
--- Score : 69456 timers/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.11 (Benchmark, semaphores wait/signal)
--- Score : 140132 wait+signal/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.12 (Benchmark, mutexes lock/unlock)
--- Score : 76804 lock+unlock/S
--- Result: SUCCESS
----------------------------------------------------------------------------
--- Test Case 11.13 (Benchmark, RAM footprint)
--- System: 222 bytes
--- Thread: 38 bytes
--- Timer : 10 bytes
--- Semaph: 6 bytes
--- EventS: 2 bytes
--- EventL: 6 bytes
--- Mutex : 8 bytes
--- CondV.: 4 bytes
--- Queue : 16 bytes
--- MailB.: 20 bytes
--- Result: SUCCESS
----------------------------------------------------------------------------

Final result: SUCCESS


Please let me know if there are problems with this port. I am considering giving it more "bandwidth".

Giovanni
User avatar
Badger
Posts: 346
Joined: Mon Apr 18, 2011 6:07 pm

Re: msp430x port

Post by Badger »

I just did a quick test on Ubuntu 12.04 using gcc-msp430 installed via apt-get:

Code: Select all

tom@tom-Z77A:~/projects/rc/src/chibios/demos/MSP430-MSP430x1611-GCC$ make

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/hal/platforms/MSP430/serial_lld.lst -D__MSP430F1611__  -MD -MP -MF .dep/serial_lld.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/hal/platforms/MSP430/serial_lld.c -o ../../os/hal/platforms/MSP430/serial_lld.o
../../os/hal/platforms/MSP430/serial_lld.c:180:1: error: expected declaration specifiers or ‘...’ before ‘(’ token
../../os/hal/platforms/MSP430/serial_lld.c: In function ‘interrupt’:
../../os/hal/platforms/MSP430/serial_lld.c:180:1: error: expected declaration specifiers before ‘vectUSART0TX’
../../os/hal/platforms/MSP430/serial_lld.c:201:1: error: expected declaration specifiers before ‘interrupt’
../../os/hal/platforms/MSP430/serial_lld.c:267:24: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
../../os/hal/platforms/MSP430/serial_lld.c:288:66: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
../../os/hal/platforms/MSP430/serial_lld.c:316:37: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
../../os/hal/platforms/MSP430/serial_lld.c:330:1: error: expected ‘{’ at end of input
make: *** [../../os/hal/platforms/MSP430/serial_lld.o] Error 1


hmm. I have no experience of msp430 other than owning a few of the cheap dev boards (and the watch!). Anyone have any ideas what I'm missing?
mabl
Posts: 417
Joined: Tue Dec 21, 2010 10:19 am
Been thanked: 1 time

Re: msp430x port

Post by mabl »

Also does not work for me with my 11.10 Ubuntu. I also own the watch - but somehow never got to do anything with it. Apart from having ChibiOS running on yet some other hardware I'm more interested in STM32 though.

Code: Select all

╭─mabl@mikrocanonix /tmp/ChibiOS/demos/MSP430-MSP430x1611-GCC  ‹master› 
╰─➤  make

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/ports/GCC/MSP430/chcore.lst -D__MSP430F1611__  -MD -MP -MF .dep/chcore.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/ports/GCC/MSP430/chcore.c -o ../../os/ports/GCC/MSP430/chcore.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/kernel/src/chsys.lst -D__MSP430F1611__  -MD -MP -MF .dep/chsys.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/kernel/src/chsys.c -o ../../os/kernel/src/chsys.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/kernel/src/chdebug.lst -D__MSP430F1611__  -MD -MP -MF .dep/chdebug.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/kernel/src/chdebug.c -o ../../os/kernel/src/chdebug.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/kernel/src/chlists.lst -D__MSP430F1611__  -MD -MP -MF .dep/chlists.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/kernel/src/chlists.c -o ../../os/kernel/src/chlists.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/kernel/src/chvt.lst -D__MSP430F1611__  -MD -MP -MF .dep/chvt.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/kernel/src/chvt.c -o ../../os/kernel/src/chvt.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/kernel/src/chschd.lst -D__MSP430F1611__  -MD -MP -MF .dep/chschd.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/kernel/src/chschd.c -o ../../os/kernel/src/chschd.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/kernel/src/chthreads.lst -D__MSP430F1611__  -MD -MP -MF .dep/chthreads.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/kernel/src/chthreads.c -o ../../os/kernel/src/chthreads.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/kernel/src/chdynamic.lst -D__MSP430F1611__  -MD -MP -MF .dep/chdynamic.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/kernel/src/chdynamic.c -o ../../os/kernel/src/chdynamic.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/kernel/src/chregistry.lst -D__MSP430F1611__  -MD -MP -MF .dep/chregistry.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/kernel/src/chregistry.c -o ../../os/kernel/src/chregistry.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/kernel/src/chsem.lst -D__MSP430F1611__  -MD -MP -MF .dep/chsem.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/kernel/src/chsem.c -o ../../os/kernel/src/chsem.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/kernel/src/chmtx.lst -D__MSP430F1611__  -MD -MP -MF .dep/chmtx.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/kernel/src/chmtx.c -o ../../os/kernel/src/chmtx.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/kernel/src/chcond.lst -D__MSP430F1611__  -MD -MP -MF .dep/chcond.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/kernel/src/chcond.c -o ../../os/kernel/src/chcond.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/kernel/src/chevents.lst -D__MSP430F1611__  -MD -MP -MF .dep/chevents.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/kernel/src/chevents.c -o ../../os/kernel/src/chevents.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/kernel/src/chmsg.lst -D__MSP430F1611__  -MD -MP -MF .dep/chmsg.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/kernel/src/chmsg.c -o ../../os/kernel/src/chmsg.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/kernel/src/chmboxes.lst -D__MSP430F1611__  -MD -MP -MF .dep/chmboxes.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/kernel/src/chmboxes.c -o ../../os/kernel/src/chmboxes.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/kernel/src/chqueues.lst -D__MSP430F1611__  -MD -MP -MF .dep/chqueues.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/kernel/src/chqueues.c -o ../../os/kernel/src/chqueues.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/kernel/src/chmemcore.lst -D__MSP430F1611__  -MD -MP -MF .dep/chmemcore.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/kernel/src/chmemcore.c -o ../../os/kernel/src/chmemcore.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/kernel/src/chheap.lst -D__MSP430F1611__  -MD -MP -MF .dep/chheap.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/kernel/src/chheap.c -o ../../os/kernel/src/chheap.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/kernel/src/chmempools.lst -D__MSP430F1611__  -MD -MP -MF .dep/chmempools.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/kernel/src/chmempools.c -o ../../os/kernel/src/chmempools.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../test/test.lst -D__MSP430F1611__  -MD -MP -MF .dep/test.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../test/test.c -o ../../test/test.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../test/testthd.lst -D__MSP430F1611__  -MD -MP -MF .dep/testthd.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../test/testthd.c -o ../../test/testthd.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../test/testsem.lst -D__MSP430F1611__  -MD -MP -MF .dep/testsem.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../test/testsem.c -o ../../test/testsem.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../test/testmtx.lst -D__MSP430F1611__  -MD -MP -MF .dep/testmtx.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../test/testmtx.c -o ../../test/testmtx.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../test/testmsg.lst -D__MSP430F1611__  -MD -MP -MF .dep/testmsg.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../test/testmsg.c -o ../../test/testmsg.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../test/testmbox.lst -D__MSP430F1611__  -MD -MP -MF .dep/testmbox.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../test/testmbox.c -o ../../test/testmbox.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../test/testevt.lst -D__MSP430F1611__  -MD -MP -MF .dep/testevt.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../test/testevt.c -o ../../test/testevt.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../test/testheap.lst -D__MSP430F1611__  -MD -MP -MF .dep/testheap.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../test/testheap.c -o ../../test/testheap.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../test/testpools.lst -D__MSP430F1611__  -MD -MP -MF .dep/testpools.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../test/testpools.c -o ../../test/testpools.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../test/testdyn.lst -D__MSP430F1611__  -MD -MP -MF .dep/testdyn.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../test/testdyn.c -o ../../test/testdyn.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../test/testqueues.lst -D__MSP430F1611__  -MD -MP -MF .dep/testqueues.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../test/testqueues.c -o ../../test/testqueues.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../test/testbmk.lst -D__MSP430F1611__  -MD -MP -MF .dep/testbmk.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../test/testbmk.c -o ../../test/testbmk.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/hal/src/hal.lst -D__MSP430F1611__  -MD -MP -MF .dep/hal.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/hal/src/hal.c -o ../../os/hal/src/hal.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/hal/src/adc.lst -D__MSP430F1611__  -MD -MP -MF .dep/adc.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/hal/src/adc.c -o ../../os/hal/src/adc.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/hal/src/can.lst -D__MSP430F1611__  -MD -MP -MF .dep/can.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/hal/src/can.c -o ../../os/hal/src/can.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/hal/src/ext.lst -D__MSP430F1611__  -MD -MP -MF .dep/ext.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/hal/src/ext.c -o ../../os/hal/src/ext.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/hal/src/gpt.lst -D__MSP430F1611__  -MD -MP -MF .dep/gpt.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/hal/src/gpt.c -o ../../os/hal/src/gpt.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/hal/src/i2c.lst -D__MSP430F1611__  -MD -MP -MF .dep/i2c.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/hal/src/i2c.c -o ../../os/hal/src/i2c.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/hal/src/icu.lst -D__MSP430F1611__  -MD -MP -MF .dep/icu.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/hal/src/icu.c -o ../../os/hal/src/icu.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/hal/src/mac.lst -D__MSP430F1611__  -MD -MP -MF .dep/mac.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/hal/src/mac.c -o ../../os/hal/src/mac.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/hal/src/pal.lst -D__MSP430F1611__  -MD -MP -MF .dep/pal.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/hal/src/pal.c -o ../../os/hal/src/pal.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/hal/src/pwm.lst -D__MSP430F1611__  -MD -MP -MF .dep/pwm.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/hal/src/pwm.c -o ../../os/hal/src/pwm.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/hal/src/sdc.lst -D__MSP430F1611__  -MD -MP -MF .dep/sdc.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/hal/src/sdc.c -o ../../os/hal/src/sdc.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/hal/src/serial.lst -D__MSP430F1611__  -MD -MP -MF .dep/serial.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/hal/src/serial.c -o ../../os/hal/src/serial.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/hal/src/spi.lst -D__MSP430F1611__  -MD -MP -MF .dep/spi.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/hal/src/spi.c -o ../../os/hal/src/spi.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/hal/src/uart.lst -D__MSP430F1611__  -MD -MP -MF .dep/uart.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/hal/src/uart.c -o ../../os/hal/src/uart.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/hal/src/usb.lst -D__MSP430F1611__  -MD -MP -MF .dep/usb.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/hal/src/usb.c -o ../../os/hal/src/usb.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/hal/src/tm.lst -D__MSP430F1611__  -MD -MP -MF .dep/tm.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/hal/src/tm.c -o ../../os/hal/src/tm.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/hal/src/mmc_spi.lst -D__MSP430F1611__  -MD -MP -MF .dep/mmc_spi.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/hal/src/mmc_spi.c -o ../../os/hal/src/mmc_spi.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/hal/src/serial_usb.lst -D__MSP430F1611__  -MD -MP -MF .dep/serial_usb.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/hal/src/serial_usb.c -o ../../os/hal/src/serial_usb.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/hal/src/rtc.lst -D__MSP430F1611__  -MD -MP -MF .dep/rtc.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/hal/src/rtc.c -o ../../os/hal/src/rtc.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/hal/platforms/MSP430/hal_lld.lst -D__MSP430F1611__  -MD -MP -MF .dep/hal_lld.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/hal/platforms/MSP430/hal_lld.c -o ../../os/hal/platforms/MSP430/hal_lld.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/hal/platforms/MSP430/pal_lld.lst -D__MSP430F1611__  -MD -MP -MF .dep/pal_lld.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/hal/platforms/MSP430/pal_lld.c -o ../../os/hal/platforms/MSP430/pal_lld.o

msp430-gcc -c -mmcu=msp430x1611 -O2 -ggdb -fomit-frame-pointer   -Wa,-alms=../../os/hal/platforms/MSP430/serial_lld.lst -D__MSP430F1611__  -MD -MP -MF .dep/serial_lld.o.d -I . -I../../os/ports/GCC/MSP430 -I../../os/kernel/include -I../../test -I../../os/hal/include -I../../os/hal/platforms/MSP430 -I../../boards/OLIMEX_MSP430_P1611 -I../../os/various ../../os/hal/platforms/MSP430/serial_lld.c -o ../../os/hal/platforms/MSP430/serial_lld.o
../../os/hal/platforms/MSP430/serial_lld.c:180:1: error: expected declaration specifiers or ‘...’ before ‘(’ token
../../os/hal/platforms/MSP430/serial_lld.c: In function ‘interrupt’:
../../os/hal/platforms/MSP430/serial_lld.c:180:1: error: expected declaration specifiers before ‘vectUSART0TX’
../../os/hal/platforms/MSP430/serial_lld.c:201:1: error: expected declaration specifiers before ‘interrupt’
../../os/hal/platforms/MSP430/serial_lld.c:267:24: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
../../os/hal/platforms/MSP430/serial_lld.c:288:66: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
../../os/hal/platforms/MSP430/serial_lld.c:316:37: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘{’ token
../../os/hal/platforms/MSP430/serial_lld.c:330:1: error: expected ‘{’ at end of input
make: *** [../../os/hal/platforms/MSP430/serial_lld.o] Error 1

User avatar
Giovanni
Site Admin
Posts: 14892
Joined: Wed May 27, 2009 8:48 am
Has thanked: 1202 times
Been thanked: 996 times

Re: msp430x port

Post by Giovanni »

Compiler version? I found that the TI's MSP430 headers were different in latest versions of mspgcc, that error is about the macro ISR() that is used to wrap interrupt handlers.

Probably you should use mspgcc instead than the vanilla gcc found in Ubuntu repos.

Giovanni
User avatar
Badger
Posts: 346
Joined: Mon Apr 18, 2011 6:07 pm

Re: msp430x port

Post by Badger »

Code: Select all

tom@tom-Z77A:~/projects/rc/src/chibios/demos/MSP430-MSP430x1611-GCC$ msp430-gcc -v
Using built-in specs.
Reading specs from /usr/lib/gcc/msp430/4.5.3/../../../../msp430/lib/msp430mcu.spec
COLLECT_GCC=msp430-gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/msp430/4.5.3/lto-wrapper
Target: msp430
Configured with: '/build/buildd/gcc-msp430-4.5.3~mspgcc-20110716/./gcc-4.5.3/configure' -v --enable-languages=c,c++ --prefix=/usr --infodir='/usr/share/info' --mandir='/usr/share/man' --bindir='/usr/bin' --libexecdir='/usr/lib' --libdir='/usr/lib' --enable-shared --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --disable-checking --disable-libssp --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=msp430 --with-pkgversion='GNU GCC patched mspgcc-20110716'
Thread model: single
gcc version 4.5.3 (GNU GCC patched mspgcc-20110716)


It should be the standard mspgcc, but it does look like the headers differ.
mabl
Posts: 417
Joined: Tue Dec 21, 2010 10:19 am
Been thanked: 1 time

Re: msp430x port

Post by mabl »

Same for me

Code: Select all

msp430-gcc -v                                                                                                                2 ↵
Using built-in specs.
Reading specs from /usr/lib/gcc/msp430/4.5.3/../../../../msp430/lib/msp430mcu.spec
COLLECT_GCC=msp430-gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/msp430/4.5.3/lto-wrapper
Target: msp430
Configured with: '/build/buildd/gcc-msp430-4.5.3~mspgcc-4.5.2-20110612/./gcc-4.5.3/configure' -v --enable-languages=c,c++ --prefix=/usr --infodir='/usr/share/info' --mandir='/usr/share/man' --bindir='/usr/bin' --libexecdir='/usr/lib' --libdir='/usr/lib' --enable-shared --with-system-zlib --enable-long-long --enable-nls --without-included-gettext --disable-checking --disable-libssp --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=msp430
Thread model: single
gcc version 4.5.3 (GCC)


My headers are in /usr/msp430/include. It seems the vectors are called USART0TX_VECTOR in my version and not vectUSART0TX.

The header files have this header:

Code: Select all

/* ============================================================================ */
/* Copyright (c) 2011, Texas Instruments Incorporated                     */
/*  All rights reserved.                                                        */
/*                                                                              */
/*  Redistribution and use in source and binary forms, with or without          */
/*  modification, are permitted provided that the following conditions          */
/*  are met:                                                                    */
/*                                                                              */
/*  *  Redistributions of source code must retain the above copyright           */
/*     notice, this list of conditions and the following disclaimer.            */
/*                                                                              */
/*  *  Redistributions in binary form must reproduce the above copyright        */
/*     notice, this list of conditions and the following disclaimer in the      */
/*     documentation and/or other materials provided with the distribution.     */
/*                                                                              */
/*  *  Neither the name of Texas Instruments Incorporated nor the names of      */
/*     its contributors may be used to endorse or promote products derived      */
/*     from this software without specific prior written permission.            */
/*                                                                              */
/*  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" */
/*  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,       */
/*  THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR      */
/*  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR            */
/*  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,       */
/*  EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,         */
/*  PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; */
/*  OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,    */
/*  WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR     */
/*  OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,              */
/*  EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.                          */
/* ============================================================================ */


So downloading new TI headers and adding them to my include path should fix the problem, right?
Post Reply