문제

Keil은 ARM7 개발을 위해 GCC와 어떻게 비교됩니까? 저는 중간 크기 프로젝트를 위해 HW 컨설턴트를 선택하는 과정에 있으며 일부는 Keil을 사용하고 일부는 GCC를 사용합니다. 두 가지 옵션을 사용하는 데 관여하는 Gotchas를 알고 싶습니다 ...

도움이 되었습니까?

해결책

코딩/개발 관점에서 둘 사이에는 차이가 거의 없습니다. 내가 고려해야 할 유일한 것은이 컴파일러에만 국한되지 않습니다. 유지:

  • Keil 컴파일러에 액세스 할 수 없거나 소규모 비용이 될 경우 소프트웨어를 유지할 수 있습니까?
  • 또한 어떤 Debughardware/JTAG가 지원되며 일부를 얻는 데 필요한 경우 비용은 얼마입니까?
  • 나중에 개발자를 전환해야하기 때문에 한 컴파일러에서 다른 컴파일러로 이동 해야하는 경우 비용은 얼마입니까?

당신이 매우 비용 민감하지 않으면 진짜 질문은 컴파일러가 사소한 문제가 될 것이기 때문에 누가 최선을 다할 것인지라고 생각합니다.

다른 팁

두 컴파일러를 모두 사용하려면 코드를 구조화 할 수 있어야합니다. "포장 된"과 같은 속성은 매크로를 올릴 수 있으므로 코드가 모두 행복합니다. 하드웨어 세부 사항을 낮은 레벨로 푸시하고 컴파일 타임 대신 런타임에 하드웨어 맵을 구성하십시오. 별도의 Kiel 및 GCC 버전의 코드가 있어야하는 경우 별도의 파일에 넣고 GCC Make 또는 Kiel 프로젝트 파일과 함께 사용되는 구성을 구성하십시오.

내가 아직 해결하지 못한 한 가지 문제는 어셈블러 코드입니다. Kiel은 Armasm을 사용하는 반면 GCC는 AS를 사용합니다. 그들은 매우 다른 소스 코드 형식을 가지고있는 것 같습니다. 가능하다면 어셈블러를 피하는 또 다른 이유.

GCC를 사용하는 장점은 비 AMAR 플랫폼을 대상으로 할 수 있다는 것입니다. 훨씬 더 나은 개발 도구 (예 : X86 Linux의 Valgrind)로 플랫폼에서 애플리케이션을 시뮬레이션하는 데 이상적입니다. 사실, 이것은 접근법입니다 모든 암대 표적 응용 프로그램은 취해야합니다. 먼저 x86에서 개발 한 다음 포트로 팔을냅니다.

Kiel과 함께 현재 상태를 유지하는 비용도 있습니다. 일단 내가 아는 곳은 RVDK 2.1 (2002?)에 고정되어있다. 왜냐하면 3 명의 개발자에 대한 최신으로 업그레이드하는 비용은 엄청나게 없기 때문이다.

또한 GCC & Pedantic은 코드의 경고와 오류가 우리 (고대) 버전의 Kiel Will보다 훨씬 더 잘 흔들릴 것이라고 덧붙입니다.

Kiel은 더 엄격한 ARM 코드를 제공 할 수 있으므로 대상 빌드를 수행하기 위해 유지하십시오. 그렇지 않으면 GCC를 사용하십시오.

내가 옳은 것을 기억한다면 Kiel은 이제 ARM에 의해 소유되고 있습니다. ARM 컴파일러는 좋은 코드를 생성하기 위해 GCC보다 밤낮으로 더 좋습니다. 나는 감소 또는 무료 또는 RVCT 버전을 포함하여 Keil을 기억하는 것 같습니다. 그래서 내 질문은 GCC가 있고 잘 사용될 때 상업용 솔루션을 사용하는 훨씬 빠르고 깨끗하며 더 나은 코드를 사용하고 있습니까? 성능 크런치 상황에 처해 있고 그물에서 무료로 제공되는 모든 GCC 기반 정보간에 상용 도구로 다시 돌아와서 다시 돌아와야하지 않는 한 GCC와 함께 갈 것입니다. 일반적으로 GCC를 사용하는 것이 아마도 더 나은 경로 일 것입니다. Kiel에 대한 Google 검색 상자 뒤에 풍부한 정보가있을 수 있지만 GCC 기반 솔루션에 대한 지식과 정보의 양은 그 그림자 그림자를 부여했습니다.

컨설턴트가 하나의 도구를 사용하여 프로젝트를 위해 초기 레그 워크를 수행 한 다음 결국 작업을 넘겨 주면 GCC 기반 솔루션 (VXWorks GCC 또는 Code Sourcery라고 말하는 것은 아닙니다. GCC, 그러나 일반적인 GCC 솔루션), 의심 할 여지없이 당신이나 다른 사람이 고용 한 사람 이이 질량을 집어 들고 그것을 실행해야하며 GCC를 사용하면 기꺼이 할 수있는 사람을 찾을 가능성이 높기 때문입니다.

상업용 솔루션의 주요 이점은 컴파일러 또는 라이브러리에 문제가 발생하면 저를 지원하는 것입니다.
메인 스트림 하드웨어를 사용할 때는 오픈 소스가 괜찮습니다 (GCC = x86의 경우). 컴파일러 또는 LIBS의 대부분의 문제는 일반적으로 커뮤니티가 곧 해결됩니다.
(아마도 이국적인) 임베디드 플랫폼을 개발하는 경우 공구 체인에 문제가 있으면 곧 외로울 수 있습니다.

우리는 Keil 플랫폼을 사용하며 성능과 최적화에 매우 만족합니다. 나는 몇 년 전에 표준 벤치 마크를 운영했고 그들은 꽤 좋았습니다. 또 다른 고려 사항은 지원이며 지금까지 Keil은 응답 시간과 몇 가지 어려운 문제에 대한 비교적 좋은 피드백을 받았습니다.

참고로 프로젝트가 Keil RTO를 사용하고 이에 대한 질문이 있으면 소스 코드를 구매할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top