Title Image

Blog Logo

🌱 Bootloader 2 - Triển khai Bootloader trên STM32

🌱 Bootloader 2 - Triển khai Bootloader trên STM32

    Ở post trước mình đã giới thiệu về Bootloader, công dụng của nó, và tại sao chúng ta cần tìm hiểu về nó. Vậy để hiểu và có thể ứng dụng được Bootloader, chúng ta sẽ cùng tìm hiểu từng phần và cùng triển khai một Bootloader trên vi điều khiển của mình. Ở post này mình sẽ giới thiệu tổng quan về project mà mình sẽ triển khai và các yêu cầu về kiến thức, phần cứng, phần mềm mà chúng ta cần nắm được.

    👉 Đầu tiên là kiến thức mà chúng ta cần có để tìm hiểu và triển khai một bootloader:

  • Kiến thức về bộ nhớ, đặc biệt là tổ chức bộ nhớ trong vi điều khiển STM32, kiến thức về Reset Sequence. Cùng với đó là kiến thức lập trình cơ bản (có thể là thanh ghi/thư viện) để thao tác với bộ nhớ Flash và viết chương trình. 
  • Kiến thức về Core cũng rất quan trọng. Vì việc boot sẽ liên quan đến một số thanh ghi của hệ thống. 

    👉 Phần cứng và phần mềm

    Phần cứng mình sử dụng để triển khai bootloader là vi điều khiển STM32F401 (Board NUCLEO), các bạn có thể triển khai trên phần cứng của riêng mình, nhưng các tổ chức memory sẽ có sự thay đổi. 

    Về phần mềm lập trình mình sử dụng là STM32CubeIDE (hướng dẫn sử dụng tại đây), các bạn có thể sử dụng Keil C nếu muốn. Cùng với đó là phần mềm STM32 ST-LINK Utility để có thể nạp chương trình và quan sát bộ nhớ. 

    👉 Firmware

    Firmware mà chúng ta sẽ viết ở đây bao gồm chương trình Bootloader, và chương trình ứng dụng mà chúng ta sử dụng, có thể là 2 chương trình ứng dụng để chúng ta thử tính năng update firmware.

    Ví dụ, chúng ta sẽ có một phần bộ nhớ để lưu trữ code bootloader, một phần bộ nhớ lưu Code Firmware 1, và một phần bộ nhớ lưu Code Firmware 2. 

Firmware

    Ở đây chúng ta có thể thiết kế chương trình Bootloader để chuyển đổi giữa Firmware 1 và Firmware 2. Giả sử Vi điều khiển đang chạy Firmware 1, chúng ta bấm nút update thì chương trình sẽ reset và chuyển sang Firmware 2 (Giống như update phần mềm trên điện thoại).

    Ở những post sau mình sẽ đi vào từng phần kiến thức và cùng các bạn triển khai một chương trình Bootloader cơ bản.

>>>= Follow ngay =<<<

Để nhận được những bài học miễn phí mới nhất nhé 😊

Chúc các bạn học tập tốt 😊

                                        

Đăng nhận xét

0 Nhận xét