Você está na página 1de 29

A Disciplina

Introduo

Sistemas Embarcados
Ricardo Pires

Instituto Federal de Educao, Cincia e Tecnologia


de So Paulo

23 de Julho de 2016

Sistemas Embarcados
A Disciplina
Introduo

Contedo

1 A Disciplina

2 Introduo

Sistemas Embarcados
A Disciplina
Introduo

A componente curricular

Ementa: Estudo atualizado dos sistemas embarcados,


incluindo a escolha dos processadores, a construo e a
configurao do sistema operacional, a preparao para
interao com perifricos, a manuteno de um sistema de
arquivos e o uso de ambientes de desenvolvimento.
Objetivos: Apresentao dos conceitos que possibilitaro a
compreenso e o projeto de sistemas embarcados e capacitar
os alunos a projet-los de forma metdica e eficiente, usando
os componentes eletrnicos e as ferramentas de software mais
adequados.

Sistemas Embarcados
A Disciplina
Introduo

Avaliao

No clculo da mdia semestral sero utilizados, no mnimo,


dois instrumentos de avaliao. O aluno ser considerado
aprovado se obtiver nota semestral maior ou igual a 6,0 e
reprovado se obtiver nota semestral inferior a 4,0. Caso
obtenha uma nota entre 4,0 e 6,0, o aluno ser submetido a
um novo instrumento de avaliao, denominado final, aps o
qual ser considerado aprovado, necessariamente com nota
6,0, ou reprovado.

Sistemas Embarcados
A Disciplina
Introduo

Bibliografia
bsica

WHITE, E. Making Embedded Systems: Design Patterns


for Great Software. EUA: OReilly, 2011.
NOERGAARD,T. Embedded Systems Architecture: a
Comprehensive Guide for Engineers and Programmers.
EUA: Newnes, 2005.
BEN-YOSSEF, G.; GERUM, P.; MASTERS, J.;
YAGHMOUR, K.; Construindo Sistemas Linux
Embarcados. Rio de Janeiro: Starlin Alta Books, 2009

Sistemas Embarcados
A Disciplina
Introduo

Bibliografia
complementar

HALLINAN, C. Embedded Linux Primer: a Practical


Real-World Approach. EUA: Prentice-Hall, 2010.
KAMAL, R. Embedded Systems: Architecture,
Programming and Design, ndia: McGraw-Hill, 2009.
GANSSLE, J. The Art of Designing Embedded Systems.
EUA: Newnes, 2008
HAMACHER, C. et. al. Computer Organization and
Embedded Systems. EUA: McGraw-Hill, 2011.
YAGHMOUR, K.; Embedded Android: Porting, Extending
and Customizing. EUA: OReilly, 2012.

Sistemas Embarcados
A Disciplina
Introduo

Definio
Sistemas Embarcados (Embedded Systems)

Em http://www.barrgroup.com/Embedded-Systems/Glossary-E,
acesso em 20/04/2016:
n. A combination of computer hardware and software, and
perhaps additional mechanical or other parts, designed to
perform a dedicated function. In some cases, embedded
systems are part of a larger system or product, as in the case
of an antilock braking system in a car.

Sistemas Embarcados
A Disciplina
Introduo

Definio
exemplos

EXAMPLE: Microwave ovens, cell phones, calculators, digital


watches, VCRs, cruise missiles, GPS receivers, heart monitors,
laser printers, radar guns, engine controllers, digital cameras,
traffic lights, remote controls, bread machines, fax machines,
pagers, cash registers, treadmills, gas pumps, credit/debit card
readers, thermostats, pacemakers, blood gas monitors, grain
analyzers, and a gazillion others.
Contrast with general-purpose computer.

Sistemas Embarcados
A Disciplina
Introduo

Caractersticas Comuns

Maior veriedade de dispositivos de entrada e sada do que


em computadores de uso geral.
Interao com o mundo fsico por meio de conversores
analgico-digital e digital-analgico.
Podem no ter dispositivos para interao com o usurio,
de entrada ou de sada.

Sistemas Embarcados
A Disciplina
Introduo

Tempo Real

Um sistema dito de tempo real respeita restries de tempo de


reao a determinados eventos, ou seja, garante-se que ele
no se atrasa na execuo de certas tarefas crticas.
Isso no ocorre com computador de uso geral que usa um
sistema operacional comum. Nesse caso, quanto mais
programas forem colocados em execuo nesse computador,
pior fica o tempo de resposta de cada programa. O tempo de
resposta imprevisvel.
Alguns sistemas embarcados so de tempo real. Outros, no.

Sistemas Embarcados
A Disciplina
Introduo

Classificao
presena de sistema operacional

sem sistema operacional


com sistema operacional

Sistemas Embarcados
A Disciplina
Introduo

Sem Sistema Operacional


Super Loop

function main_function()
{
initialization();
while( 1 )
{
check_status();
do_calculations();
output_response();
}
}

fonte:
https://en.wikibooks.org/wiki/Embedded_Systems/Super_Loop_Architecture

Sistemas Embarcados
A Disciplina
Introduo

Sem Sistema Operacional


Super Loop

O sistema passa, uma vez, por fase de inicializao.


No resto do tempo, a execuo segue um lao de repetio
(loop).
Interrupes podem quebrar essa sequncia. Elas so eventos
assncronos, que podem ser ativados por meio de um pino do
microcontrolador do sistema. Isso faz a execuo ser desviada
para sub-rotina de tratamento de interrupo. Ao final do
tratamento, a execuo volta ao ponto em que estava no
momento da interrupo.

Sistemas Embarcados
A Disciplina
Introduo

Sistema Operacional
funes

Fornecer a programas aplicativos um conjunto de recursos


simples e abstrato, independente de detalhes do hardware.
Gerenciar esses recursos.

Sistemas Embarcados
A Disciplina
Introduo

Sistema Operacional
gerenciamento de recursos

Recursos: processadores, memria, discos, interface de rede,


impressoras etc.
Gerenciar: Alocar, de forma organizada, os recursos aos
programas que os disputam.

Sistemas Embarcados
A Disciplina
Introduo

Sistemas Operacionais
uma classificao

de cdigo aberto (open source): Qualquer pessoa pode ler o


cdigo-fonte do sistema, modific-lo e
recompil-lo.
de cdigo fechado: Apenas a empresa proprietria ou os
desenvolvedores podem ler o cdigo-fonte.
Clientes s recebem o cdigo binrio, que
ilegvel.

Sistemas Embarcados
A Disciplina
Introduo

Sistemas Operacionais
tipos extremos de licenas

comerciais: O comprador no pode entregar cpias do


sistema, nem usar nmero de cpias maior do
que o autorizado, nem modificar o sistema e
revender o resultado.
GPL (GNU General Public License): Elaborada pela Free
Software Foundation, aplica-se a programas de
cdigo aberto (no todos). Exige que eles sejam
distribudos livremente, em qualquer nmero de
cpias, desde que com a disponibilizao do
cdigo-fonte. Modificaes e acrscimos tambm
devem ter licena GPL. Crditos aos autores da
parte original e das mudanas devem ser
distribudos com elas.

Sistemas Embarcados
A Disciplina
Introduo

Sistemas Operacionais
especificao POSIX

Portable Operating System Interface (POSIX) um conjunto de


padres especificados pelo IEEE para manter compatibilidade
entre sistemas operacionais.
Seguida por: GNU/Linux, OS X, vrios sistemas tipo UNIX.

Sistemas Embarcados
A Disciplina
Introduo

Sistemas Operacionais
caractersticas de GNU/Linux e outros tipo UNIX

multitarefa: Vrios processos so executados


simultaneamente, multiplexados no tempo,
usando esquema de prioridade.
multiusurio: Proteo de dados de cada usurio de
interferncia de outros usurios.
suporte a multiprocessamento: Diviso de tarefas entre
ncleos de processamento.
proteo de memria entre processos: Acesso a cada regio
de memria bem controlado, por meio de
esquema de direitos de acesso.

Sistemas Embarcados
A Disciplina
Introduo

Sistemas Operacionais
caractersticas de GNU/Linux e outros tipo UNIX

Caractersticas do sistema de arquivos:


hierrquico: Mantm pastas e arquivos organizados em rvore.
rvore nica: Com raiz em /, com pastas e arquivos
independentes do hardware.
uso de links simblicos: Pastas e arquivos podem aparecer
em vrios locais da rvore simultaneamente, cada
um deles com vrios nomes.
dispositivos de entrada e sada tratados como arquivos:
Discos, CDs, DVDs, pendrive etc. so itens na
rvore de arquivos e sofrem operaes como se
fossem arquivos.

Sistemas Embarcados
A Disciplina
Introduo

Sistemas Operacionais
caractersticas de GNU/Linux e outros tipo UNIX

O sistema em funcionamento tem processos em execuo.


Um processo consiste em cdigo executvel e recursos tais
como: dados na memria, pilha e tabelas.
Um processo no pode acessar recursos de outro.
Dados podem ser compartilhados entre processos por meio de
memria compartilhada ou de pipes (tubos).

Sistemas Embarcados
A Disciplina
Introduo

Sistemas Operacionais
caractersticas de GNU/Linux e outros tipo UNIX

Uma thread (linha de execuo) cdigo sendo executado,


pertencente a um processo, mas compartilhando recursos com
outras threads do mesmo processo.
Normalmente, threads de um mesmo processo trabalham de
forma colaborativa numa mesma tarefa.

Sistemas Embarcados
A Disciplina
Introduo

Sistemas Operacionais
caractersticas de GNU/Linux e outros tipo UNIX

Modelo de Processos

cdigo cdigo cdigo


dados dados dados
processo 1 processo 2 processo 3

Sistemas Embarcados
A Disciplina
Introduo

Sistemas Operacionais
caractersticas de GNU/Linux e outros tipo UNIX

Modelo de Processo Multithread

dados

thread 1 thread 2 thread 3

processo n

Sistemas Embarcados
A Disciplina
Introduo

Sistemas Operacionais
caractersticas de sistemas de arquivos GNU/Linux e outros tipo UNIX

Um sistema de arquivos rvore com raiz em /.


Arquivos e pastas tm permisses de acesso controladas.

rwx |{z}
|{z} rwx |{z}
rwx
dono grupo outros

em que r , w e x (leitura, escrita e execuo) so ajustados


como verdadeiro (1) ou falso (0) para cada pasta e cada
arquivo.
Usurio root o administrador do sistema.

Sistemas Embarcados
A Disciplina
Introduo

Sistemas Operacionais
montagem de sistemas de arquivos GNU/Linux e outros tipo UNIX

Dispositivos fsicos, tais como discos rgidos, CDs, DVDs e


pendrives, podem ter seus sistemas de arquivos acoplados a
um sistema maior e nico, sob /. Exemplo:

mnt home usr ...

cdrom pendrive ...

Esse acoplamento chamado montagem. aplicvel,


tambm, a sistemas de arquivos remotos (pela rede) ou a
outras parties no disco.
Sistemas Embarcados
A Disciplina
Introduo

Sistemas Embarcados
Ambientes: host e target

host (anfitrio): o computador em que desenvolvido o


sistema embarcado. um computador de uso
geral, com recursos usuais. Normalmente, mais
rpido e tem muito mais memria do que o target.
target (alvo): o sistema embarcado. Pode no ter teclado,
monitor de vdeo, mouse, disco rgido e outros
recursos usuais. Pode ter processador e sistema
operacional diferentes daqueles do host.

Sistemas Embarcados
A Disciplina
Introduo

Sistemas Embarcados
Ambientes: host e target

Compilao cruzada (ou cross compilation) a gerao, no


host, de cdigo a ser executado no target, quando os
processadores dos dois sistemas so diferentes entre si. Por
exemplo, o host pode ter um Pentium, enquanto o target tem
um ARM.

Sistemas Embarcados
A Disciplina
Introduo

Sistemas Embarcados
exemplo de hardware

Raspberry Pi (https://www.raspberrypi.org/ )

Sistemas Embarcados

Você também pode gostar