To interesujące! Szukałem jasnego artykułu, ale nie mogłem znaleźć jasnego artykułu na ten temat. Znalazłem również ten link: ARM Cortex-R i ten link: Cortex-R Series, ale nie są one dokładnie jasne. na stronie wiki napisał:
Rdzenie są przeznaczone do niezawodnego użytkowania w czasie rzeczywistym
a na stronie Cortex-R napisał:
Procesory czasu rzeczywistego ARM Cortex®-R oferują wysokowydajne rozwiązania obliczeniowe dla systemów wbudowanych, w których wymagana jest niezawodność, wysoka dostępność, odporność na uszkodzenia, łatwość konserwacji i reakcje w czasie rzeczywistym.
i tamte:
- Wysoka wydajność: Szybkie przetwarzanie w połączeniu z wysoką częstotliwością taktowania
- W czasie rzeczywistym: Przetwarzanie spełnia twarde ograniczenia w czasie rzeczywistym za każdym razem
- Bezpieczeństwo: niezawodne, niezawodne systemy o wysokiej odporności na błędy
- Opłacalność: funkcje zapewniające optymalną wydajność, moc i powierzchnię
Po pierwsze: na przykład dla Cortex-M, ostatnio NXP stworzył serię NXP_LPC4XXX, która ma taktowanie 200 MHz, a dla Cortex-R widać to: Mikrokontrolery TMS570LS ARM Cortex ™ -R4 , to zabawne, ponieważ ma 180 MHz Częstotliwość zegara.
Po drugie: to jasne.
Po trzecie: nie jest jasne! co znaczy to zdanie? oznacza, że Cortex-M nie jest bezpieczny / niezawodny?
W przypadku numeru piątego: myślę, że to tylko roszczenie!
Kto ma doświadczenie w pracy z tą serią (Cortex-R)? Co o tym sądzisz? Jaka jest dokładnie i dokładnie różnica między serią Cortex-M a serią Cortex-R?
Odpowiedzi:
Zabawne, używam obu w pracy :)
Cortex-M3 (używamy STM32) to MCU ogólnego przeznaczenia, który jest szybki i duży (pamięć flash) wystarczająca do większości złożonych aplikacji osadzonych.
Jednak R4 jest zupełnie inną bestią - przynajmniej używam wersji Texas Instruments: RM42, podobnej do TMS570. RM42 to Cortex-R4 z dwoma rdzeniami działającymi w „kroku blokady” w celu zapewnienia nadmiarowości, co oznacza, że jeden rdzeń ma 2 instrukcje przed drugim i jest wykorzystywany do sprawdzania i korekcji błędów. Ponadto jeden z rdzeni jest (fizycznie) odbity / obrócony i obrócony o 90 stopni, aby poprawić odporność na promieniowanie / hałas :)
RM42 działa z wyższą częstotliwością zegara niż STM32 (100 MHz vs 72 MHz) i ma nieco inny zestaw instrukcji i wykonuje niektóre instrukcje szybciej niż M3 (np. Instrukcje podziału są wykonywane w jednym cyklu na R4, nie jestem pewien, czy działają na M3).
Zegary HW są BARDZO precyzyjne w porównaniu do Cortex-M3. Zwykle potrzebujemy statycznego przesunięcia, aby skorygować dryf na M3s - nie w przypadku R4 :)
Gdybym nazwał Cortex-M3 uniwersalnym MCU, nazwałbym Cortex-R4 złożonym MCU w czasie rzeczywistym / bezpieczeństwa. Jeśli się nie mylę, RM42 jest zgodny z SIL3 ...
IMO R4 jest dużym krokiem w złożoności, nawet jeśli nie planujesz korzystać z funkcji bezpieczeństwa w czasie rzeczywistym.
Naprawdę ładny przykład różnicy złożoności: urządzenie peryferyjne SPI ma 9 rejestrów kontrolnych i statusowych na STM32, a RM42 ma 42. Tak jest ze wszystkimi urządzeniami peryferyjnymi :)
EDYTOWAĆ:
Jeśli chodzi o wartość, w moich przypadkach użycia Cortex-R4 @ 100MHz jest zwykle o 50-100% szybszy niż Cortex-M3 @ 72MHz podczas wykonywania dokładnie tych samych zadań. Może dlatego, że R4 ma pamięć podręczną danych i instrukcji?
Kolejne porównanie: kilka tysięcy wierszy kodu C i ASM jest wykonywanych po zresetowaniu przed nawiązaniem połączenia
main()
z podzbiorem funkcji bezpieczeństwa, z których obecnie korzystam: D, a nie inicjalizacja urządzeń peryferyjnych lub cokolwiek innego, po prostu uruchomienie i autotest (procesor, pamięć RAM, Flash ECC itp.).Ta strona ma więcej szczegółów
źródło
D cache
iI cache
były skrótami do pamięci podręcznej danych i instrukcji.Rodzina ARM Cortex-R (v7-R)
Rodzina ARM Cortex-M (v7-M)
źródło
Mieć dobry artykuł na temat tutaj .
Seria Cortex-R i cortex-M jest przeznaczona do różnych wymagań i do różnych zastosowań. Ważne jest, aby znać parametry i funkcje, które je oddzielają, ponieważ mogą istnieć aplikacje, w których oba mogą się zmieścić. Ten dokument jest przeznaczony do takiego scenariusza i pomaga Projektantom w wyborze. Ostatecznym celem jest pomoc Projektantom lub Deweloperom w zrozumieniu Architektury ARM.
źródło