Template QBS untuk pemrograman mikrokontroler di QtCreator menggunakan contoh pengontrol Milander

Belum lama berselang, ia membantu pengembangan mikrokontroler dari satu perusahaan kecil yang dikenal - Milander. Lingkungan pengembangan Keil resmi. Saya tidak suka, tetapi prosesor ini didasarkan pada arsitektur perusahaan ARM lain yang kurang dikenal, yang berarti ada kompiler gcc untuk itu. Dan di mana ada gcc, QtCreator juga dapat digunakan sebagai IDE.

kasing logam keramik itu indah

Pendahuluan


Awalnya, tugasnya cukup sederhana. Temukan file yang Anda butuhkan untuk membangun proyek. Ambil proyek yang sudah dikerjakan di bawah stm32f407 dan proseskan dengan file. Namun, selama implementasi rencana sederhana seperti itu, ada keinginan untuk membuat proyek yang sedikit lebih menarik daripada yang diperkirakan sebelumnya.

Persiapan


Pertama, Anda perlu mengunduh kompilator dan debugger untuk mikrokontroler berdasarkan inti seri Cortex-M. Versi terbaru ada di sini [1] . Anda juga membutuhkan QtCreator, yang tidak malas dapat dikompilasi dari sumber, yang malas bisa sampai di sini [2] . Kami juga membutuhkan openocd untuk menginstal dan debugging mikrokontroler. [3] Kompiler GCC untuk Cortex-M di situs ARM [9]

Instal perangkat lunak yang ditentukan, serta semua dependensi yang diperlukan. Kemudian kami melanjutkan pengaturan lingkungan.

Mengatur QtCreator'a dalam gambar
Jika tidak diaktifkan, aktifkan dukungan bare metal di Bantuan -> Tentang Modul
Tambahkan kompiler

g ++



gcc



Tambahkan debugger gdb



Kami membuat profil debugging openocd, ini bukan penopang besar. Path ke file konfigurasi harus ditentukan absolut. File untuk setiap mikrokontroler berbeda, ini memperkenalkan ketidaknyamanan tertentu.



Pengaturan logam kosong



Dan letakkan semuanya dalam satu set



Perpustakaan Mikrokontroler


Pencarian sepintas di situs Milander tidak menghasilkan perakitan resmi perpustakaan untuk bekerja dengan periferal dan inti mikrokontroler. Perakitan mendukung gcc dan terletak di github [4] . Perakitan pergi ke proyek selesai untuk stm32f407 cukup mudah, dan setelah memperbaikinya di beberapa tempat, itu sudah dengan senang hati bersemangat untuk mem-flash mikrokontroler. Mengedit file konfigurasi openocd dan sekarang semuanya berkedip. Sedikit lagi pekerjaan tukang kunci dan debugging sudah berfungsi. Dan sepertinya itu saja - kemenangan mudah. Tetapi perpustakaan mendukung beberapa mikrokontroler. Dan mikrokontroler pada inti yang berbeda juga menggunakan perpustakaan periferal yang berbeda. Segera muncul ide untuk membuat satu proyek sehingga Anda dapat dengan mudah memilih mikrokontroler yang diinginkan, dan lingkungan itu sendiri akan memilih perpustakaan inti dan periferal yang diperlukan. Ide ini datang kepada saya pada saat saya menguasai stm32f407. Kesempatan untuk merealisasikan ide yang agak menarik ini tidak bisa dilewatkan.

Beberapa malam memilih di perpustakaan dan qbs [5] memberikan hasil positif. Dimungkinkan untuk mengkonfigurasi kompilasi untuk mikrokontroler berikut: MDR1901VC1T (19011), MDR1986VE1T (1986 BE1T), MDR1986VE3 (1986 BE3), MDR1986BE4 (1986 BE4x), MDR1986VE8T (1986 BE8x), MDR1986VE9T Meskipun deskripsi pustaka sumber tidak mendukung MDR1986VE8T, ada bagian dari pustaka inti dan file pustaka periferal. Beberapa file header yang ditemukan di repositori ARM hilang [6] .

Tugas akhir


Hasilnya adalah template yang agak sederhana yang memungkinkan Anda untuk menulis proyek untuk beberapa mikrokontroler. Kebohongan template di github [7] . Pustaka sumber telah mengalami sejumlah perubahan kosmetik. Meskipun saya ingin mempertahankan kompatibilitas dengan proyek asli, saya harus memotong [8] dan kehilangan kompatibilitas, tetapi ini adalah biaya untuk fleksibilitas. Anda dapat mengunduh proyek sebagai berikut.

git clone https://github.com/WicRus/emdr1986x-std-per-lib-qbs.git --recursive 

Anda juga dapat mengkloning proyek langsung dari QtCreator dengan menentukan alamat repositori dan mencentang secara Rekursif.

Berkembang biak


Hasil utama adalah template universal dengan dukungan untuk beberapa mikrokontroler dengan berbagai perpustakaan inti dan periferal. Namun, ada sejumlah poin yang harus diperhatikan:

  • Itu mungkin untuk memeriksa firmware dan debugging hanya pada MDR1986VE1T.
  • File konfigurasi openocd target hanya ditemukan untuk MDR1986VE1T dan MDR1986VE9x. Untuk pengontrol lainnya, Anda perlu mengambil atau menulis sendiri di suatu tempat.
  • Perpustakaan untuk MDR1986VE8T dikompilasi tanpa banyak pemahaman tentang masalah ini. Perlu untuk memeriksa operasi yang benar.
  • Pustaka sumber telah banyak berubah. Kemungkinan menggabungkan masalah.
  • Ketika membangun untuk MDR1901VC1T, MDR1986BE4, MDR1986VE9x, peringatan dikeluarkan tentang pustaka kernel yang sudah usang. Kita perlu memperbarui pustaka kernel dengan analogi dengan MDR1986VE8T, dan kemudian memeriksa operasi yang benar.
  • Fitur membuat konfigurasi openocd. Untuk setiap jenis mikrokontroler individu, Anda mungkin memerlukan kit build terpisah di QtCreator.

Referensi

Perhatian, tautan terbuka di jendela ini.

0. Dasar untuk situs KDPV Milander
1. https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
2. https://www.qt.io/download-qt-installer
3. http://openocd.org
4. https://github.com/eldarkg/emdr1986x-std-per-lib
5. https://doc.qt.io/qbs/
6. https://github.com/ARM-software/CMSIS_5
7. https://github.com/WicRus/emdr1986x-std-per-lib-qbs
8. https://github.com/WicRus/emdr1986x-std-per-lib
9. https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
Riwayat suntingan.
09/17/19 Menambahkan tautan ke GNU Arm Embedded Toolchain.

Source: https://habr.com/ru/post/id467455/


All Articles