Udostępnij za pośrednictwem


Komunikacja z aplikacją wysokiego poziomu

Ważne

Jest to dokumentacja usługi Azure Sphere (starsza wersja). Usługa Azure Sphere (starsza wersja) zostanie wycofana 27 września 2027 r., a użytkownicy muszą przeprowadzić migrację do usługi Azure Sphere (zintegrowanej) do tej pory. Użyj selektora wersji znajdującego się powyżej spisu treści, aby wyświetlić dokumentację usługi Azure Sphere (zintegrowaną).

Aplikacje obsługujące w czasie rzeczywistym (RTApps) komunikują się z aplikacjami wysokiego poziomu za pośrednictwem buforu pierścieniowego mapowanego na udostępniony region pamięci.

Przykłady IntercoreComms pokazują, jak aplikacja RTApps może komunikować się z aplikacjami wysokiego poziomu. Użyj przykładu IntercoreComms_RTApp_MT3620_BareMetal jako punktu wyjścia do tworzenia własnego kodu komunikacyjnego RTApp. Aby uzyskać informacje o kodzie wymaganym w aplikacji wysokiego poziomu, zobacz Komunikacja z aplikacją obsługą w czasie rzeczywistym.

Ważne

Aby uzyskać informacje na temat rejestrowania adresów i innych szczegółów specyficznych dla sprzętu, wyślij wiadomość e-mail na adres "Mt3620 M4 Programmer's Guide" (Przewodnik programisty MT3620 M4), wysyłając wiadomość e-mail na Azure.Sphere@avnet.comadres .

Operacja

Z perspektywy aplikacji RTApp komunikacja z aplikacją wysokiego poziomu obejmuje następujące podstawowe operacje:

  • Odczytywanie informacji o konfiguracji ze skrzynki pocztowej, która jest udostępniana rdzeniem wysokiego poziomu w usłudze MT3620
  • Odczytywanie i zapisywanie danych w pamięci udostępnionej

Inicjowanie rozmiarów i wskaźników

Aplikacja RTApp odbiera informacje o buforze pierścienia za pośrednictwem trzech komunikatów w skrzynce pocztowej, które współużytkuje rdzenie w czasie rzeczywistym i na wysokim poziomie. Każdy komunikat zawiera polecenie i dane. Pierwsze dwa komunikaty zawierają podstawowe adresy odczytu i zapisu, które będą używane przez aplikacje do komunikacji; trzeci komunikat wskazuje, że przekazywanie informacji o konfiguracji jest zakończone.

Wartość polecenia Data
0xba5e0001 Deskryptor buforu ruchu wychodzącego (zapisu) dla aplikacji RTApp
0xba5e0002 Deskryptor buforu przychodzącego (odczytu) dla aplikacji RTApp
0xba5e0003 Koniec instalacji

Aplikacja RTApp oblicza rozmiar odczytu i zapisu i konfiguruje wskaźniki do początkowej pozycji każdego buforu na podstawie danych w deskryptorach buforu.

Zobacz przykład IntercoreComms_RTApp_MT3620_BareMetal, aby uzyskać dodatkowe informacje na temat korzystania ze skrzynki pocztowej.

Odczyt z i zapis do

Po zainicjowaniu aplikacja RTApp może odczytywać i zapisywać w. Ponieważ komunikacja jest implementowana za pomocą buforu pierścieniowego, odczyty i zapisy mogą opakowywać się na początku buforu.

Komunikaty zapisywane lub odczytywane z buforu mają następującą strukturę:

Nagłówek wiadomości Zawartość wiadomości
Identyfikator składnika Zastrzeżony
16 bajtów 4 bajty
Data
0 – 1 KB
  • Pierwsze pole nagłówka komunikatu (16 bajtów) zawiera identyfikator składnika aplikacji wysokiego poziomu.

    Jeśli aplikacja RTApp inicjuje komunikację z aplikacją wysokiego poziomu, upewnij się, że kolejność bajtów w każdym z pierwszych 3 segmentów identyfikatora składnika jest mała (najmniej znaczący bajt pierwszy). Kolejność bajtów w pozostałych dwóch segmentach musi być big-endian.

    Jeśli aplikacja RTApp odpowiada na komunikat z aplikacji wysokiego poziomu, wystarczy skopiować identyfikator składnika w komunikacie źródłowym do nagłówka komunikatu odpowiedzi.

  • Drugie pole nagłówka wiadomości (4 bajty) jest obecnie zarezerwowane i musi zawierać 0s.

  • Nagłówek komunikatu jest zawsze wyrównany do granicy 16 bajtów.

  • Obecnie zawartość wiadomości może mieć rozmiar co najwyżej 1 KB.

Po każdej operacji odczytu lub zapisu w buforze aplikacja RTApp używa udostępnionej skrzynki pocztowej, aby powiadomić aplikację wysokiego poziomu, że odebrała lub przesłała wiadomość.

Ustawienia manifestu aplikacji

Manifesty aplikacji dla aplikacji RTApp i aplikacji wysokiego poziomu muszą zawierać listę identyfikatorów składników aplikacji, z którymi komunikują się. Aby skonfigurować to ustawienie, dodaj AllowedApplicationConnections możliwość do manifestu aplikacji, a następnie dodaj każdy identyfikator składnika do możliwości. Manifest aplikacji usługi Azure Sphere zawiera więcej szczegółów. Oto fragment manifestu aplikacji, który konfiguruje aplikację RTApp do komunikowania się z jedną inną aplikacją.

"AllowedApplicationConnections": [ "25025d2c-66da-4448-bae1-ac26fcdd3627" ]

Aplikacje partnerskie

Podczas ładowania aplikacji na urządzenie usługi Azure Sphere narzędzia wdrażania usługi Azure Sphere domyślnie usuwają wszystkie istniejące aplikacje. Aby zapobiec temu podczas tworzenia aplikacji komunikujących się ze sobą, należy oznaczyć aplikacje jako partnerów. Po wdrożeniu jednej z aplikacji jej partnerzy nie zostaną usunięci. Aby uzyskać szczegółowe informacje, zobacz Oznaczanie aplikacji jako partnerów .