EchoByte
Hectopat
Daha fazla
- Sistem Özellikleri
- intel i5 12500H
RTX 3050 Ti
8 GB 3200 Mhz DDR4 RAM
500 GB M.2 SSD
- Cinsiyet
- Erkek
Merhaba iyi sosyaller. Başlıkta gördüğünüz gibi ESP 32'ye bağladığım SD kartı swap alanı olarak kullanmak istiyorum. Ancak ESP 32'de günümüz bilgisayarlarındaki gibi bir Memory Managment Unit (MMU) olmadığı için bu işlemi yapacak bir fonksiyon yok. Aklıma sanal bir MMU kodu yazmak geldi, ama baya bir araştırma yapmam gerekecek. Bende bu yüzden belleği pagelere bölmeye karar verdim. Bu yöntemde en son kullanılan page SD card a yüklenir. Bir ara katman ise bu değişkenler talep edildiğinde bu değişkenin bulunduğu page'i RAM'e tekrardan yazar. Ama RAM'e manuel yazmayı çözemedim. Zaten çözsem beni ara katman zorlayacak. Çünkü her değişken okumasında bu değişkenin bellekte mı yoksa swap partta mı olduğunu kontrol edecek bir ara katmana ihtiyacım var. Esp32 zaten iki çekirdekli birinde bu pageleme sistemini birinde ana işlemimi çalıştırabilirim diye düşündüm ama ara katmanı nasıl yazacağımı çözemedim...
Soru x-y problemine dönmesin diye minik bir özet
:
Sorun: ESP 32'de SD card ı swap alanı olarak kullanma özelliğinin olmaması
Çözümler:
1. ESP 32 için sanal bir MMU yazılır ise sorun çözülebilir.
2. RAM'i parçalara böleriz. Kullanılmayan parçayı sdcarda yükleyip gerektiğinde çekeriz. -> Bunu gerçekleştirmek için değişken erişme isteklerini sürekli gözden geçirmemiz gerek.
3. Bu yöntemi nasıl yapacağımız hakkında bir fikrim yok. Sadece aklıma geldi. SD cardı raw formatında biçimlendirerek RAM gibi adreslesek, ve bu adresleri de RAM'in devamı olarak işlesek? Bu yapı araştırmalarıma göre ESP 32 nin işlemci mimarisine aykırı. Ancak yine de paylaşmak istedim.
Bu sorun için başka çözüm yolları varsa yazabilirsiniz. Ayrıca yazdığım çözüm yolları hakkında yazılımsal destekte bulunabilirseniz çok sevinirim.
Teşekkür ederim.
Soru x-y problemine dönmesin diye minik bir özet

Sorun: ESP 32'de SD card ı swap alanı olarak kullanma özelliğinin olmaması
Çözümler:
1. ESP 32 için sanal bir MMU yazılır ise sorun çözülebilir.
2. RAM'i parçalara böleriz. Kullanılmayan parçayı sdcarda yükleyip gerektiğinde çekeriz. -> Bunu gerçekleştirmek için değişken erişme isteklerini sürekli gözden geçirmemiz gerek.
3. Bu yöntemi nasıl yapacağımız hakkında bir fikrim yok. Sadece aklıma geldi. SD cardı raw formatında biçimlendirerek RAM gibi adreslesek, ve bu adresleri de RAM'in devamı olarak işlesek? Bu yapı araştırmalarıma göre ESP 32 nin işlemci mimarisine aykırı. Ancak yine de paylaşmak istedim.
Bu sorun için başka çözüm yolları varsa yazabilirsiniz. Ayrıca yazdığım çözüm yolları hakkında yazılımsal destekte bulunabilirseniz çok sevinirim.
Teşekkür ederim.
Son düzenleme: