programação paralela em occam-pi

Download Programação Paralela em occam-pi

Post on 10-Jul-2015

366 views

Category:

Technology

4 download

Embed Size (px)

TRANSCRIPT

  • Instituto Superior de Engenharia de Lisboa Departamento de Engenharia de Eletrnica e Telecomunicaes e de Computadores

    Licenciatura Engenharia Eletrnica de Telecomunicaes e de Computadores

    Projeto Final LEETC

    Programao Paralela em occam-pi

    Relatrio Final

    10 de Setembro

    2012

    Realizado por:

    Rui Alexandre da Silva Miranda, n 32342

    Orientado por:

    Eng Manuel Barata

  • Projeto Final LEETC - Programao Paralela em occam-pi

    2012

    2

    Agradecimentos

    O projeto final de curso representa pessoalmente o reconhecimento de um

    longo e rduo percurso acadmico. A sua realizao no teria sido possvel

    sem o apoio de certas pessoas ou entidades, s quais gostaria de

    agradecer.

    Ao DEETC e todos os seus membros, por me terem proporcionado a

    formao para poder realizar este Projeto Final.

    Ao Engenheiro Manuel Barata, por ter sugerido este projeto, ainda mais por

    se tratar de um tema pouco abordado, mas extremamente interessante, e

    tambm pela disponibilidade que sempre mostrou para apoiar,

    inclusivamente fornecendo o microcontrolador.

    minha companheira, Alina Bordalo, a qual me deu foras para continuar

    mesmo nas altura mais difceis.

  • Projeto Final LEETC - Programao Paralela em occam-pi

    2012

    3

    Resumo

    Este projeto tem como objetivo a criao de uma mquina virtual, e todos

    os seus recursos subjacentes, para que seja possvel correr um programa

    occam-pi sobre um microcontrolador da famlia PIC32. Com isto pretende-

    se a abstrao do Hardware em relao linguagem do Software,

    alcanando assim um nvel de portabilidade e eficincia na escrita de cdigo

    paralelo num sistema embebido de tempo-real, superior actual.

    Como suporte ao desenvolvimento do projeto foi necessria a aprendizagem

    de todas as tecnologias envolvidas: linguagem de programao paralela

    occam-pi [2]; arquitetura do microprocessador Transputer [14]; programao

    C no microcontrolador PIC32 [8].

    Para implementao desta mquina virtual foi necessrio, proceder

    migrao da mquina virtual do Transputer (TVM) [4], do sistema POSIX

    para o sistema embebido, PIC32. Aps a migrao, foi desenvolvida uma

    pequena biblioteca de funes para abstrao do Hardware (HAL). Foi

    tambm desenvolvida uma aplicao, a executar ambiente Linux, para o

    carregamento no PIC32 dos bytecodes do programa occam j compilado,

    atravs da porta srie (USB).

    O objetivo final do projeto consiste na execuo de uma aplicao de

    demonstrao desenvolvida em occam-pi, na mquina virtual implementada

    no Kit com um microcontrolador PIC32.

  • Projeto Final LEETC - Programao Paralela em occam-pi

    2012

    4

    ndice Agradecimentos ............................................................................................................................ 2

    Resumo .......................................................................................................................................... 3

    ndice ............................................................................................................................................. 4

    ndice de Figuras ........................................................................................................................... 6

    ndice de exemplos ....................................................................................................................... 6

    1. Enquadramento Terico ................................................................................................... 7

    1.1. Sistemas Embebidos de Tempo-Real ........................................................................ 7

    1.2. Programao Paralela ............................................................................................... 7

    2. Estudo Desenvolvido ......................................................................................................... 8

    2.1. Transputer ................................................................................................................. 8

    2.1.1. Registos ............................................................................................................. 8

    2.1.2. Instrues .......................................................................................................... 8

    a) Funes Diretas ......................................................................................................... 8

    b) Funes de Prefixo .................................................................................................... 9

    c) Funes Indiretas ...................................................................................................... 9

    2.1.3. Processos e Concorrncia.................................................................................. 9

    2.1.4. Prioridade de Processos .................................................................................. 10

    2.1.5. Comunicao entre Processos ........................................................................ 10

    2.1.6. Temporizadores ............................................................................................... 10

    2.2. Occam ...................................................................................................................... 11

    2.2.1. Caractersticas Principais ................................................................................. 11

    2.2.2. Exemplo ........................................................................................................... 11

    2.3. Projeto KRoC ........................................................................................................... 13

    2.3.1. Compilador occam .......................................................................................... 13

    2.3.2. Interpretador ................................................................................................... 13

    a) Traduo .................................................................................................................. 13

    b) Run-Time ................................................................................................................. 14

    c) Funes tipo sffi ...................................................................................................... 15

    2.3.3. Teste ................................................................................................................ 17

    2.4. PIC32MX460 ............................................................................................................ 18

  • Projeto Final LEETC - Programao Paralela em occam-pi

    2012

    5

    2.4.1. Caractersticas Principais ................................................................................. 18

    2.4.2. Hardware de Desenvolvimento ....................................................................... 18

    2.4.3. Software de Desenvolvimento ........................................................................ 19

    a) Desenvolvimento .................................................................................................... 19

    b) Compilao .............................................................................................................. 20

    c) Carregamento.......................................................................................................... 20

    d) Teste ........................................................................................................................ 21

    2.4.4. Rotina main ..................................................................................................... 21

    3. Projecto ........................................................................................................................... 22

    3.1. Implementao ....................................................................................................... 22

    3.2. Arquitetura .............................................................................................................. 22

    3.3. Migrao TVM ......................................................................................................... 24

    3.3.1. Estrutura Main................................................................................................. 24

    a) Linux ........................................................................................................................ 24

    b) PIC32 ........................................................................................................................ 24

    3.3.2. Compilao PIC32 ............................................................................................ 24

    a) Heap size ................................................................................................................. 24

    b) No Floating Point ..................................................................................................... 25

    c) Macro TVM .............................................................................................................. 25

    3.4. PIC32 HAL ................................................................................................................ 26

    3.4.1. Temporizao da TVM ..................................................................................... 26

    3.4.2. Mdulo sffi ...................................................................................................... 27

    a) Cdigo C da TVM .....................

Recommended

View more >