SCHEDULE BUILDER
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.