eCos on AT91SAM9 - call to action

Martin Laabs martin.laabs@mailbox.tu-dresden.de
Wed Mar 16 17:07:00 GMT 2011


Hello,

my port based on the one of Evgeniy Dushitov at the very beginning. However 
- after some weeks I discovered that it was very hard to support more CPUs 
out of the AT91SAM9 family with that code-base.
So I started from beginning, reusing only some code snipplet from Evgeniy. 
I made the decision to split the port into three packages.

The at91sam9 package contains all the stuff that is common to all at91sam9 
CPUs. The at91sam9260 package contains the CPU specific 
definitions/function and the board package handles all the board specific 
things like pin assignment, linker scripts etc.

I used the atmel register definitions to generate the includes for the 
register that are common to every at91sam9 cpu and the cpu specific parts. 
The names are not equal to the ones in the at91 packages - but its worth 
the price for a (nearly) complete register description that is also equal 
to the ones in the datasheets.

I also changed the pin handling to a somewhat better readable style. I.e.

#define SPI1_NPCS0 
AT91SAM9_PIN(AT91SAM9_PIN_TYPE_PERIPH_A,AT91SAM9_PIN_PORT_B, 3)

Currently we ported the SPI driver in polled and dma mode (including the 
cache coherency handling), the serial driver and ethernet peripheral. I 
also wrote code for the SSI but this is to application specific.

Board support is limited to the AT91SAM9260EK and our specific board. 
However we plan to add the olimex eval board of the AT91SAM9260 soon.

The include files for all other processors are generated as well. So 
porting to other CPUs and/or boards should be no great deal.

Currently we use our own GIT server. But I think we can open it for 
publicly - at least reading access. I will ask for permission to open the 
GIT server and publish the URL if someone want to look on the code base.

Greetings,
  Martin Laabs



More information about the Ecos-devel mailing list