문제

우리는 마이크로칩 PIC18F252를 기반으로 하는 새로운 프로젝트를 시작하고 있습니다.사용하기에 가장 좋은 'c' 컴파일러는 무엇입니까?

도움이 되었습니까?

해결책

tech PICC는 나에게 항상 신뢰할 수 있는 제품이었으며 수년간의 개발 과정을 거쳤습니다.

다른 팁

  1. 마이크로칩 C18 컴파일러:정말 사용하기 가장 좋고 가장 쉽습니다.전문가용으로 적합합니다.
  2. 하이테크:Microchip이 작동하지 않을 때 사용됩니다(PIC16용).
  3. CCS
  4. 소스부스트

추신:나 자신은 PIC18F25XX 및 PIC18F45xx 제품군에 대해 작업했기 때문에 아주 작은 것을 알고 있습니다. 조금 이것에 관해서.;)

PS2:컴파일러 버그(우리에게 발생한 일)의 경우 Microchip 팀은 매우 적극적으로 대응하고 새 버전이 매우 빠르게 출시됩니다.마이크로칩과 접촉하고 있는 현지 리셀러를 찾아보시고, 마이크로칩과 함께하는 이벤트에 참여하여 직접 연락해보세요.매우 귀중한.

나는 몇 년 전에 Hitech PICC18 컴파일러와 Microchip C18 컴파일러에 대해 광범위한 연구를 했습니다.

내 생각에 Microchip C18 컴파일러를 사용하기로 결정한 대부분의 사람들은 마이크로칩 웹사이트에 갈 때 그것을 보고 어셈블리 작업을 통해 이미 MpLab에 익숙하기 때문에(끔찍한 IDE IMHO입니다).

HiTech의 솔루션은 ANSI C에 훨씬 더 가깝습니다(따라서 코드의 이식성이 훨씬 더 뛰어납니다).C18을 사용하면 모든 종류의 컴파일러 관련 키워드를 추가하고 메모리를 훨씬 더 많이 관리해야 합니다.

  1. 변수를 할당할 램 뱅크를 지정해야 합니다.
  2. const 문자열을 프로그램 공간(ram 대신)에 할당하려면 rom 키워드를 사용해야 합니다.
  3. 링커 스크립트를 편집하지 않으면 256바이트보다 큰 변수를 할당할 수 없습니다.

훨씬 더 깊이 있는 훌륭한 비교는 여기에서 찾을 수 있습니다. http://www.xargs.com/pic/picc18-vs-c18.html

컴파일러 외에도 IDE도 고려해야 합니다.나는 열렬한 Eclipse 팬이고 이런 이유로 HiTech의 HiTide를 정말 좋아했습니다.그런데 마이크로칩이 하이테크를 인수한 이후...더 이상 HiTide를 지원하지 않는 것 같습니다.공식적인 건 아닌 것 같은데...하지만 HiTech 지원 경험에 따르면...그들은 더 이상 버그를 고치지 않고 있는데 정말 부끄러운 일입니다.


나는 또한 그들의 프로 컴파일러를 시험해 보았습니다.나는 그 아이디어를 정말 좋아한다.하지만 내 프로젝트가 자동 매개변수 블록 요구 사항을 초과하여 사용할 수 없었습니다.또한 컴파일하는 데 매우 오랜 시간이 걸리는 것처럼 보였지만 프로그램 복잡성으로 인해 발생했을 수도 있습니다.

저는 Microchip 컴파일러를 사용한 적이 없지만 수년 동안 HiTech 제품을 사용해 왔습니다.나는 일반적으로 PIC16 컴파일러를 좋아했지만 PIC18 컴파일러는 다소 실망스러웠습니다.모든 변수를 뱅크에 직접 배치할 필요가 없다는 점은 감사하지만 HiTech 컴파일러에서 사용하는 규칙은 짜증나고 기이하며 바보같습니다.간략한 배경:칩에는 16개의 256바이트 변수 뱅크(*모든 뱅크에서 256바이트 전체를 사용할 수 있는 것은 아님)와 1개의 뱅크 포인터가 있습니다.변수에 직접 접근하려면 적절한 뱅크를 선택해야 합니다.은행을 변경하려면 한 번의 지시가 필요합니다.

크기 범위가 2-255바이트인 전역 및 정적 정수, 구조체 및 배열은 각각 모듈별로 psect에 할당됩니다.각 모듈의 psect는 256바이트 페이지에 맞아야 합니다.바이트 배열과 개별 바이트는 모든 바이트가 다른 페이지에 있을 수 있다고 가정되는 "큰" psect에 들어갑니다.

프로그램 전체의 모든 자동 변수 및 매개변수는 256바이트 페이지에 맞아야 합니다(링크 타임에 정적으로 할당됨).링커는 동시에 실행되지 않는 변수를 오버레이하지만 특정 서명이 있는 함수 포인터에 대한 호출은 주소를 가져오고 해당 서명이 있는 모든 함수를 호출할 수 있다고 가정합니다.

전역 변수와 정적 변수를 최대 128바이트까지 'near'로 선언할 수 있습니다.은행을 전환하지 않고도 액세스할 수 있습니다.자동변수나 매개변수를 '가까이' 배치하도록 지정할 수 없습니다.

HiTech에서 사용하는 뱅크 전환 규칙은 자체 모듈 외부의 변수를 전혀 사용하지 않더라도 많은 기능에 movlb(뱅크 전환) 명령어가 뿌려진다는 것을 의미합니다.

나는 "전지적 코드 생성"을 원하지 않습니다.나는 사용자 정의 psect에 대한 키워드 또는 매크로를 정의하여 자동 및 로컬 변수가 다른 변수와 psect를 공유할 수 있도록(지정된 은행 제한 사항을 고려할 때 가능한 한 자동 변수/매개변수 오버레이) 사물을 현명하게 배치하기 위한 몇 가지 힌트를 추가할 수 있는 기능을 원합니다.컴파일러 공급업체가 정말로 좋은 결과를 원한다면 포인터가 은행 한정자를 허용하도록 허용하여 특정 psect의 항목만 가리키는 포인터가 8비트에 저장될 수 있도록 합니다.마찬가지로 특정 간접 호출이 특정 함수에서만 작동할 수 있도록 함수 및 함수 포인터에 대한 뱅크 한정자를 허용합니다.함수 포인터를 24비트로 만들거나 간접 호출 함수가 첫 번째 64K에서 끝나도록 작업하는 대신 첫 번째 64K에 자동 GOTO를 넣어 함수 포인터가 16비트가 될 수 있습니다.또는 더 나은 방법은 '클래스' 함수에 64개 미만의 다른 함수가 있는 경우 8비트 포인터를 사용하는 것입니다.

내가 너무 많은 것을 요구하고 있는 걸까?

우리는 사용 CCS 그리고 그것은 꽤 좋습니다.매우 느리지만 잘 작동합니다.아무튼 다른 컴파일러와 비교할만한 부분은 없으니 더 나은 선택이 있을 수도 있겠네요.

나는 CCS를 좋아하지 않았고 너무 기발했습니다.

SourceBoost는 나쁘지 않고 꽤 저렴합니다(약 £40).

Microchip C18 컴파일러는 최고의 IMO이지만 매우 비쌉니다.하지만 무료 데모/학생용 버전이 있습니다.

나는 현재 CCS를 사용하고 있는데 그것을 싫어합니다.그것은 너무 비표준적이고 C의 하위 집합이기 때문에 정말 짜증납니다.조만간 전환을 고려하고 있습니다.먼저 Microchip C18 컴파일러를 사용해 본 다음 열심히 삼켜서 평가판과 샘플을 검토한 결과 매우 견고해 보이는 HighTech을 얻을 예정입니다.

IAR 시스템에는 PIC18 컴파일러/IDE가 있습니다. PIC18용 IAR 임베디드 워크벤치.

저는 수년 동안 CCS를 사용해 왔습니다.몇 가지 버그를 발견했지만 지원이 훌륭하고 C18이나 HiTec보다 CCS를 사용하면 더 빠르고 쉽게 개발할 수 있습니다.

sdcc를 사용하세요:

http://sdcc.sourceforge.net/

그리고 무료가 아닌(그러나 무료!) PIC 컴파일러의 경우 mikroC는 gr8입니다!

http://www.mikroe.com/eng/products/view/7/mikroc-pro-for-pic/

HTH

나는 당신이 C18 컴파일러를 사용한다고 주장하고 싶습니다.매우 견고하고 사용하기 매우 쉽습니다.전문적인 개발을 위해 꼭 필요한 것입니다.실제로 작업 중인 프로젝트의 규모에 따라 다릅니다.

무료/학생용 버전으로 시작하면 사용에 대한 좋은 느낌을 갖게 될 것입니다.프로젝트 규모가 작다면 이것이 전부일 수 있습니다.저는 방금 PIC 18F에서 대규모 개발 프로젝트를 마쳤고 C18 컴파일러에 매우 만족했습니다.

MPLAB C18 - 학생

저는 1년 정도 SourceBoost를 사용해 왔는데 완전히 만족스럽진 않지만 괜찮았습니다.그러나 방금 SourceBoost 7, MCC18 및 Hi-Tech C 간의 코드 크기 테스트를 완료했습니다.결과는 놀라웠습니다.

구조, 배열, 함수 포인터, 구조 포인터, 문자 및 정수를 포함하는 작은 샘플 프로그램의 경우 SB7 키트는 MCC18 및 HTC 크기의 약 2/3인 코드를 생성했습니다.나는 그 중 시작 및 런타임 오버헤드가 얼마나 되는지 확인하고 싶었기 때문에 샘플 프로그램에 임의의 항목을 더 추가했고 크기 델타를 보면 SB가 여전히 다른 것의 2/3 크기인 것으로 나타났습니다.HTC는 MCC18보다 약간 작았지만 크게 크지는 않았습니다.모든 환경에서 모든 최적화가 켜져 있습니다.

SB에 대해 내가 싫어하는 점은 다음과 같습니다.

  • 제한된 인라인 어셈블러
  • 컴파일 및 링크 속도가 느림
  • IDE는 MPLAB보다 약간 더 나을 뿐입니다.

내가 좋아하는 점은 다음과 같습니다.

  • 음, 코드 크기는 확실히 경쟁 제품보다 작은 것 같습니다.
  • 언어에 대한 몇 가지 확장(예:참고).하지만 이식성은 죽습니다.
  • 가격.
  • 포럼을 통한 지원은 실제로 꽤 좋습니다.작가님이 자주 글을 올리시네요.
  • 사용하지 않는 코드 자동 제거 (이 기능은 컴파일과 링크 속도를 느리게 하는 것 같아요)

저는 SB IDE가 마음에 들지 않기 때문에 편집자로 Source Insight를 사용하는데 정말 좋습니다!SB "make" 유틸리티 역시 절망적입니다. 그래서 저는 절대적으로 실제적이고 무료인 GnuWin32 make를 사용합니다.

그래서 전체적으로 제가 선택한 도구에 대해 훨씬 더 나은 느낌을 받았습니다.

어쨌든, 이것이 누군가에게 도움이 되기를 바랍니다.

MPLAB C-18은 훌륭하며 무료 학생용 버전이 있습니다.그것은 사용자를 혼란스럽게 하지 않을 만큼 충분히 단순한 좋은 사용자 인터페이스를 가지고 있습니다.그것은 내가 사용하는 것입니다.

이를 피할 수 있다면(제가 선호하는 것은) MPLAB과 함께 PIC18 어셈블러를 사용하는 것입니다.무료라는 장점이 있고 적절한 하드웨어/디버거 지원이 있다는 사실과 함께 상대적으로 잘 문서화되어 있습니다.작은 명령어 세트와 단순성으로 인해 쉽고 빠른 코딩이 가능해졌습니다.

그래도 c로 설정한 경우:

CCS는 사용하기 좋은 컴파일러이며 약간 버그가 있고 꽤 비싸지만 디버깅 기능도 뛰어납니다.

C 코드를 작성하는 Visual Studio 6 방법론에 이미 익숙하다면 Microsoft Embedded Studio(또는 이와 유사한 것)가 탁월합니다.다시 한번 좋은 하드웨어 지원과 뛰어난 디버거.

무료 솔루션을 찾고 있다면 실제로 MPLAB용 c 컴파일러를 얻을 수 있다고 믿습니다. 비록 개인적으로 사용해본 적이 없어서 판단을 내릴 수는 없지만요.

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