Saya memiliki papan penemuan STM32 dan ingin dapat memprogramnya di Linux.
Apa cara termudah untuk melakukan ini?
Saya memiliki papan penemuan STM32 dan ingin dapat memprogramnya di Linux.
Apa cara termudah untuk melakukan ini?
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:
sudo apt-get install gcc-arm-none-eabi
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.
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
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
git clone git://github.com/snowcap-electronics/stm32-examples.git
cd stm32-examples
wget http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/stm32_f105-07_f2xx_usb-host-device_lib.zip
unzip stm32_f105-07_f2xx_usb-host-device_lib.zip
Beberapa perbaikan kode minor juga didokumentasikan, tetapi sebagian besar proyek harus bekerja dengan
make CROSS_COMPILE=/path/to/arm-2011.03/bin/arm-none-eabi-
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)
dan PINB::setLow()
atau PINB::setHigh()
semua sebagian besar dikompilasi secara inline karena templat C ++. Setupnya sangat bagus.
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.
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.
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.