🌱 Linker Script File
👉 Linker Script File là gì?
Một file Linker script là một file không thể thiếu trong một project STM32, khi các bạn lập trình trên STM32CubeIDE, bạn có thể dễ dàng nhìn thấy các file .ld như sau <Bare - metal Example>
Ví dụ: Vùng flash bắt đầu từ đâu, độ dài bao nhiêu, vùng text, data trên đó chiếm bao nhiêu dung lượng, ... tất cả được quy định trên linker script file.
👉 Tại sao cần có Linker Script File?
Như các bạn biết trong quá trình Build Process thì các file .o sẽ được tạo ra sau quá trình Compile và Assemble. Quá trình Compile này sẽ tạo ra địa chỉ tương đối cho mỗi file object, bao gồm text, data, bss, rodata, tức là mỗi file object đang bắt đầu từ địa chỉ 0x0000.0000.
Và file giúp làm điều đó chính là file Linker Script (.ld).
👉 Các lệnh trong Linker Script File
Cấu trúc một file linker các bạn có thể xem trong một project stm32 bất kỳ. Về cơ bản thì nó bao gồm các lệnh.
💬 ENTRY(_symbol_name_) Command
💬 MENORY Command
💬 SECTION Command
💬 AT> Command
Lệnh AT này được sử dụng sau mỗi section ở hình trên, được dùng để định nghĩa hai vùng nhớ trước và trong run-time.
Ở ví dụ trên, vùng nhớ data trước khi run-time được phân bổ ở vma (virtual memory address) và được phân bổ trên lma (load memory address) khi run-time.
Trên đây là một số kiến thức cơ bản về Linker Script File, để các bạn có thể đọc hiểu và sửa được file Linker, còn nếu muốn viết file Linker thì nên tìm hiểu thêm nữa.
>>>= Follow ngay =<<<
Rất bổ ích, Cảm ơn nhiều ạ
Trả lờiXóa