Öğretici: Üst düzey uygulama oluşturma

Üst düzey bir uygulama Azure Sphere işletim sisteminde çalışır, Azure Sphere uygulama kitaplıklarını kullanır ve İnternet ile ve bulut tabanlı hizmetlerle iletişim kurabilir. Üst düzey uygulamalar hakkında temel bilgiler için bkz. Azure Sphere uygulamalarına genel bakış .

Bu öğreticide şunları nasıl yapacağınızı öğreneceksiniz:

  • Cihazınızı geliştirme ve hata ayıklama için hazırlama
  • Üst düzey bir uygulama derleme, çalıştırma ve hata ayıklama

Önkoşullar

  • Windows veya Linuxiçin CMake ve Ninja yükleyin.
  • Windows veya Linuxiçin Visual Studio Code yükleyin.
  • Windows veya Linuxiçin CMake ve Ninja yükleyin.

Cihazınızı geliştirme ve hata ayıklama için hazırlama

Azure Sphere cihazınızda örnek bir uygulama oluşturabilmeniz veya bunun için yeni uygulamalar geliştirebilmeniz için önce geliştirmeyi ve dışarıdan yüklemeyi etkinleştirmeniz gerekir. Varsayılan olarak, Azure Sphere cihazları "kilitlidir"; başka bir ifadeyle, geliştirme aşamasındaki uygulamaların bir bilgisayardan yüklenmesine izin vermezler ve uygulamaların hata ayıklamasına izin vermezler. Cihazı dışarıdan yüklemeye hazırlamak bu kısıtlamayı kaldırır.

az sphere device enable-development komutu, cihazı hata ayıklama için uygulamaları kabul etmek üzere yapılandırırken, hata ayıklama sunucusunu cihaza yükler ve cihazı bulut uygulaması güncelleştirmelerine izin vermeyen bir cihaz grubuna atar. Uygulama geliştirme ve hata ayıklama sırasında, bulut uygulaması güncelleştirmelerinin geliştirme aşamasındaki uygulamanın üzerine yazmaması için cihazı bu grupta bırakmanız gerekir.

  1. Azure Sphere cihazınızın bilgisayarınıza ve bilgisayarınızın İnternet'e bağlı olduğundan emin olun.

  2. PowerShell, Windows Komut İstemi veya Linux komut kabuğunu kullanarak bir komut satırı arabirimi açın.

  3. Aşağıdaki komutu girin:

    az sphere device enable-development --resource-group <ResourceGroupName> --catalog <CatalogName> --device <DeviceIdValue>
    

    Aşağıdakine benzer bir çıkış görmeniz gerekir:

    Getting device capability configuration for application development.
    Downloading device capability configuration for device ID '<device ID>'.
    Successfully downloaded device capability configuration.
    Successfully wrote device capability configuration file 'C:\Users\user\AppData\Local\Temp\tmpD732.tmp'.
    Setting device group ID 'a6df7013-c7c2-4764-8424-00cbacb431e5' for device with ID '<device ID>'.
    Successfully disabled over-the-air updates.
    Enabling application development capability on attached device.
    Applying device capability configuration to device.
    Successfully applied device capability configuration to device.
    The device is rebooting.
    Installing debugging server to device.
    Deploying 'C:\Program Files (x86)\Microsoft Azure Sphere SDK\DebugTools\gdbserver.imagepackage' to the attached device.
    Image package 'C:\Program Files (x86)\Microsoft Azure Sphere SDK\DebugTools\gdbserver.imagepackage' has been deployed to the attached device.
    Application development capability enabled.
    Successfully set up device '<device ID>' for application development, and disabled over-the-air updates.
    Command completed successfully in 00:00:38.3299276.
    

az sphere device enable-development komutu başarısız olursa yardım için bkz. Azure Sphere sorunlarını giderme.

Visual Studio Code ile üst düzey uygulamayı derleme ve çalıştırma

Bu öğreticide, Visual Studio Code için Azure Sphere Uzantısı'nın bir parçası olan Azure Sphere Yanıp Sönme şablonu kullanılmaktadır. Blink şablonu, Azure Sphere cihazının ve araçlarının yüklendiğini ve doğru ayarlandığını doğrulayabilmeniz için bir LED yanıp söner.

  1. Visual Studio Code başlayın. Komut paletiGörüntüle'yi> seçin ve "Azure Sphere: Yeni Proje Oluştur" yazın.

  2. Şablonlar menüsünden Yanıp Sönme'yi seçin.

  1. Visual Studio Code sonra bir Dosya Gezgini penceresi görüntüler. Blink uygulamasını yerleştirmek istediğiniz klasöre gidin. Visual Studio Code seçtiğiniz konumda Blink klasörünü oluşturur ve Blink uygulaması için derleme dosyalarını oluşturur. CMake'den gelen iletileri görmeniz gerekir.

  2. CMakeLists.txt dosyasını açın ve kullandığınız donanımın tanımlarını içeren klasörü belirtmek için TARGET_DIRECTORY ayarını değiştirin. Varsayılan olarak, TARGET_DIRECTORY, Seeed Azure Sphere MT3620 Geliştirme Seti ile eşleşen HardwareDefinitions/mt3620_rbd belirtir:

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "HardwareDefinitions/mt3620_rdb" TARGET_DEFINITION "template_appliance.json")
    

    Şablonla birlikte çeşitli donanım tanımları sağlanır. Örneğin, SEEED MT3620 Mini Geliştirme Panosu kullanıyorsanız bunun yerine HardwareDefinitions/seeed_mt3620_mdb belirtin.

  3. Projeyi derlemek ve hatalarını ayıklamak için F5 tuşuna basın. Proje daha önce oluşturulmamışsa veya dosyalar değişmişse ve yeniden derleme gerekiyorsa, Visual Studio Code hata ayıklama başlamadan önce projeyi oluşturur.

  4. Visual Studio Code uygulamayı derlemesi, bir görüntü paketi oluşturması, panoya dağıtması ve hata ayıklama modunda başlatması için birkaç saniye bekleyin. Bu arada Çıkış bölmesinde durum güncelleştirmelerini görürsünüz.

    İlk olarak, CMake uygulamanın derlenmesi gerekip gerekmediğini belirler. Bu durumda odak, CMake/Build çıkışını görüntüleyen çıkış bölmesine geçer.

    Ardından çıkış bölmesi, görüntü paketini cihaza dağıtırken çıkışı gösterir. Son olarak, Hata Ayıklama Konsolu odağı alır ve gdb çıkışını gösterir.

    Ipucu

    Dağıtım oluştururken ihtiyacınız olacağı için görüntü paketinizin konumunu not edin. Çıkış penceresinde "Yola> yazılan <dosyaları derleme" gibi bir ileti görmeniz gerekir; burada <yol>, Yanıp Sönen uygulamanızın derleme klasörünün tam yoludur ve genellikle "out\ARM-Debug" veya "out/ARM-Debug" ile biter.

  5. Kısa bir gecikmeden sonra LED yanıp sönme görmeniz gerekir.

  6. Main.c'de bir kesme noktası ayarlayın ve Azure Sphere için Visual Studio Code hata ayıklama özelliklerini keşfedebilmeniz için uygulamada ilerleyin.

Visual Studio ile üst düzey uygulamayı derleme ve çalıştırma

Bu öğreticide Visual Studio için Azure Sphere uzantısının bir parçası olan Azure Sphere Blink şablonu kullanılmaktadır. Blink şablonu, Azure Sphere cihazının ve araçlarının yüklendiğini ve doğru ayarlandığını doğrulayabilmeniz için bir LED yanıp söner.

  1. Visual Studio'yu yeni kullanmaya başlamanız halinde, gezinme ve kullanma hakkında bilgi edinmek için Hızlı Başlangıç veya Rehberli Tur'a göz atabilirsiniz.

  2. Visual Studio'yu açın ve Yeni proje oluştur'u seçin. azure Sphere şablonlarının listesini almak için Arama kutusuna "azure sphere" yazın. Listeden Azure Sphere Yanıp Sönme'yi seçin.

  3. Proje için bir ad ve konum girip Oluştur'u seçin.

  4. CMakeLists.txt dosyasını açın ve kullandığınız donanımın tanımlarını içeren klasörü belirtmek için TARGET_DIRECTORY ayarını değiştirin. Varsayılan olarak, TARGET_DIRECTORY, Seeed Azure Sphere MT3620 Geliştirme Seti ile eşleşen HardwareDefinitions/mt3620_rbd belirtir:

    azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "HardwareDefinitions/mt3620_rdb" TARGET_DEFINITION "template_appliance.json")
    

    Şablonla birlikte çeşitli donanım tanımları sağlanır. Örneğin, SEEED MT3620 Mini Geliştirme Panosu kullanıyorsanız bunun yerine HardwareDefinitions/seeed_mt3620_mdb belirtin.

  5. Visual Studio'da Çıktıyı Görüntüle'yi> seçerek Çıkış bölmesini görüntüleyin.

  6. Cihazınızın USB ile bilgisayarınıza bağlı olduğundan emin olun. Başlangıç öğesini ayarla menüsünde F5 tuşuna basın veya Azure Sphere Uygulaması (HLCore)* öğesini seçin. Burada Azure Sphere Uygulaması, geçerli üst düzey uygulamanızın adıdır.

  7. Projeyi oluşturmanız istenirse Evet'i seçin. Visual Studio uygulamayı derler, bir görüntü paketi oluşturur, panoya dışarıdan yükler ve hata ayıklama modunda başlatır. Dışarıdan yükleme , uygulamanın bulut üzerinden değil kablolu bir bağlantı üzerinden doğrudan bilgisayardan teslim olduğu anlamına gelir.

    Ipucu

    Dağıtım oluştururken ihtiyacınız olacağı için görüntü paketinizin konumunu not edin. ÇıkışGösterme çıkışını görüntüle>: Derleme içindeki çıkışta "Çıkış> dosyası şu konumda: <yol>" gibi bir ileti görmeniz gerekir. Burada <yol>, Yanıp Sönen uygulamanızın derleme klasörünün tam yoludur ve genellikle "out/ARM-Debug" ile biter.

  8. Varsayılan olarak , Çıkış bölmesi Cihaz Çıkışı'ndan gelen çıkışı gösterir. Hata ayıklayıcıdan gelen iletileri görmek için Çıkışı göster: açılan menüsünden Hata Ayıkla'yı seçin. AyrıcaWindows menüsünden program ayrıştırma, yazmaçlar veya belleği > de inceleyebilirsiniz.

  9. Programı çalıştırdığınızda LED yanıp sönme görüyor olmalısınız.

Örnek uygulamayı indirme

HelloWorld uygulamasını aşağıdaki gibi indirebilirsiniz:

  1. Tarayıcınızı Microsoft Samples Browser'ın üzerine gelin.
  2. Arama kutusuna "Azure Sphere" yazın.
  3. Arama sonuçlarından Azure Sphere - Merhaba Dünya'ı seçin.
  4. ZIP'i İndir'i seçin.
  5. İndirilen dosyayı açın ve yerel bir dizine ayıklayın.

Örneği oluşturma

HelloWorld_HighLevelApp örnek uygulaması için derleme ve .imagepackage dosyalarını oluşturmak için aşağıdaki adımları izleyin.

  1. Gerekirse, donanımınızı hedeflemek için örneği güncelleştirin. Varsayılan olarak, örnekler Seeed Studios'un MT3620 Geliştirme Seti gibi MT3620 başvuru panosu tasarımını (RDB) izleyen donanımı hedefler. Örnek uygulamalar için ek hedef donanım tanımları, Azure Sphere Örnekleri deposunun HardwareDefinitions dizininde kullanılabilir. Örneğin, Avnet MT3620 Başlangıç Seti için donanım tanım dosyaları HardwareDefinitions/avnet_mt3620_sk alt dizininde yer alır.

    • CMakeLists.txt açın ve azure_target_hardware_definition işlevindeki TARGET_DIRECTORY parametresini donanımınızın alt dizinine işaret etmek üzere güncelleştirin. Örneğin:

      azsphere_target_hardware_definition(${PROJECT_NAME} TARGET_DIRECTORY "../../../HardwareDefinitions/avnet_mt3620_sk" TARGET_DEFINITION "sample_appliance.json")
      
  2. PowerShell, Windows Komut İstemi veya Linux komut kabuğunu kullanarak bir komut satırı arabirimi açın. Proje derleme dizininize gidin.

  3. Proje derleme dizininizden komut isteminde CMake'i aşağıdaki parametrelerle çalıştırın:

    cmake --preset <preset-name> <source-path>
    
    • --preset <preset-name>

      CMakePresets.json'de tanımlanan derleme yapılandırması önayar adı.

    • --build <cmake-path>

      CMake önbelleğini içeren ikili dizin. Örneğin, CMake'i bir Azure Sphere örneğinde çalıştırırsanız derleme komutu olacaktır cmake --build out/ARM-Debug.

    • <source-path>

      Örnek uygulamanın kaynak dosyalarını içeren dizinin yolu. Örnekte Azure Sphere örnek deposu AzSphere adlı bir dizine indirildi.

      CMake parametreleri boşluklarla ayrılır. Satır devamlılığı karakteri (Windows komut satırı için^, Linux komut satırı için \ veya PowerShell için ' ) okunabilirlik için kullanılabilir, ancak gerekli değildir.

    Aşağıdaki örneklerde Merhaba Dünya üst düzey uygulama için CMake komutları gösterilir:

    Windows Komut İstemi

     cmake ^
     --preset "ARM-Debug" ^
     "C:\AzSphere\azure-sphere-samples\Samples\HelloWorld\HelloWorld_HighLevelApp"
    

    Windows PowerShell

     cmake `
     --preset "ARM-Debug" `
     "C:\AzSphere\azure-sphere-samples\Samples\HelloWorld\HelloWorld_HighLevelApp"
    
  4. Uygulamayı derlemek ve görüntü paketi dosyasını oluşturmak için Ninja'yi çalıştırın:

    ninja -C out/ARM-Debug
    

    Ninja, sonuçta elde edilen uygulamayı ve .imagepackage dosyalarını belirtilen dizine yerleştirir.

    Aşağıdaki komutla CMake aracılığıyla Ninja'ya da çağrı yapabilirsiniz:

    cmake --build out/<binary-dir>
    

    CMake önbelleğini içeren ikili dizine ayarlayın <binary-dir> . Örneğin, CMake'i bir Azure Sphere örneğinde çalıştırırsanız derleme komutu olacaktır cmake --build out/ARM-Debug.

    Sorun giderme sırasında, özellikle CMake komutlarınızda herhangi bir değişiklik yaptıktan sonra derlemenizin tamamını silin ve yeniden deneyin.

Örneği çalıştırma

  1. Cihazınız zaten bir uygulama çalıştırıyorsa uygulamayı silin:

    az sphere device sideload delete
    
  2. Daha önce oluşturulan derleme ve .imagepackage dosyalarını içeren dizine geçin.

  3. az sphere device sideload deploy komutunu çalıştırıp görüntü paketini belirterek görüntü paketini cihazınıza yükleyin. Örneğin:

    az sphere device sideload deploy --image-package HelloWorld_HighLevelApp.imagepackage
    

    Bu komut görüntü paketini yükler ve uygulamayı başlatır. LED yanıp sönme görüyor olmalısınız.

    Ipucu

    Görüntü paketinin yolunu not edin. Görüntü paketini Daha sonra Dağıtım Hızlı Başlangıcı'nda kullanacaksınız.

Örnekte hata ayıklama

  1. Daha önce oluşturulan derleme ve .imagepackage dosyalarını içeren dizine geçin.

  2. Henüz sahip değilseniz bileşen kimliğini alın:

    az sphere image-package show --image-package HelloWorld_HighLevelApp.imagepackage
    
  3. Uygulama çalışıyorsa, uygulamayı durdurun ve ardından şu seçenekle --debug-mode yeniden başlatın:

    az sphere device app stop --component-id <ComponentId>
    
    az sphere device app start --debug-mode --component-id <ComponentId>
    

    Şunu görmeniz gerekir:

     ...
       "Identity": {
         "ComponentId": "<component-id>",
         "ImageId": "<image-id>",
         "ImageType": "Application"
       },
     ...
    
  4. İşlemden çıkış akışını okumak için bir Telnet veya ham TCP bağlantısı kurmak için bir terminal istemcisi kullanın. IP adresi olarak 192.168.35.2 ve bağlantı noktası olarak 2342 belirtin.

  5. PowerShell'i veya Windows'da standart bir komut istemini veya Linux'ta komut kabuğunu kullanarak bir komut satırı arabirimi açın ve derlemenizdeki .out uygulama ikili dosyasını parametre olarak geçirin. Bu, tam kaynak kodu hata ayıklamasını etkinleştirir.

    Windows Komut İstemi

    "C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\*sysroot*\tools\gcc\arm-poky-linux-musleabi-gdb" HelloWorld_HighLevelApp.out
    

    Windows PowerShell

    & "C:\Program Files (x86)\Microsoft Azure Sphere SDK\Sysroots\*sysroot*\tools\gcc\arm-poky-linux-musleabi-gdb" HelloWorld_HighLevelApp.out
    

Not

Azure Sphere SDK'sı, uygulamaların Uygulama çalışma zamanı sürümü, sysroot'lar ve Beta API'lerinde açıklandığı gibi farklı API kümelerini hedefleyebilmesi için birden çok sysroot ile birlikte gönderilir. Sysroots, Sysroots altındaki Azure Sphere SDK yükleme klasörüne yüklenir.

  1. Uzaktan hata ayıklama hedefini 2345 numaralı bağlantı noktasında 192.168.35.2 IP adresine ayarlayın:

    target remote 192.168.35.2:2345

  2. Seçtiğiniz diğer tüm gdb komutlarını çalıştırın. Örneğin, aşağıdaki komutlar main() girişinde bir kesme noktası ayarlar ve kesme noktasından sonra yürütmeye sırasıyla devam eder.

    break main
    
    c
    

    gdb ile hata ayıklama hakkında daha fazla bilgi için bkz. GDB: GNU Proje Hata Ayıklayıcısı veya konuyla ilgili diğer sayısız kaynaklardan biri.

Sonraki adımlar

Azure Sphere cihazınızda çalıştırılacak üst düzey bir uygulama oluşturdunuz. Şimdi değiştirmek isteyebilirsiniz. Donanım tanımları , bir donanım tanımı JSON dosyasını düzenlemeyi ve ilişkili üst bilgi dosyasını yeniden oluşturmayı açıklar.

Ardından, üst düzey uygulamanızı buluttan dağıtmayı öğrenin.

Ayrıca bkz.

İlham verici, etkilenmemiş ve yeniden kullanılabilir Azure Sphere betikleri, yardımcı programları ve işlevler koleksiyonu olan Azure Sphere Galerisi'ni ziyaret edin.