• Nenhum resultado encontrado

2.5 Libero SoC

2.5.2 SoftConsole IDE v3.4

O SoftConsole é uma ferramenta com um ambiente de desenvolvimento de software que permite a rápida produção de executáveis C e C++ para dispositivos FPGA da Microsemi que usem processadores ARM Cortex-M3 e Cortex-M1. Esta ferra- menta de desenvolvimento inclui um depurador totalmente integrado que oferece mecanismos de acesso ao conteúdo da memória, registos e também permite a exe- cução passo a passo.

É uma ferramenta desenvolvida sobre componentes open source de desenvolvimento de firmware embebido para processadores ARM, que inclui:

• Eclipse/CDT

• GNU ARM Eclipse Plug-ins • GCC ARM Embedded compiler • OpenOCD

O SoftConsole console fornece uma interface gráfica flexível e fácil de utilizar para gerir os projetos de software embebido desenvolvidos. A Figura 2.7 mostra o ambiente de desenvolvimento do SoftConsole.

Figura 2.7: SoftConsole - Ambiente de desenvolvimento

o debug destes. A ferramenta para além do depurador GDB também suporta a realização de debug via FlashPro programmer.

Capítulo 3

Sistema Operativo de Suporte

FreeRTOS

O sistema operativo FreeRTOS desenvolvido e mantido por “Real Time Engine-

ers Ltd” (FreeRTOS, 2015), que oferece três opções de licenciamento: FreeRTOS,

OpenRTOS e SafeRTOS. O FreeRTOS é um sistema operativo livre e está licen- ciado pela verão modificada da GPL (General Public License), pode ser usado em aplicações comercias desde que sigam as regras impostas pela GPL. O OpenRTOS é a versão comercial do FreeRTOS que não tem qualquer referência ao GPL, oferece garantia e suporte técnico. SafeRTOS é uma versão derivada do FreeRTOS que tem sido analisada, documentada e testada para cumprir os requisitos do padrão de segurança IEC 61508 (FreeRTOS, 2015).

O código fonte do sistema operativo pode ser descarregado diretamente do website oficial (FreeRTOS, 2015), o website fornece uma grande quantidade de material de apoio e documentação.

3.1

Visão Global Sobre a Organização

O sistema operativo FreeRTOS apresenta o código fonte estruturado de forma a potencializar a sua portabilidade. A linguagem C é a linguagem dominante deste sistema operativo e apenas um conjunto de rotinas estão implementadas na linguagem assembly de modo a especificar a arquitetura alvo. De momento a versão 8.2.0 suporta 35 arquiteturas inclusivamente a ARM Cortex M3.

A implementação do kernel do sistema operativo é feita em apenas quatro ficheiros “.c”: tasks.c, queue.c, lists.c e timers.c. Estes ficheiros não implementam código dependente do processador pelo que são comuns para todos os portings. O FreeR- TOS para além destes quatro ficheiros “.c” também é constituído por mais doze ficheiros cabeçalhos “.h”, que também são comuns para todos os portings do sis- tema. O código que é dependente do processador está implementado nos ficheiros “port.c” e “portmacro.c”. Cada porting tem a sua própria versão destes dois fi- cheiros, existindo casos que possam conter um conjunto de ficheiros adicionais a estes. A gestão da heap apresenta ficheiros que também dependem da arquitetura em causa, dado que esta gestão é parcialmente dependente da arquitetura usada. Sendo que a biblioteca standard da linguagem C implementa as funções malloc() e free() com este propósito, mas estas funções não são adequadas para o âmbito dos sistemas embebidos, dado que nem sempre estão disponíveis, apresentam um

footprint de memória elevado e são funções que têm um comportamento não de-

terminístico. Por estes motivos, nos sistemas embebidos é um cenário comum existir uma implementação customizada da gestão de memória. É por isso que o FreeRTOS faz a sua própria implementação para a gestão da heap, sendo que apresenta quatro modelos de implementação desta gestão, que estão nos ficheiros heap_1.c, heap_2.c, heap_3.c e heap_4.c e fazem parte da camada portável do sistema operativo. Cada implementação destas tem uma complexidade diferente e apresentam vantagens e desvantagens distintas. Destes quatro ficheiros apenas um deverá ser escolhido conforme as necessidades pretendidas, podendo também ser implementada pelo utilizador uma outra solução que cumpra melhor os requisitos da aplicação.

O sistema operativo FreeRTOS possuí um ficheiro de configuração que permite ao utilizador configurar o mesmo para os propósitos da sua aplicação, este ficheiro denomina-se de FreeRTOSConfig.h, o que permite que este sistema operativo seja configurável. Cada projeto que seja baseado neste sistema operativo deve conter o ficheiro de configuração. Na Figura 3.1 está representado uma parte do ficheiro FreeRTOSConfig.h para o processador ARM Cortex-M3. Este ficheiro é da aplica- ção Demo que é distribuída juntamente com o código fonte do sistema operativo. Com uma breve análise do código apresentado consegue-se perceber que o sistema operativo permite a configuração de vários parâmetros, oferecendo ao utilizador um sistema operativo customizável. A configuração está implementada através da técnica de compilação condicional, o que faz com que a configuração do sistema operativo ocorra em tempo de compilação. A compilação condicional recorre as

diretivas da linguagem C #if, #ifdef, #ifndef, #else, #elif e #endif.

O FreeRTOS usa convenções de nomes que facilitam a nível de codificação de código e orientação no código fonte. Utiliza prefixos nos nomes das variáveis para indicar o seu tipo. As variáveis do tipo char começam pela letra c, as do tipo

short pela s, e por l, f, d e u são as variáveis do tipo long, float, double e unsigned,

respetivamente. As estruturas são iniciadas pela letra x, quanto aos apontadores, estes iniciam pela letra p. No caso das funções o seu prefixo indica o tipo de retorno e nome da função começa pelo nome do ficheiro onde esta está definida. O sistema operativo FreeRTOS fornece uma grande panóplia de funcionalidades ao utilizador, sendo descriminadas nas próximas secções apenas as funcionalidade fundamentais.

Documentos relacionados