Skip to content

Latest commit

 

History

History
81 lines (51 loc) · 1.88 KB

PRACTICE.adoc

File metadata and controls

81 lines (51 loc) · 1.88 KB

1. Installation

IDE

Toolchain

Drivers

2. Program Models

Single loop

Write a single loop application

Main loop and ISR

Write a single loop application with ISR

RTOS and Tasks

Write multi-task application with ISR

3. Synchronziation objects

Semaphore

Demo application with sempahores

Mutex

Demo application with mutexes

Events

Demo application with events

Queue

Demo application with queues

4. Synchronziation Problems

Race Conditions

Simulate a race condition in the application

Deadlock

Simulate a deadlock in the application

Starvation

Simulate a starvation in the application

Priority inversion

Simulate a priority inversion in the application

5. Study Projects

Simple protocol stack

Use the the Hilscher Variable Length Protocol to write a simple firmware. It shall have all the necessery configuration and communication packets to operate.

Simple blockchain

Demonstrate the security of blockchain solutions by using the proof of work mechanism for embedded systems. Show that the computational power to generate the hash is relatively small for small to medium scale systems.

The solution should be able to work with N devices, whereby each device might be either a miner, server or client or all at once.

Simple packet generator

Use packet interface to configure and enable a packet generator used for stress testing of ethernet based protocols. The packet generator will have the following packets:

  1. Configure the packet generator

  2. Start the packet generator

  3. Stop the packet generator

As part of the configuration we will have a structure, which will contain one or more messages to be repeatedly sent. The number of times the packet will be sent will be configurable (1, N, indefinite).

The generator might be also configured to create also totally random messages as part of a fuzzy testing strategy.