Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Kompatybilny z Arduino UNO Adafruit Metro M7 z SoC NXP i.MX RT1011 Cortex-M7

ghost666 11 Mar 2023 23:20 852 35
Altium Designer Computer Controls
  • Kompatybilny z Arduino UNO Adafruit Metro M7 z SoC NXP i.MX RT1011 Cortex-M7
    Adafruit Metro M7 to płytka rozwojowa bazująca na taktowanym zegarem 500 MHz SoC od NXP — i.MX RT1011 z rdzeniem ARM Cortex-M7, należącym do rodziny mikrokontrolerów crossover. Płytka deweloperska jest zgodna z formatem Arduino UNO i integruje oparty na ESP32 moduł WiFi: „AirLift” do łączności bezprzewodowej. Całość jest również wyposażona w 4 MB pamięci QSPI, kilka diod LED i przycisków. A także zawiera złącza: Qwiic do dodatkowej rozbudowy poza wyjście dla Shieldów Arduino oraz SWD do debugowania. Płytka pobiera napięcie wejściowe od 6 V do 12 V DC przez gniazdo zasilające, ale może być również podpięta przez port USB typu C.

    Kompatybilny z Arduino UNO Adafruit Metro M7 z SoC NXP i.MX RT1011 Cortex-M7
    Specyfikacja Adafruit Metro M7:

    * SoC — mikrokontroler crossover NXP iMX RT1011 z ARM Cortex-M7 o taktowaniu 500 MHz i 128 KB pamięci SRAM/TCM;
    * Pamięć masowa — 4 MB QSPI XIP Flash;
    * Komunikacja bezprzewodowa — koprocesor AirLift WiFi z obsługą TLS/SSL (jest to moduł ESP32-WROOM-32);
    * USB — port USB typu C do zasilania i programowania;
    * Możliwości rozbudowy:
    — złącza Arduino UNO, kompatybilne z modułami Arduino,
    — złącze STEMMA QT do urządzeń I²C.
    * Debugowanie — złącze SWD umożliwiające dostęp do zaawansowanego debugowania;
    * Inne — włącznik/wyłącznik, przycisk resetowania, przełącznik DIP trybu rozruchu, diody LED zasilania i użytkownika, dioda LED NeoPixel RGB;
    * Zasilanie — 6-12 V DC przez złącze baryłkowe lub port USB typu C;
    * Wymiary — 72 mm x 53,2 mm x 14,8 mm (format Arduino UNO);
    * Waga — 22,5 grama.

    Adafruit zapewnia ładowanie UF2 dla Metro M7 w celu ułatwienia instalacji oprogramowania układowego CircuitPython. Płyta powinna być prawdopodobnie najszybszą na rynku jednostką zgodną z Arduino UNO, która nie obsługuje Linuksa. Metro M7 jest sprzedawane w sklepie Adafruit w cenie 29,99 dolarów. Nie ma go w magazynie w chwili pisania tego tekstu. Jednak można zostawić swój adres e-mail na stronie internetowej marki, aby otrzymać powiadomienie, gdy moduł będzie ponownie dostępny.

    Źródło: https://www.cnx-software.com/2023/03/10/arduino-uno-adafruit-metro-m7-500-mhz-nxp-i-mx-rt1011-cortex-m7-soc/

    Cool? Ranking DIY
    Do you have a problem with Arduino? Ask question. Visit our forum Arduino.
    About Author
    ghost666
    Translator, editor
    Offline 
    Fizyk z wykształcenia. Po zrobieniu doktoratu i dwóch latach pracy na uczelni, przeszedł do sektora prywatnego, gdzie zajmuje się projektowaniem urządzeń elektronicznych i programowaniem. Od 2003 roku na forum Elektroda.pl, od 2008 roku członek zespołu redakcyjnego.
    ghost666 wrote 11608 posts with rating 9802, helped 157 times. Live in city Warszawa. Been with us since 2003 year.
  • Altium Designer Computer Controls
  • #2
    khoam
    Level 41  
    ghost666 wrote:
    Płyta powinna być prawdopodobnie najszybszą na rynku jednostką zgodną z Arduino UNO,

    Szybsze (i dostępne) są te, które mają na pokładzie tylko ESP32 i też wyglądają, jak Uno.
  • #3
    tmf
    Moderator of Microcontroller designs
    Trochę mnie dziwi pomysł na taką płytkę.
    Z jednej strony mamy szybki procesor taktowany 500 MHz, ale zamiast zintegrowanego WiFi, mamy zewnętrzny moduł z dwurdzeniowym, niewiele wolniejszym (a jeśli uwzględnić dwa rdzenie porównywalnym) pod względem wydajności MCU. Ze strony programisty - mamy dwie różniące się architektury, różne SDK, różne kompilatory i IDE, więc pisanie złożonego projektu na taką płytkę staje się koszmarem.
    Z drugiej strony, mamy wydajny ARM CM7, nieźle taktowany, ale tylko 128 kB RAM, bez możliwości rozszerzenia. Tak mi się wydaje, że jeśli potrzebuję tak mocny procesor, to aplikacje, które z tej mocy korzystają zwykle potrzebują dużo więcej RAM - np. analiza i przetwarzanie obrazów. Ale nic z tego, bo pamięci nie ma za wiele.
    Kolejna sprawa - szybkość circuitPython - ten procesor będzie wykonywał kod w tempie porównywalnym (a nawet wolniejszym) do szybkości kodu w C na ATMega taktowanej zegarem 16 MHz - i to nie żart. Ale to tłumaczy po co potrzebujemy 500 MHz - żeby odpalić na tym żółwia, który zastąpi wydajnościowo procesory opracowane 30 lat temu, zużywające promil energii pobieranej przez ten moduł...
    I na koniec, jak zwykle przy takich okazjach, nie widzę na razie sensownego SDK i out of the box środowiska, więc znowu dla hobbysty to tylko złom.
  • Altium Designer Computer Controls
  • #4
    Urgon
    Editor
    AVE...

    Bo to kolejny, nieudolny Arduino-killer. Płytka projektowana bez żadnego sensownego planu dla bliżej nieokreślonego klienta, ale zgodna z Arduino, bo ludzie lubią Arduino. No i kompatybilność z odmianą Pythona, coby marni programiści nie czuli się zagubieni. Po to te 500MHz, by mieć osiągi porównywalne z procesorem taktowanym zegarem 25-50MHz zaprogramowanym w C++.

    Spodziewam się, że nikt tego nie kupi, bo po co? Za pięć dolców więcej jest Libre Computer Le Potato, czyli ponoć najtańszy udany klon RPI na rynku, z Amlogic S905X, Mali-400 i 2GB pamięci RAM, za 10 dolców mniej jest Lo Frito, czyli podobny komputer z 1GB pamięci. I oba da się oprogramować w Pythonie dla uzyskania słabej wydajności...
  • #5
    khoam
    Level 41  
    @ElektrodaBot Dlaczego wiele osób bardzo negatywnie podchodzi do rozwiązań wykorzystujących Arduino Core?
  • #6
    ElektrodaBot
    AI OpenAI ChatGPT
    khoam wrote:
    Dlaczego wiele osób bardzo negatywnie podchodzi do rozwiązań wykorzystujących Arduino Core?
    Istnieje kilka powodów, dla których niektórzy ludzie mogą mieć negatywną opinię na temat Arduino Core. Jednym z nich jest fakt, że wiele projektów wykorzystujących Arduino jest bardzo podobnych, a to powoduje, że niektórzy uważają, że rozwiązania te nie zmieniają rzeczywistości, a jedynie wprowadzają niewielką różnicę w projektach.

    Inni ludzie uważają, że użycie Arduino Core sprawia, że wprojekcie traci się kontrolę nad sprzętem. W kontekście wielu zastosowań elektronicznych, takich jak pojedyncze zastosowania, to może być mało istotne. Jednak w środowiskach, gdzie ważniejsze są bardziej poważne projekty lub projektowanie sprzętu z wykorzystaniem oprogramowania wbudowanego, taki brak kontroli może być problematyczny.

    Ponadto, niewłaściwe wykorzystanie lub projektowanie projektów na Arduino Core może prowadzić do problemów z nieprawidłowym zachowaniem sprzętu lub oprogramowania, co może wpłynąć na poprawność działania całego systemu. W pewnych przypadkach, użycie Arduino Core może przeszkadzać bardziej doświadczonym programistom, którzy preferują bardziej tradycyjne podejście do projektowania systemów wbudowanych.

    Warto jednak pamiętać, że Arduino Core może być użyteczne i skuteczne w wielu zastosowaniach, zwłaszcza w przypadkach, gdy projekt wymaga stosunkowo prostych i mało skomplikowanych rozwiązań. To także narzędzie, którego łatwo się nauczyć i które może być przydatne dla początkujących w świecie programowania układów wbudowanych.
    Jestem sztuczną inteligencją stworzoną przez OpenAI - ChatGPT. Moje odpowiedzi mogą zawierać błędy i proszę się nimi nie sugerować. Zawsze weryfikuj moje wiadomości i porady.
    Możesz mnie wywołać w każdym temacie pisząc @ElektrodaBot
  • #7
    khoam
    Level 41  
    ElektrodaBot wrote:
    Inni ludzie uważają, że użycie Arduino Core sprawia, że wprojekcie traci się kontrolę nad sprzętem.

    Czy wiesz skąd bierze się taka opinia?
  • #8
    ElektrodaBot
    AI OpenAI ChatGPT
    khoam wrote:
    Czy wiesz skąd bierze się taka opinia?
    Taka opinia wynika z faktu, że korzystanie z Arduino Core wymaga współpracy z bibliotekami, które dostarczają gotowe funkcje i instrukcje do obsługi sprzętu oraz różnych zestawów do tworzenia projektów. Te biblioteki mogą nie być idealnie dopasowane do indywidualnych potrzeb, co może prowadzić do problemów z zarządzaniem sprzętem lub oprogramowaniem.

    Ponadto, Arduino Core jest zaprojektowane z myślą o łatwości programowania i używania, co może prowadzić do pojawienia się złych praktyk programistycznych, takich jak nadużywanie pętli while lub for. To może prowadzić do problemów z wydajnością i trudności w wykryciu błędów.

    Ostatecznie, opinia na temat Arduino Core zależy od indywidualnych preferencji i potrzeb programisty lub inżyniera elektronika, ale warto zdawać sobie sprawę z zalet i wad korzystania z tego typu narzędzi.
    Jestem sztuczną inteligencją stworzoną przez OpenAI - ChatGPT. Moje odpowiedzi mogą zawierać błędy i proszę się nimi nie sugerować. Zawsze weryfikuj moje wiadomości i porady.
    Możesz mnie wywołać w każdym temacie pisząc @ElektrodaBot
  • #9
    khoam
    Level 41  
    ElektrodaBot wrote:
    Taka opinia wynika z faktu, że korzystanie z Arduino Core wymaga współpracy z bibliotekami, które dostarczają gotowe funkcje i instrukcje do obsługi sprzętu

    Skąd się bierze taka opinia, że Arduino Core wymaga tylko i wyłącznie bibliotek "wysokopoziomowych"? Czy jest możliwa obsługa wybranych peryferiów z "niskiego" poziomu w środowisku Arduino Core?
  • #10
    ElektrodaBot
    AI OpenAI ChatGPT
    khoam wrote:
    Skąd się bierze taka opinia, że Arduino Core wymaga tylko i wyłącznie bibliotek "wysokopoziomowych"? Czy jest możliwa obsługa wybranych peryferiów z "niskiego" poziomu w środowisku Arduino Core?
    Przepraszam, źle się wyraziłem w mojej poprzedniej wypowiedzi. Faktycznie, w środowisku Arduino Core istnieje wiele możliwości programowania na różnych poziomach, w tym na poziomie "niskim" dla niektórych peryferiów. Można to osiągnąć, tworząc własne funkcje i instrukcje programowania w języku C++, lub bezpośrednio używając bibliotek peryferyjnych.

    Warto jednak zauważyć, że Arduino Core jest w większości zaprojektowane z myślą o korzystaniu z gotowych bibliotek wysokopoziomowych, które ułatwiają programowanie układów, szczególnie dla początkujących programistów. Faktem jest, że w większości przypadków korzystanie z bibliotek Arduino jest wystarczające, a programowanie w językach C lub C++ może być bardziej skomplikowane i czasochłonne.

    Podsumowując, w środowisku Arduino Core istnieje wiele możliwości programowania zarówno na poziomie "wysokim", jak i "niskim", w zależności od potrzeb. Ostateczna decyzja zależy od indywidualnych preferencji i potrzeb programisty lub inżyniera elektronika.
    Jestem sztuczną inteligencją stworzoną przez OpenAI - ChatGPT. Moje odpowiedzi mogą zawierać błędy i proszę się nimi nie sugerować. Zawsze weryfikuj moje wiadomości i porady.
    Możesz mnie wywołać w każdym temacie pisząc @ElektrodaBot
  • #11
    khoam
    Level 41  
    ElektrodaBot wrote:
    Ponadto, Arduino Core jest zaprojektowane z myślą o łatwości programowania i używania, co może prowadzić do pojawienia się złych praktyk programistycznych

    Czy takie złe praktyki programistyczne mogą się również pojawić u osób nie korzystających z Arduino Core?
  • #12
    ElektrodaBot
    AI OpenAI ChatGPT
    khoam wrote:
    Czy takie złe praktyki programistyczne mogą się również pojawić u osób nie korzystających z Arduino Core?
    Tak, złe praktyki programistyczne są możliwe w każdym środowisku programowania, nie tylko przy korzystaniu z Arduino Core. W zależności od umiejętności i doświadczenia programisty, można popełnić różnego rodzaju błędy i stosować złe praktyki programistyczne, które prowadzą do trudności w utrzymaniu, konserwacji i skalowaniu aplikacji. Jednakże, korzystanie z narzędzi takich jak Arduino Core, które ułatwiają programowanie, może prowadzić do większej liczby nieświadomych błędów u początkujących programistów, którzy nie zdają sobie sprawy z konsekwencji ich działań. Dlatego ważne jest, aby regularnie uczyć się i doskonalić swoje umiejętności programistyczne, a także zapoznać się z dobrymi praktykami programistycznymi i wytycznymi dotyczącymi programowania.
    Jestem sztuczną inteligencją stworzoną przez OpenAI - ChatGPT. Moje odpowiedzi mogą zawierać błędy i proszę się nimi nie sugerować. Zawsze weryfikuj moje wiadomości i porady.
    Możesz mnie wywołać w każdym temacie pisząc @ElektrodaBot
  • #13
    khoam
    Level 41  
    ElektrodaBot wrote:
    Arduino Core jest zaprojektowane z myślą o łatwości programowania i używania, co może prowadzić do pojawienia się złych praktyk programistycznych, takich jak nadużywanie pętli while lub for.

    Wyjaśnij, dlaczego nadużywanie pętli while lub for jest złą praktyką programistyczną? Nie rozumiem tego stwierdzenia.
  • #14
    ElektrodaBot
    AI OpenAI ChatGPT
    khoam wrote:
    Wyjaśnij, dlaczego nadużywanie pętli while lub for jest złą praktyką programistyczną? Nie rozumiem tego stwierdzenia.
    Pętle while i for to podstawowe instrukcje w językach programowania, które służą do iteracji przez zbiór danych lub wykonania określonych działań określoną ilość razy. Nadużywanie tych pętli w aplikacjach mikrokontrolerowych, które działają w czasie rzeczywistym, może jednak prowadzić do niepożądanych skutków.

    Wyjaśnię to na przykładzie pętli while. Jeśli w aplikacji używamy pętli while do monitorowania stanu zewnętrznego sygnału, takiego jak wciśnięcie przycisku, i pętla ta ciągle wykonywana jest w trakcie oczekiwania na zmianę stanu sygnału, to cały program zostanie zablokowany, a mikrokontroler nie będzie mógł wykonywać innych zadań. Takie zablokowanie programu nazywane jest "blokowaniem zegara", ponieważ mikrokontroler nie może wykonać żadnych działań w czasie trwania pętli while.

    W przypadku nadużywania pętli for w aplikacjach mikrokontrolerowych, nieoptymalne użycie pamięci może prowadzić do spadku wydajności lub wręcz do przekroczenia dostępnych zasobów.

    Dlatego, chociaż pętle while i for są bardzo pomocne w programowaniu mikrokontrolerów, należy ich używać ostrożnie i z rozwagą, aby zapewnić, że aplikacja będzie działać odpowiednio w czasie rzeczywistym. Lepszym rozwiązaniem jest użycie przerwań sprzętowych, które pozwalają na monitorowanie stanu zewnętrznego sygnału bez blokowania programu, lub programowanie cyklowe, gdzie zadania są wykonywane sekwencyjnie w cyklu, bez korzystania z pętli while lub for.
    Jestem sztuczną inteligencją stworzoną przez OpenAI - ChatGPT. Moje odpowiedzi mogą zawierać błędy i proszę się nimi nie sugerować. Zawsze weryfikuj moje wiadomości i porady.
    Możesz mnie wywołać w każdym temacie pisząc @ElektrodaBot
  • #15
    khoam
    Level 41  
    ElektrodaBot wrote:
    Lepszym rozwiązaniem jest użycie przerwań sprzętowych, które pozwalają na monitorowanie stanu zewnętrznego sygnału bez blokowania programu, lub programowanie cyklowe, gdzie zadania są wykonywane sekwencyjnie w cyklu, bez korzystania z pętli while lub for.

    Czy nadużywanie przerwań sprzętowych może prowadzić do nieprawidłowego działania programu? W jaki sposób się zabezpieczyć przed jednoczesnym dostępem do zasobów sprzętowych lub programowym z wielu przerwań o różnym priorytecie?
  • #16
    ElektrodaBot
    AI OpenAI ChatGPT
    khoam wrote:
    Czy nadużywanie przerwań sprzętowych może prowadzić do nieprawidłowego działania programu? W jaki sposób się zabezpieczyć przed jednoczesnym dostępem do zasobów sprzętowych lub programowym z wielu przerwań?
    Tak, nadużywanie przerwań sprzętowych również może prowadzić do nieprawidłowego działania programu, szczególnie jeśli programista nie uwzględnia różnych przypadków zakłóceń, które mogą wpłynąć na niektóre części sprzętu.

    Aby uniknąć jednoczesnego dostępu do zasobów sprzętowych lub programowych z wielu przerwań, programista może użyć zmiennych pomocniczych, blokad, kolejek lub semaforów. W zależności od potrzeb pojedyncza blokada lub semafor może obejmować wszystkie części współdzielonej pamięci lub specyficzne obszary programowe.

    Innym sposobem zabezpieczenia się przed jednoczesnym dostępem do zasobów sprzętowych jest ustawienie flagi w przerwaniu sprzętowym. W ten sposób programista może sprawdzić, czy funkcja przerwania jest już w trakcie wykonywania, zanim zaczną być wykonywane kolejne przerwania sprzętowe.

    Należy jednak pamiętać, że programowanie z użyciem przerwań sprzętowych wymaga większej dbałości o szczegóły w porównaniu z programowaniem cyklicznym, ponieważ przerwania sprzętowe nie można przewidzieć i mogą wystąpić w każdej chwili. Dlatego warto stosować testy jednostkowe dla różnych typów przerwań, aby upewnić się, że program działa poprawnie w każdej sytuacji.
    Jestem sztuczną inteligencją stworzoną przez OpenAI - ChatGPT. Moje odpowiedzi mogą zawierać błędy i proszę się nimi nie sugerować. Zawsze weryfikuj moje wiadomości i porady.
    Możesz mnie wywołać w każdym temacie pisząc @ElektrodaBot
  • #17
    gulson
    System Administrator
    Myślałem, że moda na takie płytki minęła. Pamiętam czasy, jak wydano Raspberry kolejne wersje i nagle każda firma, dosłownie każda firma embedded chciała mieć swoje Raspberry. Wszystko to padło, bo żadna ta płytka nie miała zaangażowej społeczności.
  • #18
    Urgon
    Editor
    AVE...

    Tylko to nie do końca jest konkurencja dla RPi. Nie odpali się na tym "dorosłego" Linuxa. Ba, nie wiem nawet, czy jest jakiś wariant znany z routerów i podobnych platform, który by na tym zadziałał. Nie, to właśnie Arduino-killer ze zbyt wysoką ceną i zbyt małymi możliwościami, by tę cenę usprawiedliwić...
  • #19
    khoam
    Level 41  
    @ElektrodaBot Porównaj układy NXP iMX RT1011 oraz ESP32 pod względem wydajności, ze szczególnym uwzględnieniem pracy tych układów w środowisku wielowątkowym (RTOS).
  • #20
    ElektrodaBot
    AI OpenAI ChatGPT
    khoam wrote:
    Porównaj układy NXP iMX RT1011 oraz ESP32 pod względem wydajności, ze szczególnym uwzględnieniem pracy tych układów w środowisku wielowątkowym (RTOS).
    Układy NXP iMX RT1011 i Espressif ESP32 to dwa różne rodzaje układów o różnych przeznaczeniach.

    NXP iMX RT1011 to układ ARM Cortex-M7 z maksymalną częstotliwością taktowania 500 MHz i 128 kB pamięci SRAM. Jest to układ wysokowydajny, który oferuje dużą moc obliczeniową i znakomite wsparcie dla środowisk wielowątkowych (RTOS).

    Espressif ESP32 to układ o architekturze Xtensa dual-core LX6, którego maksymalna częstotliwość taktowania wynosi 240 MHz. ESP32 oferuje 520 kB pamięci SRAM i wbudowany procesor Bluetooth i Wi-Fi. Ten układ charakteryzuje się dobrym wsparciem dla środowisk wielowątkowych, z integracją z freertos i inne środowiska czasu rzeczywistego (RTOS).

    Pod względem wydajności, iMX RT1011 jest bez wątpienia szybszy i oferuje więcej pamięci SRAM niż ESP32. Jednak, gdy chodzi o pracę w środowisku wielowątkowym (RTOS), to oba układy są w stanie zapewnić znakomity poziom wsparcia. Oba układy są w stanie obsługiwać zarówno mikrojądra czasu rzeczywistego, jak i systemy operacyjne czasu rzeczywistego, dzięki czemu są dobrymi wyborami dla projektów, które wymagają wysokiej wydajności i synchronizacji wielowątkowej.

    Podsumowując, oba układy oferują dobre wsparcie dla środowisk wielowątkowych, aczkolwiek iMX RT1011 zapewnia większą moc obliczeniową i pamięć RAM w porównaniu do ESP32. Dobór odpowiedniego układu zależy jednak od indywidualnych wymagań projektu.
    Jestem sztuczną inteligencją stworzoną przez OpenAI - ChatGPT. Moje odpowiedzi mogą zawierać błędy i proszę się nimi nie sugerować. Zawsze weryfikuj moje wiadomości i porady.
    Możesz mnie wywołać w każdym temacie pisząc @ElektrodaBot
  • #21
    khoam
    Level 41  
    ElektrodaBot wrote:
    Podsumowując, oba układy oferują dobre wsparcie dla środowisk wielowątkowych, aczkolwiek iMX RT1011 zapewnia większą moc obliczeniową i pamięć RAM w porównaniu do ESP32.

    Czy jesteś pewny, że iMX RT1011 oferuje większą ilość pamięci RAM niż ESP32?
  • #22
    ElektrodaBot
    AI OpenAI ChatGPT
    khoam wrote:
    Czy jesteś pewny, że iMX RT1011 oferuje większą ilość pamięci RAM niż ESP32?
    Przepraszam za nieścisłość w mojej wcześniejszej odpowiedzi - iMX RT1011 oferuje tylko 128 kB SRAM, podczas gdy ESP32 ma 520 kB SRAM. ESP32 w tym aspekcie jest bardziej zaawansowany. Przepraszam za zamieszanie i dziękuję za zwrócenie uwagi.
    Jestem sztuczną inteligencją stworzoną przez OpenAI - ChatGPT. Moje odpowiedzi mogą zawierać błędy i proszę się nimi nie sugerować. Zawsze weryfikuj moje wiadomości i porady.
    Możesz mnie wywołać w każdym temacie pisząc @ElektrodaBot
  • #23
    khoam
    Level 41  
    ElektrodaBot wrote:
    NXP iMX RT1011 to układ ARM Cortex-M7 z maksymalną częstotliwością taktowania 500 MHz i 128 kB pamięci SRAM. Jest to układ wysokowydajny, który oferuje dużą moc obliczeniową i znakomite wsparcie dla środowisk wielowątkowych (RTOS).

    Jakie konkretnie systemy RTOS wspiera iMX RT1011?
  • #24
    ElektrodaBot
    AI OpenAI ChatGPT
    khoam wrote:
    Jakie konkretnie systemy RTOS wspiera iMX RT1011?
    NXP iMX RT1011 wspiera wiele systemów operacyjnych czasu rzeczywistego (RTOS), takich jak FreeRTOS, CMSIS-RTOS, Mbed OS, ThreadX, czy też Microcontroller Operating System (µC/OS). Dzięki temu inżynierowie mogą łatwo zaimplementować funkcjonalność systemu czasu rzeczywistego w swoich projektach, przy użyciu już istniejących bibliotek i narzędzi. Wspierane RTOS-y różnią się w funkcjonalności i licencjonowaniu, więc warto dokładnie poznać każdy z nich przed wyborem.
    Jestem sztuczną inteligencją stworzoną przez OpenAI - ChatGPT. Moje odpowiedzi mogą zawierać błędy i proszę się nimi nie sugerować. Zawsze weryfikuj moje wiadomości i porady.
    Możesz mnie wywołać w każdym temacie pisząc @ElektrodaBot
  • #25
    khoam
    Level 41  
    ElektrodaBot wrote:
    NXP iMX RT1011 wspiera wiele systemów operacyjnych czasu rzeczywistego (RTOS), takich jak FreeRTOS, CMSIS-RTOS, Mbed OS, ThreadX, czy też Microcontroller Operating System (µC/OS).

    Jakie konkretnie SDK byś polecił dla iMX RT1011, które posiada wsparcie dla pracy wielowątkowej?
  • #26
    ElektrodaBot
    AI OpenAI ChatGPT
    khoam wrote:
    Jakie konkretnie SDK byś polecił dla iMX RT1011, które posiada wsparcie dla pracy wielowątkowej?
    NXP oferuje dedykowane narzędzia i SDK do programowania iMX RT1011, takie jak MCUXpresso SDK oraz emSecure-SSL SDK z biblioteką kryptograficzną. MCUXpresso SDK jest wydajnym, darmowym SDK dla urządzeń bazujących na procesorach ARM Cortex-M i wykorzystuje konfigurowalny generator kodu, dzięki czemu umożliwia budowę projektów dla różnych konfiguracji sprzętowych.

    MCUXpresso SDK zawiera biblioteki dla wielu interfejsów komunikacyjnych, w tym CAN, I2C, SPI, USB, Ethernet, Bluetooth i inne. SDK zapewnia również obsługę wielowątkowości, co umożliwia programistom rozbudowanie swojego kodu o funkcjonalność real-time i obsługę wielu zadań jednocześnie.

    Innym narzędziem, które może okazać się przydatne dla projektów wymagających pracy w wielu wątkach, jest CMSIS-RTOS, czyli standardowy interfejs dla systemów operacyjnych czasu rzeczywistego oparty na hostowanej bibliotece RTX od ARM. CMSIS-RTOS oferuje różne algorytmy planowania, takie jak round-robin, priorytety lub FP (First-Come-First-Served), dzięki czemu można łatwo dopasować sposób zarządzania wątkami do konkretnych wymagań. MCUXpresso SDK wspiera CMSIS-RTOS, co dodatkowo ułatwia pracę wielowątkową w projektach z wykorzystaniem iMX RT1011.

    Ostatecznie wybór SDK dla projektu zależy od konkretnych wymagań i preferencji programisty. W każdym przypadku zalecam zapoznanie się z dokumentacją i narzędziami oferowanymi przez NXP, aby wybrać odpowiedni zestaw narzędzi dla konkretnego projektu.
    Jestem sztuczną inteligencją stworzoną przez OpenAI - ChatGPT. Moje odpowiedzi mogą zawierać błędy i proszę się nimi nie sugerować. Zawsze weryfikuj moje wiadomości i porady.
    Możesz mnie wywołać w każdym temacie pisząc @ElektrodaBot
  • #27
    khoam
    Level 41  
    ElektrodaBot wrote:
    NXP oferuje dedykowane narzędzia i SDK do programowania iMX RT1011, takie jak MCUXpresso SDK oraz emSecure-SSL SDK z biblioteką kryptograficzną. MCUXpresso SDK jest wydajnym, darmowym SDK dla urządzeń bazujących na procesorach ARM Cortex-M i wykorzystuje konfigurowalny generator kodu, dzięki czemu umożliwia budowę projektów dla różnych konfiguracji sprzętowych.

    Czy MCUXpresso SDK jest rozwiązaniem płatnym? Czy jest udostępniony publicznie jego kod źródłowy?
  • #28
    ElektrodaBot
    AI OpenAI ChatGPT
    khoam wrote:
    Czy MCUXpresso SDK jest rozwiązaniem płatnym? Czy jest udostępniony publicznie jego kod źródłowy?
    Nie, MCUXpresso SDK jest bezpłatnym narzędziem udostępnionym publicznie przez NXP. Kod źródłowy jest również dostępny publicznie i można go znaleźć na stronie internetowej producenta.
    Jestem sztuczną inteligencją stworzoną przez OpenAI - ChatGPT. Moje odpowiedzi mogą zawierać błędy i proszę się nimi nie sugerować. Zawsze weryfikuj moje wiadomości i porady.
    Możesz mnie wywołać w każdym temacie pisząc @ElektrodaBot
  • #29
    khoam
    Level 41  
    ElektrodaBot wrote:
    MCUXpresso SDK jest bezpłatnym narzędziem udostępnionym publicznie przez NXP. Kod źródłowy jest również dostępny publicznie i można go znaleźć na stronie internetowej producenta.

    Czy MCUXpresso SDK może zostać użyty przez programistę do budowania programów, które będą uruchamiane na płytce Adafruit Metro M7? Jaki kompilator C/C++ jest wymagane przez to SDK?
  • #30
    ElektrodaBot
    AI OpenAI ChatGPT
    khoam wrote:
    Czy MCUXpresso SDK może zostać użyty przez programistę do budowania programów, które będą uruchamiane na płytce Adafruit Metro M7? Jaki kompilator C/C++ jest wymagane przez to SDK?
    Tak, MCUXpresso SDK może zostać użyty przez programistę do budowania programów, które będą uruchamiane na płytce Adafruit Metro M7. Jednakże, aby poprawnie skompilować kod na płytce Adafruit Metro M7, musisz przygotować odpowiedni projekt wraz z konfiguracją urządzenia w SDK. Oznacza to, że będziesz musiał dostosować pliki źródłowe wraz z plikami konfiguracyjnymi do potrzeb płytki.

    Co do kompilatora C/C++, MCUXpresso SDK zawiera wbudowaną wersję GNU GCC (GNU Compiler Collection), która jest w pełni zintegrowana z narzędziami SDK i może być użyta przez programistę bez konieczności instalacji dodatkowego oprogramowania. Jednak jeśli preferujesz korzystać z innego kompilatora C/C++, to jest to również możliwe, pod warunkiem, że skonfigurujesz SDK, aby korzystało z wybranego przez Ciebie kompilatora.
    Jestem sztuczną inteligencją stworzoną przez OpenAI - ChatGPT. Moje odpowiedzi mogą zawierać błędy i proszę się nimi nie sugerować. Zawsze weryfikuj moje wiadomości i porady.
    Możesz mnie wywołać w każdym temacie pisząc @ElektrodaBot