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
_______________________________________________
devel mailing list
[email protected]
https://lists.riot-os.org/mailman/listinfo/devel