Atmega328P Koruma Kilit Bitleri, Lock Bits

Sadece prototip oluşturmak için kullandıktan sonra açık kaynaklı bir platform olsa da kodlarınızı korumak isteyebilirsiniz. Bunun için biraz araştırma yaptım. Nedense kimse bu konuyu hobi olarak ilgilenenlere anlatmamış. Gömülü sistem tasarım isimli blogun yazarı Sigorta ve Osilatör seçenekleri  konusunda sigorta ayarlarını çok güzel anlatmış ama Koruma için yapılması gerekenlere değinmemiş.
Datasheet sayfa 347 de bilgilere ulaşabilirsiniz. Ben kısaca olayı anlatacağım.
öncelikle bir usbasp resimde gördüğünüz gibi ucuzlarından bir programlayıcı almanız gerekli.


https://www.fischl.de/usbasp/ Bu adresten gerekeli bilgi, program ve sürücüleri alabilirsiniz. Windows 10 ile sorun yaşayacaksınız. Sürücülerin imza denetimini kaldırmanız gerekiyor. Bununla ilgili biraz araştırma yaparak bilgi alabilirsiniz.



WinAvr ve Khazama gibi bir kaç program denedim Khazama atmega328p lock bits desteklemiyor ve komut istemiyle işlem yapmak sıkıcı geliyorsa Progisp 1.7 işinizi görecektir. Arduino ya da Atmega mikro denetleyicinizin ilgili pinlerine bağlantınızı yaptıktan sonra programı çalıştırın.




Ben programın tüm detaylarını anlatmayacağım bağlantıları yapın programı çalıştırın. Resimde gördüğünüz kırmızı kutu içindeki düğmelerden birine basın.





Karşınıza yeni bir pencere çıkacak buradan lock  bits seçeneklerini değiştirip istediğiniz ayarı yapın.



Resimde gördüğünüz Atmega328p kullanan Arduino kartların ayarlı halidir. BLB11-12 bootloader koruma bitleri. BLB01-02 uygulama bölümünün koruma bitleridir. programlarsanız ("0 "yaparsanız) karta- mikro denetleyiciye program yükleyemezsiniz. Ben kabaca söylüyorum detaylar Datasheette mevcut.
Resimdeki gibi LB1 ve LB2 yi "0" yaparsanız programın okunma şansı kalmaz. Okunur fakat boş bir hex dosyası gelir.
 Elbette yöntemleri vardır. Yazılan programın aynısını hatta daha iyisini yazmak mümkün, burada amaç alıp kopyalamayı önlemek.




6 yorum:

  1. Teşekkür ederim ellerin dert girmesin

    YanıtlaSil
  2. Ellerinizi sağlık. Dediğiniz gibi ben de bu bilgileri bulmakta zorlandım. Sizinki çok kısa ve net olmuş. Teşekkürler. Bundan önceki denememde bir adet nano yu uçurdum. Sanırım paralel programlayıcı ile bile zor döner. Bootloader kısmında değişiklik yapmak gerecek mi? Çünkü arduino ide den bootloadersuz .hex dosyasını flash yapıyorum. Reset vektorunu de değiştirmek gerekir mi sizce?

    YanıtlaSil
    Yanıtlar
    1. Yorumunuzu geç gördüm, Ben de bootloader kullanmıyorum bu yüzden değişiklik yapmadım. Siz zaten cevabı bulmuşsunuz.

      Sil
  3. Deneyerek gördüm. Bootloader yoksa bile Reset vektörüne ulaşıyor. Sorunsuz çalışıyor

    YanıtlaSil
  4. Emeginize sağlık.Atmega 2560 için de aynı işlemleri mi uyguluyoruz.

    YanıtlaSil
    Yanıtlar
    1. Teşekkür ederim, 2560 içinde aynı ayarlar geçerli.

      Sil