Inicial > brtos, ports > Primeiro Demo do BRTOS com PIC18F em hardware (fora do simulador)

Primeiro Demo do BRTOS com PIC18F em hardware (fora do simulador)

Após um grande período testando o port do BRTOS para PIC18 em simulador temos o orgulho de apresentar o primeiro teste do BRTOS em um PIC18F real. Este demo foi possível devido a doação de um Kit PICgenios PIC18F4520 e um MicroICD (programador e Debugger) pela empresa Microgenios. Através deste teste foi possível comprovar as configurações de temporização, porta serial e conversor A/D do port do BRTOS. Contribua para o projeto e desenvolva outros drivers para o port do PIC18F !!!!

É importante comentar que o port do BRTOS para o PIC18F possui uma particularidade. Devido ao PIC18 utilizar um esquema de bancos de memória que limitam a declaração de variáveis a 128 bytes  é necessário utilizar um arquivo de configuração de linker personalizado (script de linker – no demo este arquivo é o BRTOS_18f4520i.lkr). Neste arquivo é necessário declarar a quantidade de memória alocada para o stack virtual, para as filas e para o contexto de tarefas. Estas variáveis podem facilmente exceder o tamanho de 128 bytes. No exemplo disponível para download temos a seguinte configuração:

DATABANK   NAME=ctxram     START=0x100          END=0x17F
DATABANK   NAME=queueram   START=0x180          END=0x1FF
DATABANK   NAME=stackram   START=0x200          END=0x47F

Note que nesta configuração de linker foram alocado 128 bytes para o contexto de tarefas (ctxram), 640 bytes para o stack virtual (stackram) e 128 bytes para filas (queueram). Note ainda que o contexto de cada tarefa no PIC18 é de 14 bytes. Assim, alocar 128 bytes para o contexto de tarefas permite que se instale até 9 tarefas (como o sistema ocupa dois contextos de tarefa para seu funcionamento, o número de tarefas de usuário fica limitado a 7, ou seja, no define NUMBER_OF_TASKS deve-se informar o valor 7). Portanto, para mais tarefas é possível aumentar a quantidade de memória no linker para o contexto de tarefas. Em nossos testes notamos que o valor mínimo de stack para as tarefas com três interrupções ativas foi de 100 bytes. É claro que quanto mais variáveis locais e chamadas de função em uma tarefa maior deve ser seu stack virtual (ou seja, com o stack de 640 bytes dificilmente instala-se mais do que 6 tarefas).

OBS: Embora seja importante configurar corretamente o arquivo de linker, quem realmente define a quantidade de memória alocada é o arquivo BRTOS_Config.h, através dos seguintes defines:

#define NUMBER_OF_TASKS 7            // Numero de tarefas que se pode instalar
#define HEAP_SIZE 5*128              // Memória disponível para o stack virtual
#define QUEUE_HEAP_SIZE 1*128        // Memória disponível para as filas

 

O port oficial ainda não tem suporte ao modo de baixo consumo e, conseqüentemente, do cálculo de CPU load (principalmente devido a não dominarmos a arquitetura do PIC). Gostaríamos de solicitar a contribuição de vocês para que nos ajudem a implementar estes recursos no port para PIC18F do BRTOS !!!

Veja o vídeo do demo do BRTOS portado para PIC18 sendo executado no kit PICgenios:

 

Para fazer o download deste demo acesse a seção downloads no site oficial do projeto BRTOS:

http://code.google.com/p/brtos

 

  1. Fabio Tomm
    21/02/2011 às 22:09

    Good Work.

  2. Ezequias Rocha
    22/02/2011 às 15:31

    Gustavo, publiquei uma anúncio de divulgação sobre o BRTOS no site Viva o Linux, na época ainda não incluía o port da Renesas.

    http://www.vivaolinux.com.br/dica/Conheca-o-BRTOS/

    Embraces!

    Ezequias

    • 23/02/2011 às 9:57

      Olá Ezequias,

      Muito obrigado pela divulgação do BRTOS no site Viva o Linux. Eu já tinha visto, pois nosso site informa as “citações”, ou seja, os sites que fazem link para nosso blog. Seu post trouxe muitos acessos para o blog do BRTOS e contribuiu muito para a divulgação do projeto. Mais uma vez muito obrigado por colaborar com o BRTOS.

      Grande abraço,
      Gustavo.

  3. rafael dias
    23/02/2011 às 23:39

    olá!

    Se precisar de mais um braço no desenvolvimento do port para PIC18 pode contar comigo. Trabalho um tempo razoável com microcontroladores microchip e posso colaborar com alguma coisa.

    um abraço,
    rdias

    • rafael dias
      23/02/2011 às 23:41

      achei o projeto muito maduro e inovador…

      Já utilizei dois RTOS de uso geral anteriormente e o BRTOS surgiu em um bom momento. Parabéns pela iniciativa.

    • 24/02/2011 às 9:57

      Rafael,

      Precisamos e muito de uma ajuda no port. Seria muito bem vinda !!!
      Estou enviando os detalhes por e-mail.

  4. 20/10/2011 às 9:41

    Gostei muito da idéia do BRTOS pra PIC e quero portar ele para nossas placas PIC18F // Smart Radio, não vi a licença MIT mas poderia ser livremente distribuido ?

    • 20/10/2011 às 9:50

      Olá Marcelo,

      Ficamos muito contentes que tenham gostado do projeto. Sim, a licença MIT é totalmente permissiva. Ela permite que vocês modifiquem o código e o utilizem / distribua o código livremente.
      Se vocês utilizam o compilador C18 no MPLAB o port do BRTOS para PIC18 já está pronto. Caso utilizem outra IDE/compilador vocês terão que fazer algumas modificações. Caso precisem de ajuda é só nos contatar.

      Abraço,
      Gustavo

  5. 24/10/2011 às 14:24

    Olá Gustavo,

    Alterei ele para rodar em uma de nossas placas, link do video: http://youtu.be/Pv6lrQJ_wiA , umas das coisas que fiz foi trocar o driver do LCD pro nosso pois, usamos sempre comandos de 4bits. Precisava de um contato seu pois tenho um “caderno de dúvidas” nele e quero realmente levar o assunto adiante. Meu email é marcelo at SmartRadio dot com dot br .

    abraço

    Marcelo

  6. 25/11/2015 às 13:53

    Olá Gustavo, parabéns pelo trabalho no brtos. Desenvolvo um simulador de PIC open source chamado PICsimLab que suporta o brtos, como pode ser visto no vídeo https://youtu.be/zu383Vo60g8 . Abs

    • 26/11/2015 às 8:50

      Luis, parabéns pelo trabalho, pois ficou muito bom!!!!

      Algumas dúvidas com relação ao simulador. Você carrega a aplicação pelo código compilado (binário) ou pelo código fonte? É possível fazer a depuração do código dentro do simulador?

      Abraço,

      • Luis Claudio Gamboa Lopes
        26/11/2015 às 10:27

        Gustavo,
        os programas podem ser carregados no formato .hex (os mesmos gravados em um PIC real) ou carregados por um plugin do MPLABX que permite depuração como se fosse um kit real. Esse vídeo demostra a instalação e funcionamento do plugin para depuração https://youtu.be/q2oZB50Avm4 .

        Abraço.

  1. No trackbacks yet.

Deixar mensagem para Ezequias Rocha Cancelar resposta