É interessante! Eu procurei por encontrar um artigo claro, mas não consegui encontrar um artigo claro para isso. Também encontrei este link: ARM Cortex-R e este link: Cortex-R Series, mas eles não são exatamente claros. na página wiki escreveu:
Os núcleos são projetados para uso robusto em tempo real
e na página do Cortex-R escreveu:
Os processadores ARM Cortex®-R em tempo real oferecem soluções de computação de alto desempenho para sistemas embarcados onde são necessárias confiabilidade, alta disponibilidade, tolerância a falhas, manutenção e respostas em tempo real.
e esses:
- Alto desempenho: processamento rápido combinado com alta frequência de clock
- Tempo real: o processamento atende a restrições rígidas em tempo real em todas as ocasiões
- Seguro: Sistemas confiáveis e confiáveis com alta resistência a erros
- Custo-benefício: recursos ideais para desempenho, potência e área
Para o número um: por exemplo, para o Cortex-M, recentemente o NXP fabricou a série NXP_LPC4XXX com taxa de clock de 200Mhz e para o Cortex-R, você pode ver isso: Microcontroladores TMS570LS ARM Cortex ™ -R4 , é engraçado porque tem 180Mhz taxa de relógio.
Para o número dois: está claro.
Para o número três: não está claro! qual é o significado dessa frase? significa que o Cortex-M não é seguro / Confiável?
Número cinco: Bem, acho que é apenas uma reivindicação!
Quem tem a experiência de trabalhar com esta série (Cortex-R)? Qual a sua opinião sobre isso? Qual é a diferença profunda e exata entre as séries Cortex-M e Cortex-R?
Respostas:
Engraçado, eu uso os dois no trabalho :)
O Cortex-M3 (usamos STM32s) é um MCU de uso geral rápido e grande (armazenamento flash) suficiente para a maioria dos aplicativos incorporados complexos.
No entanto, o R4 é um animal totalmente diferente - pelo menos a versão da Texas Instruments que eu uso: o RM42, semelhante ao TMS570. O RM42 é um Cortex-R4 com dois núcleos em execução no "lock-step" para redundância, o que significa que um núcleo está 2 instruções à frente do outro e é usado para algumas verificações e correções de erros. Além disso, um dos núcleos é (fisicamente) espelhado / invertido e girado 90 graus para melhorar a resiliência à radiação / ruído :)
O RM42 roda em uma velocidade de clock mais alta que o STM32 (100MHz vs 72MHz) e possui um conjunto de instruções ligeiramente diferente e executa algumas das instruções mais rapidamente que o M3 (por exemplo, instruções de divisão executadas em um ciclo no R4, não tenho certeza M3).
Os temporizadores HW são MUITO precisos em comparação com o Cortex-M3. Normalmente, precisamos de um deslocamento estático para corrigir a deriva nos M3s - não com o R4 :)
Onde eu chamaria o Cortex-M3 de MCU de uso geral, o Cortex-R4 seria um MCU de segurança / tempo real complexo. Se não me engano, o RM42 é compatível com SIL3 ...
O IMO R4 é um grande passo em complexidade, mesmo que você não esteja planejando usar os recursos de segurança / em tempo real.
Um bom exemplo da diferença de complexidade: o periférico SPI possui 9 registros de controle e status no STM32, enquanto o RM42 possui 42. É assim com todos os periféricos :)
EDITAR:
Pelo que vale, nos meus casos de uso, o Cortex-R4 @ 100MHz é geralmente 50-100% mais rápido que o Cortex-M3 @ 72MHz ao executar exatamente as mesmas tarefas. Talvez porque o R4 tenha caches de dados e instruções?
Outra comparação: algumas 1000 linhas de código C e ASM são executadas na redefinição antes de chegar à chamada
main()
com o subconjunto dos recursos de segurança que atualmente uso: D e não inicialização periférica ou qualquer coisa, apenas inicialização e autoteste (CPU, RAM, ECC Flash etc.).Esta página tem mais detalhes
fonte
D cache
eI cache
eram abreviações para o cache de dados e instruções.Família ARM Cortex-R (v7-R)
Família ARM Cortex-M (v7-M)
fonte
Tenha um bom artigo aqui .
As séries Cortex-R e córtex-M são direcionadas para diferentes requisitos e para diferentes aplicações. É importante conhecer os parâmetros e os recursos que os separam, pois pode haver aplicativos em que ambos possam se encaixar. Este documento é direcionado para esse cenário e ajuda os Designers na seleção. O objetivo final é ajudar os designers ou desenvolvedores a entender as arquiteturas do ARM.
fonte