ARM çekirdekli bir işlemciye nasıl geçilir? Bir kaç tav

Başlatan Analyzer, 26 Aralık 2009, 15:41:30

Analyzer

Selam,

Forumdaki çoğu arkadaş bu çekirdeğe sahip işlemci ailelerine nasıl geçerim sorusunu araştırıyor. Öncelikle temel elektronik, mcu ve C bilgisine sahip, gerekli donanımı oluşturan herkes bu ailelere biraz uğraşıp geçiş yapabilir. Size en temel bilgileri en küçük işlemciden bahsederek aktarmaya çalışacağım.
İşlemci ailesi için nette örneği çok olan bir aileyi seçmeniz gerekir. Bulunabilirliği yüksek ve örneği bol olmasından dolayı LPC serisini tavsiye ederim. Eğer kütüphanesi olan ve örnekleri sorun yaratmayan bir grup istiyorsanız STM32 serisini tavsiye ederim.
En hızlı şekilde öğrenmek için sisteminize yabancıların deyimi ile User Friendly bir yazılım suiti kurmanız gerekir. Ben Keil tavsiye ediyorum. Keil'i kurarken sisteminize örnek proje ekleyip eklememeyi soracaktır. Bu esnada size hangi işlemci türüne ait örnekleri yükleyeceğinizi sorar. LPC ailesini seçebilirsiniz. Ardından sisteme süit ve örnek dosyalar çıkar. Bu esnada donanımınızı kutuya koyup derleyicide ne nerede incelemeye başlayın. Örnek projelerden "Blinky" olması lazım. Bu projeyi açın ve belirli pin'i nasıl "toggle" ettiğini görün. Pic kullanıcılarının pek hoşuna gitmeyebilir. Çünkü burada bit maskeleme işlemleri ile karşılaşacaksınız. Eğer sıkıntı çekerseniz bir defaya mahsus bir IO dosyası oluşturup SetBit(PortA,PIN_7); gibi bir fonksiyon yapabilirsiniz. Örnekleri incelediyseniz ve aklınızda soru kalmadıysa bir sonraki adıma geçin. Eğer işleyişle ilgili aklınıza yatmayan bir kısım varsa onu halletmeden bir sonraki kısma geçmeyin.
Şimdi donanımı kutusundan çıkarabiliriz. Elimizde LPC2103'ün baz donanımı olduğunu farzedelim. (http://www.olimex.com/dev/images/lpc-h2103-sch.gif) Ben Keil ile çalışıyorsanız mutlak surette U-Link takliti bir debugger ile çalışmanızı öneririm. Hem programınızı hızlı ve dertsiz yükler çalıştırırsınız hem debug yaparsınız. Bendeki N-Link olarak geçiyor. Ebayde bulabilirsiniz. (~$50) Bu cihazı temin ettiğinizde "blinky" örneğini açıp Project->Options->Debug kısmından "Use ULink" kısmını seçip Settings kısmına gelip cihazınızı görüp görmediğini kontrol edin. Görüyor ise (ki bağlantınızda bir sıkıntı yoksa ve görmüyorsa Jtag hızınızı Max Clock düşürmeyi deneyin)  Son olarak projenizi derleyip "Load" tuşu ile derleyip işlemcinizin kodu çalıştırmasını sağlayın. Elinizde skop varsa ilgili pin veya pinlerin durumunu gözleyebilirsiniz. Skopunuz yoksa (temin etmeye çalışın, Arm ile gerekecek artık) direnç+led ikilisi ile de çalışmasını gözleyebilirsiniz.
Şimdilik bu kadar. Arm çekirdek ile çalışan diğer arkadaşlardan da katılım rica edeceğim.

Analyzer

Not : Buradaki bilgilerin hiçbiri veya bir kısmı doğru olmayabilir. Hatalı bilgi görürseniz düzeltebiliriz.
Üşeniyorum, öyleyse yarın!

mihri

Küt diye geçilir. Boş tantana ile vakit kaybetmemek önemli olan.
"Eppur si muove!"

lojikmemo1

Alıntı yapılan: "mihri"Küt diye geçilir. Boş tantana ile vakit kaybetmemek önemli olan.

Türkmüsün canım sen (gora filminden alıntı)  :)
İnsanlara Akılları Ölçüsünde Söz Söyleyiniz.

Analyzer

Alıntı yapılan: "mihri"Küt diye geçilir. Boş tantana ile vakit kaybetmemek önemli olan.
Selam,

Evet mesajınız baya yardımcı oldu. Sayenizde bir çok arkadaş bir ilerleme kaydetti.

Analyzer
Üşeniyorum, öyleyse yarın!

hasangurlek

Alıntı yapılan: "Analyzer"
Alıntı yapılan: "mihri"Küt diye geçilir. Boş tantana ile vakit kaybetmemek önemli olan.
Selam,

Evet mesajınız baya yardımcı oldu. Sayenizde bir çok arkadaş bir ilerleme kaydetti.

Analyzer

"180 derecelik dönüş sonrası yapılan -ileri- hareket" ilerleme olarak değerlendirilirse; pek çoğumuz ilerleme kaydetmiş olabiliriz :)

Hocam yazınızın devamını bekliyoruz.
http://www.cyber-warrior.org, Although they like whiteness, sometimes twilight is required...  Hala evlilermi bilinmez ama kesinlikle artık uygun değiller !!!

elektrotasarim

Analyzer'ın güzel başlangıcına birkaç yorum ve soru ile katkıda bulunmak istiyorum.
Eski işyerimde STM32 kullanmıştım bir süre ve fiyat/performans olarak çok başarılı bulmuştum. Daha çok büyük yazılımlar, geniş projeler şeklinde bakmıyorum ARM kullanma olayına. Mesela STM32 ailesinin donanımları çok güçlü. Örneğin, genelde PIC kullanıcılarının karşılaştığı sorunlardan biri 2'den fazla UART'ı olmaması gösterilebilir. STM32'nin 3-5$'lık bir ürününde 5 UART'a kadar çıkabiliyorsunuz. Bu küçük bir örnek sadece.
Yani aynı fiyata daha kuvvetli donanıma sahip bir işlemciye geçmek ileride hızlı ve büyük çaplı yazılımlar gerektiren projelerde yardımcı olacaktır.
Şimdi sorum şu, e-bay'da gördüğüm N-link'lere ne kadar güvenebilirim ? Analyzer, siz e-bay'dan mı aldınız ?
PIC programlamak için 50 TL programlayıcı yatırımı yapmanız yeterli olabilir ancak orjinal U-Link (2) 150$ diye biliyorum.
Bu konuyu biraz açabilirseniz sevinirim.

Analyzer

Selam,

Evet ben u-link klonu olan n-link almıştık. (Şimdi uzaklarda olan bir arkadaşımla beraber) Ebay'deki nlinklerde bir sıkıntı çıkacağını düşünmüyorum. Ben micro4you kullanıcısından almıştım. Sitesi de mevcut. U-Link2 ilk çıktığında 4000 euro idi CIF fiyatı. Şu an 400 dolar görünüyor lpctools'da.

Analyzer
Üşeniyorum, öyleyse yarın!

leblebitozu

Bende JTAG konusunda mevcut alternatiflerden bir miktar bahsetmek istiyorum, malumunuz pek çok ARM tabanlı işlemcide bootloader yardımıyla seri port,usb v.s. üzerinden mikroyu programlamak mümkün, ancak flash ve ram kapasitelerini dikkate aldığınızda ARM'ler üzerinde oldukça detaylı uygulamalar geliştirmek mümkün ve fikrimce ARM ile uğraşan herkesin bir JTAG adaptör'e sahip olması gerekiyor, çünkü debugger kullanma ihtiyacı oluyor. JTAG konusuna girmeden önce mevcut popüler C derleyici'lerinden bahsedelim.

1. Keil

Keil dünyada kendini kanıtlamış, birkaç yıl öncesinde ise ARM çekirdeğini lisanslayan firma tarafından satın alınmştır, arkasında ARM lisansörünün desteğinin olması avantajdır. Keil'in kendine ait JTAG adaptörü ULINK ve yeni versiyonu ULINK2'dir (CORTEX-M3 ve SWD desteği).

2. IAR

Pek çok işlemciye destek veren yine dünyada yaygın kullanım görmüş iyi bir derleyicidir. Optimizasyon ve performans testlerinde Keil ile yakın değerler göstermektedir. IAR firmasının JTAG adaptörü J-LINK olarak geçmektedir. (Aslında Segger firması tarafından üretilmektedir)

3. Crossworks

GNU C desteği ile ve değişik marka ARM işlemciler için library'ler ve kolay kullanımlı bir IDE ile gelmektedir. Kendi JTAG adaptörü CrossConnect'tir.   

4. GNU C

Winarm, YAGARTO vs. gibi bir çok dağıtım ve değişik IDE desteği ve OPENOCD isminde debugger desteği ile gelmektedir pek çok opensource ide ile birlikte çalışabilmektedir (Eclipse vs.).

Yukarıda saydıklarım haricinde daha pek çok ARM C derleyicisi mevcuttur ben bildiğim ve popüler olanlardan bahsetmeye çalıştım. Kendim Keil,IAR ve Crossworks kullandım. Bunların arasında benim tercihim IAR, çünkü detaylı header dosyaları ile birlikte geliyor ve IO portlarının ve diğer fonksiyonlarla ilgili bit seviyesinde tanımlar işimi kolaylaştırıyor.

JTAG konusuna geri dönecek olursak,    tüm sözü geçen derleyiciler Wiggler isimli paralel port destekli basit JTAG adaptörününü destekler (Internette şemaları mevcuttur) ancak yeni nesil notebook'larda paralel port olmaması ve paralel port'un yavaşlığı nedeniyle bu pek hoş bir çözüm değildir. En popüler konumda olan Keil ve IAR derleyiciler RDI olarak adlandırılan bir yazılım arabirimini desteklerler, bu sayede RDI destekli herhangi bir JTAG adaptörünü bu derleyiciler ile kullanmak mümkün olur. Ulink'te RDI desteği yoktur dolayısıyla Keil haricinde bunu kullanmak mümkün olmaz, Jlink ise RDI desteği ile gelir ve Iar,Keil,Crossworks gibi derleyicilerin hepsinde Jlink kullanabilirsiniz. JTag konusunda benim tavsiyem yine geniş derleyici desteği vermesi açışından Jlink ya da çinli vatandaşlar tarafından üretilen klonları olacaktır, Olimeks'te Iar ile anlaşmalı olarak basit bir Jlink klonu geliştirdi, RDI desteği var mı bilmiyorum ama IAR ile kullanılabiliyor. Jtag konusunda ikinci bir önerim daha var

http://www.hjtag.com/product_intro.html   

Bu JTag adaptörü de RDI desteği ile geliyor ve fiyat olarak da uygun, ayrıca harici nand flash programlama desteği gibi ek özellikler barındırıyor.

Şimdilik bu kadar, sorusu olan arkadaşlar olursa elimden geldiği kadar yanıtlamaya çalışırım.

arslan74

Merhaba,

ARM kullanıcılarına benim de bir sorun olacak. Yeni nesil ARM CORTEX-MX serileri var. Benim anladığım kadarıyla bunlar ARM7+ DSP karışımı bir ürün oluyor ve değişik uygulama alanına  göre  X ile belirtiğim yere numaralandırmışlar. CORTEX-M3, CORTEX-M1 ve CORTEX-M0 serileri var. CORTEX-M0 cok yeni cıkan bir ürün. Bunun asıl kullanım amacı standart 8 bit işlemcilerin yerini alması için geliştirildı. Düşük güç tüketimi ve 32 bit mimarisi ve basid kullanımı ile 8 bit işlemcileri tarihe gömecek gibi duruyor.

Bu yazdıklarım, Okuduğum çeşitli makalelerden edindiğim bilgilerdir. ARM kullanmış birilern bu konuda görüşlerini almak isterim.

Yani PIC18 den sonra PIC24 ile uğraşmalımıdır yoksa radikal kararlar verip doğrudan ARM CORTEX-M0 la mı başlamalı.

Selamlar

modernherakles

öncelikle güzel yazı için teşekürler ve devamını yazarımızdan bekliyoruz.
programlayıcı olarak bu philipsin kendisinin yazılımı var henüz deneme imkanı bulamadım ama speedyx hocam eint0 pininden nxplerin bunla proglandığını yazmış.

adres:flash magic tool utilility
If we hear, we forget; if we see, we remember; if we do, we understand – Confucius

Erol YILMAZ

PIC18 ile PIC24 ün arasındaki tek benzerlik üreticilerinin Microchip olmasıdır. birbirinden çok farklı serilerdir.

CLR

Alıntı yapılan: "arslan74"Merhaba,

ARM kullanıcılarına benim de bir sorun olacak. Yeni nesil ARM CORTEX-MX serileri var. Benim anladığım kadarıyla bunlar ARM7+ DSP karışımı bir ürün oluyor ve değişik uygulama alanına  göre  X ile belirtiğim yere numaralandırmışlar. CORTEX-M3, CORTEX-M1 ve CORTEX-M0 serileri var. CORTEX-M0 cok yeni cıkan bir ürün. Bunun asıl kullanım amacı standart 8 bit işlemcilerin yerini alması için geliştirildı. Düşük güç tüketimi ve 32 bit mimarisi ve basid kullanımı ile 8 bit işlemcileri tarihe gömecek gibi duruyor.

Bu yazdıklarım, Okuduğum çeşitli makalelerden edindiğim bilgilerdir. ARM kullanmış birilern bu konuda görüşlerini almak isterim.

Yani PIC18 den sonra PIC24 ile uğraşmalımıdır yoksa radikal kararlar verip doğrudan ARM CORTEX-M0 la mı başlamalı.

Selamlar

Merhaba,

Bence Arm Cortex Mx serisine geçmek lazım çünkü her türlü özellik bakımından PIC24 serisinden daha üstün, Mesela bir kaç tanesi,

Fiyat daha düşük,
Performans yüksek, (hız, asm komut parametleri çok seçenekli)
Matematiksel ve yüksek bitli işlemler çok daha iyi,
Asm kullanımı sıfır

PIC24 serisinin avantajları ise,
Bit seviyesinde işlem yapabilme (32bitlerde maskeleme ile ancak mümkün)
Remap özelllikleri ( bir özellik nerdeyse tüm pinlere atanabiliyor)
(arm işlemcilerde de var ama daha az pin arasında dolaşabiliyosun)

NXP'den alıntı : (8bit fiyatında 32bit performansı)

The ARM® Cortex™-M0 processor is the smallest, lowest-power and most energy-efficient ARM processor available. The exceptionally small silicon area, low power, and minimal code footprint of the processor achieves 32-bit performance at an 8-bit price point, bypassing the step to 16-bit devices.
 
100% C-coding including interrupt handlers and boot code to ease system development; Zero assembler code required
Knowledge and Experience are Power

SiVRiSiNEK

bu cortex-m0 m3 serisi çipleri rahatça temin edebiliyormuyuz?
nerelerden alınır?

CLR

Alıntı yapılan: "SiVRiSiNEK"bu cortex-m0 m3 serisi çipleri rahatça temin edebiliyormuyuz?
nerelerden alınır?

Eğer geliştirme için lazımsa, geliştirme boardu almanı tavsiye ederim, ebay'dan alabilirsin. 40-45$'a alabilirsin. STM32 board(cortex m3).
Cortex-M0 için henüz daha geliştirme boardu yok, NXP'den LPC1000 serisi
takip edebilirsin.

Üretim için ise, arrow veya empa ile temin edebilirsin.
Knowledge and Experience are Power

Analyzer

Selam,

Pic24 serisi ile çalışmadım ancak duyumlarıma göre yetenekli bir mcu. Arm çekirdekten şu an için memnunum. Benim kullandığım seri PCB dizayn ve diğer elemanların yerleşimi/kalitesi gibi konulara dikkat edilirse başarılı bir emi performansı var. Şu an piyasada "en iyi" diye bir kavram olduğuna inanmıyorum. Bu sebeple microchip serisi de seçilebilir, arm serisi de. Ancak eemkutay'ın pic24 eksi hanesine piyasada tek olma durumunu da ilave etmek isterim. Sonuçta Arm çekirdeğe sahip başka bir işlemciye çok çabuk kodu port ederken, farklı seri piclere dahi aktarırken sıkıntı yaşanabiliyor.

Analyzer
Üşeniyorum, öyleyse yarın!