Início > brtos, ports > Port do BRTOS 1.7x para o ST STM32F4x, um microcontrolador ARM Cortex-M4F com unidade de ponto flutuante

Port do BRTOS 1.7x para o ST STM32F4x, um microcontrolador ARM Cortex-M4F com unidade de ponto flutuante

    É com grande satisfação que anunciamos um novo port para o BRTOS, o port para a linha de microcontroladores STM32F4x, da ST Microelectronics. Esse microcontrolador é baseado no core ARM Cortex-M4F de alto desempenho, que atinge 210 DMIPS/469 CodeMark executando o código da memória FLASH com 168MHz de frequência de operação. As instrução de DSP e a unidade de ponto flutuante aumentam muito a gama de aplicações para este microcontrolador.

     Para realizar o port utilizamos o ambiente de desenvolvimento livre e de código aberto CoIDE da Coocox, que é baseado no Eclipse e possui um suporte bem interessante para microcontroladores ARM Cortex-Mx, com uma biblioteca de periféricos bem extensa. Ainda, utilizamos o toolchain GNU toolchain ARM Embedded para processador ARM Cortex-M & Cortex-R (gcc 4.6). As dicas de como integrar o CoIDE com o toolchain GNU podem ser encontradas aqui. Provavelmente, ao importar o projeto será necessário redefinir o caminho para as bibliotecas do toolchain que foram utilizadas na demonstração e port. Elas podem ser reconfiguradas em Project->Configuration->Linked Libraries e deverão estar localizadas em:

..\4.6 2012q2\\lib\gcc\arm-none-eabi\4.6.2\armv7e-m\libgcc.a

..\4.6 2012q2\arm-none-eabi\lib\armv7e-m\fpu\libm.a

O port do ARM Cortex-M4F possui algumas particularidades, como o recurso Lazy Stacking and Context Switching. Com este recurso os registradores de ponto flutuante somente serão salvos caso a unidade de ponto flutuante seja utilizada na tarefa que foi interrompida. Portanto, o contexto salvo para uma tarefa que não utiliza ponto flutuante será menor do que o contexto de uma tarefa que utiliza o ponto flutuante, como pode ser visto abaixo.

Caso a unidade de ponto flutuante não seja utilizada, é possível modificar o port e os registradores do processador para desconsiderá-la através do define FPU_SUPPORT no arquivo HAL.h (defini-lo para 0).

A demonstração desenvolvida utiliza um kit da ST (STM32F4Discovery) com o microcontrolador ST32F407VG e um display LCD de 320×240 com o controlador SSD1289. A unidade de ponto flutuante é utilizada em duas tarefas, sendo uma delas o desenho de fractais no display LCD.

Confira o vídeo:

Faça o download do demo no google code do BRTOS e experimente !!!

Anúncios
  1. 26/09/2012 às 11:43

    Muito legal Gustavo! Parabéns!

  2. Octavio Nogueira
    25/05/2014 às 15:04

    Gostaria de saber o esquema de ligação do LCD

  1. No trackbacks yet.

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: