Skip to content

antdht/cheriot-plantnode

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CHERIoT smart plant node

License: MIT Build

A secure embedded architecture for plant monitoring systems, implemented as a CHERIoT-RTOS application. Leverages CHERI capabilities for compartmentalized IoT control of sensors (soil moisture, humidity, temperature) and actuators.

Features

  • Capability-based security for sensor isolation.
  • Real-time monitoring and control.
  • Simulator support for development.

Prerequisites

Before building, follow the official CHERIoT Getting Started Guide to set up the toolchain and simulator.

You should add the simulator to your path.

Verify with:

cheriot-simulator

# Should normally produce 
No elf file provided.
Usage: cheriot_sim [options] <elf_file> [<elf_file> ...]

Build and Run

Quick summary of what is explained in the getting started guide, if you are familiar with it, you can skip this part.

But, as a quick reminder: as explained in the getting started guide, the build system requires a configure step and a build step:

Configure

Use xmake to configure the project:

# For cheriot simulator (defaults for the sail board)
xmake config --sdk=../builds/cheriot-llvm -m debug

# For the sonata board
xmake config --sdk=../builds/cheriot-llvm -m release --board=sonata

In the getting started guide, the --sdk in more commonly referred to as /cheriot-tools/

Build

xmake build 

The final step of the build should look like this

[ 96%]: linking firmware build/cheriot/cheriot/<release|debug>/plantnode

Run

Whether you configured your project the board sail (the default one) or the sonata one, xmake run will execute accordingly. In the first case it will run you project with the simulator and in the latest, it will compile the source code and try to push it directly to the plugged sonata board.

Typically, you'd simply type:

xmake run 

Project Structure

cheriot-plantnode
├── src/              # Application source 
├── xmake.lua         # Build configuration
├── README.md
└── LICENSE

About

Smart plant software architecture for CHERIoT, developped for my Master thesis.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors