Alat pengembangan ARM Cortex-M3?


36

Saya berencana untuk bermigrasi ke arsitektur NXP Cortex M3 dan saya agak bingung antara alat pengembangan yang ada.

Keil mahal dan saya tidak tahu apakah itu layak. Adakah yang telah mencoba beberapa kompiler dapat memberikan saran?

Saya menemukan kompiler ini http://www.code-red-tech.com/red-suite-2.php sepertinya bagus dan tidak mahal. Adakah yang mencobanya atau mengetahuinya dapat memberi saya lebih banyak info?


Ini adalah kompiler yang disertakan dengan papan LPCXpresso, dan menggunakan gcc dengan IDE Eclipse. Alat Rowley CrossWorks jauh lebih baik.
Leon Heller

2
Dengan cara apa mereka lebih baik? Saya bertanya karena saya memiliki papan LPCXpresso dan alat-alatnya tampaknya bekerja dengan baik, jadi saya bertanya-tanya bagaimana alat-alat lain lebih baik?
John Burton

Tidak bisakah kita membuat ini CW?
stevenvh

Sebagian besar kemungkinan harus dipertimbangkan kembali pada tahun 2012 karena Microsoft Visual Studio 2012 mendukung ARM sebagai target kelas 1.

Untuk proyek-proyek kecil, versi percobaan dari kompiler Keil gratis.
Simon Richter

Jawaban:


17

Saya telah bermain dengan STM32 (juga Cortex M3) akhir-akhir ini di waktu luang saya dan menggunakan distribusi CodeSourcery dari GCC, yang telah bekerja dengan cukup baik.

Seorang kolega yang telah bekerja dengan ARM micros secara profesional di masa lalu mengatakan kepada saya bahwa dia puas dengan rantai alat IAR, meskipun saya tidak tahu seperti apa biayanya atau bagaimana dukungan Cortex.


1
IAR adalah perusahaan yang mengkhususkan diri dalam kompiler sejauh yang saya tahu. Saya menggunakannya di tempat kerja dan mereka memiliki beberapa fasilitas, dan beberapa kelemahan. Saya menemukan dukungan mereka sangat bagus, kami menggunakan MSP430, tetapi mereka tampaknya menutupi setiap prosesor yang saya cari.
Kortuk

16

Saya menggunakan kompiler silang CodeSourcery (Lite) untuk Linux untuk memprogram Microcontrollers TI Stellaris . Mereka bekerja dengan Cortex-M3. Mereka sepenuhnya gratis, dengan binari untuk Windows dan Linux.

Ini resep singkat (Debian / Ubuntu) untuk dipasang:

Unduh toolchain (versi apa pun akan berhasil, tetapi saya menggunakan ini)

Instal Java Runtime Environment (untuk installer yang terkutuk)

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

Memasang

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

Tambahkan direktori cross compiler bin ke PATH Anda

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

Untuk memuat kode dan debug, Anda perlu OpenOCD dan gdb atau salah satu GUI.

Anda juga membutuhkan adaptor JTAG .


Saya juga menggunakan alat CodeSourcery di salah satu kelas saya, dengan kit dev Stellaris LM-3s6965. Wiki kami (tautan ke toolchain) ada di sini: claymore.engineer.gvsu.edu/egr326/… (Lihat juga petunjuk instalasi MacOS X di bawah ini.) Kit ini dilengkapi dengan demo alat GUI mereka yang dibatasi waktu, tetapi perintahnya alat garis tidak terbatas.
Kevin Vermeer

9

Saya sudah mulai menggunakan salah satunya (papan pengembang MBED). Poin penjualan besar bagi saya adalah bahwa saya dapat kode dalam C atau C ++, koneksi langsung ke USB dan lingkungan pengembangan on-line yang apik (tidak diperlukan instalasi alat lokal sama sekali!).

http://mbed.org/

Lima menit setelah membuka kotak saya punya program sampel blinky ('hello world' dari dunia emitted) menjalankan yang berikut ini:

#include "mbed.h"

DigitalOut myled(LED1);

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

Itu dia! Di atas adalah program yang lengkap!

Ini didasarkan pada ARM Cortex M3, cepat dan banyak memori untuk proyek tertanam (100mhz, 256k flash & 32k ram). Alat dev online memiliki perpustakaan yang sangat bagus dan banyak contoh dan ada forum yang sangat aktif. Banyak bantuan untuk menghubungkan perangkat ke MBED dll

Walaupun saya memiliki banyak pengalaman dengan embedded system (ARM 7/9, Renases M8 / 16/32, Coldfire, Zilog, PIC dll.) Saya masih menemukan ini sistem yang mudah untuk disegarkan dengan kemampuan yang serius.

Setelah awalnya bermain dengannya di papan tempat memotong roti dasar saya membeli papan dasar dari orang-orang ini: http://www.embeddedartists.com/products/lpcxpresso/xpr_base.php?PHPSESSID=lj20urpsh9isa0c8ddcfmmn207. Ini memiliki setumpuk perangkat I / O (termasuk OLED miniture dan accelerometer 3axis). Dari situs yang sama saya juga membeli salah satu papan prosesor LCPExpresso yang murah, lebih sedikit daya / memori daripada MBED tetapi sempurna untuk pekerjaan yang lebih kecil (masih memalu omong kosong prosesor PIC / Atmega). Papan dasar mendukung LCPExpresso dan MBED. Membeli papan prosesor LCPExpress juga memberi saya saya debugger JTAG terlampir dan envonment dev offline (kit Red Code GCC / Eclipse berbasis dev). Ini jauh lebih kompleks daripada lingkungan dev MBED online tetapi merupakan perkembangan logis setelah Anda memperoleh pengalaman dengan MBED.

Dengan mengacu pada poin asli saya bahwa pengontrol MBED jauh lebih mampu daripada pengontrol LPCExpresso TETAPI jauh lebih mudah untuk digunakan dan dipelajari.


Ada juga proyek gcc4mbed luar biasa milik Adam Green yang memungkinkan Anda mengkompilasi secara offline (dengan mengorbankan ukuran kode yang lebih besar): github.com/adamgreen/gcc4mbed
Kevin Chen

9

kode sumber asam yang baik, atau menggunakan emdebian. atau roll sendiri, itu sangat mudah kecuali jika Anda membutuhkan C atau pustaka gcc penuh maka itu masih bisa dilakukan tetapi sedikit lebih sulit. pada awalnya Anda tidak akan memerlukan kompiler thumb2, jempol akan melakukan apa yang Anda cari untuk toolchain yang Anda suka.

llvm adalah salah satu yang baik (gunakan dentang tidak llvm-gcc !!), saya tahu sisi lengan semakin baik sepanjang waktu, versi 27 menghasilkan kode lebih cepat daripada gcc saat ini untuk tes tertentu. Saya menemukan bug di sisi ibu jari ketika mengerjakan emulator ibu jari saya (thumbulator.blogspot.com) yang segera diperbaiki. Bagian terbaik tentang llvm adalah secara default kompiler silang, tanpa pengalaman kerja atau membangun tambahan. Dalam beberapa tahun ke depan saya melihat mereka memotong lebih dalam ke gcc dan melewati gcc oleh untuk kompilasi silang / tertanam.

Saya mencoba alat kode-merah sekali dengan papan lpcxpresso, hasil akhirnya adalah saya pasti tidak pernah menggunakan kode-merah dan saya berdebat apakah akan juga daftar hitam lpc. ymmv. Jika Anda harus menggunakan alat bayar saya akan pergi dengan keil hanya karena mereka dibeli dengan lengan dan bagian dari paket adalah kompiler rvct. Tentu saja kode sumber adalah rumah berbayar juga jika Anda tidak memenuhi batasan lite atau memilih untuk mendapatkan dukungan, karena gcc itu memiliki dukungan terbaik sejauh ini dari semua kompiler. Beberapa waktu yang lalu ketika saya dapat mencoba mereka metaware dan alat lengan menerbangkan gcc sejauh kualitas kode yang dihasilkan. gcc naik dan turun beberapa versi 3.x menghasilkan kode lebih baik dari 4.x, mereka tampaknya tidak membaik pada setiap rilis, tetapi mereka melakukannya atau mungkin kode sumber menambahkan dukungan thumb2 belum lama ini, dimana versi 3.x tidak Saya tidak punya.


If you have to use a pay for tool I would go with keil only because they were bought by arm- Sudahkah Anda mencoba kompiler Keil? Saya belum terkesan dengan alat Keil 8051 setidaknya. Mereka merasa seperti dinosaurus dibandingkan dengan kompetisi berbasis GCC atau suite LLVM / Dentang, IMHO.
Morten Jensen

8

Saya menggunakan perangkat lunak Rowley untuk pengembangan ARM dan MSP430:

http://www.rowley.co.uk

Ini luar biasa. Cortex-M3 didukung.


1
Saya mencoba versi percobaan dan saya pikir itu akan menjadi pilihan saya. itu lengkap didokumentasikan dengan baik dan tidak terlalu mahal (lisensi pribadi untuk $ 150)
mba7

Toolset Rowley luar biasa dan dukungannya luar biasa.
Radian


5

Saya sudah cukup sukses menggunakan rantai IAR compiler / debug untuk pengembangan ARM saya. Mereka menawarkan alat pengembangan yang relatif stabil lengkap dengan lingkungan C ++ Tertanam (yang tampaknya agak jarang). - Bergantung pada ukuran basis kode Anda, mereka juga menawarkan perangkat keras / lunak "KickStart Kits" dengan versi terbatas ukuran kode dari alat mereka.


4

IAR sangat baik, dan jika Anda melakukan proyek kecil ada edisi kickstart terbatas ukuran kode 32K gratis. Namun peningkatan ukuran agak mahal saya percaya. Mereka juga datang dengan banyak proyek contoh yang bagus, biasanya beberapa untuk setiap keluarga prosesor.


2
Ya, mereka memotong sekolah saya banyak, masih dalam ribuan setelah pemotongan harga 95%.
Kortuk

4

Saya menghabiskan beberapa hari terakhir mendapatkan toolchain GNU CodeSourcery yang sepenuhnya diatur untuk mikro EFM32G pada OS X. Itu sangat berharga. Dibandingkan dengan banyak debugger berbasis GUI yang pernah saya coba (kebanyakan berbasis Eclipse); Makefiles, GCC dan GDB adalah mimpi yang menjadi kenyataan; ditambah semuanya bekerja dari terminal Linux atau Mac saya.

Satu-satunya bagian yang menyebalkan adalah adaptor J-Link yang terpasang di papan tulis. Program GDBServer Windows dan Linux J-Link adalah sumber tertutup. Lebih buruk lagi, versi Linux JAUH lebih jauh di belakang. Jadi agar GDB berfungsi, saya harus menjalankan image Windows VMWare yang tujuan utamanya adalah menjalankan GDBServer (karena yang Linux rusak).

Oh dan di atas tidak berfungsi dengan benar, server GDB berbasis J-Link Linux mengikat ke 127.0.0.1 dan mendengarkan HANYA untuk paket dengan itu sebagai dest; jadi mengacaukan iptables dan meneruskan diperlukan untuk membuatnya terhubung dari mesin jarak jauh. Konyol; Segger perlu melakukan aksi bersama.


Saya setuju jlink adalah masalah besar di Linux, tapi saya pikir Anda bisa membuatnya bekerja menggunakan LD_LIBRARY_PATH. Anda juga dapat memperbaiki masalah alamat pengikatan, baik dengan menggunakan maju SSH, atau dengan menggunakan LD_PRELOAD atau serupa untuk membungkus panggilan jaringan dan mengubah alamat jaringan. Tapi itu menyedihkan ketika alat-alat yang mahal lebih sulit untuk dikerjakan daripada yang murah seperti ST-LINK di mana driver yang sepenuhnya terbuka telah direkayasa ulang.
Chris Stratton

4

Saya menggunakan QtCreator dan GNU Tools ARM Embedded. Bekerja dengan baik.

Keuntungan:

  • Benar-benar gratis (dan open source)
  • QtCreator adalah IDE C ++ modern yang hebat dengan penyelesaian kode kerja, hyperlink simbol, refactoring, dll.
  • QtCreator mendukung debugging bare metal (ya - Anda dapat menempatkan breakpoints, kode langkah dan memeriksa variabel secara grafis). (Membutuhkan tautan JTAG atau SWD ke MCU Anda, tetapi ini tidak sesulit yang saya kira.)
  • Bukan Eclipse atau berbasis Eclipse.

Kekurangan:

  • Dukungan Baremetal sangat baru dan saya memiliki beberapa masalah dengan itu - diatasi akhirnya dengan bantuan penulis yang sangat baik di milis QtCreator.
  • Mungkin sedikit lebih sulit untuk diatur daripada Keil atau kode merah.

Ketika semuanya sudah diatur dengan benar, saya dapat mengklik untuk membuat breakpoint dalam kode saya, dan kemudian klik tombol "debug". Ini akan mengkompilasi, mem-flash, mengeksekusi, dan menjeda breakpoint dalam waktu sekitar 5 detik (dan secara bersamaan membuat Anda marah jika Anda harus kembali ke Arduino "IDE").

Saya sedang mengerjakan tutorial tentang cara mengatur ini dengan chip ARM lain - nRF51822 berbasis Cortex-M0.


5
Mungkin perlu menambahkan sedikit lebih detail tentang apa yang Anda sukai, beberapa fitur bagus dll untuk membuat jawabannya lebih bermanfaat.
PeterJ

Bisakah Anda menawarkan garis besar?
Scott Seidman


1

Saya menggunakan arm-eabi-gcc dan toolchain yang menyertainya diinstal melalui script toolchain summon arm . Script mengatur lingkungan untuk melakukan pekerjaan logam pada ARM. Ini sumber bebas dan terbuka dan semua itu dan telah bekerja dengan baik bagi saya. Saya juga menggunakan IAR untuk ini, dan tentu saja lebih baik karena memungkinkan Anda melakukan lebih banyak debugging ramah dan untuk melakukan hal-hal dengan cara IDE, tetapi secara keseluruhan saya merasa lebih nyaman dengan gcc, jika tanpa alasan lain karena saya tidak harus membenarkan pengeluaran untuk siapa pun.

(Saya tidak pernah benar-benar mengetahui cara menggunakan gdb untuk apa pun, tetapi saya belum pernah benar-benar terbiasa menggunakan debugger atau memiliki satu tersedia, jadi saya tidak yakin apakah saya memenuhi syarat untuk menilai sedikit itu.)


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.