The programming model in RIOT follows a classicalmulti-threading concept with a memory-passing IPC betweenthreads. Its kernel is written in C (with minor parts beingimplemented in assembler). However, both C and C++ areavailable as programming language for applications andapplication libraries. RIOT has a well defined hardwareabstraction layer for peripheral interfaces as well as fornetworking, sensor, and actuator devices. Leveraging the factthat RIOT is written in ANSI C, well-known, establisheddebugging tools can be used, such as GDB, Valgrind etc.RIOT also provides a way to run instances of the OS asprocesses on Linux or Mac OS, which allows both easydebugging of embedded code, and virtual network emulationusing either nativenet to emulate a single ethernet link, orthe desvirt framework [96] for more complex topologies.Furthermore, Cooja can also be used to simulate platformssupported by this simulator. RIOT provides a set of unittestsand applications for smoke and regression testing. Continuousintegration testing is performed on the web-based serviceplatform Travis. Additionally, a distributed test frameworkwas designed, in order to conduct the tests on all supportedplatforms [36]. Tests can also be carried out on a number ofopen testbeds supported by RIOT e.g., IoT-LAB [97] [5] orDES-Testbed [98].
đang được dịch, vui lòng đợi..
