Centrum programistów linux*

Procesor SoC FPGA i Nios® II

Linux jest najczęściej używanym systemem operacyjnym (OS) typu open source. Linux jest wzorowany na Uniksie i zawiera wbudowane sterowniki, które obsługują szeroką gamę urządzeń, w tym urządzenia znajdujące się na płytach Intel® SoC FPGA.

Intel dostarcza jądro SoC FPGA Linux, które jest oparte na jądrze Linux z kernel.org wraz z innymi dodatkami, takimi jak pakiety obsługi płyt i sterowniki.

Intel jest głównym członkiem Linux Foundation i przyczynia się do wielu projektów open source Linuksa. Intel jest silnym uczestnikiem i zwolennikiem społeczności Linuksa. Witryna internetowa firmy Intel Linux, RocketBoards.org, zawiera pomoc dla wprowadzających, przykłady projektów, dokumentację i fora społeczności do dzielenia się pomysłami i współpracy.

Skorzystaj z poniższych łączy, aby dowiedzieć się, jak korzystać z systemu Linux na układach FPGA Intel SoC. Dla użytkowników po raz pierwszy zaleca się liniowe śledzenie zasobów.

1. Wymagania wstępne

Wymagane umiejętności: Zostań członkiem RocketBoards.org

Odwiedź RocketBoards.org i kliknij przycisk Zarejestruj się. RocketBoards.org zapewnia dostęp do:

  • Wyczerpujące informacje o SoC FPGA Linux:
  • Aktualizacje najnowszych wersji systemu Linux
  • Przewodniki wprowadzające krok po kroku
  • Intel SoC FPGA Golden System Reference Designs (GSRD)
  • Przykładowe projekty, aplikacje i projekty firmy Intel i społeczności SoC
  • Wsparcie społeczności
  • Dostęp do dyskusji na forum i współpracy firmy Intel i społeczności SoC
  • Aktywny udział członków w odpowiadaniu na pytania SoC FPGA i Linux

Zagadnienia dotyczące projektowania

Dlaczego warto korzystać z wbudowanego systemu Linux?

W przypadku systemów wbudowanych, takich jak smartfony, tablety, urządzenia PDA, dekodery i osobiste odtwarzacze multimedialne, wbudowany system operacyjny Linux jest naturalnym wyborem, ponieważ odnosi się do wielu funkcji, których projektanci szukają w systemie operacyjnym.

Koszt

  • To wspierane przez społeczność oprogramowanie open source jest bezpłatne. Masz możliwość zbudowania własnego systemu Linux, zaczynając od wolnego od licencji jądra systemu operacyjnego Linux. Dostępne frameworki i aplikacje są oferowane w ramach wbudowanej społeczności Linuksa w celu stworzenia kompletnego rozwiązania systemowego.

Wydajność

  • Wbudowany Linux oferuje lepszą wydajność w czasie rzeczywistym niż standardowy Linux, ponieważ jest dostosowany do pracy na platformie wbudowanej i jest zoptymalizowany pod kątem zasilania.

Rozmiar

  • Wbudowane jądro Linuksa jest prostsze i mniejsze niż standardowe jądro Linuksa.

Wsparcie

  • Wiele firm przyczynia się do wbudowanego Linuksa o otwartym kodzie źródłowym dzięki ciągłym aktualizacjom zgodności jądra i zaawansowanym narzędziom.
  • Osadzone witryny pomocy technicznej systemu Linux, takie jak RocketBoards.org,zapewniają nowym i zaawansowanym użytkownikom przewodniki wprowadzające, przykłady projektów i fora społeczności.
  • Programiści, którzy potrzebują komercyjnego wbudowanego rozwiązania Linux, mogą korzystać z dostępnych dystrybucji Linuksa z WindRiver, MonteVista i Timesys.
  • Programiści mogą znaleźć wiele sterowników specyficznych dla urządzeń, takich jak USB i Ethernet.

Dostosowywania

  • Programiści mogą dostosować dystrybucję Angstrom do swojej konkretnej aplikacji. Najnowsze jądra Linuksa są zawsze dostępne do pobrania na kernel.org.

Łatwość użycia

  • Sterowniki systemu operacyjnego Linux oferują abstrakcję urządzeń wysokiego poziomu przy minimalnym wysiłku. Możesz zbudować sterowniki dla systemu Linux, aby zapewnić dostęp do przestrzeni użytkownika do niestandardowych urządzeń peryferyjnych użytkownika w sieci szkieletowej FPGA.

Bezpieczeństwo

  • Wbudowany Linux oferuje wysoce stabilne i przetestowane jądro do użytku z aplikacjami o krytycznym znaczeniu dla bezpieczeństwa.
  • Grupy bezpieczeństwa open source zapewniają prezentacje, literaturę i certyfikaty bezpieczeństwa dla wbudowanych aplikacji Linux.

Przenoszenia

  • Wiele niestandardowych mikroprocesorów ma wbudowaną obsługę jądra Linuksa.

Innowacja

  • Wspólny rozwój wspiera szybką ewolucję Linuksa.
  • Społeczności Linuksa zapewniają szybsze medium do inkubacji i testowania nowych możliwości.
  • Brak ograniczeń umownych pozwala programistom tworzyć nowe zastosowania, rynki i platformy dla systemu operacyjnego Linux.

Wbudowany Linux działa szczególnie dobrze z układami FPGA Intel SoC, ponieważ:

  • Linux oferuje funkcje, które w pełni wykorzystują system procesorów twardych Intel SoC Symmetric Multiprocessor Hardware configuration
  • Dostawcy programistyczni, tacy jak WindRiver, MontaVista i Timesys, oferują wbudowane rozwiązania Linux firmy Intel, które zapewniają szybki czas na wprowadzenie na rynek
  • Jądro Linuksa dla układów INTEL SoC FPGA jest zgodne z normalnymi procesami ARM* Linux podczas tworzenia i uruchamiania.

Uwagi dotyczące systemu Linux

Po podjęciu decyzji o użyciu systemu Linux istnieją pewne aspekty projektu, które należy wziąć pod uwagę:

  • Zdecyduj, czy chcesz zbudować własny system Linux, czy skorzystać z oferty komercyjnej
  • Jeśli zdecydujesz, że nie chcesz budować własnej dystrybucji Linuksa, możesz skorzystać z komercyjnej oferty WindRiver, Monta Vista i Timesys lub innego dostawcy aplikacji Linux.
  • Jeśli zdecydujesz się dostosować swój projekt, musisz określić, którą wersję jądra Linuksa pobrać z kernel.org. Niestandardowy projekt wymaga więcej rozwoju oprogramowania, ale oferuje rozwiązanie o niższych kosztach.
  • Określ, którego jądra użyć. Decyzja ta powinna być oparta na potrzebach aplikacji. Obie wersje są sklasyfikowane jako "stabilne" i "rozwojowe". Odwiedź kernel.org, aby zobaczyć różne dostępne opcje jądra.
  • Ustal strategię kompilacji. Obecnie obsługiwane strategie kompilacji to:
  • Dystrybucja Angstrom
  • Projekt Yocto
  • Określ, czy chcesz użyć istniejących sterowników urządzeń, czy utworzyć własne. Listę dostępnych sterowników urządzeń Intel SoC FPGA znajdziesz na RocketBoards.org.
  • Wybierz sposób implementacji wieloprocesorowego. System procesorów twardych Intel SoC to klasyczna symetryczna konfiguracja sprzętowa wieloprocesorowa (SMP). Asymetryczne wieloprocesorowość (AMP) można zaimplementować przy użyciu metod, takich jak SMP z koligacjami rdzenia lub rezerwacją rdzenia. Więcej informacji można znaleźć w Podręczniku technicznym (TRM).
  • Określ, czy potrzebujesz dostosowania niektórych składników procesu kompilacji systemu Linux. Jeśli tak, musisz znać następujące kwestie:
  • Proces rozruchu systemu Linux
  • Narzędzia wykorzystywane w procesie przynoszenia płyty
  • Dostosowywanie U-Boot
  • Główny system plików Linux i sposoby jego dostosowywania

Procesor Nios II w systemie Linux

Odwiedź stronę podręcznika użytkownika systemu Linux Nios II dla instrukcji budowania i uruchamiania jądra systemu Linux.

Wymagane umiejętności: Omówienie podstawowego przepływu rozruchowego układu Intel SoC FPGA

Powyższe diagramy zawierają trzy podstawowe etapy:

Scena

Opis

Rozruchowa pamięć ROM

Wyprowadza procesor z resetu, wykonuje minimalną konfigurację i ładuje U-Boot do wbudowanej pamięci RAM

U-Boot

Konfiguruje I/O, FPGA, pętle z blokadą fazową (PLL) i zegary; inicjuje DDRAM i ładuje jądro Linuksa

Linuksa

Zarządza procesami, pamięciami, stosem sieci i sterownikami urządzeń oraz uruchamia aplikację końcową

Podstawowe kroki zawarte w tych etapach to:

  • Utwórz projekt sprzętu za pomocą Projektanta platformy. Projekt obejmuje:
  • Konfiguracja HPS zegarów, pinów, DDR i interfejsów.
  • Konfiguracja sieci szkieletowej FPGA własności intelektualnej FPGA (IP), pinów, kontrolerów pamięci i PLL.
  • Skompiluj projekt sprzętu za pomocą narzędzi programowych Intel Quartus® Prime. Tworzone są następujące pliki:
  • Plik obiektowy (SOF): Przechowuje dane konfigurujące strukturę FPGA
  • Plik Handoff: Zawiera informacje używane przez generator programu ładującego drugiego stopnia (SSBL) do utworzenia programu ładującego HPS
  • Plik informacji o systemie na programowalnym chipie (SOPCINFO): Informacje o systemie sprzętowym, które tworzą drzewo urządzeń z miękkimi adresami IP FPGA.
  • Użyj narzędzia programowego Intel Quartus Prime, aby przekonwertować plik SOF na surowy plik binarny (RBF), który jest używany do programowania FPGA.
  • Skonfiguruj narzędzie generatora programu ładującego w edytorze pakietu obsługi płyty (BSP) pakietu Intel SoC FPGA Embedded Development Suite (SoC EDS), aby używać pliku handoff do generowania programu ładującego (U-Boot).
  • Wybierz i skonfiguruj źródło rozruchu. Możesz wybrać spośród FPGA, SD/ MMC, QSPI lub NAND.
  • Uruchom jądro Linuksa. Opcjonalnie napisz sterowniki sprzętowe lub programowe IP.

Wymagane umiejętności: Zapoznaj się z wbudowanym systemem rozwoju SoC firmy Intel (SoC EDS)

Zapoznaj się z Podręcznikiem użytkownika pakietu Intel SoC FPGA Embedded Development Suite, aby uzyskać podstawową wiedzę na temat narzędzi i składników SoC EDS. Chociaż nie wszystkie sekcje dokumentu opisują program ładujący i rozwój systemu Linux, firma Intel zdecydowanie zaleca zapoznanie się z co najmniej następującymi sekcjami:

Sekcja SoC EDS

Opis

Wprowadzenie

Zapewnia ogólny przegląd funkcji i przepływu rozwoju sprzętu i oprogramowania

Instalacja

W tym artykule opisano, jak zainstalować SoC FPGA EDS i dołączony ARM* Development Studio 5* (DS-5*)

Licencjonowania

Zapewnia opcje licencjonowania dla SoC FPGA EDS i sposób instalowania licencji

Osadzona powłoka poleceń

W tym artykule opisano, jak uruchomić powłokę, która uzyskuje dostęp do pozostałych narzędzi SoC FPGA EDS

alt-boot-disk-util

W tym artykule opisano narzędzie, które aktualizuje program wstępnego ładowania i programu ładującego na fizycznej karcie SD

bsp-edytor

Szczegółowe informacje na temat graficznego interfejsu użytkownika (GUI), który umożliwia generowanie pakietu obsługi płyty (BSP): programu ładującego i drzewa urządzeń z systemem Linux

Kompilatory Linuksa

Podsumowuje kompilatory dołączone do SoC EDS

Podstawowe uczenie się: Co to jest Linux?

Jako system operacyjny, Linux znajduje się pod wszystkim innym oprogramowaniem. Odbiera żądania od tych programów i przekazuje je do sprzętu komputera.

Zrozumienie pięciu głównych podsystemów jądra Linuksa pozwala efektywnie korzystać z następujących funkcji:

  • Harmonogram procesów
  • Komunikacja międzyprocesowa (IPC)
  • Zarządzanie pamięcią
  • System plików
  • Podsystem sieciowy:

Podstawowe uczenie się: dokumentacja i zasoby

Podręcznik techniczny

Podręczniki techniczne zawierają szczegółowy opis sprzętu, w tym zachowanie, adresy podstawowe, mapowanie i sterowanie przerwaniami oraz rejestry stanu dla wszystkich urządzeń peryferyjnych. Ten zasób jest cenny podczas debugowania złożonych scenariuszy od podstawy fizycznej.

Dodatkowe zasoby dotyczące dokumentów

Podstawowe uczenie się: materiały szkoleniowe

  • Odwiedź witrynę Rocketboards.org Training, aby uzyskać najnowsze zasoby szkoleniowe, materiały warsztatowe, katalog prowadzony przez instruktora i katalog szkoleń online.

2. Zacznij

Przejdź do RocketBoards.org

  • RocketBoards.org jest punktem wyjścia dla wszystkich plików binarnych GSRD (Golden System Reference Design) i przykładów projektów dla zestawów rozwojowych Intel SoC FPGA.
  • Na stronie głównej kliknij przycisk START lub wybierz pozycję Wprowadzenie z listy rozwijanej na karcie Dokumentacja.

Wybierz tablicę

Aby znaleźć funkcje, specyfikacje, dokumentację i obsługę projektu dla określonej tablicy, wybierz POZYCJĘ TABLICA z menu nawigacyjnego na stronie głównej.

Należy pamiętać, że zestawy rozwojowe Intel SoC FPGA oferują przewodniki dla początku i liczne przykłady projektów.

Wybierz wersję narzędzia

Wybierz wersję oprogramowania Intel® Quartus® Prime do użycia z projektem.

Porady:

  • Aby uzyskać dostęp do najnowszych aktualizacji narzędzi do projektowania i poprawek zabezpieczeń, użyj najnowszej wersji oprogramowania Intel Quartus Prime.
  • Jeśli kierujesz reklamy na konkretną wersję systemu Linux, upewnij się, że wybrano właściwą wersję narzędzia, która jest zgodna z wersją systemu Linux.

Wybierz zadanie

W zależności od wybranej tablicy programistycznej i wersji narzędzia zadania dostępne w obszarze listy rozwijanej Wybierz zadanie są różne. Większość zadań, które możesz wykonać, jest współdzielona między tablicami programistycznymi.

Oto niektóre typowe dostępne zadania, które można wybrać:

  • Uruchamianie Linuksa z karty SD
  • Kompilowanie projektu sprzętu
  • Generowanie U-Boot i drzewa urządzeń
  • Generowanie drzewa urządzeń z systemem Linux
  • Kompilowanie Linuksa
  • Generowanie i aktualizowanie karty SD
  • Uruchamianie z QSPI Flash
  • Uruchamianie z pamięci NAND Flash

Instalowanie SoC EDS

Pobierz pakiet Intel SoC FPGA Embedded Development Suite (SoC EDS) z Centrum pobierania oprogramowania Intel FPGA Design i postępuj zgodnie z tymi instrukcjami, aby zainstalować SoC EDS.

SoC EDS zawiera niezbędne narzędzia, które są wymagane do całego rozwoju Układu FPGA SoC, takie jak generowanie U-Boot i drzewa urządzeń Linux. SoC EDS zapewnia złoty sprzętowy projekt referencyjny (GHRD).

Więcej informacji można znaleźć na stronie Omówienie pakietu Intel SoC FPGA Embedded Development Suite.

Wykorzystaj narzędzia do budowania

Intel® SoC EDS udostępnia następujące narzędzia i narzędzia wymagane do konfigurowania, kompilowania i tworzenia plików binarnych:

  • Kompilator Linaro Linux jest dostarczany z SoC EDS
  • Narzędzie generatora drzewa urządzeń służy do tworzenia drzew urządzeń dla systemów SoC, które zawierają projekty FPGA utworzone za pomocą Projektanta platformy
  • Narzędzie do rozruchu karty SD SoC EDS to narzędzie do aktualizacji oprogramowania rozruchowego na karcie SD

3. Stwórz własny projekt

Podstawowe kroki projektu

W tym momencie pobrano i zainstalowano oprogramowanie Intel Quartus Prime oraz złoty projekt referencyjny systemu Intel SoC EDS (GSRD). Otrzymałeś również złoty projekt referencyjny sprzętu (GHRD) od GSRD. Aby ukończyć projekt Linuksa, musisz wykonać następujące ogólne kroki:

  1. Dodaj niestandardowy składnik sprzętowy do projektu za pomocą Projektanta platformy.
  2. Użyj oprogramowania Intel Quartus Prime, aby skompilować swój projekt.
  3. Użyj narzędzi źródłowych SoC EDS i GSRD, aby zbudować preloader lub U-Boot.
  4. Zbuduj Uboot, Linux i Główny System Plików oddzielnie od Git Tree lub użyj dystrybucji Angstrom.
  5. Dodaj dowolne niestandardowe sterowniki do źródła jądra Linuksa i dokonaj niezbędnych uzupełnień w konfiguracji jądra.
  6. Utwórz aplikację dla systemu Linux.Create a Linux application.
  7. Wybierz i zaprogramuj źródło rozruchu dla swojego urządzenia.
  8. Uruchom aplikację na swoim urządzeniu.

Przykładowy projekt

Przejdź do przykładu projektu Soft IP to Linux. Ten przykład:

  • Wykorzystuje złoty projekt referencyjny systemu (GSRD) jako podstawę, do której dodawany jest niestandardowy zegar o wysokiej rozdzielczości
  • Tworzy wszystkie wymagane pliki binarne do uruchomienia urządzenia Intel Arria 10 SoC
  • Tworzy sterownik Systemu Linux i aplikację przestrzeni użytkownika, która współdziała ze sprzętem
  • Zawiera informacje na temat uruchamiania urządzenia i tworzenia sterowników systemu Linux dla składników klienta

Kilka szczegółów, które należy wziąć pod uwagę przy rozpoczynaniu własnego projektu:

  • Ważne jest, aby określić, którego zestawu programisty i wersji narzędzia chcesz użyć. Na ogół najlepiej jest zacząć od najnowszej wersji. Jeśli musisz pracować z określoną wersją systemu Linux, upewnij się, że wybrana wersja narzędzia jest zgodna.
  • Każdy zestaw rozwojowy i wersja narzędzia ma swój własny projekt referencyjny. GSRD zapewnia zestaw niezbędnych komponentów systemu sprzętowego i programowego, które można wykorzystać jako podstawę do stworzenia niestandardowego projektu.

4. Przykłady

Repozytoria kodu SoC FPGA Linux na GitHub

Repozytorium

Opis

linux-socfpga.git/

Repozytorium programistyczne SoC FPGA Linux

  • Kopie lustrzane kernel.org wydania repozytorium Linuksa
  • Oddziały podrzędne dla Układu SoC FPGA

łatki i aktualizacje

meta-Intel fpga .git/

Repozytorium receptur SoC FPGA Yocto

  • Punkt wyjścia dla niestandardowych receptur Yocto

angstrom-socfpga.git/

Skrypty konfiguracyjne dla Układu SoC FPGA Angstrom
dystrybucja

uboot-socfpga.git/

Repozytorium programistyczne SoC FPGA U-Boot

sopc2dts.git/

Repozytorium Device Tree Generator (sopc2dts)

linux-refdesigns.git/

Kod źródłowy oprogramowania dla projektów referencyjnych systemu Linux

Kroki tworzenia plików binarnych rozruchu systemu Linux

Poniższe łącza zawierają szczegółowe informacje na temat ręcznego kompilowania i generowania plików binarnych używanych w procesie rozruchu systemu Linux.

Zasób

Urządzenie SoC

Wersja GSRD

Tworzenie i aktualizowanie karty SD

Intel Arria 10

17.0

Programowanie Flash: QSPI, NAND i SDMMC

Intel Arria 10

16.1

Programowanie FPGA

Cyklon® V / Arria V

17.0

Generowanie skryptu U-Boot

Cyklon V

Generowanie i kompilowanie preloadera

Cyklon V / Arria V

Cały

Generowanie U-Boot i drzewa urządzeń

Intel Arria 10

17.0

Preloader i dostosowywanie U-Boot

Cyklon V / Arria V

13.1

Budowanie jąder initramfs (Simple Root Filesystem)

Intel Arria 10 /
Cyklon V / Arria V

Cały

Generator drzewa urządzeń (Linux)

Intel Arria 10

17.0

Opis drzewa urządzeń z systemem Linux

Intel Arria 10 /
Cyklon V / Arria V

Cały

Kompilowanie Linuksa (Budowanie jądra i RFS przy użyciu Angstrom lub z GIT)

Intel Arria 10 /
Cyklon V / Arria V

Cały

Instrukcja obsługi Yocto

Arria V

14.0

Angstrom Root Filesystem HowTo

Intel Arria 10 /
Cyklon V / Arria V

Cały

Budowanie Yocto RFS z meta-Intel FPGA

Intel Arria 10 /
Cyklon V / Arria V

Cały

Dodatkowe przykłady

Zasób

Urządzenie SoC

Wersja GSRD

Przykład projektu datamover

Cyklon® V

14.0

Częściowa rekonfiguracja

Intel® Arria® 10

16.1

Port główny PCIe* z MSI

Intel Arria 10 / Cyclone V / Arria V

17.0

Przykład projektu SGMII

Cyklon V

14.0

Istniejące sterowniki urządzeń

Obsługa sterowników SoC Hard IP

System procesorów twardych Intel® FPGA SoC integruje wiele rdzeni IP innych firm z:

  • RAMIĘ
  • Streszczenie* DesignWare
  • Kadencja

Ponieważ te rdzenie IP innych firm są zazwyczaj szeroko stosowane i mają wsparcie społeczności, dostępne dla nich sterowniki są na ogół dobrze przetestowane i stabilne.

RocketBoards.org prowadzi listę dostępnych sterowników dla urządzeń peryferyjnych Intel SoC FPGA.

5. Dodatkowe zasoby

Rocketboards.org

Rocketboards.org to strona zasobów Intel SoC FPGA Linux. Jest to witryna współpracy, za pomocą której można znaleźć uwagi dotyczące aplikacji specyficzne dla urządzenia, które opisują sposób tworzenia różnych składników wymaganych do rozruchu systemu Linux.

Rocketboards Forum

Linux dla Układów FPGA Intel SoC został opracowany z jądra Linuksa typu open source z kernel.org. Obsługa części jądra Linuksa specyficznych dla Układu Intel SoC FPGA (sterowniki i BSP) jest dostępna za pośrednictwem społeczności Intel FPGA

Rocketboards Forum to strona społecznościowa, która umożliwia współpracę między różnymi użytkownikami produktów Intel FPGA. Skorzystaj z wyszukiwarki, aby znaleźć odpowiedni materiał. Zachęcamy również do aktualizacji i wnoszenia wkładu.

Podobnie jak w przypadku wielu projektów open source, zachęcamy klientów do korzystania z list mailingowych open source dla systemu Linux w obszarach, które nie są specyficzne dla układów FPGA Intel SoC.

Mój Intel

Użyj swojego konta My Intel, aby złożyć zgłoszenie serwisowe o pomoc, zarejestrować się na zajęcia szkoleniowe lub uzyskać dostęp do innych zasobów. Rejestracja jest wymagana przed uzyskaniem dostępu do tych usług.

Materiały zawarte na tej stronie są tłumaczeniem z języka angielskiego, wykonanym częściowo przez człowieka, a częściowo automatycznie. Materiały te są udostępnione dla Twojej wygody i należy je traktować jedynie jako ogólne źródło informacji. Nie ma jednak gwarancji, że są one kompletne bądź poprawne. Jeśli istnieje jakakolwiek rozbieżność między wersją angielską tej strony a jej tłumaczeniem, wersja angielska jest wersją obowiązującą i ma rozstrzygające znaczenie. Wyświetl anglojęzyczną wersję tej strony.