Tích hợp nhị phân khác


8

Tôi đang xây dựng nhị phân cho ARM bằng GCC và Crossworks. Tôi có một hình ảnh nhị phân thứ cấp cần được tải vào một IC khác trong quá trình khởi động.

Tôi thích tích hợp nhị phân này vào chuỗi công cụ của mình, nói cách khác, tôi tạo phần nhị phân này cho hình ảnh của mình và mỗi khi tôi xây dựng tệp nhị phân này sẽ được tích hợp vào tệp nhị phân cuối cùng sẽ được nạp vào CPU. Thực hành tốt nhất cho việc này là gì?

Cám ơn

Câu trả lời:


3

Bạn có thể sử dụng objcopyđể chuyển đổi hình ảnh nhị phân thành một tệp đối tượng. Tệp đối tượng sẽ chứa các ký hiệu có thể được truy cập từ mã C. Sau đó báo cho GCC liên kết tệp đối tượng và bạn có thể truy cập các ký hiệu trong tệp đối tượng bằng cách sử dụng externđể tải dữ liệu vào IC khác.

Dưới đây là một hướng dẫn tốt về cách liên kết trong một blob nhị phân bao gồm cả cách đưa ra các tùy chọn bạn cần chuyển sang objcopysử dụng objdump.

Và tất nhiên objcopytrang người đàn ôngobjdumptrang người đàn ông .


siêu câu trả lời .. tôi mất tổng cộng 5 phút để thực hiện công việc này ..
Ktc

Câu hỏi bổ sung. Tệp obj đang hoạt động tốt tuy nhiên toolchain đặt nó vào RAM đang trở thành một vấn đề do kích thước của tệp. Làm cách nào tôi có thể buộc đối tượng này được đặt tại Flash?
Ktc

đã giải quyết nó .. về cơ bản, objcopy -I binary -O elf32-littlearm -B arm --rename-phần .data = .rodata, cấp phát, tải, chỉ đọc, dữ liệu, nội dung fpga.bin fpga.o điều này làm cho toàn bộ. Rodata và linker đặt chính xác vào đèn flash.
Ktc

objcopycó một số lượng lớn các tùy chọn. Nó có thể có thể làm bất cứ điều gì bạn muốn. Nó chỉ đòi hỏi rất nhiều nhìn chằm chằm vào trang người đàn ông đó. Cảm ơn vì đã chia sẻ giải pháp của bạn vì tôi chắc chắn đó sẽ là một câu hỏi phổ biến cho những người muốn làm những gì bạn đang làm.
embedded.kyle
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.