Giter VIP home page Giter VIP logo

Comments (6)

nyrahul avatar nyrahul commented on June 12, 2024 1

Integration of Whitefield in Renode will be terrific. Currently, Whitefield does not emulate device archs. I had plans to do it for MSP430 in ways similar to Cooja, but Renode is revolutionary in its design.

I have a few questions:

  1. Can renode actually take the target binaries? For e.g., CC2538DK Contiki/RIOT/Zephyr binary and execute on the simulated device on Linux as a process? Renode Github front page indicates so.
  2. Can it also handle network transceivers? Or other add on the base platform?
  3. Is Energy consumption/modeling also handled in renode?

I will try renode with cc2538 in the near future and check how well it works.

Currently, Whitefield supports 802.15.4 interface and integrates well with native mode Contiki/RIOT/Contiki-NG. OpenThread support is not finished. There is a demo-mode Cytoscape env to visualize the network at runtime.

For Whitefield, my plans for 2020 is:

  1. To integrate Power Line Communication interface and Lorawan interfaces.
  2. Using plug-n-play model for binaries. Compile native mode binaries on your host system and upload those to Whitefield.
  3. Support simulation time. Currently, Whitefield operates in real-time hence the experimentation may take long. I have a design to use Whitefield in simulation time such that days/weeks of experimentation could be finished in a few secs/mins.
  4. Use Cytoscape to allow users to design their networks.
  5. Use cloud-based model wherein users could design their network, upload their binaries, get notifications for results and get their experiment results archived.

from whitefield.

beriberikix avatar beriberikix commented on June 12, 2024 1

I brought up the idea to @mgielda in the OSS+ELC conference slack - perhaps he can connect you with someone from the team who might be able to answer your questions!

from whitefield.

PiotrZierhoffer avatar PiotrZierhoffer commented on June 12, 2024 1

This sounds like a really good idea. At the moment Renode is able to simulate wireless network on a basic level, with configurable signal range and random packet loss, but our focus is mainly on simulating full SoCs and not the communication medium.

To answer your questions:
1 In Renode you can create an environment of one or multiple nodes, possibly connected together over different types of wired and wireless connections.
Our goal is to enable running exactly the same software you're able to run on hardware.
Apart from having internal connections between nodes, you can connect them to your host machine in different ways - via pseudoterminal, TAP interface and others.

The framework itself runs on Linux, macOS and Windows, with Linux having the best support for host-to-guest connections (which I mention as it's probably something that could be used for integration with Whitefield).

  1. If I understand your question correctly, yes. Renode can simulate the whole SoCs, with all the peripherals. We model them on a behavioral, register level, so that the software perceives our models as real devices. Having said that, we usually focus on peripherals that are interesting for us in use cases we have, mocking or ignoring the ones that are not crucial. You can look at https://github.com/renode/renode/tree/master/platforms/cpus to get a broad idea of what platforms and what peripherals in them we support.

  2. Right now we don't do energy consumption, but it would be possible to estimate it by analyzing interactions with specific peripherals etc. People are asking about these kind of estimations, so maybe in future we'll go that path.

If you have any more questions regarding our modelling, integrations or time flow, please let me know.

CC2538 is definitely a good place to start. We have a 3 node sample setup you can run by calling s @scripts/multi-node/cc2538/rpl-udp.resc in Renode's CLI.

If you open this file you'll find some comments explaining how did we set it up.

from whitefield.

PiotrZierhoffer avatar PiotrZierhoffer commented on June 12, 2024 1

That's correct. I believe it was built from https://github.com/contiki-ng/contiki-ng/tree/develop/examples/rpl-udp (there are Renode scripts in there, although they might be a bit outdated, haven't checked them in a while).

In general yes, your own binary should work. This being said, as Contiki is improved over time, it can use some registers we did not implement at a time we were working at this demo.

from whitefield.

mgielda avatar mgielda commented on June 12, 2024

Great you like Renode and think integration would be a good idea! Adding @PiotrZierhoffer here to elaborate on technical details

from whitefield.

nyrahul avatar nyrahul commented on June 12, 2024

Thank you @PiotrZierhoffer for the detailed description. This clarifies things for me.

One Q:

rpl-udp.resc, file uses the binary https://dl.antmicro.com/projects/renode/udp-server.elf-s_173732-a2aefb896d521a8fdc2a052cac1933c68cc39bf5 ... I assume that this binary was created using Contiki (ng?), without any modifications to their platforms/drivers code. If this is true, then I can simply substitute my Contiki bins (made for target CC2538dk) in that place? Just confirming. Thanks

from whitefield.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.