Giter Club home page Giter Club logo

usfi's Introduction

uSFI POC Code

This repository contains a proof of concept code for the paper uSFI: Ultra-Lightweight Software Fault Isolation for IoT-Class Devices which was presented at DATE18.

The repo contains the following directories:

Drivers - Target specific drivers. Only drivers required to run the example applications are included here.

Led_blink - Source files for the example application.

LLVM - Contains code for the task-attribute LLVM pass.

Scripts - Python scripts used for compilation.

uSFI - source files for uSFI application interface and a target specific system call handler. The system call handler targets stm32f4xx devices.

Example Application

The example application is a simple hello world application that blinks an LED and at the same time prints a message over the UART port. The application targets the STM32 NUCLEO-F446RE development board. The example application has two modules in addition to a main module - gpio module and uart module. The gpio module has access to PORTA peripheral where the LED is connected, while the uart module has access to the USART2 peripheral.

Compiling the Application

To compile the application, use the bash script in the Led_blink folder. The script assumes gcc ARM cross-compiler and LLVM are installed. Before compiling, set the LLVM_PASS_PATH variable in the scripts in the Drivers directory to the task-attribute pass library directory path.

cd Led_blink ./usfi.sh

Running the Application

To run the application you can simply copy the generated Led_blink.bin file to the development board.

usfi's People

Contributors

zaweke avatar

Watchers

 avatar

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.