|
Konu Başlığı: Arduino-Atmel AVR-Bootloader Hakkında Gönderen: malik üzerinde Ocak 10, 2019, 12:58:44 ÖS Bootloader olayını biraz araştırayım dedim bişe anlamadım.
Hep bootloader'in nasıl yüklendiği anlatılıyor. Üzümünü Ye Bağını Sorma gibisinden. Arduino aslında nedir ? AVR Hafıza yapısı nasıl, hangi adreste ne başlıyor ? (C64 Memory Map gibi düiünün) AVR'yi probramlayıcıları zaten programlıyor, bootloader'a ne gerek var olmadan programlanamazmı ? Bootloader nereye yazılıyor amacı ne ? Gibi soruları konuya hakim bir arkadaş açıklayabilirmi ? Ayrıntılı olmasına gerek yok. Biraz zahmet olacak ama, bu konuda benim gibi acemi olan arkadaşlar için çok yararlı olacak. Şimdiden teşekkür ederim. Konu Başlığı: Ynt: Arduino-Atmel AVR-Bootloader Hakkında Gönderen: i_r_on üzerinde Ocak 10, 2019, 13:20:01 ÖS Arduino aslında nedir ? Arduino modüler bir geliştirme kartıdır. Değişik geliştirme kartlarında da genelde Atmel üretimi mikrokontrolcüler olmak üzere aynı yahut farklı mikrokontrolcüler kullanır. (Örn. Arduino uno üstünde Atmega328 gibi) AVR Hafıza yapısı nasıl, hangi adreste ne başlıyor ? (C64 Memory Map gibi düiünün) Atmel'in 8-bit mimarisinin adı dediğin gibi AVR, Uno'nun kullandığı Atmega328 de örn. aynı tanıma giriyor. Hafıza yapısı C64'e benziyor, memory mapped (belleğe map edilmiş) io kullanır bu mikrokontrolcüler. Ancak çok belirgin bir fark var, bizim alışık olduğumuz çoğu işlemci Von Neumann mimarisi kullanırken PIC / AVR de Harward mimarisi kullanılır. Yani ; Kodun saklandığı bellek ile, çalışma belleğine (RAM) ayrı veriyolları ile erişilir. Rom/Flash'a sakladığın bir bilgiyi kullanabilmek için önce Ram'e aktarman gerekir. Ram'de kod çalıştırmak gibi bir mevhum yoktur (Self modifying code diye bir şey yok yani) Flash / Ram'in bellekte map'lendiği ana aralık ise aynı, belirli bank'larda IO, belirli banklarda Flash belirli banklarda da Ram'e erişilir. Nerede ne var görmek için her bir çipin datasheet'ine bakmalısın. Atmega328 için : http://www.alldatasheet.com/datasheet-pdf/pdf/392243/ATMEL/ATMEGA328.html (http://www.alldatasheet.com/datasheet-pdf/pdf/392243/ATMEL/ATMEGA328.html) AVR'yi probramlayıcıları zaten programlıyor, bootloader'a ne gerek var olmadan programlanamazmı ? Bootloader nereye yazılıyor amacı ne ? Bootloader olmadan programlanır. Bunun için ICSP programlaması yahut high voltage programming kullanılabiliyor. İlkini bir arduino ile yapabilirsin, ikincisi için de destekleyen eprom programcısı veya benzeri bir şey lazım. Bootloader'ın bir sürü amacı var, 1. Senin de bahsettiğin, alternatif yöntemlerle (seri programlama mesela) programlamayı kolaylaştırma. 2. 1 no'nun yan getirisi olarak esas uygulamayı daha zor olan programlama seçeneklerine gerek kalmaksızın tekrar tekrar programlamaya imkan vermesi. (Bootloader ile beraber yahut sadece uygulama flash'ını programlayabiliyorsun) 3. Mikrokontrolcünün güvenliğini sağlama (bazı part'larda bootloader'a yönelik daha esnek programlama/koruma seçenekleri söz konusu) Konu Başlığı: Ynt: Arduino-Atmel AVR-Bootloader Hakkında Gönderen: malik üzerinde Ocak 10, 2019, 18:19:28 ÖS Teşekkürler iron.
Konu Başlığı: Ynt: Arduino-Atmel AVR-Bootloader Hakkında Gönderen: amenofis üzerinde Ocak 24, 2019, 17:18:53 ÖS Bir ara assembly ile bootloader yazmıştım. Atmel işlemcilerde bootloader flash hafızanın en sonuna yazılır. Bir fuse biti programlanarak resetten sonra bootloader kısmından başlaması sağlanır. Bootloader SPM ve LPM komutlarını kullanarak flash hafızaya yazar. Bootloader flash'ın en sonuna konumlandığı için üzerine yazıp bozma gibi bir durum olmaz çünkü kendisi en baştan yazmaya başlar.
|