OpenMote-CC2538 + RIOT 物联网新平台

1、参考:https://riot-os.org/api/group__boards__openmote-cc2538.html

     里面有OpenMote-CC2538 原理图,RIOT开源操作系统介绍

2、The CC2538, at the core of the OpenMote-CC2538, is a SoC from Texas
Instruments with a 32-bit Cortex-M3 microcontroller and an IEEE802.15.4-
compliant radio. The microcontroller has a clock speed up to 32 MHz, embeds
32 kB of RAM and 512 kB of ash memory, and features several peripherals。

3、RIOT开源操作系统的源代码:https://github.com/RIOT-OS/RIOT

    其官网:https://www.riot-os.org/#download

RIOT是面向开发者的,开源的,适合物联网的操作系统。它的背后没有某个公司的支持,而完全是由社区驱动
他的一些特性:

  • 标准的C/C++编程
  • 标准的gcc编译环境
  • 可以跑在8位,16位和32位的嵌入式系统上
  • 部分的POSIX接口兼容(以后的目标是全兼容)
  • 支持在Linux/Unix的虚拟机上运行
  • 实时性,快速的中断响应(~50 clock cycles)
  • 微内核,组件都可以动态加载,并且通过message来实现服务
  • 极小开销的多线程支持(< 25 bytes per thread)
  • 丰富的网络支持:6LoWPAN,IPv6,RPL,CoAP and CBOR
  • 高精度的定时器
  • 丰富的工具 (System shell, SHA-256, Bloom filters, …)

RIOT 架构框图

OpenMote-CC2538 + RIOT 物联网新平台_第1张图片

 

RIOT的CPU的IP驱动基本都有一套统一接口,但是没有任何抽象层,被放在源代码的cpu\\periph中。这意味着在做新的平台支持时,你要注意驱动的接口要和API文档里的一致,比如ADC的adc_init(), adc_read()。源代码的drivers\则放着板级的驱动,比如NXP的MMA8541,利用i2c统一接口来访问。
由于是微内核(microkernel)的实现,所有的系统服务包括时钟、网络协议栈、网络服务等,都是通过创建独立的线程来实现。在线程中都有event_loop来接收服务请求,处理并发送服务结果。RIOT中最关键的是GNRC(Generic network stack)网络协议栈,它实现了从MAC层一直到传输层的各种协议,如6LowPan,IPv4/v6,RPL,TCP/UDP。并且这些不同的协议栈之间通过netapi统一接口开放给用户。对于应用层来说,GNRC提供了conn和socket两种API。在安全方面,貌似802.15.4这层没有加入AES的支持,只提供tinyDTLS在应用层给用户使用。由于RIOT的POSIX的部分兼容性,及提供BSD socket的接口,很多应用都可以方便的移植过来,在pkg/你能找到例如libcoap,openwsn这样的应用。
RIOT最早是由柏林自由大学开发的,目前完全由社区维护,貌似欧洲开发者居多。从devel maillist里来看,感觉社区活跃程度一般。每两周都有一个Virtual meeting,都还是大学在牵头。
总之,一个很有想法的微内核,加上开发环境相对于之前熟悉Linux的开发者来讲很友好。应该是个潜力股。

你可能感兴趣的:(科研)