Skip to content
Hauke Petersen edited this page Apr 23, 2014 · 30 revisions

[WORK IN PROGRESS]

Howto port RIOT to a new target

This page will give you an overview on how to procede if you want port RIOT to a new platform. You will get an overview on the controller and board spedific interfaces that need to be implemented and also some of the common pitfalls and misconceptions will be pointed out.

Assumptions

This guide asumes that the port is done in a 'gcc' environment making use of the 'newlib'. In case some other (or none at all) C standard library is used, the part describing the system calls is to be adapted accordingly.

The RIOT architecture

Platform independent

  • RIOT/core
  • RIOT/sys
  • RIOT/drivers

Platform dependent

  • RIOT/cpu
    Containing controller specific code
  • RIOT/boards Contraining board specific code, as pin definitions etc

The core interfaces

Methods that need to be implemented by the cpu

RIOT:

TODO: adapt to the new core-cpu-interface! (Implement everything that is defined in core/include/arch/*.h!)

  • unsigned disableIRQ(void); // cpu/include/irq.h
  • unsigned enableIRQ(void); // cpu/include/irq.h
  • void restoreIRQ(void); // cpu/include/irq.h
  • int inISR(void); // cpu/include/irq.h | cpu/include/kernel.h

Interfaces to the board

Clone this wiki locally