All Projects → siemens → Freertos Cell

siemens / Freertos Cell

Licence: other
FreeRTOS for Jailhouse Cells

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Freertos Cell

Poseflow
PoseFlow: Efficient Online Pose Tracking (BMVC'18)
Stars: ✭ 330 (+964.52%)
Mutual labels:  real-time, realtime
Realtime Server
A realtime dedicated game server ( FPS / MOBA ). 一个实时的专用游戏服务器.
Stars: ✭ 358 (+1054.84%)
Mutual labels:  real-time, realtime
Aws Mobile Appsync Events Starter React
GraphQL starter application with Realtime and Offline functionality using AWS AppSync
Stars: ✭ 337 (+987.1%)
Mutual labels:  real-time, realtime
Android Ddp
[UNMAINTAINED] Meteor's Distributed Data Protocol (DDP) for clients on Android
Stars: ✭ 271 (+774.19%)
Mutual labels:  real-time, realtime
Ssr Net
[IJCAI18] SSR-Net: A Compact Soft Stagewise Regression Network for Age Estimation
Stars: ✭ 475 (+1432.26%)
Mutual labels:  real-time, realtime
Clearly
Clearly see and debug your celery cluster in real time!
Stars: ✭ 287 (+825.81%)
Mutual labels:  real-time, realtime
Spikenail
A GraphQL Framework for Node.js
Stars: ✭ 358 (+1054.84%)
Mutual labels:  real-time, realtime
signalr-client
SignalR client library built on top of @aspnet/signalr. This gives you more features and easier to use.
Stars: ✭ 48 (+54.84%)
Mutual labels:  real-time, realtime
Mobilepose Pytorch
Light-weight Single Person Pose Estimator
Stars: ✭ 427 (+1277.42%)
Mutual labels:  real-time, realtime
Touchdesigner shared
TouchDesigner toxes and small projects
Stars: ✭ 385 (+1141.94%)
Mutual labels:  real-time, realtime
instant-ngp
Instant neural graphics primitives: lightning fast NeRF and more
Stars: ✭ 1,863 (+5909.68%)
Mutual labels:  real-time, realtime
Yolact edge
The first competitive instance segmentation approach that runs on small edge devices at real-time speeds.
Stars: ✭ 697 (+2148.39%)
Mutual labels:  real-time, realtime
o1heap
Constant-complexity deterministic memory allocator (heap) for hard real-time high-integrity embedded systems
Stars: ✭ 119 (+283.87%)
Mutual labels:  real-time, realtime
Sc Crud Sample
Sample real-time CRUD inventory tracking app built with SocketCluster
Stars: ✭ 323 (+941.94%)
Mutual labels:  real-time, realtime
ChatService
ChatService (SignalR).
Stars: ✭ 26 (-16.13%)
Mutual labels:  real-time, realtime
Distortos
object-oriented C++ RTOS for microcontrollers
Stars: ✭ 354 (+1041.94%)
Mutual labels:  arm, real-time
FlipED
A LMS built specifically for Thailand's Education 4.0 system.
Stars: ✭ 24 (-22.58%)
Mutual labels:  real-time, realtime
rnk
rnk is a RTOS targeting ARM architecture.
Stars: ✭ 22 (-29.03%)
Mutual labels:  arm, real-time
Yolact
A simple, fully convolutional model for real-time instance segmentation.
Stars: ✭ 4,057 (+12987.1%)
Mutual labels:  real-time, realtime
Applozic Android Sdk
Android Real Time Chat & Messaging SDK
Stars: ✭ 611 (+1870.97%)
Mutual labels:  real-time, realtime

FreeRTOS cell for the jailhouse hypervisor

FreeRTOS is a real time operation system for embedded systems. It is widely used on ARM based microprocessor boards. Jailhouse is a partitioning Hypervisor based on Linux. For more information on both systems refer to the corresponding web pages.

This project aims at getting both systems run together on a multicore ARM processor system. It allows to combine the general purpose OS Linux with a hard real time OS. Both systems are almost isolated from each other by the underlying hypervisor.

Prerequisites

  • At the moment the system runs only on a Banana Pi board
  • Make sure Jailhouse is running correctly on this board. Installation instructions can be found here.
  • A working cross compiler toolchain for your target platform

Setup

First of all clone this repository

FREERTOS_CELL_DIR=$HOME/freertos-cell
git clone https://github.com/siemens/freertos-cell.git $FREERTOS_CELL_DIR

Jailhouse configuration

Let's assume your Jailhouse sources reside in the directory

JAILHOUSE_DIR=$HOME/jailhouse

then do the following to build new cell description files for the hypervisor

  1. Root cell description

       cp $FREERTOS_CELL_DIR/jailhouse-configs/bananapi.c $JAILHOUSE_DIR/configs/arm/
    
  2. RTOS cell description

       cp $FREERTOS_CELL_DIR/jailhouse-configs/bananapi-freertos-demo.c $JAILHOUSE_DIR/configs/arm/
    
  3. Rebuild your jailhouse subsystem. In the directory "$JAILHOUSE_DIR/configs/arm" you will get two new files which are used in the next step.

  4. Setup your jailhouse instances

This step has to be executed on the ARM target. You have to transfer the cell files to the target machine.

      jailhouse enable $JAILHOUSE_DIR/configs/arm/bananapi.cell
      jailhouse cell create $JAILHOUSE_DIR/configs/arm/bananapi-freertos-demo.cell

FreeRTOS code generation

Cross compiling

The build system assumes that your cross compiler prefix is "arm-linux-gnueabihf-". If this condition is true then you simply do

cd $FREERTOS_CELL_DIR
make

If your cross compiler prefix is something different then you can build the whole by invoking

cd $FREERTOS_CELL_DIR
make CROSS_COMPILE='xxx-yyy-zzz-'

Native compile step on the target

It is also possible to build the code directly on the target machine by doing the following

cd $FREERTOS_CELL_DIR
make CROSS_COMPILE=''

Startup of the application

Now you are ready to start your FreeRTOS demo under the hypervisor. Once again this step has to be executed on the ARM target.

jailhouse cell load FreeRTOS $FREERTOS_CELL_DIR/freertos-demo.bin
jailhouse cell start FreeRTOS

After performing these 2 steps you should get some output from the FreeRTOS demo application on the second serial interface (baudrate: 115200) of the Banana Pi board.

Moreover the green LED on the board should start to blink.

The first serial interface is used by the hypervisor and Linux.

Porting to other platforms

If you plan to get the whole system running on other hardware bases you have to take into consideration the following items:

  • Modify the serial interface access
  • Your hardware needs a GIC (Generic Interrupt Controller) module
  • Of course you need a SoC with virtualization support
  • It must be possible to switch the CPUs online/offline
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].