PIC, dSPIC vs STM32, CORTEX

Başlatan kantirici, 30 Nisan 2025, 21:32:53

Tagli

#15
Alıntı yapılan: deneme_1234567 - 01 Mayıs 2025, 01:38:56Register temelli işlemcilerle yol alıyoruz biz...
"Register temelli işlemci" ne demek?

Ben CMSIS haricinde hazır bir kütüphane kullanmıyorum. Kendi HAL katmanımı ve event dispatch mekanizmamı oluşturdum. Bu durumda işlemcinin ne olduğunun bir önemi kalmıyor.

İşlemci seçerken 3 şartım var, ki genelde ilki sağlanınca diğerleri de sağlanıyor:
  • 32 bit Cortex M çekirdek
  • C++ derleyicisi
  • Üreticinin verdiği CMSIS dosyaları (header + SVD)

RISC-V çekirdeği nasıldır bilmiyorum. Muhtemelen o da Cortex M ile benzer bir deneyim sunar.
Gökçe Tağlıoğlu

Mucit23

#16
İlk 2012 de tanıştım STM32 ile. İlk programladığım STM32 çipi de STM32F107VCT6 idi. Ozamanlar baya ütopik geliyordu ama şimdi çok yaygınlaştı. 1000 küsür sayfalık Reference Manual'i vardı. 3 Cilt halinde çıktı almıştım masamda dururdu.

ST bence bu konuda çok güzel bir strateji izledi. Bu kadar yaygın olmasının bana göre birkaç nedeni var.

En büyük nedeni bence Geliştirme kartlarını çok uyguna vermesiydi. Daha güzeli programlayıcısı üzerindeydi. Deney kartını alan ekstra programlama derdiyle uğraşmıyordu. Ve daha da güzeli istenirse kart üzerindeki programlayıcı başka mcu ları programlama için kullanılabiliyordu. Pic Mikroişlemcilerde böyle değildi. Deney kartı satın almanız gerekiyor oldukça yüksek fiyatlara. Birde bunun üstüne programlayıcı satın almanız gerekiyor.

STM32F4 Discovery ilk çıktığında bu açıdan çok sevildi. Çok hızlı pratik bir şekilde programlayabiliyordunuz. Emsali olan pic mikroişlemcilere göre oldukça hızlıydı. Hatırlarsınız STM32F4-Discovery ilk çıktığında forumca alım kampanyaları düzenlerdik toplu alımlar yapardık. Ders içerikli yazılar yazıldı.

ST bu stratejisinin doğru olduğunu anladı ve daha fazla geliştirme kartı üretti. Her ihtiyaca yönelik geliştirme kartları bulabiliyordunuz. Discovery Kartları, Nucleo Kartları, Eval dediğimiz geliştirme kartları vs vs. Şuan satın alabileceğiniz yüzlerce geliştirme kartı var. Bunlar tabi ki de geliştiricilerin donanımla çok uğraşmadan yazılıma odaklanıp STM32 mimarisine alışmasına neden oldu.

Bir diğer neden geliştirme ortamı. İlk çıktığında KEil veya IAR ile programlanıyordu. Kullanıcılar kolay bir şekilde program atması gerektiğinin derleyiciyle çok uğraşmaması gerektiğinin farkındaydı. İlk etapda Keil Cortex M0 derleyicileri için ücretsiz oldu. Şuanda ise CubeID platformuyla kendi derleyicisini editörünü vs ücretsiz olarak yayınlamış durumda.

Belki şuan da kütüphane altyapısında eksiklikler var hala. Ama rakiplerine göre inanılmaz iyi durumda. FatFS yi bünyesine kattı. GUI ile uğraşanlar için TouchGFX'i satın aldı ve ücretsiz verdi. Aynı şekilde FreeRtos'u Cubemx'e entegre etti. Şuanda CubeMx platformunda MiddleWare Software kısmında onlarca kütüphane desteği mevcut. 

İlk başta STD library ile yola çıkıp HAL library'e geçti bu çok da eleştirildi. Bende ilk başta baya direndim ama platforma alışınca bunun çok saçma olduğuna karar verdim. Şuanda bütün projelerimi HAL kütüphaneleri ile geliştiriyorum. MCU üzerinde bir donanımı çalıştırmak inanılmaz derece pratik geliyor. Eski STD library ile geliştirdiğim projeleri yeniden derlemem gerekse hemen HAL kütüphanesine geçiriyorum. Kütüphane desteği açısından ST belki bi arduino gibi olmadı ama 32bit dünyasında rakibi yok gibi.

Aradan neredeyse 15 sene geçmiş. İyi hatırlıyorum STM32F4 Discovery ilk çıktığı zamanlarda NXP karşılığında LPC-Expresso gibi kartları tanıtmıştı. STM32F407 ile emsal olan bu LP1768 ozamanlar yine popülerdi. Ama çok da başarılı olamadı. Firmanın izlediği politikalardan olsa gerek. ST bu konuda iyi bir iş çıkardı.



X-Fi

#17
Başlıktaki tüm yorumları okudum, bu işler ile hemhal olmuş birisi olarak benimde söyleyeceğim birkaç şey olduğunu fark ettim.

Öncelikle bazı arkadaşlar bireysel çabalarına dayanarak 10 yıl, 20 yıl, XXVIII yıl gibi saha deneyimi referanslar vererek olayı sidik yarışına çevirmişler. Kendilerine saygılarımı sunarım ancak doğruları söylemek gerekirse bu değerlerinin sektörün geleceğine yönelik pragmatik açıdan hiçbir anlamı yok. Yıllarca ... kullandım minvalindeki cümlelerin sahipleri market anlamında bir hiçsiniz çünkü bizler birer hiçiz. Evinizin garajında çip üretmiyorsanız birer uygulayıcı olduğumuzu kabul edin ona göre yazışalım.

Kısaca özet geçmem gerekirse gömülü yazılımda düğümler çözülüyor arkadaşlar. Anlatacağım şeyler kabaca bunun üzerine olacak tespitime katılmıyorsanız devamını okumak zorunda değilsiniz. Zoruna giden atlasın. :)

Geçmişte insan eforuna/dikkatine dayalı uzun mesailerle çözülmesi gereken problemler günümüzde değerini kaybetti. Ekosistemin gücü ve güvenilirliği her geçtiğimiz gün arttı.

Daha önce IDE ye bağımlı kalmadan clean-code prensibiyle yazılmış bir projede çalışmadıysanız ekosistemin gücünün farkında değilsiniz demektir. Muhtemelen hala datasheet açıp uart rx_done flağını arıyorsunuzdur.

Örneğin yeni bir mimaride uart kullanacaksınız eğer projenizi RUST dilinde yazıyorsanız .toml dosyasına bir satır ilave ederek kullanabilirsiniz, Zephyr ekosistemindeyseniz o zaman .conf dosyasına "CONFIG_UART_INTERRUPT_DRIVEN=y" satırını ilave edersiniz biter, ya da FreeRTOS kurduysanız linker hedefine basit bir serial.c ve header dosyası gösterip ilerleyebilirsiniz bu gibi bir geliştirme yolu izlemiyorsanız boşuna çabalıyorsunuz ve saatleriniz hata ayıklamayla geçiyor demektir.

Çabalarımızla övünmeyi bıraktığımız zaman gelişiriz. Gömülü Yazılım hata ayıklama değildir. Bir konuda çabalamak sizi uzman yapar tespit savuracak lider yapmaz.

Hakim olduğunuz dili yapay zeka ne kadar etkinli kullanıyor bunu bir test edin bakalım kaçında ub tanımsız davranış yakalayacaksınız.

RUST mı kullanıyorsunuz. o zaman geçmiş olsun ecnebilerin Grok diye bir zımbırtısı var dili tüm geliştiricilerin toplamı kadar iyi biliyor. üstelik bu dilin temelinde tanımsız davranış bulunmadığı için derlediyseniz çalışıyor.

Şimdi panik olmanın tam zamanı arkadaşlar. Dolabınızda/çekmecenizde sakladığınız kitleri mesleğin başındaki arkadaşlara hediye olarak dağıtın. çünkü gelecekte ihtiyacınız kalmayacak. Gömülü yazılımın geleceğinde mimariler ve algoritmalar olacak register seviyesindeki atomik yapılar ile sadece bir işi sadece daha geç bitirirsiniz. ve içerisinde bulunduğunuz bölgesel başarılar sizin doğru yolda olduğunuzu göstermez.

Bunun böyle olmadığını savunan deneyimleri sayesinde önder olduğunu düşünen ve koduna aşık arkadaşlara bir önerim olacak projelerinizi github a yükleyebilirsiniz. bakalım kaç destekçi ve gözlemci kazanacaksınız. eleştirilince küsmek ağlamak yok ama.  ;)

kalın sağlıcakla.


http://www.coskunergan.dev/    (Yürümekle varılmaz, lakin varanlar yürüyenlerdir.)

Epsilon

#18
Suni Zeka ya "Gömülü Sistemlerde RUST ve GROK nedir? diye sordum.
Cevabı:
**Rust** ve **Grok** terimlerine bakalım:
### **Rust nedir?**
Rust, güvenli, hızlı ve eşzamanlı uygulamalar geliştirmek için tasarlanmış, modern bir sistem programlama dilidir. Özellikle gömülü yazılım dünyasında şu avantajları sağlar:

1. **Bellek Güvenliği**: Rust, "ownership" ve "borrow checker" adı verilen mekanizmaları kullanarak bellekle ilgili hataları (örneğin, "segmentation fault" veya "use-after-free" hataları) tasarım aşamasında önler.
2. **Performans**: Rust, C ve C++ gibi düşük seviyeli dillerin performansına yakın çalışabilir, bu da gömülü sistemler için kritik bir avantajdır.
3. **Güçlü Tip Sistemi**: Hataları erken aşamada yakalamayı kolaylaştırır.
4. **Topluluk ve Araçlar**: Rust'ın paket yönetim sistemi (Cargo) ve geniş bir kütüphane ekosistemi vardır. Ayrıca, gömülü sistemler için **"embedded-hal"**, **"RTIC"** gibi framework'ler sunar.
**Gömülü yazılımda Rust nasıl kullanılır?**
* Mikrodenetleyici programlaması (ör. STM32, ESP32 gibi).
* Gerçek zamanlı işletim sistemleriyle (RTOS) çalışmak.
* C ve C++ ile yazılmış kodlara güvenli bir şekilde bağlanma.
---
### **Grok nedir?**
**Grok**, genellikle bir şeyi derinlemesine anlamak ve özümsemek anlamında kullanılan bir terimdir. Bu kelime, Amerikalı bilim kurgu yazarı Robert A. Heinlein'ın *Stranger in a Strange Land* adlı kitabında ortaya çıkmıştır.
**Teknik bağlamda Grok ne anlama gelir?**
* **Derin Anlama**: Bir kavramı veya teknolojiyi yüzeysel değil, derinlemesine anlamak. Örneğin, bir yazılım geliştirici, bir algoritmayı grok etmekten bahsettiğinde, onun nasıl çalıştığını tüm detaylarıyla anlamış demektir.
* **Uygulamalı Bilgi**: Bir şeyi grok etmek, sadece teorik bilgi değil, aynı zamanda onu pratikte etkili bir şekilde uygulayabilmek anlamına gelir.
Rust öğrenirken bir özellik veya kavramı "grok ettiğinizi" söylediğinizde, o kavramı hem teorik olarak anlamış hem de pratikte kullanabilir hale gelmişsiniz demektir.
Rust ya da başka konularda detaylı sorularınız varsa memnuniyetle yardımcı olurum! 😊

power20

#19
Bilgi hiç oldu çürüdü. Kiloyla seneyle ölçülmez. Yanlışı 30 sene tekrar etmek maharet değildir. Bu kadar sene boyunca ne yaptın önemli olan odur. Yapay zekaya sordum çetrefilli projeyi hemen yaptı sır filan kalmadı diyebiliriz. Belki de hala püf noktası olabilir. Yapay zekanın püf noktaları? Yapay zeka terbiyesi?

Artık teknik soru sormak da boş muhabbet. Önce zekaya sor bilemezse foruma..

Burada ne soracağız, ne konuşacağız? Geriye laklak kaldı. Magazin.

İşimiz gücümüz Rust gele.

magnetron

Alıntı yapılan: Erol YILMAZ - 02 Mayıs 2025, 00:07:51Klon STM32 neden kullanıyorsunuz ki,,  mis gibi orjinali varken?

Hocam blue pill orijinal kim satıyor biliyorsanız lütfen söyleyin

Epsilon

#21
Bu memlekette :
555 e 3-5 komponent lehimleyip "Know How"ımı(!) ele geçirmesinler diye üstüne sert silikonu basıp 50 dolara satıp 20 yıldır imalat yapıyorum diyende var.

32 bitlik 96 pinlik MCU ile işimizi ancak görebiliyoruz diyende var

Birde anlatımından "2038 de NASA nın Uranüs e göndereceği insansız uzay aracının güç katını biz tasarlıyoruz" diyecek zannettiğin kişilerde var.

Geçen bahçedeki yerinden çıkan su borusunu taktırmak ve su motorunda  sorunlar varsa düzelltirmek için usta çağırdım.Telefonda  abicim traktörün arkasında çapa makinası takılıyken,bahçede gömülü boruyu yerinden çıkardı dedim kaçlık boruydu dedi bilmiyorumki 25 lik den büyük gibiydi dedim.
Neyse hem 20 lik hem 25 lil parça borular satın aldık olay mahalline gelince 35 yıllık usta arkadaşım:
-E bu kangal boru PVC boruyla alakası yokki bahçelerde kangal boru kullanılır dedi Adam bizi salak yerine koymasınmı ?
"Abicim sana traktörün çapa maknası boruyu çıkarttı diyorum ya dedim, "Sen muslukluklar deyince ben PVC anladım" diyor

İşin özü yoğurdum ekşi diyen yok herkez usta,herkez CEO

kantirici

Başka bir konuya cevap yazmıştım ama moderatör ayrı bir konu yapmış anladığım kadarıyla. Konunun PIC ve STM32 ile aslında doğrudan alakası yok. Sundukları ve destekledikleri yazılım geliştirme ekosistemleri aslında asıl mevzu.

Alıntı yapılan: bulut_01 - 30 Nisan 2025, 21:58:48at sahibine göre kişner.cortex ile yapıp microchip ürünleriyle yapılamayan kaç tane proje vardır? yazılım kısmı daha önemli diye düşünüyorum.

bulut_01, tamda dediğiniz gibi, yazılım kısmı önemli ve zaten yazılım ekosisteminden dolayı bu yorumu yapmıştım.

Konu geniş, daha öncede bir kaç defa burada benzer yorumlarda bulunmuştum. Gömülü sistemler ve gömülü yazılımlar artık 20 yıl, hatta 10 yıl öncekilerden çok çok farklı. Mobil, Web, Desktop yazılım geliştirmelerinde kullanılan pek çok defacto standart artık gömülü yazılım geliştirmede kullanılıyor ve ihtiyaçlarda artıyor. Mesela unit test, yazılım validasyonu, clean code, dual target vs.

Bir proje hayal edin, içinde haberleşme olacak(485, BLE, TCP/IP), kayıt işlemleri olacak(flash, sd kart, eeprom), dokunmatik ekran olacak, keypad olacak, gyroscope olacak, Analog girişler olacak vs. vs. Donanım ise 3 ay sonra ancak hazır olacak. Yazılımı geliştirmek için 3 ay bekleyecek misiniz? Şirket donanımı beklerken size 3 ay maaş verecek mi?

Bu projede ihtiyaçlar için kütüphane, framework kullanmamak kaçınılmaz. Araştırdık baktık network için en uygun çözüm c++17 ile yazılmış. Ekran tarafında LVGL olsun dedik C ile yazılmış. Eğer kullandığınız mcu için c++ derleyicisi yoksa sıkıntı başladı.

Proje büyük, 1 kişi network tarafını, 1 kişi UI tarafını ve 1 kişide diğer tarafları aldı. Bunlar aynı proje üzerinde nasıl çalışacak ve senkron olacaklar.

Yazılım release ederken her defasında tüm sistemi tek tek mi kontrol edeceğiz? Yoksa yazılım testlerimizi yazıp her değişiklik için otomatik olarak sorunun tespiti için birşeyler mi kullacağız(CI, CD süreçleri)

Bunlar günümüzdeki yazılım geliştirme ve yaşatma yöntemleri.

Yukarıdaki X-Fi'de değinmiş. Gömülü yazılım geliştirmede bir paradigma değişimi yaşanıyor ve bununda adı "Zephyr". Ne kadar başarılı olur hep birlikte göreceğiz.

Yazılım dili konusunda ise fanatik olmamak lazım ama hala gömülü yazılımları hala C domine ediyor ve ardından C++ geliyor.

Eskiden insanların gizli bir klasörü ve altında proje ve kodlar olurdu. Kimseye gösterilmez ve paylaşılmaz. Dosya içinde LCD driver var ama sadece PIC18F46K22'de çalışır. Neden? Çünkü driver dediğimiz şey hep register düzeyinde iş yapan kodlar bütünü. Başka bir dosyada yine bir driver var ama oda atmega328 de çalışır. Bu biteli çok oldu.

Bir datasheet indirin, AI'a yükleyip doğru prompları verin driver'ı size yazsın, siz sadece kontrol edin. Veya github'da zaten modüler hali vardır alıp port edin kullanın. Zephyr mi kullanıyorsunuz, "UBER_SUPER_DRIVER=y" diyip projeye ekleyin.

Bu forumda öğrencilerde var, kendi işini yapanda var, 5-10 kişilik yada uluslararası büyük firmalarda çalışanlarda var. Herkes kendi ihtiyaçlarına ve beklentilerine göre olaya bakıyor.

Elbette PIC işimi görüyor diyorsanız kimse size bir şey diyemez. Ama pazar beklentileri, sektörün yönüne baktığımızda da bir değişim var bunu kaçırmamak gerekli. Özelliklede bu işe yeni başlayanlar.

deneme_1234567

Bence yapay zeka kaba kod yazmanın içinden geçecek...
Rekabetin kızıştığı bir alan.

Yapay zekanın dokunamayacağı yegane alan donanım olacak uzun süre. Robot çıkarıp o mu tasarlayacak istediğim sistemi. Daha 2 katlı PCB çizen göremedik.
Dolayısıyla donanım candır, iyidir, gençlere önerim donanıma sarılmaları :)

Erol YILMAZ

Alıntı yapılan: magnetron - 02 Mayıs 2025, 16:16:31Hocam blue pill orijinal kim satıyor biliyorsanız lütfen söyleyin

Orjinal STM32 varken, Blue pill gibi ne idüğü belirsiz başka bir katman niye ekliyorsun ki?
Çok mu pratik oluyor? Ucuz mu oluyor?
Adamın üzerinde kullandığı XTAL-MCU, hatta kimlerin ürettiği... herşey soru işareti...
Zamanımız, işimiz, hayallerimiz kıymetli.

bulut_01

Alıntı yapılan: Erol YILMAZ - 02 Mayıs 2025, 20:37:38Orjinal STM32 varken, Blue pill gibi ne idüğü belirsiz başka bir katman niye ekliyorsun ki?
Çok mu pratik oluyor? Ucuz mu oluyor?
Adamın üzerinde kullandığı XTAL-MCU, hatta kimlerin ürettiği... herşey soru işareti...
Zamanımız, işimiz, hayallerimiz kıymetli.
erol abi mcularımızı çekiştirek mi benim mcu seninkini çeker   :P  ;D
YENİLMEZ..

Okan AKÇA

Adetli iş yapmıyorsanız bildiğiniz platformda ilerleyiniz. Başka bir platforma geçmek din değiştirmek gibi bir şey.
Ben halen pic ile   projeleri yapıyorum. işlemci ile modbus rtu master slave aynı anda koşturuyorum. Gerçek zamanlı giriş çıkış işlemleri veya 5-6 dan fazla kesmeyi çalıştırarak işlerimi yapıyorum.
Pic ile ölçü aletleri yapıp satıyorum.
Ama burdaki önemli nokta adet yıllık 10k satış yapmıyorsam platform değiştirmeye gerek yok.
İşlemci değiştirerek yıllık 500$ için bilmedigim sularda yüzecek kadar ahmak değilim.

Firzen

Ben de üniversite yıllarımda PIC ile başlayanlardandım.
2.Sınıfta PIC + MSP430
3.Sınıfta STM32 kullandık.
Farkı daha çok dataset olarak diyebilirim o zamanlar için. İnternette çok fazla bilgi yok ve datasheet bilgisi ile yürütmeye çalışıyorsun.

O zamanlar için bile PIC çok cazipti. Son zamanlarda sadece Favorim RP2040 😂 Ortalığı az daha karıştırayım :)

Aslında bakarsanız low level de asıl Favorim: TMS320 F28388D
High Level de ise: NVidia Jetson Orin NX
Kararsız...

tunayk

Alıntı yapılan: deneme_1234567 - 02 Mayıs 2025, 20:08:15Bence yapay zeka kaba kod yazmanın içinden geçecek...
Rekabetin kızıştığı bir alan.

Yapay zekanın dokunamayacağı yegane alan donanım olacak uzun süre. Robot çıkarıp o mu tasarlayacak istediğim sistemi. Daha 2 katlı PCB çizen göremedik.
Dolayısıyla donanım candır, iyidir, gençlere önerim donanıma sarılmaları :)


Kısa bir süre daha sevinebilirsiniz.  :)  PCB tasarım programları Autoroute özelliği çok verimli değil diye yapay zekanın donanım tasarımından uzak kalacağını mı sanıyorsunuz. Çok yakın bir dönemde, gerek mekanik gerekse elektronik konularında alanlarında uzman kişilerin bile gözden kaçırabileceği konuları gözden kaçırmadan tasarım yapacağını ve çıkan ürünün tek seferde kusursuz çıkacağını unutmayın. 

Şu an bunun henüz çalışmıyor olması (belki bize sunulmadığından öyle sanıyoruz) doğru tasarım verilerinin verilmemesi ve yetersiz eğitim olduğu net.  İlkokul çocuğuna hadi yavrum SMPS trafosu tasarla dersen sonuç belli.

Benim kanaatim rüzgara karşı durmak yerine rüzgarın enerjisi ile neler yapabiliriz buna kafa yormak lazım. Zayıf olduğumuz konuları onunla tamamlasak daha başarılı olabiliriz. Biz şu donanımı tasarlayamıyor diye gururlanırken, yapay zeka o donanıma ihtiyaç duymadan işi çözmenin yolunu bulduğunda boşa düşeriz. Dikkat etmek lazım. :)

deneme_1234567

Sonlu eleman analizleri, EMC simülasyonları vb. vb. vb. bir çok matematiksel model daha gerçek dünyaya dokunmaktan çok uzakken bu yüzden yapay zekanın burayı ele geçirmesinin zorluğundan bahsediyorum.
Mekanik dünyayı öncelikle modelleyen çok iyi yazılımlar, modeller ortaya çıkmalı. Daha bu yok ortada. Zaten bu olduğu an test kuruluşlarının gerekliliği bir çok alanda azalacak.

Daha en basit bir buck devresinde EMC nasıl çıkacak onu modelleyemiyoruz. Bırakın kompleks devreleri. O yüzden yapay zekanın işi zor dedim ama polemiğe girmek istemiyorum. Yaşayıp görücez...

Bir diğer yandan da Z kuşağının davranış hareketlerini çok dikkatle izliyorum çoğu zaman ne yaptıklarını nasıl tasarım olarak ilerlediklerini vs.

Umarım ilerde emekliliğimizde bize bakabilecek katma değeri üretirler diyorum çoğu zaman dediğim gibi yaşayıp görücez...