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 174: Linha 174:
  
 
{{collapse bottom}}
 
{{collapse bottom}}
 
 
<syntaxhighlight lang=c>
 
#define BAUD 19200
 
#define MYUBRR F_CPU/16/BAUD-1
 
 
void usart_init( uint16_t ubrr = MYUBRR) {
 
    // Set baud rate
 
UBRR0 = ubrr;
 
    // Enable receiver and transmitter
 
UCSR0B = (1<<RXEN0)|(1<<TXEN0);
 
    // Set frame format: 8data, 1stop bit
 
    UCSR0C = (1<<UMSEL00)|(3<<UCSZ00);
 
}
 
</syntaxhighlight>
 

Edição das 16h57min 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 - 31/10/2016

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 - 13/11/2016

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 - 05/12/2016

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 - 18/12/2016

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: