9 thoughts on “NuttX Channel #014: Using a Nokia 5110 Display on NuttX

  1. Ola Alan,

    Muito legal sua série de post sobre o Nuttx. Tenho algumas dúvidas sobre ele:

    1 – Qual o menor tamanho de código(footprint) e memória SRAM consumidos pelo RTOS para executar uma tarefa simples(piscar um led) com o mínimo de recursos do Nuttx, nesta placa com STM32F103C8? Neste caso estou considerando apenas os recursos necessários para a tarefa, descartando File System, Terminal, etc

    2 – Como debugar as tarefas? Somente pelo console? Eu atualmente estou utilizando o RT-Thread, considero um excelente RTOS. Nele todo o projeto RTOS+App são compilados juntos e assim consigo fazer o debug pelo ST-Link dentro de uma IDE, mas pelo que vi, no Nuttx o build é feito pelo Make. Então como debugar as tarefas “passo-a-passo”?

    3 – É possivel desenvolver para Nuttx através da IDE Eclipse?

    Obrigado.

    1. Bom dia Wagner,
      1) Eu havia feito este teste no passado, removendo o sistema de arquivo (VFS) e submetido para o mainline. Mas recentemente foi removido porque o Greg disse que sem o sistema de arquivo você pede a capacidade de abstração dos drives (/dev/…). Neste teste o sistema de arquivo era removido e a comunicação com o nuttx shell (NSH>) era feito acessando o registros direto do controlador UART.
      Neste teste o NuttX ficou com uns 8KB e consumiu menos de 2KB de RAM.
      Com o VFS o tamanho aumenta para uns 15KB mas você ganha mais recursos e mais flexibilidade. Dê uma olhada neste post: https://acassis.wordpress.com/2017/07/11/comparing-nuttx-with-zephyr/

      2) Você pode debugar com o ST-Link e pelo console.

      3) Sim, no canal do youtube eu ensino a fazer isso com o Code::Blocks. Tem outro video do Tiago Maluta ensinando como usar o Eclipse.

      Abraço, Alan

  2. Olá Alan,

    Boa noite. Obrigado pela atenção. Você poderia fazer um vídeo ou me informar as configurações para compilar o NuttX com os recursos mínimos. A compilação do vídeo do canal resultou em um bin de mais de 40kb.

    Obrigado

    Wagner

  3. Olá Alan,
    Valeu pelo apoio. Irei testar esta configuração mínima. Tenho algumas outras dúvidas:

    1 – É possível montar uma SPI flash com um sistema FAT e acessá-la como um pendrive nos SOs Linux e Windows? Pelo que ví existe um sistema de arquivos próprio(SmartFS) para este tipo de memória, mas é possível montá-lo e acessá-lo normalmente no Linux/Windows via USB Mass Storage para as operações de leitura/escrita de arquivos?

    2 – Nesta configuração mínima, há suporte para alocação dinâmica de memória, criação de threads e ferramentas de sincronismo entre threads(mutex, semafóros, messages quees)?

    3 – O NuttX possui uma biblioteca de compressão de dados nativa?

    Abraço.

    Wagner

  4. Oi Wagner,
    Sim você pode usar FAT com uma Flash SPI NOR e exportar como se fosse um pendrive (USB MSC). A placa SparkCore tem um examplo (configs/spark/composite) que exporta a memória Flash externa como se fosse um pen-drive ao mesmo tempo que exporta também uma porta serial (/dev/ttyACM0).
    A configuração mínima só tem os recursos básicos (mutex, semafóros, etc), você precisará ativar os demais recursos (pthreads, message queues, signals, etc). Se você ativar estes recursos sem os drivers de USB seu NuttX ficará com uns 32KB. Ao ativar a USB ele facilmente chegará aos 64KB.
    Integrado no kernel NuttX tem bibliotecas de CRC, Criptografia, etc, mas você pode usar qualquer biblioteca de compressão suportada pelo Linux no NuttX. Geralmente é só compilar, a maiorias das funções libc do Linux estão presentes. Um abraço, Alan

  5. Ola Alan.
    Tudo bem? Espero que sim.
    Como não achei outra forma de entrar em contato com você aqui no seu blog, vou aproveitar esta gancho.
    Para inicio de conversa, espero que um dia você venha ao RJ dar uma palestra sobre o NUTTX, pois acho o “nuttx” um misto de RTOS com OS, espetacular.
    Gosto muito do que leio e testo, mais como escrevi em um comentário dos vídeos no NuttX Channel no YT, ainda retorso minha mente para me adaptar em converter meus projetos do freertos e chibios para o nuttx.
    Para você entender, atualmente estou adaptando esta placa modular http://www.waveshare.com/product/mcu-tools/stm32/open/open429i-c-package-b.htm, aos poucos para o nuttx, a configuração básica já funciona, no meu coso via, qconfig, pois estou terminando um plugin para netbeans, pois gosto muito desta IDE.
    Realmente preciso de ajuda para fazer ela funcionar o lcd, que pode ter diversas formas para acontecer. Ex: ltdc + sdram, ltdc + dma2d + sdarm.
    Sendo honesto, ainda estou longe de poder adaptar o que preciso, para meu limitado conhecimento em relação ao nuttx.
    Caso você tenha interesse em me ajudar, te mando este modulo lcd 7 polegadas, http://www.waveshare.com/product/modules/oleds-lcds/graphic-lcd/7inch-resistive-touch-lcd-c.htm.
    Este modulo tem um RA8875, e já tem um driver de lcd no nuttx para este controlador, e você poderia mais facilmente demonstrar como fazer a interação.

    Peço desculpa ao Wagner batista, por entrar assim no bate papo.
    E, Alan caso não possa me ajudar, já te agradeço por ter lido este meu quase ‘livro’.

    Ivan

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s