Bootloader yang dapat disesuaikan untuk mikrokontroler STM32. Proyek ini mencakup demonstrasi untuk berbagai perangkat keras bagaimana melakukan pemrograman dalam aplikasi firmware yang terletak di kartu SD eksternal dengan sistem file FAT32.
Setiap contoh menggunakan pustaka bootloader yang sama yang terletak di folder lib/stm32-bootloader . Contohnya terletak di folder projects dan mereka datang dengan file ReadMe yang terpisah dan berdedikasi dengan deskripsi terkait dengan implementasi spesifik itu.
UPDATE: Contoh STM32L496-Discovery mendukung menyusun dan membangun proyek dengan GNU Arm Embedded Toolchain (ARM GCC) di luar kotak, di samping IAR Ewarm. Lihatlah proyek ReadME untuk informasi lebih lanjut.
Silakan merujuk ke https://akospasztor.github.io/stm32-bootloader untuk dokumentasi lengkap kode sumber bootloader.
Repository
├── docs
├── drivers
│ ├── CMSIS
│ └── STM32L4xx_HAL_Driver
├── lib
│ ├── fatfs
│ └── stm32-bootloader
└── projects
├── STM32L476-CustomHw
├── STM32L496-CustomHw
└── STM32L496-Discovery
Folder docs berisi dokumentasi yang dihasilkan dari kode sumber bootloader dan file statis terkait dokumentasi lainnya.
Folder drivers berisi standar antarmuka perangkat lunak CMSIS (Cortex Microcontroller) serta driver HAL (Lapisan Abstraksi Perangkat Keras) dari ST.
Kode sumber bootloader dan file header yang sesuai dapat ditemukan di folder lib/stm32-bootloader . Selain itu, folder lib berisi pustaka FATFS juga.
Berbagai demonstrasi berada di folder projects . Setiap contoh proyek berisi folder include dan source di mana header dan file sumber berada. File khusus kompiler dan SDK terletak di subfolder masing-masing. Selain itu, setiap contoh proyek memiliki file readme khusus yang menjelaskan fungsinya secara rinci.
Repositori ini berisi contoh -contoh berikut.
| Mikrokontroler | Perangkat keras | Jalur proyek |
|---|---|---|
| STM32L476VG | Kebiasaan | Proyek/STM32L476-CustomHW |
| STM32L496VG | Kebiasaan | Proyek/STM32L496-CustomHW |
| STM32L496AG | 32L496GDiscovery | Proyek/STM32L496-Discovery |
Bootloader dapat dengan mudah disesuaikan dan disesuaikan dengan perangkat keras dan lingkungan yang diperlukan, IE untuk melakukan pembaruan firmware di berbagai antarmuka atau bahkan untuk mengimplementasikan pembaruan over-the-air (OTA) jika perangkat keras menggabungkan modul komunikasi nirkabel. Untuk melakukan pemrograman dalam aplikasi yang berhasil, urutan berikut harus disimpan:
Bootloader_Init() .Bootloader_Erase() .Bootloader_FlashBegin() .Bootloader_FlashNext() . Prosedur pemrograman membutuhkan 8 byte data (kata ganda) untuk diprogram sekaligus ke dalam flash. Fungsi ini secara otomatis meningkatkan alamat tempat data sedang ditulis.Bootloader_FlashEnd() .Gambar aplikasi harus dalam format biner. Jika verifikasi checksum diaktifkan, biner harus menyertakan nilai checksum di akhir gambar. Saat membuat gambar aplikasi, checksum harus dihitung di seluruh gambar (kecuali area checksum) dengan parameter berikut:
Catatan Penting :
system_stm32xxxx.c secara default. Ini harus dinonaktifkan (bootloader dapat dikonfigurasi untuk melakukan relokasi tabel vektor sebelum lompatan) atau secara manual mengatur register offset tabel vektor (VTOR) ke nilai offset yang sesuai yang merupakan alamat mulai dari ruang aplikasi. Untuk informasi lebih lanjut, silakan merujuk ke [1]. Bootloader dapat dikonfigurasi secara luas di file bootloader.h . File ini mencakup komentar dan deskripsi terperinci yang terkait dengan parameter dan definisi yang dapat dikonfigurasi.
[1] PM0214, "Seri STM32F3, Seri STM32F4, Seri STM32L4 dan STM32L4+ Seri Cortex®-M4 Manual Pemrograman", http://www.st.com/resource/en/programming_manual/dm00046982.pdf