por RobL » 27 Mar 2013 09:40
Mais um pouco sobre migrar de um PIC para um ARM ou outro núcleo:
Entrar no mundo, por exemplo, ARM 32bits Cortex M, é sinal que precisamos muito mais que um micro de 8bits, especialmente processamento em tempo real e rápido.
Cabe lembrar que quanto a dificuldade e tempo de aprendizado o que está em jogo são as imensas disponibilidades que este núcleo proporciona.
Como sempre dizia o Fabim aqui no forum, usar um Cortex M3 é mais fácil que um PIC !!!
Corretíssimo, desde que faço uso em C, para simples aplicações que um PIC faria, tudo ficará transparente. Porém não é este o caso.
Quem vai migrar para um Cortex M, está pensando em multi-tarefa com tempo real, maior poder de processamento com seus 32 bits.
Por outro lado, temos um sistema de interrupção rápido, com tempo previsível e ainda multi-nível que pode ser alterado em tempo de execução.
Isto já é um motivo para ser usado em certas aplicações com tempo real.
Já para multi-tarefa, o hardware salva todo o contexto, ou seja, o hardware foi preparado para multi-tarefa.
Temos ainda as interrupções por exceções. Isto melhora a segurança e a qualidade do software e do produto final como um todo.
Conhecer os modos de trabalho, vai lhe dar meios de decidir o que é possível fazer naquele instante (modo privilegiado / usuário).
Tem muito mais e para se migrar, "de facto", para uma máquina dessas, demanda certo tempo de aprendizado.
Conhecer a que veio os índices M0,M3,M4, etc para poder aplicar corretamente o micro.
Por exemplo, se queremos, em tempo real, trabalhar um sinal analógico que vai usar muita matemática, um DSP dedicado a esse sinal seria a escolha. Se um coprocessador genérico é suficiente, para a muita matemática utilizada e preciso de algo mais como um microcontrolador(seus periféricos) um Cortex M4 será a escolha.
Os Cortex M0 vem sendo utilizados, pela maioria dos usuários, como simples micro de 8 bits, não tendo vantagem real sobre por exemplo um AVR Xmega que inclusive fornece 20mA nas portas contra 4mA de um periférico montado em um núcleo ARM.
Note que a filosofia, desses novos micros de 32bits, quase voltou ao que era em um Z80 antigo que fornecia somente sinal, necessitando de um periférico para as portas. Porém o consumo caiu e pode atender a muitos componentes modernos.
Há outros detalhes que o novo usuário que migra de um PIC vai se deparar. Quando tudo estiver perfeito, rodando, o sistema para sem aparente explicação : o tamanho do heap, por exemplo. Há outros problemas na configuração que devem ser observados, se não, nem parte(arquivo de config do CMSIS).
Há uma grande diferença de como é modificado um bit na RAM ou em determinado periférico, mas fica transparente após o uso do CMSIS, porém é bom conhecer.
Com o CMSIS, o árduo trabalho de inicializar um ARM, ficou simples. A inicialização está pronta!!!
Em resumo, migrar é tirar proveito de um ARM ou outro núcleo.
Livro : The Definitive Guide to the ARM Cortex-M3 Joseph Yiu.
Cuidado!!! O Cortex M0 é um núcleo completamente "despido". Lembra um ARM Cortex M3. Sua maior finalidade é economia de energia / custo com baixo processamento devido ao desmonte em relação a um Cortex M3. O preço de um M3 hoje é igual a um M0.