Tôi có một sản phẩm có bộ tải khởi động và ứng dụng được biên dịch bằng trình biên dịch (gnuarm GCC 4.1.1) tạo ra "arm-elf".Tôi có thể trộn tay-eabi với cánh tay không?
Trình tải khởi động và ứng dụng được tách biệt trong các vùng bộ nhớ FLASH khác nhau trong tập lệnh trình liên kết.
Ứng dụng có tính năng cho phép nó gọi bộ nạp khởi động (dưới dạng c chức năng đơn giản với 2 tham số).
Tôi cần có khả năng nâng cấp các sản phẩm hiện có trên khắp thế giới và tôi có thể thực hiện việc này một cách an toàn bằng cách sử dụng cùng một trình biên dịch.
Bây giờ tôi muốn có thể biên dịch ứng dụng sản phẩm này bằng cách sử dụng phiên bản GCC mới có kết quả là arm-eabi.
Mọi thứ sẽ ổn cho các sản phẩm mới, nơi cả ứng dụng và bộ tải khởi động được biên dịch bằng cùng một chuỗi công cụ, nhưng điều gì sẽ xảy ra với các sản phẩm hiện có? Nếu tôi flash một ứng dụng mới, được biên dịch với GCC 4.6.x và arm-no-eabi, ứng dụng của tôi vẫn có thể gọi chức năng bộ nạp khởi động từ bộ nạp khởi động cũ của arm-elf không?
Hơn nữa, không liên quan trực tiếp đến câu hỏi trên, tôi có thể trộn các tệp đối tượng được biên dịch với arm-elf vào nhị phân được biên dịch bằng arm-eabi không?
EDIT:
tôi nghĩ là tốt để làm cho rõ ràng tôi đang xây dựng cho một ARM7 kim loại trần, nếu nó làm cho bất kỳ sự khác biệt ...
Tôi không bị hạn chế đối với Windows và một lý do lớn để bỏ nó là tôi có thể dễ dàng có được chuỗi công cụ mới sẵn sàng để chạy cho Linux, nơi phát triển dễ dàng hơn. Dù sao, tôi sẽ cố gắng gọi funcion và tôi sẽ quay lại với tin tức ngay khi có thể. Cảm ơn. – j4x
Tôi xin lưu ý rằng trong khi tôi cho biết nó có thể hoạt động, tôi chắc chắn không khuyên bạn nên dựa vào hành vi này trong một hệ thống thực sự. – djs
Hey @fljx - Nó có hoạt động không? Bạn đã có 4 năm để thử điều này ngay bây giờ :) – blueshift