Saya akan mulai dengan pengembangan ARM (setelah 2 tahun AVR) dan telah mengambil papan STM DISCOVERY dengan mikroprosesor stm32f4 di atasnya.
Saya telah memutuskan untuk menggunakan eclipse + ARM gcc karena saya tidak suka batas kode pada Keil dan saya tidak punya uang untuk mendapatkan versi berbayar.
Mengikuti tutorial saya telah menginstal eclipse bersama dengan alat ARM gcc + openocd + make utils dll.
Pertanyaan saya adalah tentang plugin 'paket'. Seperti setiap pemula, saya bingung apakah harus menggunakan STM HAL baru atau SPL lama.
Pemahaman saya adalah bahwa HAL telah mengimplementasikan abstraksi ke tingkat di mana ia dapat disebut sebagai Arduino yang setara untuk lengan. SPL di sisi lain hanya menyediakan abstraksi yang cukup untuk membuat pengkodean lebih cepat tetapi Anda masih harus berurusan dengan level chip.
Dengan pemahaman ini saya ingin tetap menggunakan SPL untuk memahami hal-hal yang lebih baik daripada menggunakan HAL.
Yang ingin saya ketahui adalah, apakah menggunakan paket untuk STM secara implisit memaksa saya untuk menggunakan HAL? Jika demikian, dapatkah seseorang mengarahkan saya tentang cara menggunakan SPL dengan pengaturan saya?
Jawaban:
SPL, seperti yang saya lihat, tidak ada hubungannya dengan IDE apa yang Anda gunakan. Anda cukup memasukkan modul yang relevan (mis. Stmf4xx_dma.c dan stmf4xx_dma.h) dalam proyek Anda dan menggunakan fungsi-fungsi yang diekspos (dan dijelaskan dengan sangat baik) dalam file .c dan .h. Sebenarnya saya sudah belajar tentang stmf411 nucleo dengan gcc, openocd dan SPL hanya dengan menggunakan command prompt windows; tidak ada IDE. Paket dalam gerhana mungkin akan memaksa Anda untuk menggunakan HAL (karena di dalam folder 'Paket' yang diunduh untuk gerhana, saya hanya melihat modul HAL).
HAL itu sendiri IMO tampaknya jauh lebih berlapis daripada yang diperlukan. Sedangkan mengakses register secara langsung akan melelahkan dan sulit dibaca. SPL sepertinya tepat. clive1, guru di forum st.com, juga lebih suka SPL daripada HAL. Inilah pertanyaan saya di forum itu ... mungkin bermanfaat.
Butuh bantuan dengan USART di Nucleo stmf411
sumber
Saya tidak punya pengalaman dengan HAL, tetapi menggunakan SPL berkali-kali untuk menghemat waktu saya. Menurut pendapat saya, Komunitas target prosesor Tertanam ini adalah 2 grup: Grup pertama yang tidak tertarik untuk terlibat dengan lapisan perangkat keras. Pemrogram perangkat lunak, penggemar hobi dan Arduino, penyembah Raspberry. jika Anda berada di grup ini tampaknya HAL adalah pilihan yang baik untuk Anda. Detik yang berasal dari komunitas elektronik dan perangkat keras, yang lebih suka
untuk
untuk menyalakan LED dan ingin tahu apa yang mereka lakukan pada dasarnya. maka jika Anda memiliki dalam grup ini dan memiliki cukup waktu untuk membaca manual referensi dan manual pemrograman MCU Anda mungkin mendaftar pemrograman level adalah pilihan lain. tetapi jika Anda ingin memutuskan antara hanya opsi di atas 2: HAL memiliki masa depan yang lebih baik karena dukungan ST tetapi SPL adalah cara yang lebih mudah untuk memahami pemula baru. Mungkin ini dapat membantu http://www.eevblog.com/forum/microcontrollers/stm32-and-their-hal-library/
sumber
Dapatkan IDE ini: System Workbench for STM32 - gratis, berdasarkan Eclipse dan memiliki arm-gcc dan openocd dalam satu paket.
Dan tentang perpustakaan: selain SPL dan HAL sekarang ada LL. Masing-masing memiliki beberapa kelebihan dan kekurangan, dan Anda harus memilih apa yang Anda butuhkan. Dan seperti yang saya mengerti , semuanya memiliki status eksperimental untuk ST. Di bawah nilai saya untuk masing-masing:
Deskripsi singkat untuk nilai saya:
>_<
, semua fungsi untuk TIM + DMA diimplementasikan untuk menulis ulang register TIM dan tidak ada yang lain ...)Untuk sedikit merehabilitasi HAL: ia memiliki satu keuntungan besar bagi pemula - itu disediakan oleh STMCubeMX.
EDIT:
Saya lupa tentang libopencm3 - itu perpustakaan alternatif. Saya belum menggunakannya.
sumber