Raspberry Pi Pico Multi Core Kullanım

Merhaba Arkadaşlar;

Bu yazımda sizlere Pico yu nasıl multi core kullanacağımızı anlatacağım.

Bildiğiniz gibi Pico da 2 core bulunmaktadır. Biz aslında Core0 ı kullanıyoruz, diğer core1 uyku modunda çalışmaktadır. Çok karmaşık projelerinizde bazı işler diğer core a aktarılabilir. Örnek olarak Core0 sistemi yönetirken, Core1 ise sensörleri okur.

Çoğu uygulamalarda 2 core arasında data aktarımı ihtiyacı olacaktır. RP2040 da çekirdeklerden erişilebilen iki FIFO tamponu vardır. Biri FIFO tamponu ilk giren ilk çıkar arabelleğidir, basitçe arabelleğe yazılan ilk verinin okunan ilk veri olduğu anlamına gelir. Tamponlardan birine yalnızca bir çekirdek tarafından push adı verilen bir işlemle yazılabilir ve diğer çekirdek tarafından pop adı verilen bir işlemle okunabilir. Hiçbir çekirdeğin birden fazla arabelleğe yazamadığını veya okuyamadığını görebilirsiniz.

Veriler çekirdeklerden biri tarafından tampona yazıldığında, diğer çekirdekte bir kesinti oluşur.

Şimdi bir örnekle devam edelim, işlemci üzerindeki sıcaklık sensörünü core0 ile okuyup, core1 de print ile terminale yazdıracağız.

Temel olarak 3 fonksiyona ihtiyacımız var.

Core 0 da led ve ADC ayarlarını yaptıktan sonra diğer core u çalıştırıyoruz ve 500ms aralıklarla okuyup core1 e ham adc datayı gönderiyoruz.

Daha sonra core1 de çalışacak kodu oluşturuyoruz ve core1 kesmesini ayarlıyoruz.

Son olarak kesme fonksiyonunda ham adc yi alıp hesapladıktan sonra terminale yazdırıyoruz.

Programın son hali aşağıdaki gibidir.

Şimdi programı derleyip çalıştırdığımızda core0 adc yi okuyup ledi toggle yapacaktır, diğer core ise ham adc değerini hesaplayıp terminale yazdıracaktır.

VSC projesini indirmek için tıklayın multi_core

Bir sonraki projede görüşmek üzere,
Kolay Gelsin.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.