Это интересно! Я искал, чтобы найти ясную статью, но я не мог найти ясную статью для этого. Также я нашел эту ссылку: ARM Cortex-R и эту ссылку: Cortex-R Series, но они не совсем ясны. на вики-странице пишет:
Ядра предназначены для надежного использования в реальном времени
и на странице Cortex-R написал:
Процессоры ARM Cortex®-R реального времени предлагают высокопроизводительные вычислительные решения для встраиваемых систем, где требуется надежность, высокая доступность, отказоустойчивость, ремонтопригодность и реакция в режиме реального времени.
и эти:
- Высокая производительность: быстрая обработка в сочетании с высокой тактовой частотой
- В режиме реального времени: обработка встречает жесткие ограничения в реальном времени на все случаи жизни
- Безопасный: надежные, надежные системы с высокой устойчивостью к ошибкам
- Экономически эффективный: функции для оптимальной производительности, мощности и площади
Для номер один: например, для Cortex-M, недавно NXP выпустил серию NXP_LPC4XXX с тактовой частотой 200 МГц, а для Cortex-R вы можете увидеть это: Микроконтроллеры TMS570LS ARM Cortex ™ -R4 , это забавно, потому что у него 180 МГц тактовая частота.
Для номера два: это понятно.
Для номера три: это не ясно! что означает это предложение? значит не Cortex-M безопасно / надежно?
Для номера пять: ну, я думаю, это просто претензия!
У кого есть опыт работы с этой серией (Cortex-R)? Что вы думаете об этом? В чем глубокая и точная разница между сериями Cortex-M и Cortex-R?
Ответы:
Забавно, я использую оба на работе :)
Cortex-M3 (мы используем STM32) - это универсальный микроконтроллер общего назначения, достаточно быстрый и большой (флэш-память) для большинства сложных встроенных приложений.
Тем не менее, R4 совершенно другой зверь - по крайней мере, я использую версию Texas Instruments: RM42, похожую на TMS570. RM42 - это Cortex-R4 с двумя ядрами, работающими в режиме «lock-step» для резервирования, что означает, что одно ядро опережает другое на 2 команды и используется для некоторой проверки и исправления ошибок. Кроме того, одно из ядер (физически) зеркально отражено / перевернуто и повернуто на 90 градусов для улучшения устойчивости к излучению / шуму :)
RM42 работает на более высокой тактовой частоте, чем STM32 (100 МГц против 72 МГц), и имеет несколько иной набор команд и выполняет некоторые инструкции быстрее, чем M3 (например, команды деления выполняются за один цикл на R4, не будучи уверенными, что они работают на M3).
HW таймеры ОЧЕНЬ точны по сравнению с Cortex-M3. Обычно нам нужно статическое смещение, чтобы исправить дрейф на M3s - не так с R4 :)
Где бы я назвал Cortex-M3 универсальным MCU, я бы назвал Cortex-R4 сложным MCU реального времени / безопасности. Если я не ошибаюсь, RM42 соответствует SIL3 ...
IMO R4 - большой шаг вперед по сложности, даже если вы не планируете реально использовать функции реального времени / безопасности.
Действительно хороший пример различия сложности: периферийное устройство SPI имеет 9 регистров управления и состояния на STM32, тогда как RM42 имеет 42. Это похоже на все периферийные устройства :)
РЕДАКТИРОВАТЬ:
Что бы это ни стоило, в моих случаях использования Cortex-R4 @ 100 МГц обычно на 50-100% быстрее, чем Cortex-M3 @ 72 МГц при выполнении точно таких же задач. Может быть, потому что R4 имеет кэш данных и инструкций?
Другое сравнение, несколько 1000 строк кода C и ASM выполняются при сбросе до достижения вызова
main()
с подмножеством функций безопасности, которые я в настоящее время использую: D, а не инициализация периферии или что-то еще, только запуск и самотестирование (ЦП, ОЗУ, Flash ECC и т. Д.).Эта страница имеет более подробную информацию
источник
D cache
иI cache
были сокращения для кэша данных и инструкций.Семейство ARM Cortex-R (v7-R)
ARM Cortex-M семейство (v7-M)
источник
Хорошая статья о здесь .
Серия Cortex-R и cortex-M предназначена для различных требований и для различных применений. Важно знать параметры и функции, которые их разделяют, так как могут быть приложения, в которые они оба могут вписаться. Этот документ предназначен для такого сценария и помогает дизайнерам в выборе. Конечная цель - помочь проектировщикам или разработчикам лучше понять архитектуру ARM.
источник