Tôi đang cố gắng tìm ra các tùy chọn gcc cho chuỗi công cụ mà tôi đang thiết lập cho bo mạch phát triển: Saber-lite dựa trên bộ xử lý quad iMX6q của Freescale.tùy chọn gcc cho bộ xử lý ARM iMX6q freescale
Bây giờ tôi biết rằng iMX6 về cơ bản là bộ vi xử lý cortex-a9 có bộ vi xử lý vfpv3 và neon, cũng như đồ họa vector, 2D và thậm chí là công cụ 3D.
Tuy nhiên, ghi chú phát hành và sử dụng tài liệu hướng dẫn chưa được rõ ràng về cách bật bất kỳ tùy chọn nào có thể được bật trong gcc.
Thực tế, các tùy chọn mà tôi có thể 'chơi' với những điều sau đây.
-march= armv7-a - ok this one is pretty obvious.
-mfpu= vfpv3/neon - i can use only the vfpv3 co-processor, or both (respectively, depends on option)
-mfloat-abi=softfp/soft/hard - I guess I can choose hard here, as there is hardware for fp operations
-mcpu=cortex-a9 - is it option even necessary? it is not clear if it just an alias for -march or something else.
Có các tùy chọn nào khác tôi nên bật không? Tại sao toolchain có như các tùy chọn mặc định để xây dựng kernel linux/uboot/gói như sau:
-march= armv7-a -mfpu= vfpv3 -mfloat-abi=softfp
Cảm ơn bạn đã giúp đỡ của bạn
Mfloat-abi của bạn phải khớp với bất kỳ ABI nào được sử dụng trên hệ thống của bạn. softfp cũng sử dụng phần cứng dấu chấm động, nhưng quy ước gọi khác nhau. Bạn có thể kiểm tra bằng "readelf -A/bin/ls" (ví dụ). "Tag_ABI_VFP_args: đăng ký VFP" có nghĩa là khó. – unixsmurf
cực kỳ hữu ích, cảm ơn bạn rất nhiều! – nass
(Tất nhiên, nếu bạn đang biên dịch tự nhiên trên hệ thống đích của bạn bằng cách sử dụng gcc gốc của hệ thống, thì ABI chính xác sẽ là mặc định trong trình biên dịch, và có thể được bỏ qua.) – unixsmurf