ARM Cortex-M3 geliştirme araçları?


36

NXP Cortex M3 mimarisine geçmeyi planlıyorum ve mevcut geliştirme araçları arasında biraz kayboluyorum.

Keil pahalıdır ve buna değip değmediğini bilmiyorum. Derleyici deneyen herkes tavsiye verebilir mi?

Bu derleyiciyi http://www.code-red-tech.com/red-suite-2.php buldum iyi ve pahalı değil gibi görünüyor. Deneyen veya tanıyan herkes bana daha fazla bilgi verebilir mi?


LPCXpresso panoları ile birlikte verilen derleyicidir ve Eclipse IDE ile birlikte gcc kullanır. Rowley CrossWorks araçları çok daha iyi.
Leon Heller

2
Hangi açıdan daha iyiler? Soruyorum çünkü LPCXpresso kartım var ve araçlar iyi çalışıyor gibi görünüyor, bu yüzden diğer araçların nasıl daha iyi olduğunu merak ediyorum?
John Burton,

Bunu bir CW yapamaz mıyız?
stevenvh

Microsoft Visual Studio 2012, ARM'i 1. sınıf hedef olarak desteklediğinden, olasılıkların çoğu yeniden gözden geçirilmelidir.

Küçük projeler için Keil derleyicisinin deneme sürümü ücretsizdir.
Simon Richter

Yanıtlar:


17

Son zamanlarda boş zamanlarımda bir STM32 (aynı zamanda Cortex M3) ile oynuyorum ve gayet iyi sonuç veren GCC'nin CodeSourcery dağıtımını kullanıyorum.

Geçmişte ARM mikroskobu ile profesyonel olarak çalışan bir meslektaşı, IAR alet zincirinden memnun olduğunu söyledi, ancak ne gibi bir maliyet olduğunu ya da Cortex'in desteğinin nasıl olduğunu bilmiyorum.


1
IAR, söyleyebildiğim kadarıyla derleyiciler konusunda uzmanlaşmış bir şirkettir. Onları işyerinde kullanıyorum ve bazı avantajları ve birkaç dezavantajı var. Desteklerinin oldukça mükemmel olduğunu düşünüyorum, MSP430'u kullanıyoruz, ancak baktığım her işlemciyi kapsıyorlar.
Kortuk

16

TI Stellaris Mikrodenetleyicilerini programlamak için Linux için CodeSourcery (Lite) çapraz derleyicilerini kullanıyorum . Herhangi bir Cortex-M3 ile çalışırlar. Tamamen ücretsizdirler, Windows ve Linux için ikili dosyalar.

Yüklenecek kısa bir tarif (Debian / Ubuntu):

Alet zincirini indirin (herhangi bir sürüm işe yarar, ancak bunu kullanırım)

Java Runtime Environment'ı yükleyin (lanet olası yükleyici için)

sudo apt-get install sun-java6-jre ia32-libs

Yüklemek

chmod 755 arm-2009q3-68-arm-none-eabi.bin
./arm-2009q3-68-arm-none-eabi.bin -i console

PATH'inize çapraz derleyici kutusu dizini ekleyin

echo 'export PATH=$PATH:~/CodeSourcery/Sourcery_G++_Lite/bin/' >> ~/.bashrc 
. ~/.bashrc 

Kod ve hata ayıklama yüklemek için, OpenOCD ve gdb veya GUI'lerden birine ihtiyacınız olacaktır .

Ayrıca bir JTAG adaptörüne de ihtiyacınız olacak .


Ayrıca CodeSourcery araçlarını, sınıflarımdan birinde, Stellaris LM-3s6965 geliştirme kiti ile birlikte kullanıyorum. Wiki'miz ( alet zincirine bağlantı) burada: claymore.engineer.gvsu.edu/egr326/… (Aşağıdaki MacOS X kurulum talimatlarına bakınız.) Kit, GUI araçlarının zaman sınırlı bir demosuyla birlikte gelir; Satır araçları sınırlı değildir.
Kevin Vermeer

9

Bunlardan birini kullanmaya başladım (MBED geliştirici kartı). Benim için en büyük satış noktalarından biri, C veya C ++ kodlarını, USB ile kolay bağlantıyı ve kaygan bir çevrimiçi geliştirme ortamını kodlayabilmekti (yerel bir alet kurulumuna gerek yok!).

http://mbed.org/

Açılış kutusundan beş dakika sonra, aşağıdakileri uygulayan örnek bir blinky programım (yerleşmiş dünyanın 'merhaba dünyası) vardı:

#include "mbed.h"

DigitalOut myled(LED1);

int main()
{
    while(1)
    {
        myled = 1;
        wait(0.2);
        myled = 0;
        wait(0.2);
    }
}

Bu kadar! Yukarıdaki program tam!

ARM Cortex M3'ü temel alır, gömülü projeler için hızlı ve bol miktarda bellek (100mhz, 256k flash ve 32k ram). Çevrimiçi dev araçlarının çok iyi bir kütüphanesi ve çok sayıda örneği ve çok aktif bir forumu var. Cihazları MBED'e vb. Bağlamak konusunda çok fazla yardım

Gömülü sistemler konusunda çok fazla deneyimim olsa da (ARM 7/9, Renases M8 / 16/32, Coldfire, Zilog, PIC vb.) Ciddi bir kabiliyete sahipken üstesinden gelmek için canlandırıcı kolay bir sistem buldum.

Başlangıçta temel bir breadboard üzerinde oynadıktan sonra şu adamlardan bir taban tahtası aldım: http://www.embeddedartists.com/products/lpcxpresso/xpr_base.php?PHPSESSID=lj20urpsh9isa0c8ddcfmmn207. Bu bir yığın G / Ç cihazına sahiptir (bir miniture OLED ve 3 eksenli bir ivmeölçer dahil). Aynı siteden, ucuz, MBED'den daha az güç / bellek olan fakat daha küçük işler için mükemmel olan (hala PIC / Atmega işlemcilerin işini kıran) LCPExpresso işlemci kartlarından birini de satın aldım. Ana kart hem LCPExpresso hem de MBED'i destekliyor. Ayrıca LCPExpress işlemci kartını satın almak bana ekli bir JTAG hata ayıklayıcı ve çevrimdışı bir geliştirme ortamı (Code Red'in GCC / Eclipse tabanlı geliştirme kiti) verdi. Bu, çevrimiçi MBED dev ortamından çok daha karmaşık ancak MBED ile deneyim kazandıktan sonra mantıklı bir ilerleme.

Orijinal noktama göre, MBED kontrol ünitesinin LPCExpresso kontrol ünitesinden çok daha fazla yetenekli olduğuna rağmen, BUT kullanımı ve öğrenmesi çok daha kolaydır.


Adam Green'in çevrimdışı derlemenizi sağlayan mükemmel gcc4mbed projesi de var (daha büyük kod boyutu pahasına): github.com/adamgreen/gcc4mbed
Kevin Chen

9

code sourcery lite iyidir, veya emdebian kullanın. ya da kendi yuvarlayın, tam bir C ya da gcc kütüphanesine ihtiyaç duymazsanız oldukça kolaydır, o zaman hala yapılabilir ancak biraz daha zordur. ilk başta thumb2 yetenekli bir derleyiciye ihtiyacınız olmayacak, başparmak istediğiniz gibi bir alet zinciri arar.

llvm bir tane daha iyidir (clang'ı llvm-gcc kullanmayın !!), kol tarafının her zaman daha iyi olduğunu biliyorum, sürüm 27 belirli bir test için mevcut gcc'den daha hızlı kod üretti. Hemen düzeltilen başparmak emülatörümde (thumbulator.blogspot.com) çalışırken başparmak tarafında bir hata buldum. Llvm ile ilgili en iyi bölüm, varsayılan olarak bir çapraz derleyici, ek bir iş ya da inşaat deneyimi gerektirmemesidir. Önümüzdeki birkaç yıl içinde çapraz derleme / gömme için gcc'yi daha derin kestiklerini ve gcc'yi geçtiklerini görüyorum.

Kırmızı kod aracını bir kez lpcxpresso kartıyla denedim, sonuçta kesinlikle kırmızı kod kullanmayacağım ve lpc'nin kara liste olup olmayacağını tartışıyorum. YMMV. Eğer alet için bir ücret kullanmak zorundaysanız, sadece kol ile satın alındıklarından paketin bir parçası olacaktım ve paketin bir kısmı rvct derleyicisi. Tabii ki, kod kaynak kullanımı, eğer lite kısıtlamalarını karşılamıyorsanız veya destek almayı tercih ederseniz, gcc olduğu için tüm derleyiciler tarafından en iyi desteğe sahipse, ücretli bir evdir. Çok uzun zaman önce onlara metaware denememiştim ve kol araçları, üretilen kodun kalitesi kadarıyla gcc'yi mahvetti. gcc, 3.x’in bazı sürümlerinin 4.x’ten daha iyi kod ürettiğini ve aşağı indiğini gösteriyor, her sürümde iyileştirici görünmüyorlar, ancak çok kısa bir süre önce 3.x sürümlerinde olmayan sourcery kodu eklendi. / olmaz.


If you have to use a pay for tool I would go with keil only because they were bought by arm- Keil derleyicilerini denedin mi? En azından Keil 8051 aletlerinden hiç etkilenmedim. GCC temelli rekabet veya LLVM / Clang süiti IMHO ile karşılaştırıldığında dinozorlar gibi hissediyorlar.
Morten Jensen,

8

Rowley yazılımını ARM ve MSP430 geliştirme için kullanıyorum:

http://www.rowley.co.uk

Bu mükemmel. Cortex-M3 desteklenmektedir.


1
Deneme sürümünü deniyorum ve bunun benim seçimim olacağını düşünüyorum. Tamamen iyi belgelenmiştir ve çok pahalı değildir (150 $ 'lık kişisel lisans)
mba7

Rowley araç takımı harika ve destek mükemmel.
Radian


5

ARM gelişimim için IAR derleyici / hata ayıklama zincirlerini kullanarak oldukça başarılı oldum . Bir Gömülü C ++ ortamı ile tamamlanan nispeten kararlı geliştirme araçları sunarlar (bu biraz nadir görülür). - Kod tabanınızın boyutuna bağlı olarak, aynı zamanda araçlarının kod boyutu sınırlı sürümleriyle harika donanım / yazılım "KickStart Kitleri" de sunar.


4

IAR mükemmel ve küçük projeler yapıyorsanız ücretsiz 32K kod boyutunda sınırlı bir hızlı başlangıç ​​sürümü var. Boyut yükseltmeleri ancak biraz pahalı inanıyorum. Ayrıca, her işlemci ailesi için genellikle birkaç tane iyi örnek projeyle birlikte gelirler.


2
Evet, okulumu iyi bir şekilde kestiler,% 95'lik bir fiyat indiriminin ardından hala binlerce kişiydi.
Kortuk

4

Geçtiğimiz birkaç gün, OS X'te EFM32G mikro için tamamen ayarlanmış olan CodeSourcery GNU alet zincirini almakla geçirdim. Buna değdi. Ben denediğim GUI tabanlı hata ayıklayıcıların çoğuyla karşılaştırıldığında (çoğunlukla Eclipse tabanlı); Makefiles, GCC ve GDB bir hayalin gerçekleşmesidir; Ayrıca hepsi Linux veya Mac terminalimden çalışır.

Emilen tek parça, panoya yerleştirilmiş J-Link adaptörüdür. J-Link'in Windows ve Linux GDBServer programı kapalı kaynak kodludur. Daha da kötüsü, Linux sürümü daha da geride. Bu yüzden, GDB'nin çalışması için, tek amacı GDBS Sunucu'yu çalıştırmak olan bir Windows VMWare görüntüsü çalıştırmak zorundayım (çünkü Linux'un kırılması).

Oh ve düzgün çalışmamakla birlikte, J-Link'in Linux tabanlı GDB sunucusu 127.0.0.1'e bağlanır ve SADECE dest destekli paketleri dinler; bu yüzden uzak bir makineden bağlanmasını sağlamak için iptables ve forwarding ile uğraşmak gerekir. Gülünç; Segger, hareketlerini bir araya getirmeli.


Jlink’in Linux’ta büyük bir acı olduğunu kabul ediyorum, ancak LD_LIBRARY_PATH kullanarak çalışmasını sağlayabileceğinizi düşünüyorum. Ayrıca, bir SSH ileri kullanarak veya LD_PRELOAD kullanarak ya da ağ aramalarını sarmak ve ağ adresini değiştirmek için LDEGRELOAD veya benzeri bir adres kullanarak ciltleme adresini çözebilirsiniz. Ancak, pahalı olan takımların, tamamen açık sürücülerinin tersine mühendislik uygulandığı ST-LINK gibi ucuz olanlarla çalışmak zor olsa da, çok üzücü.
Chris Stratton,

4

QtCreator ve GNU Tools ARM Embedded kullanıyorum. İyi çalışıyor.

Avantajları:

  • Tamamen ücretsiz (ve açık kaynak kodlu)
  • QtCreator, çalışma kodunun tamamlanması, sembol köprüleri, yeniden düzenleme vb. İle büyük ve modern bir C ++ IDE'dir.
  • QtCreator, çıplak metal hata ayıklamasını destekler (evet - kesme noktalarını grafiksel olarak yerleştirebilir, adım kodu ve değişkenleri inceleyebilirsiniz). (MCU'nuza JTAG veya SWD bağlantısı gerektirir, ancak bu düşündüğüm kadar zor değildi.)
  • Eclipse veya Eclipse tabanlı değil.

Dezavantajları:

  • Baremetal desteği çok yeni ve onunla ilgili birkaç sorunum oldu - sonunda QtCreator postalama listesindeki yazarın mükemmel yardımı ile üstesinden gelin.
  • Belki Keil’den kurmak ya da kırmızılaştırmaktan biraz daha zor.

Her şey doğru ayarlandığında, kodumda bir kesme noktası oluşturmak için tıklayabilir ve ardından "hata ayıklama" düğmesini tıklatabilirim. Kesme noktasında yaklaşık 5 saniye içinde derler, yanıp söner, yürütülür ve duraklatılır (ve aynı zamanda Arduino "IDE" ye geri dönmek zorunda kalırsanız aynı anda öfkeye neden olur).

Cortex-M0 tabanlı nRF51822 - Bu başka bir ARM çip ile nasıl kurulacağı konusunda bir öğretici üzerinde çalışıyorum.


5
Muhtemelen neyi beğeneceğinize dair biraz daha detay eklemeye değer, birkaç iyi özellik vb.
Peter

Kaba bir taslak sunabilir misiniz ??
Scott Seidman


1

Arm-eabi-gcc ve onunla birlikte gelen toolchain'i summon arm toolchain betiği aracılığıyla kullanıyorum . Senaryo ARM'de çıplak metal işi yapmak için ortamı ayarlar. Özgür ve açık kaynağı ve hepsi ve benim için güvenilir bir şekilde çalıştı. Ayrıca IAR'ı bunun için kullandım ve kesinlikle daha iyi hata ayıklama yapmanıza ve IDE yolunda işler yapabilmenize izin vermesi kesinlikle daha iyi, ancak genel olarak, eğer başka bir neden olmasaydı gcc ile daha rahat hissediyorum masrafı kimseye haklı göstermek zorunda değilsiniz.

(Gdb'yi hiçbir şey için nasıl kullanacağımı hiç anlamadım, ancak bir hata ayıklayıcısını kullanmaya ya da zaten bir tane kullanılabilir duruma gelmeye hiç alışmadım, bu yüzden o parçayı yargılamaya yetkim olup olmadığından emin değilim.)


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.