🌱 Bare – Metal Embedded - Nguyên liệu cho project Vi điều khiển
Bare – Metal Embedded là quá trình xây dựng một project ứng dụng vi điều khiển với những “nguyên liệu thô sơ nhất”. Ở đây xây dựng những thức cơ bản nhất như Makefile, Linker Script file, Register Programming, …
Ở một khái niệm khác, Bare – Metal Software ám chỉ hệ thống phần mềm Vi điều khiển không sử dụng OS (Operating System).
Ở bài viết này mình sẽ nói về khái niệm đầu tiên, tức là xây dựng một project Vi điều khiển từ đầu cần những gì (với không có IDE hay source code library nào có sẵn), để các bạn có thể hiểu được quá trình xây dựng một project và cấu trúc của một chương trình Vi điều khiển.
Cấu trúc của một IDE
Thông thường khi lập trình vi điều khiển, chúng ta thường dùng những IDE (Integrated Development Environment). Chẳng hạn, với STM32, ta có STM32CubeIDE, Keil C, … với AVR có Atmel Studio, AVR Studio, …
➤ Một IDE cơ bản bao gồm 3 thành phần chính:
- Text Editor: là thành phần dùng để viết code.
- Compiler: là thành phần dùng để build chương trình, tạo ra các file nhị phân dùng để run (.exe, .hex) hoặc debug (.elf).
- Debugger: là thành phần dùng để debug, gỡ lỗi chương trình.
Vậy nếu nắm được chức năng của từng thành phần này, cũng như nắm được các file cần thiết trong quá trình tạo ra một project, thì chúng ta có thể tìm hiểu được những lỗi tiềm ẩn của chương trình, giúp quá trình coding và debugging thuận lợi hơn.
❓Điểm thứ hai là khi đối mặt với một vi điều khiển mới mà không có IDE nào hỗ trợ, thì chúng ta cần làm gì?
↪ Lúc đó ta cần biết được mình cần làm những việc gì, cần những tools gì để có thể tạo được một ứng dụng với vi điều khiển mới này.
- Đó là Text Editor (đơn giản nhất là Nodepad, Nodepad++) để viết những file source code, những file cần thiết cho quá trình biên dịch chương trình.
- Đó là Compiler để build ra file hex, elf, chẳng hạn: GCC, GHS, IAR, …
- Đó là một Debugger để nạp chương trình, gỡ lỗi: chẳng hạn GDB debugger.
Bare - Metal Example
➤ Ví dụ một project được tạo trong STM32CubeIDE, nó bao gồm các thành phần chính sau
- Source code (File .c, .h, .cpp, .asm).
- File Startup: Chứa Vector table, dùng để thiết lập các khởi tạo ban đầu (copy data từ Flash lên RAM), trước khi gọi hàm main (File Start up thường là file .asm, .c).
- Makefile là một file dạng script chứa thông tin về cấu trúc các file trong project và các lệnh để tạo ra các file đích.
- File linker script dùng để relocation các vùng nhớ cần thiết.
👉 Vậy cần trang bị những khiến thức gì để có thể tạo một project theo Phương pháp Bare – Metal?
- Cần nắm rõ về Build Process, quá trình build một chương trình C.
Xem bài viết về Build Process tại đây! - Cần hiểu về Makefile và cách viết một Makefile.
Xem các bài về Makefile tại đây! - Hiểu cấu trúc file, các thành phần trong Startup File, Reset Sequence của Vi điều khiển, cách viết một file Startup cơ bản
- Nắm bắt được bộ nhớ của Vi điều khiển cần viết và hiểu được cấu trúc Linker Script File.
- Hiểu cách nạp chương trình vi điều khiển, hiểu về Debugger sử dụng quá trình Debug.
- Hiểu các file source code (.c, .h) của chương trình, lập trình thanh ghi vi điều khiể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 😊

