Buscar

RevisãoAV1

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 3 páginas

Prévia do material em texto

ARA0301 
Programação de Microcontroladores Exercício de 
revisão para AV1 
1. Módulos de processamento estão inclusos nos microcontroladores. Por causa disso 
microcontroladores também possuem conjuntos de instruções, os quais podem ser categorizados 
como RISC e CISC. Explique cada conjunto de instruções, definindo alguns exemplos e suas 
diferenças. 
Os microcontroladores são dispositivos que integram em um único chip diversos componentes, 
como memória, periféricos e, como você mencionou, módulos de processamento. Esses módulos 
de processamento são responsáveis por executar as instruções que compõem o programa 
armazenado na memória do microcontrolador. 
As instruções são comandos que indicam ao processador o que fazer. Elas podem ser categorizadas 
em dois conjuntos principais: RISC (Reduced Instruction Set Computing) e CISC (Complex Instruction 
Set Computing). A principal diferença entre eles está na quantidade e complexidade das instruções. 
Os processadores RISC possuem um conjunto reduzido de instruções, geralmente mais simples e de 
tamanho fixo, o que torna a execução mais rápida e eficiente. Algumas instruções típicas de 
processadores RISC incluem operações aritméticas, lógicas e de transferência de dados. Exemplos 
de microcontroladores RISC incluem o ARM Cortex-M, Atmel AVR, entre outros. 
Já os processadores CISC possuem um conjunto mais complexo de instruções, muitas vezes de 
tamanho variável, que realizam múltiplas operações em uma única instrução. Essa complexidade 
torna a execução de cada instrução mais lenta, mas permite que as tarefas sejam executadas com 
menos instruções, o que pode ser vantajoso em alguns casos. Exemplos de microcontroladores CISC 
incluem o Intel 8051, PIC, entre outros. 
Em resumo, a escolha entre processadores RISC e CISC dependerá das necessidades específicas de 
cada projeto, levando em conta fatores como desempenho, complexidade do programa e consumo 
de energia. 
2. Um microcontrolador pode ser considerado como um computador em um único chip, porém 
bastante limitado. Descreva os componentes mais comuns encontrados em um microcontrolador 
(ex.: processador, RAM etc.). Essa limitação pode ser vista como vantagem? Se sim, é uma vantagem 
em qualquer contexto? Se não, é desvantagem é qualquer contexto? 
Os componentes mais comuns encontrados em um microcontrolador incluem: 
Processador: responsável pelo processamento das instruções. 
Memória ROM: onde está armazenado o programa (firmware) que o microcontrolador executa. 
Memória RAM: onde o microcontrolador armazena os dados temporariamente durante a execução 
do programa. 
Interfaces de entrada e saída: permitem que o microcontrolador se comunique com outros 
dispositivos, como sensores, motores, displays, etc. 
Periféricos: podem incluir timers, conversores analógico-digital, osciladores, entre outros. 
A limitação do microcontrolador pode ser vista como vantagem em alguns contextos. Por exemplo, 
a simplicidade e o baixo consumo de energia dos microcontroladores os tornam ideais para 
aplicações em dispositivos portáteis, sistemas embarcados e outros dispositivos que requerem 
baixo consumo de energia. 
3. A linguagem C permite ao desenvolvedor a inclusão de diretivas de pré-compilaçãoem seu 
código. A diretiva mais comumente encontrada é a #include. Explique em qual contexto se deve 
usar essa diretiva e dê exemplos de seu uso. 
A diretiva #include é usada para incluir arquivos de cabeçalho em um programa C. Esses arquivos 
geralmente têm extensão .h e contêm declarações de funções, constantes e estruturas que são 
usadas no programa. Quando o compilador encontra uma diretiva #include, ele substitui a diretiva 
pelo conteúdo do arquivo de cabeçalho correspondente. 
Por exemplo, se um programa C precisa usar a função printf() para imprimir algo na tela, o 
desenvolvedor deve incluir o arquivo de cabeçalho stdio.h no código-fonte usando a diretiva 
#include 
Outro exemplo de uso da diretiva #include é em programas que usam bibliotecas de terceiros. Por 
exemplo, se um programa precisa usar a biblioteca de criptografia OpenSSL, o desenvolvedor pode 
incluir o arquivo de cabeçalho correspondente usando a diretiva #include: 
4. Outras diretivas de pré-compilação possíveis na linguagem C são as diretivas condicionais. 
Explique seu funcionamento e mostre exemplos de seu uso. 
As diretivas condicionais são instruções de pré-processamento que permitem que sejam escritos 
blocos de código que só serão compilados ou executados em determinadas circunstâncias. Essas 
diretivas são usadas para controlar a compilação de um programa de acordo com condições pré-
definidas. 
Existem três diretivas condicionais principais em C: #if, #ifdef e #ifndef. A diretiva #if é usada para 
testar uma expressão que é avaliada como verdadeira ou falsa. Se a expressão for verdadeira, o 
bloco de código seguinte será compilado; caso contrário, o bloco será ignorado. 
A diretiva #ifdef verifica se um símbolo foi definido anteriormente com a diretiva #define. Se o 
símbolo foi definido, o bloco de código seguinte será compilado; caso contrário, o bloco será 
ignorado. 
Já a diretiva #ifndef é semelhante à #ifdef, mas verifica se um símbolo não foi definido 
anteriormente. Se o símbolo não foi definido, o bloco de código seguinte será compilado; caso 
contrário, o bloco será ignorado. 
Essas diretivas condicionais são muito úteis em situações em que se deseja compilar diferentes 
versões de um mesmo programa para diferentes plataformas ou sistemas operacionais. Por 
exemplo, suponha que se tenha um programa que depende de recursos específicos de uma 
plataforma e que, para funcionar corretamente, precisa ser compilado de forma diferente para 
diferentes plataformas. Nesse caso, pode-se usar as diretivas condicionais para incluir apenas o 
código que é relevante para cada plataforma específica. 
 
Outro exemplo é quando se deseja excluir um bloco inteiro de código de um programa, porém sem 
ter que apagá-lo. Nesse caso, pode-se usar uma diretiva condicional para que o bloco de código seja 
ignorado durante a compilação, mas sem precisar removê-lo do programa.

Continue navegando