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.
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
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.
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 | ||||||
---|---|---|---|---|---|---|---|
|
|
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.
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" ]
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ů .