Saya memiliki papan penemuan STM32 dan ingin dapat memprogramnya di Linux.
Apa cara termudah untuk melakukan ini?
linux
stm32
development
development-tools
Gordon Williams
sumber
sumber
Jawaban:
Cara mudah untuk memprogram dan men-debug papan STM32 Discovery (atau STM32 menggunakan programmer ST-Link) adalah dengan menggunakan proyek 'stlink' https://github.com/texane/stlink (namun OpenOCD juga tampaknya populer)
ST Nucleo board juga muncul sebagai perangkat flash USB, jadi bahkan tidak perlu
stlink
- cukup salin file ke sana.Ada beberapa halaman bagus tentang cara mengembangkan untuk penemuan STM32 di Linux, seperti http://gpio.kaltpost.de/?page_id=131 dan http://torrentula.to.funpic.de/2012/03/22/ pengaturan-stm32f4-arm-development-toolchain / dan http://jethomson.wordpress.com/2011/11/17/getting-started-with-the-stm32f4discovery-in-linux/
Namun saya menemukan tautan terakhir yang paling berguna. Ini menunjukkan bagaimana membangun proyek STM32 ST apa adanya - Satu-satunya perubahan adalah menambahkan Makefile-nya, yang sepertinya solusi sempurna.
Pada versi terbaru dari Ubuntu, ada paket yang dapat Anda instal yang berisi kompiler ARM:
Perhatikan bahwa prosesor semuanya sedikit berbeda. STM32F0..4 semuanya akan memerlukan flag compiler yang berbeda, dan skrip linker akan sedikit berbeda untuk masing-masing (walaupun hanya karena perubahan RAM dan ukuran Flash).
Sunting: jika Anda ingin memulai dengan sangat cepat, Anda juga dapat melihat http://www.espruino.com . Ini adalah penerjemah JavaScript yang berjalan pada STM32 itu sendiri, jadi setelah Anda memasang 'stlink' sehingga Anda dapat mem-flash ke papan, Anda dapat mengunduh gambar dari situs itu, mem-flash-nya, dan kemudian terhubung dengan aplikasi terminal dan mulai pemrograman.
sumber
Jika Anda lebih menyukai editor teks dan Makefiles daripada menggunakan GUI, Anda bisa melakukan:
Bawa proyek Anda ke dewan. Baik digunakan
Kode dalam editor teks dan gunakan alat baris perintah. Tutorial ini akan memberikan banyak tips.
Nikmati
sumber
Eclipse , GCC , dan OpenOCD adalah satu toolchain. Ini direkomendasikan oleh EMCU-IT dan ada informasi tambahan di sini . Halaman-halaman itu juga merekomendasikan penggunaan RTOS seperti FreeRTOS.org , tetapi itu terserah Anda.
Dan untuk bantuan dengan mengkompilasi contoh STM32 di Linux buka di sini . Tautan itu menunjuk ke file makefile untuk contoh-contoh yang bisa dipanggil
Beberapa perbaikan kode minor juga didokumentasikan, tetapi sebagian besar proyek harus bekerja dengan
sumber
Saya telah sukses dengan https://github.com/JorgeAparicio/bareCortexM (lihat juga posting blog yang terhubung). Saya yakin bahwa saya dapat melakukan langkah-tunggal melalui kode atau menelusuri memori perangkat daripada memasukkan pernyataan debugging dalam kode saya atau menebak apa yang terjadi di dalam chip.
Proyek bareCortexM adalah template Eclipse untuk dikembangkan dengan seri Cortex M, khususnya STM32, dalam C ++ tanpa OS. Ini dikonfigurasi untuk menggunakan openocd, gcc, dan memiliki skrip untuk flash dan debug ke beberapa target termasuk beberapa papan penemuan. Dengan mengikuti petunjuk dan menginstal plugin Eclipse yang direkomendasikan, saya dapat menggunakan STM32VLDISCOVERY saya di Ubuntu.
Seperti yang disarankan, saya telah menggabungkan templat gerhana dengan pustaka templat libstm32pp C ++ penulis yang sama untuk perangkat keras STM32. libstm32pp menyediakan pengganti yang sangat lengkap untuk CMSIS dan driver STM32 yang sering dikritik dengan model pemrograman yang memungkinkan Anda mengatakan hal-hal seperti
PB10::setMode(gpio::cr::GP_OPEN_DRAIN_2MHZ)
danPINB::setLow()
atauPINB::setHigh()
semua sebagian besar dikompilasi secara inline karena templat C ++. Setupnya sangat bagus.sumber
Mungkin itu akan berguna bagi seseorang: artikel pendek saya (tentang bahasa Rusia) dan proyek sederhana . Semua ada di linux dan tanpa hal-hal yang tidak perlu seperti gerhana.
Perpustakaan diambil dari situs web ST, makefile - dari salah satu dari banyak contoh GPL di internet.
sumber
Berikut ini adalah proyek template yang kecil namun inovatif untuk mulai cepat menggunakan STM32F0 Discovery board di Linux atau OS lainnya:
https://github.com/dobromyslov/stm32f0-chibios-template
Perhatikan bahwa proyek ini menggunakan ChibiOS - sistem operasi waktu nyata sumber bebas dan terbuka sehingga bukan implementasi yang sederhana dari awal.
sumber
Saya menggunakan vim dan arm-none-eabi-gcc bersama dengan semua perangkat dev linux yang biasa. Linux menurut pendapat saya lingkungan pengembang yang unggul untuk pekerjaan tertanam sejauh ini. Untuk debugging saya menggunakan stlink dan arm-none-eabi-gdb.
sumber
Pertimbangkan platformio . Jika Anda merasa nyaman dengan command-line, Anda akan menemukan bahwa platformio memudahkan proses pengembangan.
pio init
dapat digunakan untuk mengatur proyek.pio run
memanfaatkan toolchain untuk dikompilasi.pio run --target upload
mengirim kode ke perangkat. Platformio menangani pengunduhan komponen rantai alat, pustaka, dll. Sesuai kebutuhan.sumber