İçindekiler:
- Gereçler
- Adım 1: Keil UVision IDE'yi açın
- 2. Adım: Cihazı Seçin
- 3. Adım: Çalışma Zamanı Ortamını Yönetin
- Adım 4: FreeRTOS'u Proje Klasörünüze Kopyalayın
- Adım 5: FreeRTOS Dosyalarını Projeye Ekleyin
- Adım 6: FreeRTOS Başlık Dosyalarının Yolunu Yapılandırın
- Adım 7: "FreeRTOSConfig.h" Dosyasını Projeye Ekleyin
- Adım 8: "main.c" Dosyasını Temel Şablonla Ekleyin
- Adım 9: STM32F407 Keşif Kitinizi PC/Dizüstü Bilgisayarınıza Bağlayın
- Adım 10: Derleyici Yapılandırmasında ST-Link Hata Ayıklayıcı'yı seçin
- Adım 11: ST-Link Hata Ayıklayıcısını Yapılandırın
- Adım 12: Kodu Oluşturun ve Yükleyin
- Adım 13: Hata Ayıklama Penceresine Git ve Seri Monitörü Aç
- Adım 14: Hata Ayıklama Printf Penceresinde Çıktıyı Görmek İçin Kodu Çalıştırın
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
Gömülü projeniz için Gerçek Zamanlı İşletim Sistemi olarak FreeRTOS'u seçmek harika bir seçimdir. FreeRTOS gerçekten ücretsizdir ve birçok basit ve etkili RTOS özelliği sunar. Ancak freeRTOS'u sıfırdan kurmak zor olabilir veya Mikrodenetleyiciye özel dosyalar eklemek, başlık dosyası yollarını ayarlamak vb. gibi bazı özelleştirmeler gerektirdiğinden biraz kafa karıştırıcı diyebilirim. Bu Eğitilebilir Kitapta, FreeRTOS'u nasıl kuracağınız konusunda size rehberlik edeceğim. Kiel uVision IDE kullanarak STM32F407 Discovery kitinizi ayrıntılı olarak görüntüleyin.
Gereçler
- FreeRTOS hakkında daha fazla bilgiyi freertos.org'da bulabilirsiniz.
- FreeRTOS indirme kılavuzu RTOS Kaynak Kodu İndirme Talimatları
- STM32F407 Discovery Kit ile ilgili tüm ayrıntılar STM32F407 Discovery Kit ile Başlarken
- STM32F407 Keşif Kitinde Github Deposu FreeRTOS
Adım 1: Keil UVision IDE'yi açın
Keil uVision IDE'yi açın. Bir projeye tıklayın, Yeni uVision Projesi'ni seçin… Ardından çalışma dizininizi seçin ve tercih ettiğiniz proje adını verin.
2. Adım: Cihazı Seçin
Projeye isim verdikten sonraki adımda cihaz eklemeniz gerekiyor. Burada STMicroelectronics'ten STM32F407VG Micronconroller ekliyoruz. STM32F407VG'yi seçin, ardından Tamam'a tıklayın.
3. Adım: Çalışma Zamanı Ortamını Yönetin
Sonraki adım, Çalışma Zamanı Ortamını Yönet sekmesinde kitaplık/sürücü bileşenini seçmektir. Burada yukarıdaki resimde gösterildiği gibi tüm bileşenleri seçin. Tüm uygun alanları kontrol ettikten sonra Çöz'e ve ardından Tamam'a tıklayın.
Adım 4: FreeRTOS'u Proje Klasörünüze Kopyalayın
Şimdi tüm FreeRTOS klasörünü proje klasörünüze kopyalamanız gerekiyor.
Adım 5: FreeRTOS Dosyalarını Projeye Ekleyin
FreeRTOS klasörünü proje klasörünüze kopyaladıktan sonra, gerekli tüm FreeRTOS dosyalarını Projenize eklemeniz gerekir.
- Keil'de Hedef Seç1'de sağ tıklayın ve ardından Yeni grup ekle'yi seçin. Bu grubu FreeRTOS olarak yeniden adlandırın.
- Şimdi FreeRTOS grubuna tıklayın, "FreeRTOS…" Grubuna Mevcut Dosyaları Ekle'yi seçin.
- Yukarıdaki resimde gösterildiği gibi tüm FreeRTOS dosyalarını ekleyin.
Bu dosyaları FreeRTOS klasöründe bulmanın yolu:
- Dosyalar: krutin, olay_grupları, liste, sıra, akış_buffer, görevler ve zamanlayıcılar. Yol: (….\FreeRTOSv10.2.1\FreeRTOS\Source)
- Dosyalar: heap_4 (Herkesi ekleyen 4 bellek yönetim dosyası vardır). Yol: (….\FreeRTOSv10.2.1\FreeRTOS\Source\portable\MemMang)
- Dosyalar: port.c (Bu, MCU'ya özel bir dosyadır). Yol: (…\FreeRTOSv10.2.1\FreeRTOS\Source\portable\RVDS\ARM_CM4F)
Not: FreeRTOS sürümü değişebilir. Sadece mevcut en son sürümü kullanın.
Adım 6: FreeRTOS Başlık Dosyalarının Yolunu Yapılandırın
FreeRTOS kaynak dosyalarını ekledikten sonra, derleyiciye ilgili başlık dosyalarının nerede olduğunu söylemeniz gerekir. Bu nedenle derleyici seçeneğini yapılandırmamız gerekiyor.
Hedef "Target1.." için Target1 Seçeneğine sağ tıklayın C/C++ Yolu dahil et. Bu yolları eklediğinizden emin olun:
- Klasörü FreeRTOS'a dahil et (…\FreeRTOSv10.2.1\FreeRTOS\Source\include)
- RVDS dizini (…\FreeRTOSv10.2.1\FreeRTOS\Source\portable\RVDS\ARM_CM4F)
Not: Herhangi bir başlık dosyanız varsa, bu başlık dosyalarının yolunu yukarıda açıklandığı gibi eklediğinizden emin olun.
Adım 7: "FreeRTOSConfig.h" Dosyasını Projeye Ekleyin
FreeRTOS, FreeRTOSConfig.h adlı önemli bir başlık dosyasına sahiptir. Bu dosya, uygulamaya özel (bizim durumumuzda Cortex M4F MCU'ya özel) özelleştirmeyi içerir. Basit olması için MCU'ya özel FreeRTOSConfig.h dosyamızı RVDS dizinine kopyaladım. Ayrıca 6. adımda, RVDS yolunu zaten ekledik. Kendiniz ekliyorsanız, bu dosyayı projenize eklemeniz ve 6. adımda açıklandığı gibi bu dosyanın yolunu da eklediğinizden emin olmanız gerekir.
FreeRTOSConfig.h dosyasını tercih ettiğiniz dizine kendiniz eklemek isterseniz, bu dosyayı aşağıya ekledim.
Daha fazla bilgi için buraya tıklayın FreeRTOSConfig.h
Adım 8: "main.c" Dosyasını Temel Şablonla Ekleyin
- Şimdi Yeni Bir Kullanıcı grubu oluşturun ("Kullanıcı uygulaması" olarak yeniden adlandırdım).
- Bu Gruba yeni bir C dosyası ekleyin(main.c adında bir dosya ekledim).
- Bu, main() işlevinin bulunduğu dosyadır. Projenin başarılı bir şekilde derlenmesi için gerekli minimum tüm fonksiyonları ve başlıkları bu dosyaya ekledim.
main.c dosyasını temel şablonla aşağıda bulabilirsiniz.
Adım 9: STM32F407 Keşif Kitinizi PC/Dizüstü Bilgisayarınıza Bağlayın
Adım 10: Derleyici Yapılandırmasında ST-Link Hata Ayıklayıcı'yı seçin
Target1'e sağ tıklayın, ardından "Target1.." Hedefi için Seçenek'e tıklayın, ardından Hata Ayıklama Sekmesine gidin ve yukarıdaki resimde gösterildiği gibi ST-Link-Debugger'ı seçin
Adım 11: ST-Link Hata Ayıklayıcısını Yapılandırın
Adım 10'da ST-Link Hata Ayıklayıcı'yı seçtikten sonra, Ayarlar'a tıklayın ve ardından İz'i seçin ve yukarıdaki resimde gösterildiği gibi tüm alanları kontrol edin.
Adım 12: Kodu Oluşturun ve Yükleyin
Tüm adımları tamamladıktan sonra projeyi oluşturun ve kodda hata olmadığından emin olun. Başarılı derlemeden sonra kodu Discovery Kit'inize yükleyin.
Adım 13: Hata Ayıklama Penceresine Git ve Seri Monitörü Aç
Yüklemeden sonra, yukarıdaki resimde gösterildiği gibi windowviewSerial WindowsDebug(printf) Viewer'da hata ayıklamaya gidin.
Adım 14: Hata Ayıklama Printf Penceresinde Çıktıyı Görmek İçin Kodu Çalıştırın
Son adım, printf penceresinde çıktıyı görmek için kodu resimde gösterildiği gibi çalıştırmaktır. Burada main.c'de, görev1 ve görev2 adlı 2 basit görevi uyguladım. Her iki görev de aynı önceliğe sahiptir ve yalnızca görevin adını yazdırırlar. Aynı öncelikler nedeniyle, her ikisinin de çalıştığını ve adı yazdırdığını görebilirsiniz.