AVR2070
11
8240B-AVR-06/09
4 AT91SAM7X-EK RUM Quickstart
The Atmel RUM protocol is integrated to run on the AT91SAM7X-EK board which
contains an AT91SAM7X256 microcontroller. Additionally, the IPv6/6LoWPAN layers
can be compiled in. Compiling in the IPv6 layer will allow the SAM7X platform to act
as an IPv6 Edge Router in addition to an 802.15.4 PAN Coordinator. Furthermore, the
SAM7X platform supports all the Atmel 802.15.4 transceivers: AT86RF230,
AT86RF231 and AT86RF212.
The PAN Coordinator performs the classical functions defined in section 5.3 of the
IEEE 802.15.4-2006 specification. It will start and maintain a non-beaconing network.
The edge router functionality will route IPv6 network traffic to the appropriate end and
router nodes based on their specific IPv6 addresses. The RUM protocol
implementation differs slightly from the IEEE 802.15.4 standard. Please have a look
at the documentation of the Route Under MAC (RUM) Protocol described in Appendix
A.
The SAM7X provides multiple interfaces for users to interact with the 802.15.4
wireless network. Among these are RS232, USB, telnet and simple direct web
interface. The remainder of this section will describe the implementation of low level
drivers, radio drivers, timers, uTasker RTOS integration and web interfaces.

4.1 uTasker RTOS

To jump start development and provide a solid foundation for ARM operation, the
uTasker RTOS was chosen to build upon. uTasker is not a pre-emptive type RTOS,
rather it is a task-event-state driven type. A task was created called RUM Task that is
responsible for processing radio events as well as timer events associated with the
radio protocol. For a complete description of the uTasker RTOS visit
www.utasker.com.
In addition to RUM, IPv6, and 6LoWPAN, a FAT file system has been integrated into
the uTasker system. For more details see www.efsl.be and the Doxygen
documentation. RUM and IPv6 are described accordingly within this document.
Most of the RUM application code to interact with the uTasker RTOS is located in:
rumtask.[c/h]
arm_app.[c/h]
Most of the RUM stack shares the same code base between the SAM7X and the
AVR microcontroller platforms. There are, however, specific files that only pertain to
the ARM build or the AVR build. Low level files specific to the SAM7X build are:
arm_timer.[c/h]
arm_timer_event.[c/h]
hal_arm.[c/h]
Additional modifications are:
Enabling a telnet and a user menu interface.
IPv6 and 6LoWPAN
The EFSL FAT file system
See section 3.3 for specific build size of uTasker and RUM compiled for the SAM7X.