2015-11-07 22 views
6

Tôi có một số kinh nghiệm biên dịch mã kim loại trần cho các thiết bị ARM cortex-m cũng như Linux kernal, uBoot và các ứng dụng cho Beaglebone Black (BBB) ​​(ARM đặc trưng hơn với MMU, cho những người sống dưới đá). Nó làm cho kể từ khi tôi rằng mã cortex-m nên được biên dịch bằng cách sử dụng arm-no-eabi-gcc (vì không có hệ điều hành) và mã ứng dụng cho BBB nên được biên dịch với arm-linux-gnueabi-gcc (như ở đó là một hệ điều hành, mà các cuộc gọi hệ thống có thể được thực hiện và các trình tải chương trình và các đối tượng dùng chung có thể được sử dụng).Tại sao arm-linux-gnueabi-gcc và không phải arm-no-eabi-gcc khi biên dịch hạt nhân Linux và uBoot?

Điều tôi không hiểu là tại sao uBoot và hạt nhân cũng nên được biên dịch với arm-linux-gnueabi-gcc. Trong tâm trí của tôi, uBoot ít nhất, là một chương trình kim loại trần không có hệ điều hành ưa thích để chiếm. Điều này đã bugging tôi đôi khi, nhưng tôi không thể tìm thấy câu trả lời. Có ai ngoài kia có thể khai sáng cho tôi không?

+0

Trường hợp bạn đã học được điều này * "uBoot [sic] và hạt nhân cũng nên được biên dịch với arm-linux-gnueabi-gcc" *? Tôi đã nhìn thấy U-Boot và hạt nhân Linux được biên dịch với cùng một chuỗi công cụ (ví dụ: trong Buildroot) có lẽ là do thuận tiện. Nhưng tôi thường sử dụng một toolchain baremetal cho bootloader như U-Boot (tức là tôi xây dựng hai toolchains). – sawdust

+0

Tôi chỉ giả định từ các ví dụ như [this] (http://processors.wiki.ti.com/index.php/AM335x_U-Boot_User's_Guide#Building_U-Boot). Bạn đang nói rằng uBoot thực sự có thể được biên dịch với một trong hai? Còn hạt nhân thì sao? –

+1

Có. Cùng một thỏa thuận. – sawdust

Trả lời

0

U-Boot được thiết kế để phản ánh triết lý thiết kế Linux càng nhiều càng tốt. Nó sử dụng cùng một hệ thống cấu hình, cấu trúc thư mục chung, vv Nó chia sẻ một số API với Linux - xem thư mục include/linux. Như ý kiến ​​ở trên đề cập đến, khả năng tương thích ABI không quan trọng tại thời điểm này, nhưng bằng cách sử dụng một trình biên dịch Linux không phải là triết học không thích hợp cho U-Boot.

Các vấn đề liên quan