Guys, Tôi có một dự án mà tôi đã biên soạn cho bộ vi xử lý ARM Cortex-A8. Tôi đang sử dụng GCC để làm điều này. Hiện tại kích thước của tệp thực thi của tôi là 220,1 KB. Bây giờ tôi sửa đổi makefile của tôi và tôi thêm cờ -mthumb
, dòng makefile trông hơi như thế này -Chế độ ngón tay cái ARM: Kích thước mã không giảm
gcc -mcpu=cortex-a8 -mthumb -marm -mfloat-abi=softfp -mfpu=neon
Tôi làm điều này thay đổi trong tất cả các makefiles tôi và tôi xây dựng dự án của tôi, nhưng thực thi tôi nhận được cuối cùng vẫn tiếp tục là 220,1 KB.
tôi đã thực hiện một thay đổi nhiều đến dòng lệnh của tôi, tôi đã thêm các tùy chọn -mthumb-Interwork
gcc -mcpu=cortex-a8 -mthumb -mthumb-interwork -marm -mfloat-abi=softfp -mfpu=neon
Một lần nữa tôi nhận được cùng một kích thước thực thi 220,1 KB. Tôi có thiếu gì trong khi làm việc này không?
Tôi đã viết một chương trình nhỏ, để tìm nhỏ nhất của hai số và tôi biên soạn nó bằng cách sử dụng dòng lệnh sau
gcc main.c -o main
tôi nhận được một 8,5 KB thực thi
Tiếp theo, tôi làm một
gcc -mthumb main.c -o main
Tôi vẫn nhận được 8.5 KB thực thi.
Có gì sai ở đây?
Tôi đã thực hiện cat /proc/cpuinfo
để xem ngón tay cái có thực sự được bộ xử lý của tôi hỗ trợ hay không và tôi thấy rằng nó thực sự được hỗ trợ. Tôi nhận được -
Processor: ARMv7 Processor rev 5 (v7l)
Features: swp half thumb fastmult vfp edsp neon vfpv3
....
....
'-marm' là bộ đếm' -mthumb' và 'gcc' có tùy chọn cuối cùng; Đây là lý do tại sao * câu trả lời * dwelch's hoạt động. –