logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

MicroBlaze - jak skonfigurować środowisko do tworzenia programów?

_jta_ 26 Sty 2021 23:28 216 1
REKLAMA
  • #1 19212704
    _jta_
    Specjalista elektronik
    Posty: 49163
    Pomógł: 3212
    Ocena: 4263
    Próbowałem znaleźć w dokumentacji Xilinx-a - niby jest jakiś opis, jak utworzyć projekt procesora (chodzi o procesor "budowany" w FPGA), wyeksportować definicję, a potem jej użyć do skonfigurowania środowiska do tworzenia programów na ten procesor. Ale... okazuje się, że definicja nie pasuje do konfiguratora środowiska - ten wymaga, by miała IP_TYPE = PROCESSOR, a tworzy się z IP_TYPE = PERIPHERAL, i nie wiem, jak to zmienić - atrybut IP_TYPE jest tylko do odczytu. Szukałem jakiegoś ustawienia podczas tworzenia definicji procesora, które by pozwoliło określić IP_TYPE (zakładając, że to się robi tylko do odczytu dopiero na jakimś etapie, a przedtem można określić, jaka ma być wartość tego atrybutu), ale nic nie znalazłem. Czy ktoś przez to przeszedł i wie, jak to zrobić?

    Przypuszczam, że cała ta konfiguracja to utworzenie dwóch plików (jakiś .h i config.make), i potem wywołanie 'make'... tylko nie wiem, co w tych dwóch plikach ma być.

    Dla każdego procesora są tam 3 katalogi: doc (zawiera PDF z opisem, jakie funkcje biblioteczne są dostępne), src (pliki .h, .c, .s), data (3 pliki, w tym .mss, .tcl - właśnie ten .tcl ma utworzyć pliki config.make i .h specyficzny dla konfiguracji procesora, ale do tego potrzebuje jego definicji).
  • REKLAMA
  • #2 19215509
    _jta_
    Specjalista elektronik
    Posty: 49163
    Pomógł: 3212
    Ocena: 4263
    Nie udało mi się znaleźć w SDK Xilinxa definicji urządzeń peryferyjnych MicroBlaze MCS - UART, GPO, GPI, kontroler przerwań, FIT, PIT. Źle szukałem, czy ich nie ma? (ciekawostka: sprawdzanie pisowni pokazuje "źle" jako błąd - słowo zakazane przez cenzurę?)

    Trochę niedokładnie pamiętałem z tą strukturą środowiska: katalog "standalone<wersja>" zawiera podkatalogi "data", "doc" i "src", a w "src" są podkatalogi do procesorów. Skrypt "data/standalone.tcl" ma utworzyć "xparameters.h", "bspconfig.h", "microblaze_interrupts_g.c", "microblaze_exceptions_g.h", "profile_config.h", i "config.make" - w sumie 6, a nie 2.

    Z tym SDK to nie wiem, jak zrobić, by móc tego użyć - czy jest jakiś zrozumiały opis, jak na MicroBlaze zrobić obsługę przerwań? Chodzi głównie o to, jak w obsłudze przerwania dostać numer właśnie obsługiwanego przerwania, bo adres obsługi jest jeden wspólny do wszystkich przerwań - jest tabela, do której można wpisać wartość identyfikującą przerwanie, ale nie wiem, jak obsługa przerwana ma go dostać, i nie widzę tego w źródłach należących do SDK.
REKLAMA