Skip to content

📊⏱️ A script generating GANTT Diagrams from TrampolineRTOS apps' traceback.

License

Notifications You must be signed in to change notification settings

guilyx/gantt-trampoline

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

77 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Say Thanks Contributors Forks Stargazers Issues HitCount MIT License LinkedIn

Gantt Generator for TrampolineRTOS

Generating GANTT scheduling diagrams from Trampoline's tracebacks
Explore the docs »

View Demo · Report Bug · Request Feature

Table of Contents

About the Project

TrampolineRTOS is a RTOS built by academia in Nantes, France. Every RT applications you built leaves a trace with the tasks and events states at time t. The goal is to generate Gantt Plots from this trace.

This project will allow you to plot you real-time jobs with a Gantt Diagram for :

  • Already defined periods
  • Trampoline posix's traces
  • Tasks sets with defined Computation Times, Periods and Deadlines and a chosen algorithms (Rate Monotonic, Deadline Monotonic... )

Setup

  1. (Optional) Click on Fork
  2. Clone the project on your local machine : git clone https://github.com/guilyx/gantt-trampoline.git
  3. Install requirements

Install dependencies :

  • Clone Trampoline
    $ git clone https://github.com/TrampolineRTOS/trampoline.git
    $ git checkout -b trace origin/trace
  • Goil
    $ cd trampoline/goil/makefile-unix
    $ ./build/release.py
    $ sudo cp goil /usr/local/bin
  • Viper
    $ cd ../../viper
    $ make
    $ export VIPER_PATH=/opt/trampoline/viper
    $ echo 'export VIPER_PATH=/opt/trampoline/viper' >> ~/.bashrc
    note : if you use zsh replace bashrc by zshrc
  • Installing TrampolineRTOS
    $ sudo mv trampoline /opt
    note : assuming you are in the directory containing trampoline

Testing

  • Use the ECN Scheduling Labs
    $ git clone https://github.com/TrampolineRTOS/Labs.git
    $ cd Labs/posix/labs/lab1
    $ goil --target=posix --templates=/opt/trampoline/goil/templates/ lab1.oil
    ...
    No warning, no error.
    $ ./make.py
    ...
    [100%] Linking lab1_exe
    $ ./lab1_exe
    Hello World

Issues

If you have any trouble during the installation, refer to the detailed guide here written by Mikael Briday

If you arrived to the last step with the Hello World output, your installation is ready. (Press q to quit the application, ctrl+c is not handled.)

  1. Install python dependencies with pip install -r requirements.txt from the repository's directory.

Run

$ python main.py -h
usage: main.py [-h] [--tpl_path TPL_PATH] [--trace_path TRACE_PATH] use_trace

Generate Gantt Diagrams from Real-Time process' traces.

positional arguments:
  mode             0 to build from scratch, 1 to use scheduling algorithms, 2 to use processes' trace

optional arguments:
  -h, --help            show this help message and exit
  --tpl_path TPL_PATH   Register the path to the tpl static info json file
  --trace_path TRACE_PATH
                        Register the path to the trace json file
  1. Run using a Trace of tasks : python main.py 2 --tpl_path="TPL_PATH" --trace_path="TRACE_PATH" (by default the paths goes to generated files in data/ ; if you use your own traces, the tpl_path is in the build/ directory of trampoline applications)
  2. Run using your set of tasks with hardcoded periods : python main.py 0
  3. [NEW] Run using your set of tasks with scheduling algorithms : python main.py 1

Roadmap

See the open issues for a list of proposed features (and known issues).

Contribute

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated. (please help)

Contribute on proposed features

  1. Choose any open issue from here.
  2. Comment on the issue: Can I work on this? and get assigned.
  3. Make changes to your Fork and send a PR.

Otherwise just create the issue yourself, and we'll discuss and assign you to it if serves the project !

To create a PR:

Follow the given link to make a successful and valid PR: https://help.github.com/articles/creating-a-pull-request/

To send a PR, follow these rules carefully, otherwise your PR will be closed:

  1. Make PR title in this formats:
Fixes #IssueNo : Name of Issue
Feature #IssueNo : Name of Issue
Enhancement #IssueNo : Name of Issue

According to what type of issue you believe it is.

For any doubts related to the issues, i.e., to understand the issue better etc, comment down your queries on the respective issue.

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Erwin Lejeune - @spida_rwin - erwin.lejeune15@gmail.com

Contributors

About

📊⏱️ A script generating GANTT Diagrams from TrampolineRTOS apps' traceback.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages