PIC Flash Program Hafızasına Yazma/Silme/Okuma İşlemleri Uygulama Notu

Başlatan Brsmnc, 16 Ekim 2010, 13:03:22

Brsmnc

Merhaba,

çalışma zamanı esnasında PIC mikrodenetleyicilerin program hafızasına nasıl veri yazıp kullanabileceğinizi gösteren bir uygulama notu yazdım. Bazı kişilerin kullandığı mikrodenetleyicinin RAM hafızasının yetersiz gelmesi sonucu sistemi dağıtarak farklı mikrodenetleyicilere geçtiğini gördüm. Bu kadar zahmete girmek yerine RAM hafızada sakladığınız değişmeyen veya nadir olarak kullanılan static verileri flash hafızaya atarak flash'a göre çok daha düşük olan RAM den kazanç sağlayabilirsiniz. Uygulama notumdaki gibi sistem değiştirmek yerine küçük bir yazılım takviyesi ile ağır bir yükten kurtulabilirsiniz.

Bu uygulama notunda anlattıklarım ile aşağıdaki gibi birden fazla amaç gerçekleştirilebilir.

  • Çalışma esnasında Flash hafızayı RAM gibi kullanabilirsiniz.
  • Çipi resetlediğinizde yada kapatıp açtığınızda verileriniz silinmediği için tekrar okunabilir olur.
  • Çip programlandıktan sonra çalışma esnasında program hafızaya program ekleyip işlemcinin akışını programı yüklediğiniz adrese verirseniz dinamik olarak yüklemiş olduğunuz program çalışır. (Bootloader tarzı uygulamalarınız için)

Merak edenler aşağıdaki linkten ulaşabilirler.
http://www.barissamanci.net/Makale/22/pic-flash-program-hafizasina-yazma-silme-okuma-islemleri/
İyi çalışmalar.

X-Fi

hocam tamda pic18F46j11 için böyle bir uygulama yapmak üzereydim çok teşekkürler.

ben bootloader yapacağım önce veriyi rf yoluyla alıp 24C64 e yazıp checksum kontrolünden sonra flasha geçirmeyi düşünüyorum bakalım nasıl olacak daha başlamadım sizdende fikir alabilirim.
http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)

Brsmnc

Microchip forumlarında ethernet bootloader ile uğraşanlar vardı. Forumlarında aratırsan yol gösterici birşeyler bulabileceğini düşünüyorum. Kolay gelsin.

dragster_omer

Hocam ben 16f84 un içeriğini silmek istiyorum asm kodlarını kullaniyorum bu konuda yardimci olabilirmisiniz acaba bana.  Bi devre yaptim gayet guzel çalıştı zaman gecikmesini arttirmak için yeniden programladim sadece call bekle komutu ekledim pici program üzerinden sildim aygiti kontrol et dediğimde aygit bos olark uyari verdi programladim çalışmadi daha sonra acaba hatami yaptim diyerek eski programi attim bu sefer kararsiz çalıştı. Hafizada silinmeyen programlarmi kaldi acaba diyerek bu konuyu araştırmaya basladim her seferinde pic almam gerekmez diye düşünüyorum 1000 kereye kadar program atilabiliyormus arastirdigima göre.
Simdiden teşekkürler.