Ben küskünüm ST'ye..

Başlatan memo333, 15 Temmuz 2014, 23:46:49

memo333

MCU : STM32f103VCT6 Kod hafıza 256KB
Programlayıcı : ST-Link v2
IDE : Keil v5.1

Kod büyüklüğü : 384KB (Keil'e STM32f103VET6 bildirildi).

Yükleme & Onaylama Sorunsuz,,

Kod çalışması Sorunsuz..

Arkadaş madem üşengeçlik edeceksin, tam yap, tek model çık..

Not: Daha büyük kod atmadım..
Gömülü Linux Notları --> http://linuxedu.xyz/

z

#1
Derleyici Code, RO Data, RX, ZI icin ne uzunlukta veriler uretti.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

minicihazlar

Bu sadece ST'nin değil tüm üreticilerin yaptığı birşey. Genelde die aynı oluyor, çünkü her flash boyutu, ram boyutu gibi şeyler için ayrı bir maske kullanılmıyor maliyetleri düşürmek için. Benim bildiğim her maske için milyon dolay harcanıyor. Sadece ilgili alanlar test edilmiyor ve çalışıp çalışmayacağı garanti edilmiyor. Eğer wafer'da özellikle köşelere yakın bir die yoksa sizdeki microda büyük ihtimalle daha büyük flash olması olasılığı çok yüksek. Zaten çip üretiminde ana madde nerdeyse beleş, asıl problem üretim tesisinin bakım vs giderleri ile test giderleri. Test işlemi başlı başına bir process ve oldukça uzun zaman alıyor.

z

Dediginiz gibi olsaydi buyuk ciplerde olup da kucuk ciplerde olmadigi soylenen (katalogda adi gecmeyen) Timer, GPIO vs registerleri yerinde olurdu. Ama oyle bir sey yok.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

pisayisi

O halde kod boyutu hususunda sıkıntı yaşayan arkadaşlar, keil de mcu seçeneğine aynı sınıftan  üst flasha sahip mcu yu seçerek devam edecek ve sorun ortadan kalkacak. Flash yüklemede sorun çıkmasa da pin pin uyumlu ve donanımları arasında fark yok ise sorunsuz kullanılabilir gibi görünüyor...
Murat

quarko

1.si Kod büyüklüğünün 384KB olduğuna nasıl emin oldunuz. Belkide yanlış bakıyorsunuz. 2.si Keil a mikroişlemciyi doğru belirtmiş olabilirsiniz fakat options->utilities->settings->programming algorithm seçeneğini yanlış seçmiş olabilirsiniz. O kısımda device size ı, address range vs. doğru olmalıdır.
"Vicdanın ziyası ulum-u diniyedir. Aklın nuru fünun-u medeniyedir. İkisinin imtizacıyla hakikat tecelli eder."

mistek

Stm32f100c8 işlemciye 39kb kod yükledim. 64kB hafıza olduğu için sorunsuz çalıştı.

Sonra yanlışlıkla stm32f100c6 işlemciye aynı kodu yükledim hata vermesini bekledim hiçbişey demedi. Yine sorunsuz çalıştı. Hatta epeydir çalıştırıyorum saçmalayacak mı diye sorun çıkarmadı.
boş işlerin adamı ---- OHM Kanunu: I = V/R ---- Güç Formülü: P = V*I = I^2*R = V^2/R

z

Dogruymus.

STM32F103C8 64K flasha sahip

128 K lik bir data blogu olusturdum.

Ilk 64K 0x55 den, ikinci 64K ise 0xAA dan olusuyor. En son iki adrese ozellikle 0x1234 yerlestirdim.

Cip olarakSTM32F103RB sectim,  programlama algoritmasi olarak da medium density sectim.

Programladi. Debugger ile gercekten de datalar dogrumu diye baktim evet hepsi yerli yerinde.

Bir ust cipi (256K) sectim. onda ileri adreslerde hata verdi.

Bu durumda cipler low density, medium density vs seklinde gidiyor.

Medium sinifina giren ciplerin tamami o zaman 128K.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

AsHeS

Alıntı yapılan: z - 16 Temmuz 2014, 22:59:46
Dogruymus.

STM32F103C8 64K flasha sahip

128 K lik bir data blogu olusturdum.

Ilk 64K 0x55 den, ikinci 64K ise 0xAA dan olusuyor. En son iki adrese ozellikle 0x1234 yerlestirdim.

Cip olarakSTM32F103RB sectim,  programlama algoritmasi olarak da medium density sectim.

Programladi. Debugger ile gercekten de datalar dogrumu diye baktim evet hepsi yerli yerinde.

Bir ust cipi (256K) sectim. onda ileri adreslerde hata verdi.

Bu durumda cipler low density, medium density vs seklinde gidiyor.

Medium sinifina giren ciplerin tamami o zaman 128K.


Hocam bir de resetleyip bakabilir misiniz ?

z

Yok hile hurda yok. Resetleyince de ayni.

Bu duruma ne kadar guvenebiliriz bilmiyorum. ST diledigi zaman bu durumu duzeltip kataloglarda belirttigi flash boyutunda cip verebilir.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

LukeSkywalker

Yabancı forumlara bakmak lazım bu konuda söylenenlere.

Karamel

Alıntı yapılan: z - 16 Temmuz 2014, 23:15:59
Yok hile hurda yok. Resetleyince de ayni.

Bu duruma ne kadar guvenebiliriz bilmiyorum. ST diledigi zaman bu durumu duzeltip kataloglarda belirttigi flash boyutunda cip verebilir.

Hocam 64k flash a sahip olan(st oyle diyor) mcu ya 128k kod yukledikten sonra kodlari 128k olarak okuyabildinizmi? eger okuduysaniz okunan kodlar ile yazilan kodlar aynimi?

z

128K yi gordum.

Ilk 64K da 0x55, ikinci 64K da 0xAA var. En son iki adrese de 0x1234 yazmistim onlarda var.

Bana e^st de diyebilirsiniz.   www.cncdesigner.com

memo333

#13
Alıntı yapılan: quarko - 16 Temmuz 2014, 09:08:40
1.si Kod büyüklüğünün 384KB olduğuna nasıl emin oldunuz. Belkide yanlış bakıyorsunuz. 2.si Keil a mikroişlemciyi doğru belirtmiş olabilirsiniz fakat options->utilities->settings->programming algorithm seçeneğini yanlış seçmiş olabilirsiniz. O kısımda device size ı, address range vs. doğru olmalıdır.

Projenin MAP dosyasında yazıyor..  Ayrıca kodun doğruluğunu şöyle kontrol ettim. Sonuçta bu bir logo ve eksik kalsa vs.. ekranda eksik gözükürdü..

Ayrıca 256K-512K cihazlar HD sınıfı olarak geçer ve programlama algoritmaları Keil'de hep sabit(en azından st-link için)

Bana göre bu arkadaşlar sınıfladıkları cihazlarda ekonomik nedenlerden dolayı tek üretime gitmişler, bizi yemek içinde etiketleri farklı basmışlar..

derleme sonucum:




ek: şimdi farkettim ben kod falan yazmamışım arkadaş bu ne  :P
Gömülü Linux Notları --> http://linuxedu.xyz/

t2

#14
Fiyatın maliyetle alakası olmadığı ortada.  Çeşitli varyasyonlar yaparak satışın artırılması amaçlanmış. Piyasa dikkate alınmış.

ST diledigi zaman bu durumu duzeltip yalancı çıkmamak için, kataloglarda belirttigi flash boyutunda cip verMEZ. çünkü bu maliyeti artıracaktır. yeni kalıp gerek :)