Mudanças entre as edições de "STE-EngTel (página)"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 105: Linha 105:
 
= Homework =
 
= Homework =
  
{{collapse top| bg=lightyellow | expandir=true | Homework 01: Mandrake Voltage Detector - 31/10/2016}}
+
{{collapse top| bg=lightyellow | expandir=true | Homework 01: Mandrake Voltage Detector}}
  
 
The gerenal design of this project was carried out with the students during class.
 
The gerenal design of this project was carried out with the students during class.
Linha 120: Linha 120:
 
{{collapse bottom}}
 
{{collapse bottom}}
  
{{collapse top| bg=lightyellow | expandir=true | Homework 02: Static Program Analysis - 13/11/2016}}
+
{{collapse top| bg=lightyellow | expandir=true | Homework 02: Static Program Analysis}}
  
 
In this experiment, in doubles, students will perform an static analysis to specify time and power consumption profile of the Mandrake VD application (homework 1).
 
In this experiment, in doubles, students will perform an static analysis to specify time and power consumption profile of the Mandrake VD application (homework 1).
Linha 132: Linha 132:
 
{{collapse bottom}}
 
{{collapse bottom}}
  
{{collapse top| bg=lightyellow | expandir=true | Homework 03: Real-Time Operating System - 05/12/2016}}
+
{{collapse top| bg=lightyellow | expandir=true | Homework 03: Real-Time Operating System}}
  
 
In groups, each using different boards:
 
In groups, each using different boards:
Linha 159: Linha 159:
 
{{collapse bottom}}
 
{{collapse bottom}}
  
{{collapse top| bg=lightyellow | expandir=true | Homework 04: Embedded RT Linux Application - 18/12/2016}}
+
{{collapse top| bg=lightyellow | expandir=true | Homework 04: Embedded RT Linux Application}}
  
 
Deliver a report and source code of your RT application running on Linux with preempt_rt.
 
Deliver a report and source code of your RT application running on Linux with preempt_rt.

Edição das 16h58min de 16 de março de 2017

Sistemas Embarcados

Grades

Student HW1 HW2 HW3 HW4 Final

Lab Experiments

The experiments in this course are based on the project Embedded Systems Experiments for the Telecommunication Engineering Undergraduate Program. See this page for the Experimental Setup. We will use the Arduino Uno board as hardware platform, and will be developing software in C/C++ using the GNU compiler with the avrlibc. We have plenty of Arduinos for use in the classroom, but if you can afford, you are encouraged to buy one for yourself to work on the extra-class assignments. They are available for less than R$50. check MercadoLivre.

Arduino's microcontroller is Atmel's ATMega328P. Download its manual here.

Adafruit Protoshield Datasheet [1]

Syllabus

Unit 01 - Get In: Hands on Microcontroller Software

Unit 01 - Get In: Hands on Microcontroller Software

Introduction to Embedded Systems

Embedded Systems Development: Design Principles

General Porpuse Input Output and External Interrupts

Serial Communication

Input/Output Buffers

Analog-to-Digital Conversion

Digital-to-Analog Conversion

Unit 02 - Get Right: Introduction to Real-Time Systems

Unit 02 - Get Right: Introduction to Real-Time Systems

Multitasking

Real-Time Scheduling

Unit 03 - Get Out: Networked Embedded Systems

Unit 03 - Get Out: Networked Embedded Systems

Embedded Networks and Multiprocessors

Embedded Networks Seminar

  • Will be covered by seminars. See Homework 04.
Unit 04 - Get Done: Embedded System Design

Unit 04 - Get Done: Embedded System Design

Homework

Homework 01: Mandrake Voltage Detector

The gerenal design of this project was carried out with the students during class.

To complete the assignment, each student will use an Arduino UNO platform and deliver:

  • UML model of the application;
  • Arduino implementatino of the application;
  • C++/GCC implementation of classes for AVR's:
    • GPIO;
    • UART (with interrupts and input/output buffers);
    • ADC (with interrupts and circular buffer).
  • C++/GCC implementation of voltage detector application as described in class.
Homework 02: Static Program Analysis

In this experiment, in doubles, students will perform an static analysis to specify time and power consumption profile of the Mandrake VD application (homework 1).

To complete the assignment, each student must:

  • Instrument an Arduino UNO with an Osciloscope to measure, via a shunt resistor, current and voltage inputs for the board during program execution;
  • Identify application's basic blocks;
  • Measure average power (P=V.i) and execution time of each basic block;
  • Write report describing the methodology and presenting the measurement results.
Homework 03: Real-Time Operating System

In groups, each using different boards:

  • Group 1: Gustavo, Iago, Fernando, Stephany - Intel Edison
  • Group 2: Mathias, Ronaldo, Marcus - BeagleBone Black
  • Group 3: Roicenir, João - Xilinx MicroZed
  • Group 4: Giulio, Walter - Intel Galileo Gen 2
  • Group 5: Guilherme, Vinicius - RaspberryPi 3

Each group must, initialy, generate a Yocto Linux Image with the following characteristics:

  • Generate compact image (core-image-minimal);
  • Generate toolchain (meta-toolchain);
  • Use preempt-rt kernel type;
  • Document additional Yocto layers and configurations used.
  • Suggestion: Yocto 2.2 (morty) has just been released and there seems to be a few issues with it. Use Yocto 2.1 (krogoth) instead.

A few references to help you to get through:

Homework 04: Embedded RT Linux Application

Deliver a report and source code of your RT application running on Linux with preempt_rt.

The application can be either any application defined by your team (in agreement with the lecturer), or a evaluation of Linux performance in your board.

If you choose to evaluate Linux performance, you can use the CyclicTest tool in both preempt_rt and ordinary Linux kernels and report a comparison. There is a paper bellow showing an example of performance comparisson among RT and non-RT versions of Linux, using the CyclicTest tool.

Documents: