Se para a questão 1 os tempos de acionamento do pino RD1 devessem ser personalizados com valores múltiplos de 50 ms (Ex: 100 ms com nível lógico
com nível lógico 1 ), responda:
- Seria melhor continuar utilizando uma estrutura cooperative multitask ou FREERTOS considerando que a modificação desta tarefa não impacta nas demais? Justifique sua resposta (textualmente e/ou reescrevendo o trecho de código relacionado a esta tarefa), lembrando que em cada tarefa só pode ser relacionado um pino de I/O e em cada intervalo de tempo (loop) só podem ser executadas no máximo 3 tarefas em uma estrutura cooperative multitask. (0,35 pontos)
- Qual dos modelos de microcontroladores abaixo deveria ser utilizado para este projeto, considerando o menor custo possível e que caso seja utilizado o FREERTOS, os requisitos mínimos são 1300 bytes de memória RAM, 8Kbytes de memória Flash e um timer? ( 0,3 pontos)
Modelo
Características
Custo
4 pinos de I/O, 1 timer de 16 bits, RAM=2Kbytes e Flash=16Kbytes
U$1,30
5 pinos de I/O, 1 timer de 16 bits, RAM=2Kbytes e Flash=16Kbytes
U$1,40
4 pinos de I/O, RAM=2Kbytes e Flash=16Kbytes
U$1,20
5 pinos de I/O, RAM=2Kbytes e Flash=16Kbytes
U$1,30
4 pinos de I/O, 1 timer de 16 bits, RAM=1Kbytes e Flash=6Kbytes
U$1,10
5 pinos de I/O, 1 timer de 16 bits, RAM=1Kbytes e Flash=6Kbytes
U$1,20
Modelo | Características | Custo |
|
4 pinos de I/O, 1 timer de 16 bits, RAM=2Kbytes e Flash=16Kbytes | U$1,30 |
|
5 pinos de I/O, 1 timer de 16 bits, RAM=2Kbytes e Flash=16Kbytes | U$1,40 |
|
4 pinos de I/O, RAM=2Kbytes e Flash=16Kbytes | U$1,20 |
|
5 pinos de I/O, RAM=2Kbytes e Flash=16Kbytes | U$1,30 |
|
4 pinos de I/O, 1 timer de 16 bits, RAM=1Kbytes e Flash=6Kbytes | U$1,10 |
|
5 pinos de I/O, 1 timer de 16 bits, RAM=1Kbytes e Flash=6Kbytes | U$1,20 |
Passo 1
O enunciado pergunta se, para permitir tempos de “off” e “on” do pino RD
ajustáveis em múltiplos de
ms (por exemplo
ms nivel
e
ms nivel
), é melhor manter uma estrutura de cooperative multitask ou migrar para FreeRTOS, considerando que essa mudança na tarefa do RD
não afeta as outras. Depois, pede para escolher, ao menor custo, qual dos seis
C atende ao requisito mínimo de FreeRTOS (
B RAM,
K B Flash e um timer). O conteúdo é escalonamento de tarefas em microcontrolador e seleção de hardware.
Passo 2
Em cooperative multitask cada tarefa é um simples laço ou máquina de estados que roda quando é chamada, sem overhead de contexto de RTOS. Como a alteração de tempos no RD
é local a essa tarefa e não impacta as outras, e como temos no máximo três tarefas por loop (limite da cooperative), não há ganho de preempção ou priorização fina que justifique usar FreeRTOS. Assim, manter a cooperative multitask é mais leve e simples.
Passo 3
Segue um exemplo de como parametrizar os tempos em cooperative multitask, supondo que o laço principal chame cada
ms as três tarefas permitidas:
E o loop principal:
Passo 4
Para usar FreeRTOS precisamos de
B RAM,
K B Flash e um timer. Entre os seis
C da tabela, apenas
e
têm timer de
bits, RAM
K B e Flash
K B. O de menor custo é
(U$
).
Resposta
Continuar com cooperative multitask, pois a alteração de tempo em RD
não afeta outras tarefas e mantém código mais simples.
Microcontrolador recomendado: .
Microcontrolador recomendado: