Ở 2 phần trước mình đã giới thiệu sơ qua về cách hoạt động của Bootloader.
Phần này mình sẽ hướng dẫn cách cấu hình Project để sử dụng với Bootloader.
* Do bootloader chiếm 8KB nên chương trình ứng dụng sẽ bắt đầu ở địa chỉ 0x8002000 và dung lượng flash còn lại cho chương trình ứng dụng là 56KB vì vậy cần cấu hình trong Keil C như sau:
Tab Target
![](http://vidieukhien.org/wp-content/uploads/2020/01/fig1-15.png)
Trong file system_stm32f10x.c sửa VECT_TAB_OFFSET thành 0x2000
![](http://vidieukhien.org/wp-content/uploads/2020/01/fig2-9.png)
Thêm tùy chọn để Keil C sinh ra cả file BIN sau khi biên dịch:
fromelf --bin ".\out\@L.axf" --output ".\out\@L.bin"
![](http://vidieukhien.org/wp-content/uploads/2020/01/fig3-6.png)
Tiến hành biên dịch sẽ tạo ra cả file BIN
![](http://vidieukhien.org/wp-content/uploads/2020/01/fig4-5.png)
![](http://vidieukhien.org/wp-content/uploads/2020/01/fig5-1.png)
Sử dụng phần mềm USB HID Bootloader để nạp file BIN mới vào STM32 qua cổng USB mà không cần mạch nạp:
* Nối chân PA0 với GND.
* Reset để đưa STM32 vào chế độ Bootloader
* Chạy phần mềm tìm đến file BIN
* Ấn chọn Update và chờ cập nhật xong
Link phần mềm
https://drive.google.com/open?id=14hN1FHdqASkCXPQ4hbbhtBnU-exDM_op
![](http://vidieukhien.org/wp-content/uploads/2020/01/fig6-1.png)
Project mẫu:
https://drive.google.com/open?id=1_8ZZubn-6iLGrgkiJwTTc-3E1bqjZJ7G