[riot-devel] Introduction, some technical questions.

Mateusz Kubaszek mathir.km.riot at gmail.com
Wed Sep 9 10:14:32 CEST 2015


Hello everyone,

Let me introduce myself, my name is Mateusz and it is my first message 
here, in this community
I am a student of AGH academy in Cracow. New hardware and software 
platform design for 6LoWPAN is my subject of Masterthesis. In the 
following year I am supposed to run a small 6LoWPAN mesh and performwide 
tests showing the potential of 6LoWPAN. Its usage is seen in industrial 
sensor meshes.
The debate about IoT operational systems revolved around Contiki, RIOT, 
Thread and ARM EmbedOS. Despite some work has been done around Contiki 
by previous student, we chose RIOT as it is the fastest developing system.

Up till now, I have done:
- EFM32WG port to RIOT system - libraries, startup, vectors have been 
included to the project (locally);
- usart and timer implementation (console is working, hwtimer too);
Generally speaking system is functional but it’s still in the beginning 
stage.

Couple of topics and some technical questions I have:
1) UART communication - searching through the libraries, I didn't find 
any solution based on interrupt handling or DMA. Is it necessary to 
implement DMA or Interrupt writing?
2) What is the difference between thread and posix thread. Which is 
desired in IoT software?
3) I was a little confused while exploring the timers libraries.
     a) hwtimer is essential to Kernel. It is responsible for delays and 
so on. Hardware timer speed is initialized to 1MHz, tell me what is the 
longest period needed by it? For example 16 bit timers maximum delay 
will be around 64ms - it seems to be insufficient. May this timer be 
clocked much slower, f.e. 36kHz?
     b) Why we have double wrapper to hwtimer? Some processors have 
directly implemented hwtimer functions and the rest is done through 
RIOT/sys/compat/hwtimer_arch.c.
c) What is going on in situation where we have 1 hw timer with 3 compare 
registers but it will be insufficient for networking algorithm to work 
properly?
     d) Is there any possibility to initialize not one, but f.e. 4 
hwtimers on 4 peripheral timers? I have 4 timers in EFM32WG990, so why 
use a cpu consuming vtimer wrapper working on one hwtimer while we could 
make use of MCU peripherals?
     e) Does RIOT support absolute time? I could make use of RTC 
peripheral clock for this, in EFM32 MCU, it is not power consuming.
4) Could anyone explain me the power stages used in RIOT:
     - ON
- IDLE
     - ACTIVE
     - POWERDOWN
     - OFF
EFM32 has 5 energy modes and a couple of peripherals functioning well in 
low power modes. How can I make use of them in RIOT? Here is a short 
description:
https://www.silabs.com/Support%20Documents/TechnicalDocs/AN0007.pdf

It’smy first letter here. I am not used to mailing list, so in case I 
misunderstood the form or chose the wrong place to post my questions 
write me about it.
Below are some materials about EFM32 MCU:
https://www.silabs.com/Support%20Documents/TechnicalDocs/EFM32WG990.pdf
http://www.keil.com/dd/docs/datashts/energymicro/efm32wg/d0233_efm32wg_reference_manual.pdf

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.riot-os.org/pipermail/devel/attachments/20150909/2ae0d90d/attachment-0001.html>


More information about the devel mailing list