Drive World ESC is part of the Informa Markets Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.


Welcome to the Drive World with ESC 2019 Presentation Store. Here you can view and download conference presentations before, during, and after the event. If you’re looking for a presentation from a specific session that you’re unable to find here, note that it’s likely because the presenter has not provided permission for external use or has not yet shared their presentation with us. Please check back after the event for a more complete catalogue of available presentations.

Embedded Operating Systems Development: From Project to Implementation

Rodrigo Almeida  (Professor, Unifei)

Sergio Prado  (Consultant, Embedded Labworks)

Location: Room 203

Date: Tuesday, August 27

Time: 2:15pm - 4:45pm

Track: Tutorials & Hands-on Demos, ESC - Embedded Software Design & Verification

Format: Tutorial/Demo

Vault Recording: TBD

The workshop is an introduction to operational systems design with a heavy hands-on approach. The main idea is to build from the ground up a full-featured kernel, with task scheduler, time management, and a device driver controller. The kernel will be built in the first half of the course and used to teach some of the restrictions on embedded software and real time.

The hardware to be used is composed of microcontroller, LED, LCD, and potentiometer. All programming will be done without external headers, to get the attendees to understand the low-level electronics-programming relationship. Regarding the microcontroller peripherals, the IO ports, PWM output, and the AD converter will be covered, as the timing requirements, to enable the LCD-microcontroller communication.

The second part of the workshop is devoted to the development and testing of a kernel. The kernel development is going to be divided into three steps: tasks creation (though function pointers), task management (using a circular buffer) and timing requirements (using timer interrupt).

In the third part of the workshop, a device driver controller will be presented and the driver's standardization process will be discussed. Examples are going to be presented using the peripherals available (I/O, PWM, ADC, and timer). The final experience will cover a full system using the ADC end of conversion callback to create a task that will get the value and set the PWM in real time, while another task will output the systems information on the LCD.