Číst v angličtině

Sdílet prostřednictvím


Komunikace s aplikací na vysoké úrovni

Aplikace podporující v reálném čase (RTApps) komunikují s aplikacemi vysoké úrovně prostřednictvím kruhové vyrovnávací paměti, která je namapovaná na sdílenou oblast paměti.

Ukázky IntercoreComms ukazují, jak RTApps může komunikovat s aplikacemi vysoké úrovně. Jako výchozí bod pro vývoj vlastního komunikačního kódu RTApp použijte ukázku IntercoreComms_RTApp_MT3620_BareMetal. Informace o kódu požadovaném v aplikaci vysoké úrovně najdete v tématu Komunikace s aplikací podporující v reálném čase .

Důležité

Pokud potřebujete informace o registračních adresách a dalších podrobnostech specifických pro hardware, vyžádejte si "Mt3620 M4 Programmer's Guide" e-mailem Azure.Sphere@avnet.com.

Operace

Z pohledu aplikace RTApp zahrnuje komunikace s aplikací vysoké úrovně následující základní operace:

  • Čtení informací o nastavení z poštovní schránky, které sdílí s hlavním jádrem na MT3620
  • Čtení a zápis dat do sdílené paměti

Inicializace velikostí vyrovnávacích pamětí a ukazatelů

Aplikace RTApp přijímá informace o vyzváněcí vyrovnávací paměti prostřednictvím tří zpráv v poštovní schránce, které jádra sdílejí v reálném čase a jádra vysoké úrovně. Každá zpráva obsahuje příkaz a data. První dvě zprávy poskytují základní adresy vyrovnávacích pamětí pro čtení a zápis, které budou aplikace používat ke komunikaci; třetí zpráva indikuje, že přenos informací o nastavení vyrovnávacích pamětí je dokončen.

Hodnota příkazu Dat
0xba5e0001 Popisovač vyrovnávací paměti odchozích přenosů (zápisu) pro aplikaci RTApp
0xba5e0002 Popisovač vyrovnávací paměti pro příchozí (čtení) pro aplikaci RTApp
0xba5e0003 Konec instalace

Aplikace RTApp vypočítá velikost vyrovnávací paměti pro čtení a zápis a nastaví ukazatele na počáteční pozici každé vyrovnávací paměti na základě dat v popisovačích vyrovnávací paměti.

Další podrobnosti o používání poštovní schránky najdete v ukázce IntercoreComms_RTApp_MT3620_BareMetal.

Čtení z vyrovnávacích pamětí a zápis do vyrovnávacích pamětí

Po inicializaci může aplikace RTApp číst z vyrovnávacích pamětí a zapisovat do vyrovnávacích pamětí. Vzhledem k tomu, že se komunikace implementuje s kruhovou vyrovnávací pamětí, čtení i zápis se můžou obtéci až na začátek vyrovnávací paměti.

Zprávy zapsané do vyrovnávací paměti nebo přečtené z vyrovnávací paměti mají následující strukturu:

Záhlaví zprávy Obsah zprávy
ID komponenty Vyhrazena
16 bajtů 4 bajty
Dat
0–1 kB
  • První pole záhlaví zprávy (16 bajtů) obsahuje ID komponenty aplikace vysoké úrovně.

    Pokud aplikace RTApp iniciuje komunikaci s aplikací vysoké úrovně, ujistěte se, že pořadí bajtů v každém z prvních 3 segmentů ID komponenty je little-endian (nejprve nejméně významný bajt). Pořadí bajtů ve zbývajících dvou segmentech musí být big-endian.

    Pokud aplikace RTApp reaguje na zprávu z aplikace vysoké úrovně, stačí zkopírovat ID komponenty ve zdrojové zprávě do záhlaví zprávy odpovědi.

  • Druhé pole záhlaví zprávy (4 bajty) je aktuálně rezervované a musí obsahovat 0s.

  • Záhlaví zprávy je vždy zarovnané na hranici 16 bajtů.

  • V současné době může mít obsah zprávy velikost maximálně 1 kB.

Po každé operaci čtení nebo zápisu do vyrovnávací paměti aplikace RTApp používá sdílenou poštovní schránku k oznámení aplikaci vysoké úrovně, že přijala nebo přenesla zprávu.

Nastavení manifestu aplikace

Manifesty aplikace pro aplikaci RTApp i aplikace vysoké úrovně musí obsahovat seznam ID komponent aplikací, se kterými komunikují. Toto nastavení nakonfigurujete tak, že AllowedApplicationConnections do manifestu aplikace přidáte funkci a pak do funkce přidáte ID jednotlivých komponent. Manifest aplikace Azure Sphere obsahuje další podrobnosti. Tady je výňatek z manifestu aplikace, který konfiguruje RTApp tak, aby komunikovali s další aplikací.

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

Partnerské aplikace

Když načtete aplikaci do zařízení Azure Sphere, nástroje pro nasazení Azure Sphere ve výchozím nastavení odstraní všechny existující aplikace. Pokud chcete zabránit tomu, aby k tomu docházelo při vývoji aplikací, které spolu vzájemně komunikují, musíte aplikace označit jako partnery. Když nasadíte jednu z aplikací, její partneři se neodstraní. Podrobnosti najdete v tématu Označování aplikací jako partnerů .