Share via


Üst düzey bir uygulamayla iletişim kurma

Gerçek zamanlı özellikli uygulamalar (RTApps), paylaşılan bellek bölgesine eşlenmiş bir halka arabelleği aracılığıyla üst düzey uygulamalarla iletişim kurar.

IntercoreComms örnekleri RTApps'in üst düzey uygulamalarla nasıl iletişim kurabileceğini gösterir. Kendi RTApp iletişim kodunuzu geliştirmek için başlangıç noktası olarak IntercoreComms_RTApp_MT3620_BareMetal örneğini kullanın. Üst düzey bir uygulamada gereken kod hakkında bilgi için bkz. Gerçek zamanlı özellikli bir uygulamayla iletişim kurma .

Önemli

Kayıt adresleri ve donanıma özgü diğer ayrıntılar hakkında bilgi için e-posta Azure.Sphere@avnet.comgöndererek "MT3620 M4 Programcı Kılavuzu" isteyin.

Işlem

RTApp açısından bakıldığında, üst düzey bir uygulamayla iletişim aşağıdaki temel işlemleri içerir:

  • MT3620'de üst düzey çekirdekle paylaştığı posta kutusundan kurulum bilgilerini okuma
  • Paylaşılan belleğe veri okuma ve yazma

Arabellek boyutlarını ve işaretçilerini başlatma

RTApp, gerçek zamanlı ve üst düzey çekirdeklerin paylaştığı posta kutusundaki üç ileti aracılığıyla halka arabelleği hakkında bilgi alır. Her ileti bir komut ve veri içerir. İlk iki ileti, uygulamaların iletişim kurmak için kullanacağı okuma ve yazma arabelleklerinin temel adreslerini sağlar; üçüncü ileti, arabellekler için kurulum bilgilerinin iletiminin bittiğini gösterir.

Komut Değeri Veri
0xba5e0001 RTApp için giden (yazma) arabellek tanımlayıcısı
0xba5e0002 RTApp için gelen (okuma) arabellek tanımlayıcısı
0xba5e0003 Kurulum sonu

RTApp, okuma ve yazma arabelleklerinin boyutunu hesaplar ve arabellek tanımlayıcılarındaki verilere göre her arabelleğin ilk konumuna yönelik işaretçiler ayarlar.

Posta kutusunun nasıl kullanılacağı hakkında ek ayrıntılar için IntercoreComms_RTApp_MT3620_BareMetal örneğine bakın.

Arabelleklerden okuma ve arabelleklere yazma

Başlatmadan sonra RTApp, arabellekleri okuyabilir ve arabelleklere yazabilir. İletişim bir halka arabelleği ile uygulandığından, hem okuma hem de yazma işlemleri arabelleğin başına kaydırılabilir.

Arabelleğe yazılan veya arabellekten okunan iletiler aşağıdaki yapıya sahiptir:

İleti üst bilgisi İleti içeriği
Bileşen Kimliği Saklı -dır
16 Bayt 4 Bayt
Veri
0 - 1 KB
  • İleti üst bilgisinin ilk alanı (16 bayt), üst düzey uygulamanın bileşen kimliğini içerir.

    RTApp, üst düzey uygulamayla iletişim başlatıyorsa, bileşen kimliğinin ilk 3 segmentinin her birinde bayt sırasının küçük endian (önce en az önemli bayt) olduğundan emin olun. Kalan iki segmentteki baytların sıralanması büyük endian olmalıdır.

    RTApp üst düzey uygulamadan gelen bir iletiye yanıt veriyorsa, kaynak iletideki bileşen kimliğini yanıt iletisinin üst bilgisine kopyalamanız yeterlidir.

  • İleti üst bilgisinin ikinci alanı (4 bayt) şu anda ayrılmıştır ve 0'lar içermelidir.

  • İleti üst bilgisi her zaman 16 baytlık bir sınıra hizalanır.

  • Şu anda ileti içeriğinin boyutu en fazla 1 KB olabilir.

Arabelleğe her okuma veya yazma işleminden sonra, RTApp paylaşılan posta kutusunu kullanarak üst düzey uygulamaya ileti aldığını veya iletildiğini bildirir.

Uygulama bildirimi ayarları

Hem RTApp hem de üst düzey uygulama için uygulama bildirimleri, iletişim kurdıkları uygulamaların bileşen kimliklerini listelemelidir. Bu ayarı yapılandırmak için, özelliği uygulama bildirimine ekleyin AllowedApplicationConnections ve ardından her bileşen kimliğini özelliğe ekleyin. Azure Sphere uygulama bildiriminin daha fazla ayrıntısı vardır. RtApp'i başka bir uygulamayla iletişim kuracak şekilde yapılandıran uygulama bildiriminden bir alıntı aşağıdadır.

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

İş ortağı uygulamaları

Azure Sphere cihazına bir uygulama yüklediğinizde, Azure Sphere dağıtım araçları varsayılan olarak tüm mevcut uygulamaları siler. Birbiriyle iletişim kuran uygulamalar geliştirirken bunun olmasını önlemek için uygulamaları iş ortağı olarak işaretlemeniz gerekir. Uygulamalardan birini dağıttığınızda iş ortakları silinmez. Ayrıntılar için bkz. Uygulamaları iş ortağı olarak işaretleme .