2014-09-14 33 views
5

kullanarak SD üzerinde ikili veri yazmak ve ben ısrarla bazı verileri kaydetmek muktedir istiyorum. Ben zaten bir MicroSD okuyucuya sahip bir Ethernet kalkanı kullanıyorum.Okuma/Bir Arduino ile bir proje üzerinde çalışıyorum Arduino

ben saklıyorum veri inanılmaz küçük olacaktır. Şu anda, bir seferde sadece 3 bayt tasarruf ediyorum. Gerçekten sevdiğim şey, SD kartını x baytından başlayarak yazmanın bir yolu açmak ve daha sonra y bayt veri yazmaktır. Geri okumak istediğimde, x baytından başlayan y baytları okudum.

Ancak, gördüğüm tüm kod gereksiz yük gibi görünen bir dosya sistemi, çalışmayı gerektirir. Başka bir sistemde okunabilmesi için bu verilere ihtiyacım yok, depolama alanı bir sorun değil ve kartta endişelenecek başka bir veri yok. Bir SD karta doğrudan ikili veri yazmanın bir yolu var mı?

+0

Ödeme http://www.roland-riegel.de/sd-reader//yazma rutinleri okuyun. SSS bölümü, bazı değişiklikler ile Arduino için kullanmak mümkün olduğunu söylüyor. – kums

cevap

5

Bir SD karta ham ikili veri yazmak mümkündür. Çoğu insan bunu, SD kart tarafından desteklenen 4 iğneli SPI arayüzünü kullanarak yapar. Ne yazık ki, veriler bayt adreslenmemiş, ancak blok adresli değildir (blok boyutu genellikle 512 bayttır).

Bu, bayt 516'da 4 bayt yazmak istediyseniz, 0x00000001 (ikinci blok) bloğunu okumalı ve ardından bir ofset hesaplamalı, verilerinizi yazmalı ve bloğun tamamını geri yazmalısınız. (Bu sınırlamanın, daha fazla iğne kullanarak SD arayüzünde geçerli olduğunu söyleyemem, onunla ilgili deneyimim yok)

Bu karmaşıklık, pek çok kişinin "gereksiz genel gider" içeren kitaplıkları kullanmayı tercih etmesinin nedeni. Bunun üzerine

Ben elektrik kesintileri karşısında sağlam oldu günlüğü verilerinin bir yol gerekli çünkü geçmişte bunu yapmak zorunda kalmıştım dedi.

http://elm-chan.org/docs/mmc/mmc_e.html

Muhtemelen daha kolay senin küçük bir bellek tampon yazar olmak için bulacaksınız ve verilerin yeterince büyük bir miktarda olduğunda SD karta dökümü: Ben çok yararlı aşağıdaki kaynağı bulundu bunu değerli kılmak.

Etrafına bak, doğrudan faydalanmak için SD SPI arayüzü ile uğraşan açık kaynak kod bol bulmak veya kendi sistemi uygulamak referans olarak edeceğiz. Ham SD kart için

+0

Merhaba, sd kartında bulunan toplam blok sayısını nasıl bulacağımı söyleyebilir misiniz? – Sagar

+0

Bu değeri CSD kaydından alabilirsiniz. – user373884