2013-08-05 9 views
2

저는 At91sam7s256 (마이크로 컨트롤러) 용 작은 프로그램 개발을 위해 atmel에서 j lynch 튜토리얼을 따라 왔습니다. 나는 약간 땜질하고 팔 - 엘프 (옛날) 대신 팔 - 없음 - eabi를 사용했습니다. 기본적으로 나는 gcc가 -march = armv4t라고 가정하고 컴파일 할 때 칩에 대해 언급하지 않는다고합니다. 내가 사용하는 경우 얼마나 차이가 있을까요? -mcpu = arm7tdmi?arm-none-eabi-gcc : -march 옵션 v/s -mcpu 옵션

심지어 내가 별도의 링커 옵션, 어셈블러와-MAP 등과 같은 objcopy의 옵션을 포함 옵션 등 가능한 모든 명령을 설명 할 상세한 튜토리얼을 찾을 수 없습니다 구글에 많이 검색하는 것은

당신은 그러한 자료 어디를 제공 할 수 모든 가능성이 설명되어 있습니까?

답변

1

특정 프로세서에 대한 정보를 제공하면 컴파일러가 가장 효율적인 명령 조합을 선택하고 이러한 명령을 예약하는 가장 효율적인 방법을 선택하는 데 필요한 추가 정보를 제공합니다. 특정 프로세서에서 -mcpu가 명시 적으로 지정하는 성능 차이의 정도에 따라 크게 다릅니다. 아무런 차이가 없을 수도 있습니다. 알아야 할 유일한 방법은 측정하는 것입니다.

일반적으로 특정 장치에 대한 특정 이미지를 작성하는 경우 가능한 한 많은 정보를 컴파일러에 제공해야합니다.

참고 : GCC의현재 인스턴스가 -march = ARMv4T 이상 가정 때문에 컴파일 -이 확실히 모든 GCC 툴체인을 팔에 대한 보편적 인 것은 아닙니다.

+0

arm-gcc 옵션이 거의 설명이없는 다른 사이트에 거의 배포되지 않았으므로 필요한 모든 정보를 얻을 수있는 자습서 나 수동 링크를 제공 할 수 있습니까? 또한 필자는 링커 특정 명령 줄 옵션 및 형식에 대한 세부 정보를 거의 찾을 수 없습니다. 동일한 어셈블러 및 objdump가 사용됩니다. gcc의 링커 (ld) 어셈블러 objcopy objdump에 대한 comand 라인 옵션에 대한 완전한 정보를 얻을 수있는 링크를 주시겠습니까? – arka7304