1 / 122

Introdução ao desenvolvimento de software embarcado

Introdução ao desenvolvimento de software embarcado. Alexandra Aguiar , Sérgio Johann, Felipe Magalhães , Fabiano Hessel. Programação. Sala Ponta Negra, Bloco C 19/07 – Terça-feira 17h as 19h 20/07 – Quarta-feira 11h as 13h 17h as 19h. Apresentação.

moswen
Download Presentation

Introdução ao desenvolvimento de software embarcado

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Introdução ao desenvolvimento de software embarcado Alexandra Aguiar, Sérgio Johann, Felipe Magalhães, FabianoHessel

  2. Programação • Sala Ponta Negra, Bloco C • 19/07 – Terça-feira • 17h as 19h • 20/07 – Quarta-feira • 11h as 13h • 17h as 19h Introdução ao desenvolvimento de software embarcado

  3. Apresentação • Faculdade de Informática (FACIN) – PUCRS • CC (Ciência da Computação) – 498 alunos • EC (Engenharia de Computação) – 328 alunos (compartilhada com FENG) • SI (Sistemas de Informação) – 551 alunos • PPGCC (Programa de PósGraduaçãoemCiência da Computação) – 82 MSc; 44 PhD • Linha de pesquisa • SESD – SistemasEmbarcados e SistemasDigitais • Grupos • GSE – Grupo de SistemasEmbarcados • Gaph – Grupo de ApoioaoProjeto de Hardware • Equipe • 7 – professores • 24 – alunosmestrado • 11 – alunosdoutorado • 32 – alunos de graduação Introdução ao desenvolvimento de software embarcado

  4. Projetos industriais GSE / GAPH • Telecom • Parks • Digistar • Datacom • Novus • Automação industrial • Novus • Innalogics • INCT-Sec • RFID chip • Innalogics • Ceitec • Hp • Tsystems • Aplicações espaciais • AEL • INPE • Apoiogovernamental • Capes • CNPq • Fapergs

  5. Cooperação Acadêmica • Cooperação Nacional • UFRGS • UNICAMP • UFSM • UFSC • Cooperação Internacional • França • TIMA (Grenoble) • CEA – LETI (Grenoble) • LIRMM (Montpellier) • Holanda • Philips Research Labs (EindHoven)

  6. GSE – Equipe Hellfire • Dr. FabianoHessel– (Supervisor) • fabiano.hessel@pucrs.br • Alexandra Aguiar (Doutorado) • alexandra.aguiar@pucrs.br • Felipe Magalhães (Mestrado) • felipe.magalhaes@acad.pucrs.br • Oliver BellaverLonghi (Graduação) • oliver.longhi@acad.pucrs.br • SérgioJohann Filho (Doutorado) • sergio.johann@acad.pucrs.br Introdução ao desenvolvimento de software embarcado

  7. Sumário – Curso teórico-prático • Teoria (aprox. 3 horas) • Sistemas Embarcados • Sistemas de Tempo Real • Prática (aprox. 3 horas) • Hellfire framework Introdução ao desenvolvimento de software embarcado

  8. Contextualização Introdução ao desenvolvimento de software embarcado

  9. Introdução • Sistemas Embarcados Introdução ao desenvolvimento de software embarcado

  10. Introdução • Restrições • Temporais • De área • De consumo de energia • De custo • ... • Time-to-market Introdução ao desenvolvimento de software embarcado

  11. Introdução • Plataformas • SoC • MPSoC • Desafios de sistemas de propósito geral presentes em sistemas embarcados • Software em sistemas embarcados Introdução ao desenvolvimento de software embarcado

  12. Introdução • Desenvolvimento de Firmware • Automação de processos • Área de Robótica • Aero-espacial • Automobilística Introdução ao desenvolvimento de software embarcado

  13. Conceitos básicos e de hardware Introdução ao desenvolvimento de software embarcado

  14. Sistemas embarcados • Sistema dedicado a uma ou mais tarefa(s) específica(s) • Possui diversas restrições em relação ao seu desenvolvimento • Não pode ser reprogramado em tempo de execução • Normalmente alimentados por baterias • Leva em consideração as características da aplicação em seu projeto • Alta confiabilidade Introdução ao desenvolvimento de software embarcado

  15. Sistemas embarcados – Restrições • Energia • ''Alimentado por baterias?'' • ''Como reduzir consumo?'' • Capacidade • ''Que tipo de CPU será usada?'' • ''Qual o tipo adequado?'' • ''Hardware, Software ou Hardware e Software?'' • Memória • ''Quanto de memória há disponível?'' • Tempo de Desenvolvimento • ''Quanto tempo para lançar o produto?'' • Tempo Restrito de Resposta (Tempo Real) • ''Qual a responsividade esperada?'' Introdução ao desenvolvimento de software embarcado

  16. Sistemas embarcados • Integração de diversos componentes em uma única pastilha de silício • Uma unidade de processamento, uma unidade de memória e uma unidade de E/S • Primeiro produto em 1974 Introdução ao desenvolvimento de software embarcado

  17. Comm.interc. SW HW SW abstract SW tasks SW tasks SW tasks cluster SW adaptation OS OS MPU core MPU MPU HW adaptation Comm. int. Comm. int. on-chipcommunicationNetwork IPs HW adaptation SW HW Platform Around CPU busSW call OS routines to send Framei to DCT IP (bus priority) SW Tasks abstract OS/drivers cluster HW adaptation IPs Sistemas embarcados • Abstrações • Aglomerações Register-transfer level modeldata[1011011] (critical path latency) RTL Gate level model1/0/X/U (D ns) abstract CPU abstract Transistor model(t=RC) cluster cluster abstract 1970’s 1980’s 1990’s 2000’s 2010+ Adapted from F. Schirrmeister (Cadence Design Systems Inc.) Introdução ao desenvolvimento de software embarcado

  18. Sistemas embarcados Introdução ao desenvolvimento de software embarcado

  19. Sistemas de tempo real • Sistemas computacionais de tempo real: • Submetidos a requisitos de natureza temporal • Resultados devem estar corretos lógica e temporalmente • Requisitos definidos pelo ambiente físico • Aspectos temporais • NÃO estão limitados a uma questão de maior ou menor desempenho • Estão diretamente associados com a funcionalidade • Sistemas em geral: • “Fazer o trabalho usando o tempo necessário” • Sistemas de tempo real: • “Fazer o trabalho usando o tempo disponível” Introdução ao desenvolvimento de software embarcado

  20. Sistemas de tempo real • Conceitos EQUIVOCADOS • Tempo real significa execução rápida • Computadores mais rápidos vão resolver todos os problemas • Sistemas de tempo real são pequenos, escritos em assembly • Sistemas de tempo real são formados apenas por • Tratadores de interrupção, e; • Drivers de dispositivos • Sistemas de tempo real operam em ambientes estáticos Introdução ao desenvolvimento de software embarcado

  21. Sistemas de tempo real • Soft real-time systems • Desempenho é degradado • Ex: sistemas multimídia • Firm real-time systems • não cumprimento de restrições temporais pode ser tolerado. • Ex: engarrafamento de refrigerantes. • Hard real-time systems • Consequências para vidas humanas e/ou meio ambiente • Ex: sistemas de segurança crítica Introdução ao desenvolvimento de software embarcado

  22. Sistemas de tempo real Introdução ao desenvolvimento de software embarcado

  23. Arquiteturas Embarcadas • System-on-Chip – SoC Introdução ao desenvolvimento de software embarcado

  24. Arquiteturas Embarcadas • Multiprocessor System-on-Chip Introdução ao desenvolvimento de software embarcado

  25. Arquiteturas Embarcadas • Comunicação – Barramento • Topologias • Simples, hierárquico... Introdução ao desenvolvimento de software embarcado

  26. Arquiteturas Embarcadas • Comunicação – Network-on-Chip – NoC • Tendência de comunicação • Utiliza roteadores para gerenciar o tráfego • Conexão ponto a ponto • Comunicação paralela • Maior área e complexidade para implementação Introdução ao desenvolvimento de software embarcado

  27. Arquiteturas Embarcadas • Comunicação – Network-on-Chip – NoC • Topologias • Mesh 2D, Anel, Direta Introdução ao desenvolvimento de software embarcado

  28. Arquiteturas Embarcadas • Virtualizadas • Hypervisor Tipo 1 Hypervisor Tipo 2 Introdução ao desenvolvimento de software embarcado

  29. Arquiteturas Embarcadas Ring de-privilegingParavirtualização Introdução ao desenvolvimento de software embarcado

  30. Software Embarcado Introdução ao desenvolvimento de software embarcado

  31. Software embarcado • Crescente utilização • Diversas camadas • Aplicação e Sistema Operacional Introdução ao desenvolvimento de software embarcado

  32. Software Embarcado • Sistemas Operacionais Embarcados • Lidam com restrições de memória e armazenamento • Geralmente não possuem interface para usuário • Estrutura simplificada em relação ao SO de propósito geral • Certos módulos podem não estar presentes • Maior diversidade de processadores Introdução ao desenvolvimento de software embarcado

  33. RTOS Embarcados • Real-time Operating System – Embarcados • Atender requisitos dos Sistemas de Tempo Real • Conceitos básicos • Tarefa • Periódicas x aperiódicas • Esporádica • Preemptiva x não preemptivas • Estática x dinâmica Introdução ao desenvolvimento de software embarcado

  34. RTOS Embarcados • Tempo de computação ou execução (computation time) • é o tempo utilizado por uma tarefa para a execução completa de suas atribuições. • Casos especiais de tempo de execução incluem: • BCET (Best Case Execution Time) - melhor (menor) tempo de execução possível de uma determinada tarefa; • ACET (Average Case Execution Time) - tempo médio de execuçãode uma determinada tarefa, e; • WCET (Worst Case Execution Time) - pior (maior) tempo de execução possível de uma determinada tarefa. Introdução ao desenvolvimento de software embarcado

  35. RTOS Embarcados • tempo limite de execução (deadline) • é o tempo máximo permitido para que uma tarefa seja executada; • tempo de início (start time) • é o instante de início do processamento da tarefa em ativação; • tempo de término (completion time) • é o instante de tempo em que se completa a execução da tarefa; • tempo de chegada (arrival time) • é o instante em que o escalonador toma conhecimento de uma ativação da tarefa, e; • tempo de liberação (release time) • corresponde ao instante de inclusão da tarefa na fila de tarefas prontas a ser executadas. Introdução ao desenvolvimento de software embarcado

  36. RTOS Embarcados • Controle de aplicações com restrições de tempo real • Sub-sistema semelhante a Sistemas Operacionais de Propósito Geral • Inclusão de uma unidade escalonadora de tempo real • Algoritmos de escalonamento de tempo real • Earliest Deadline First - EDF • Rate Monotonic – RM Introdução ao desenvolvimento de software embarcado

  37. RTOS Embarcados • Estados de uma tarefa Introdução ao desenvolvimento de software embarcado

  38. RTOS Embarcados • Estados de uma tarefa Introdução ao desenvolvimento de software embarcado

  39. RTOS Embarcados • Modelo de tarefa • Conjunto de tarefas • Fator de utilização do processador • Fator de carga do processador • Idle time Introdução ao desenvolvimento de software embarcado

  40. RTOS Embarcados - Escalonamento • On-line versus off-line • Preemptivoversus não preemptivo • Melhor esforço (besteffort) versus intolerâncias a falhas de tempo (timing faultintolerance) • Centralizado versus distribuído Introdução ao desenvolvimento de software embarcado

  41. RTOS Embarcado – Taxa Motônica (Rate Monotonic – RM) • Desenvolvido por Liu & Layland. • Produz escalas em tempo de execução através de escalonadores preemptivos dirigidos a prioridades. • Online: Escala é produzida em tempo de execução • É um esquema de prioridade fixa, ou seja, tarefas sempre possuem a mesma prioridade. • Estático: prioridades não variam em tempo de execução

  42. RTOS Embarcado – Taxa Motônica (Rate Monotonic – RM) • O algoritmo RM trabalha sobre um modelo de tarefas bastante simples, que obedece às seguintes premissas: • As tarefas são periódicas e independentes. • O “deadline” de cada tarefa coincide com o seu período (Di = Pi) • O tempo de computação (Ci) de cada tarefa é conhecido e constante (Worst Case Computation Time) • O tempo de chaveamento entre tarefas é assumido nulo.

  43. RTOS Embarcado – Taxa Motônica (Rate Monotonic – RM) • Idéia: Dar maior prioridade às tarefas de menor período.

  44. RTOS Embarcado – Taxa Motônica (Rate Monotonic – RM) Até o tempo 40: 11 trocas de contexto 3 preempções

  45. RTOS Embarcado – Taxa Motônica (Rate Monotonic – RM) • A análise de escalonabilidade pode ser feita através de um teste que define uma condição suficiente.

  46. RTOS Embarcado – Taxa Motônica (Rate Monotonic – RM) • Aplicando a fórmula no exemplo utilizado, temos:

  47. RTOS Embarcado – Taxa Motônica (Rate Monotonic – RM) • Muito utilizado devido a sua simplicidade de implementação. • É um algoritmo ótimo para a classe de problemas que se propõe • Tarefas periódicas. • P = D. • Prioridade Fixa.

  48. RTOS Embarcado – Earliest Deadline First (EDF) • Desenvolvido por Liu & Leiland • Produz escalas em tempo de execução através de escalonadores preemptivos dirigidos a prioridades. • É um esquema de prioridade dinâmica. • On-line e Dinâmico.

  49. RTOS Embarcado – Earliest Deadline First (EDF) • O algoritmo EDF trabalha sobre um modelo de tarefas bastante simples, que obedece as seguintes premissas: • As tarefas são periódicas e independentes. • O “deadline” de cada tarefa coincide com o seu período (Di = Pi) • O tempo de computação (Ci) de cada tarefa é conhecido e constante (Worst Case Computation Time) • O tempo de chaveamento entre tarefas é assumido nulo.

  50. RTOS Embarcado – Earliest Deadline First (EDF) • Idéia: Atribuição dinâmica de prioridades de acordo com os deadlines de cada tarefa.

More Related