Ynt: mikroc stm32f030k6t6 sorularim

Başlatan Karamel, 04 Temmuz 2015, 17:08:13

MrDarK

Alıntı yapılan: Karamel - 08 Temmuz 2015, 05:44:46
library explaining ten  ve yukaridaki code dan bunlari anladim. yalniz aklimda iki adet soru olustu.

1- silecegim page i nasil belirleyecegim? ya orada program varsa?
2- long degiskeni char degiskene nasil cevirecegim?

1- STM'in eeprom barındıran modellerinde erase işlemleri daha kolay olabiliyor tavsiye ederim. Onun dışında program memory'nin bir haritasını çıkart. Örnek vermek gerekirse memory 128K olsun, kodu derlediğinde yazılımın kaç K tuttuğu map içinde belli oluyor söylüyor derleyici. O adreslerden sonraki adresleri kullanabilirsin. 1 Page 256 Byte'dan oluşur. Örnek veriyorum program memory'in 0x08080000 'dan başlıyorsa 1 page sonrası 0x08080100 olacaktır. Bu şekilde adreslemeye dikkat ederek istediğin yere yazım yapabilirsin. Hatırladığım kadarıyla ortalama yaz sil ömürleri 100.000 kez yapılabiliyor buna dikkat etmekte yarar var.

2- Long değişkenini max kaç elemana kadar çıkartıyor isen ona göre elindeki datayı basamaklarına ayırabilirsin bence.
Basamak = (sayi/10)%10 gibi formüller var fazlaca. Tam olarak yapmak istediğini anlarsam yardımcı olmaya çalışırım. Fakat MicroC ile değil standart C ile destekleyebilirim :) Örneklerimde Standart Lib'den olur ne yazık ki (:
Picproje Eğitim Gönüllüleri ~ MrDarK

LukeSkywalker

@Karamel St Link Utility kullandığın zaman programın flash memory üzerinde hangi adreslere yerleştiğini  açıkça görebiliyorsun. Programında kullanacağın adresleri buraya bakarak belirleyebilirsin.

Karamel

Hocalarim suan telefonumdan yaziyorum. Internal flash hafizaya okuma ve yazma yapabildim ::)

Soyle yaptim. St link utility yaziliminda size i el ile degistirdim.( cok yuksek yapmaya calistim)

Benim microcontroller icin en son address sanirim soyle birseydi 0x08007FF0

Buraya yaz dedim. Sonra st link utility ile okudum. Gercektrnde yazmis.

Pointer kullanarak yazilan degeri microcontroller ile okudum. Pc ye uart ile gonderdim :) MrDark hocamin soyledigi conversation seklinde yaptim ::)

Yazdigim address i erase flash(address); komple o address in page ini sildi ama page nereden nereye kadar tam olarak anlayamadim. Bilgisayarim suan update yapiyor. Bitsin yeniddn bakacagim.

mesaj birleştirme:: 08 Temmuz 2015, 15:00:45

Not: mikroc muhtesem birsey  8) ::)

LukeSkywalker


MrDarK

Alıntı yapılan: Karamel - 08 Temmuz 2015, 15:00:09
Yazdigim address i erase flash(address); komple o address in page ini sildi ama page nereden nereye kadar tam olarak anlayamadim
Ne demiştik 1 Page 256 Byte ise 0x100 'e denk gelir. Memory Map'den baktığın adresin doğru olduğunu varsayarsak

Page başlangıç adresin ; 0x08007F00 - Bitiş adresin 0x08007FFF olması gerekiyor diye düşünüyorum :)
Picproje Eğitim Gönüllüleri ~ MrDarK

LukeSkywalker

Page'in ne olduğu referans manuelde yazıyor. Sayfa 55.