🌱 Thực hành với Makefile (2)
Ở bài viết trước mình đã cùng các bạn thực hành viết một Makefile cho một project cơ bản.
Vậy ở bài này mình sẽ cần bổ sung thêm một số kiến thức nếu muốn viết / đọc hiểu Makefile của các Project về Vi điều khiển.
👉 Khác nhau giữa một Project C và Project C nhúng - Vi điều khiển
- Compiler : project C thông thường dùng Compiler là GCC, trong khi với C cho vi điều khiển, thì cần Cross Compiler. Chẳng hạn, với Vi điều khiển STM32 thì mình đang dùng GNU Toolchain, chính là một GCC riêng cho dòng chip ARM.
- Linker : Đối với một chương trình C trên máy tính, mình không quan tâm đến Linker, vì việc allocate máy tính đã làm, nhưng với Vi điều khiển, vấn đề này rất quan trọng. Cần phải viết một file Linker (.ld) cho quá trình linking.
- Tiếp theo một số đặc trưng riêng của project C nhúng: Nạp code, Debug, Hardware Test, các file output cũng khác (.elf, .hex, .bin) thay vì .exe.
👉 Compiler và Linker trong Makefile
➤ Bạn cần phải trỏ đến file Linker cũng như folder của Cross Compiler.
➤ Việc Build trong Vi điều khiển sẽ thêm vào một số Compiler Option và Linker Option
Ví dụ với Compiler Option chúng ta có rất nhiều:
- -mcpu=cortex-m4 : là option chọn Core của VĐK.
- -mthumb : option chọn tập lệnh là Thumb.
- -o0 : option chọn mức độ tối ưu hóa của Compiler.
- ... có rất nhiều option khác nữa có thể tham khảo trên trang https://gcc.gnu.org/
Các Compiler option và Linker option sử trong lệnh build giống như các lệnh GCC. File elf là một file quan trọng nạp xuống VĐK để hỗ trợ debug.
Cách học tập tốt nhất với Makefile là các bạn hãy thử viết Makefile cho một project đơn giản.
>>> Đăng ký khóa học Makefile <<<
Chúc các bạn học tập tốt 😊