Hareket etmek için iyi zaman; 8 bit hızlı bir şekilde ölüyor; Oldukça yetenekli bir 32-bit ARM mikrodenetleyici (hatta USB!) bir STM32F103 ile (örneğin) 5 dolarlık bir anakart alabiliyorsanız, hiç şüphe yok.
Şimdiden bazı mükemmel cevaplar aldınız, ancak öncelikle "montajı unut" ve neredeyse "cpu'nun nasıl düşük seviyede çalıştığını umursamayı unuttum" derdim - bir gün içinde kazmanız gereken bir köşe davası olacak (belirli bir optimizasyon veya hata ayıklama için) ancak ARM çekirdeği C kodunu son derece iyi çalıştırır (tasarım gereği) ve nadiren bağırsakların içine girmeniz gerekir.
Bu, kafanızı derleyicilerle (ve özellikle linkler ve makefiles) sorunlara karşı, belli belirsiz hatalarınızı engellemek için harcayacağınız bir zaman harcayacağınız anlamına gelir;
ARM'lerin nasıl çalıştığını (yani ARM cpu kitaplarının) gerçekte yoğunlaştırırsınız ve gerçekten optimize etmeniz gereken güne kadar çok ilginç değildir (ve 32 bitlik kayıtların ve PLL'iniz olduğunda ne kadar seyrek olduğuna şaşıracaksınız. d CPU saati 100 mhz).
"Eski skool" ARM komut seti, daha yeni olan "Thumb2" den çok daha kolay bir sökme işlemi yapmaktan çok daha kolaydır - bu da çoğu modern mikrodenetleyici seviye ARM'lerinde (Cortex) bulacağınız şeydir - fakat yine de meclis dili talimatlarının içindekiler çoğunlukla arka planda kaybolur; doğru araç setine sahipseniz (özellikle kesme noktaları / tek adımlı vb. ile iyi bir kaynak düzeyinde hata ayıklayıcı vb.) sadece ARM olarak hiç umursamıyorsunuz.
32 bitlik kayıtların ve 32 bitlik veri yolu genişliklerinin dünyasına girdikten ve çipte kullanmak istediğin her şey bir daha 8 bitlik işlemcilere geri dönmek istemeyecek; Temel olarak, "kolay almak" ve kod yazmanın verimli olmaktan daha fazla okunaklı olması için genellikle bir ceza yoktur.
Ancak ... çevre birimleri ... evet ve ovmak.
Modern MCU'larda oynayacağınız tonlarca şey alıyorsunuz ve bunların çoğu oldukça hoş şeyler; sıklıkla AVR, PIC ve 8051 çip üzerinde çevre birimlerinin çok ötesinde bir karmaşıklık dünyası bulursunuz.
Bir programlanabilir zamanlayıcı? Hayır, sekiz tane al! DMA? Programlanabilir öncelik ve patlama modu ve zincirleme modu ve otomatik yeniden yükleme ve .. ve .. ve ... ile 12 kanal hakkında nasıl ...
I2C? I2S? Düzinelerce iğne muxleme seçeneği? Çip üzerinde flaşı yeniden programlamanın on beş farklı yolu var mı? Emin!
Sıklıkla kıtlıktan çevre birimlerine ziyafet yapmaya gittiğinizi hissedersiniz ve hayranlıkla kullanacağınız ancak zor kullanacağınız bir çipin tüm parçalarının bulunması yaygındır (bu nedenle saat kaplaması).
Çip üstü donanımın miktarı (ve bunun sadece bir satıcının çip satırındaki varyasyonları) günümüzde oldukça şaşırtıcı. Bir yonga satıcısı elbette IP bloklarını yeniden kullanma eğiliminde olacaktır, bu yüzden belirli bir markaya aşina olduğunuzda daha kolaylaşır, ancak "bugünlerde boklar olur".
Çevre birimleri ve bunların etkileşimleri (ve DMA ve kesmeler ve otobüs tahsisi ve ve ve ...) herhangi bir şey (vesileyle, değil ve SO kompleks ise tam mühendisler sıkça ARM MCUs favori aralığa sahip olması veri sayfalarında açıklandığı gibi) ve Çevre birimlerine ve geliştirme araçlarına aşina oldukları için basitçe buna bağlı kalmak isteme eğilimindedir.
İyi kütüphaneler ve geliştirme araçları (örn. Hızlı bir şekilde derleme + uygun bir hata ayıklayıcıyla hata ayıklama döngüsü) ve çok sayıda çalışma örneği kod projesi, bugünlerde ARM MCU seçiminiz için kesinlikle çok önemlidir. Görünüşe göre çoğu üreticinin son derece ucuz değerlendirme panoları var (
Fark ettiğiniz gibi eminim, bir kez ARM'lerle ve SOC seviyesine (örneğin Raspberry Pi / etc stil SOC'ler) mikrodenetleyici seviyesinin üzerine çıktıktan sonra kurallar tamamen değişiyor ve tüm bunlar hangi Linux türünden geçeceğinizle ilgili. kaçmak, ufak tefek istisnalar dışında, başka bir şeyi denemek için havlıyordun.
Temelde; Bu konser için sizin için önceden seçilmiş olan CPU'ya bakılmaksızın, birkaç farklı satıcıdan (TI, STM, Freescale ve daha fazlası aklınıza gelir) bir kaç süper ucuz Cortex tabanlı değerlendirme kurulu satın alın ve sağlanan örnek kod ile bir kesmek.
Son öneri; Sayfayı-ya-üç pin-muxing seçenekleri açıklanmaktadır veri sayfasında bulduktan sonra kesin birlikte çalıştığınız parça numarası çipi, bunu çıktısını ve duvara sopa isteyebilirsiniz. Bir projenin geç bir kısmında, çevre birimlerinin belirli bir kombinasyonunun pin muxing nedeniyle imkansız olduğunu bulmak bazen eğlenceli değildir ve bazen bu bilgi öylesine gömülür ki, gizlemeye çalıştıklarına yemin ederdiniz :-)