2008-09-18 7 views

답변

6

기술 PICC는 항상 나를 위해 믿을 수있다 그리고 개발의 많은 년을했다.

4

우리는 CCS을 사용하며 꽤 좋습니다. 매우 느리지 만 잘 작동합니다. 어쨌든 다른 컴파일러와 비교할 필요가 없으므로 더 나은 선택이 될 수 있습니다.

+0

나는 CCS 사용자이기도합니다. C API가 정말 좋고 다른 프로세서로 옮기는 것이 얼마나 쉬운 지 알고 싶습니다. 나는 C 컴파일러 버그, 확실히 표준 C의 하위 집합을 찾는다. – kenny

0

MPLAB과 함께 PIC18 어셈블러를 사용하면됩니다. 이는 하드 웨 어/디버거 지원이 적절하다는 사실과 함께 자유롭고 상대적으로 잘 문서화되어 있다는 장점이 있습니다. 작은 명령어 세트와 단순성으로 쉽고 빠르게 코딩 할 수있었습니다.

CCS는 사용하는 것이 컴파일러, 약간의 버그가 꽤 비싼뿐만 아니라 좋은 디버깅 기능을 가지고 : 당신이 비록 C에 설정하는 경우

.

Visual Studio 6의 C 코드 작성 방법에 익숙하다면 Microsoft Embedded Studio (또는 이와 비슷한 제품)가 우수합니다. 다시 좋은 하드웨어 지원과 우수한 디버거.

저는 무료 솔루션을 찾고 있다면 MPLAB 용 C 컴파일러를 실제로 얻을 수 있다고 생각합니다. 필자는 개인적으로 전혀 사용하지 않았으므로 판단을 통과 할 수 없습니다.

3

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

SourceBoost는 나쁘지 않고 값 싸고 약 40 파운드입니다.

마이크로 칩 C18 컴파일러는 최고의 IMO이지만 매우 비쌉니다. 하지만 무료 데모/학생 에디션이 있습니다.

8
  1. Microchip C18 compiler : 실제로 사용하는 것이 가장 쉽고 편리합니다. 전문적인 용도로 사용하기에 적합합니다.
  2. HI-TECH : 마이크로 칩이 작동하지 않는 경우에 사용됩니다 (PIC16의 경우).
  3. CCS
  4. SourceBoost

PS : 나는 나 자신이 PIC18F25XX 및 PIC18F45xx 가족 일, 그래서 작은 조금이에 대한을 알고있다. ;)

PS2 : 우리에게 일어난 컴파일러 버그의 경우, 마이크로 칩 팀은 매우 민감하며 새로운 버전이 아주 빨리 발표됩니다. 마이크로 칩과 접촉 한 지역 리셀러를 찾아서 이벤트에 참여하여 직접 연락하십시오. 귀중한.

+0

나는 동의한다. CCS와 C18 만 사용했지만 C18을 선호합니다. 그것은 하드웨어/소프트웨어 라이브러리의 훌륭한 컬렉션을 가지고 있으며 MPLab에 잘 통합되어 있습니다. – mjh2007

+1

CCS를 1 년 동안 사용했습니다. 사용하기 쉽지만 많은 버그가 있습니다. – RHaguiuda

+0

하이테크 연결이 끊어졌습니다. – Tshepang

1

나는 C18 컴파일러를 사용해야한다고 주장 할 것이다. 매우 강력하고 사용하기가 쉽습니다. 전문성 개발을 위해 반드시 갖추어야 할 것입니다. 그것은 실제로 당신이 작업하고있는 프로젝트의 크기에 달려 있습니다.

무료/학생용 버전으로 시작하면 사용하기에 좋은 느낌을 받게됩니다. 프로젝트 규모가 작 으면 필요한 모든 것일 수 있습니다. 방금 PIC 18F에서 대형 크기 프로젝트를 완료했으며 C18 컴파일러에 매우 만족했습니다.

2

저는 현재 CCS를 사용하고 있습니다. 그것은 너무 비표준이며 C의 서브 세트의 상당 부분을 차지합니다. 나는 곧 전환을 고려하고있다. 나는 마이크로 칩 C18 컴파일러를 먼저 시험해보고 열심히 삼켜 시험 버전과 샘플을 검토함으로써 꽤 견고한 하이텍을 얻는다.

7

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

대부분의 사람들은 마이크로 칩 웹 사이트에 가서 어셈블리를 할 때 MpLab에 익숙하지만 (끔찍한 IDE IMHO입니다) 마이크로 칩 C18 컴파일러를 사용하기로 결정했다고 생각합니다.

HiTech의 솔루션은 ANSI C에 훨씬 가깝습니다 (따라서 코드는 훨씬 더 휴대 가능합니다). C18을 사용하면 모든 종류의 컴파일러 관련 키워드를 추가 할 수 있으며 메모리를 훨씬 더 많이 관리 할 수 ​​있습니다.

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

깊이 방법이 더 간다 훌륭한 비교는 여기에서 찾을 수 있습니다 :

http://www.xargs.com/pic/picc18-vs-c18.html 게다가 컴파일러에서 당신은 또한 IDE 고려해야 할 필요가있다. 나는 열렬한 일식 팬이기 때문에 이런 이유로 HiTech의 HiTide를 정말 좋아했습니다. 그러나 마이크로 칩이 하이텍을 구입 한 이후로 더 이상 하이티 드를 지원하지 않는 것으로 보입니다. 나는 공식적이라고 생각하지 않지만 ... HiTech 지원에 대한 나의 경험으로 ... 그들은 더 이상 버그를 고치지 않고 있으며 이는 정말 수치스러운 일입니다.


나는 또한 프로 컴파일러를 사용해 보았습니다. 나는 그 아이디어가 정말 마음에 든다. 그러나 프로젝트가 자동 param 블록 요구 사항을 초과하여 사용하지 못했습니다. 또한 컴파일하는 데 오랜 시간이 걸리지 만 프로그램 복잡성의 b/c 일 수있었습니다.

2

저는 수년 동안 CCS를 사용해 왔습니다. 나는 몇 가지 버그를 발견하지만이 지원은 큰 내가 C18 또는 하이텍

1

MPLAB C18보다 CCS와 빠르고 쉽게 개발할 수 있습니다 - 학생

5

나는 마이크로 칩 컴파일러를 사용하지 않는했지만, 사용하고있다 수년간 HiTech의 제품. 필자는 일반적으로 PIC16 컴파일러를 좋아하지만 PIC18 컴파일러는 다소 실망 스럽습니다. 모든 변수를 은행에 반납하지 않아도된다는 점에 감사하지만, HiTech의 컴파일러가 사용하는 규칙은 성 가시고, 기괴하고, 바보입니다. 간단한 배경 : 칩에는 16 개의 256 바이트 변수 뱅크 (* 모든 256 바이트가 모든 뱅크에서 사용 가능하지는 않음)와 하나의 뱅크 포인터가 있습니다. 변수에 직접 액세스하려면 올바른 은행을 선택해야합니다. 은행을 바꾸는 것은 하나의 지시를 받는다.

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

프로그램의 모든 자동 변수와 매개 변수는 256 바이트 페이지에 맞아야합니다 (링크시 정적으로 할당됩니다). 링커는 절대로 동시에 살지 않는 변수를 오버레이하지만 특정 시그니처가있는 함수 포인터를 호출하면 주소가 찍히고 해당 시그니처가있는 함수를 호출 할 수 있다고 가정합니다.

128 바이트의 전역 변수와 정적 변수를 '가까이'선언 할 수 있습니다. 뱅크 전환없이 액세스 할 수 있습니다. 자동 변수 또는 매개 변수를 '가까이'배치하도록 지정할 수는 없습니다.

HiTech에서 사용하는 뱅크 전환 규칙은 많은 기능이 자신의 모듈 외부에서 어떤 변수도 사용하지 않더라도 movlb (스위치 뱅크) 명령어로 뿌려지게된다는 것을 의미합니다.

나는 "omniscient code generation"을 원하지 않습니다. 사용자 정의 psect에 대한 키워드 나 매크로를 정의하여 몇 가지 힌트를 추가하여 자동 및 로컬 변수가 psect를 다른 변수와 공유하도록 허용합니다 (지정된 은행 제한 사항을 고려할 때 가능한 한 자동 변수/매개 변수 오버레이). 컴파일러 벤더가 정말로 좋기를 원한다면, 포인터가 은행 한정어를 받아 들일 수있게하십시오. 그래서 특정 psect에있는 것들만 가리킬 포인터는 8 비트로 저장할 수 있습니다. 마찬가지로 함수 및 함수 포인터에 대한 은행 한정자가 특정 간접 호출을 특정 함수에서만 작동하도록 지정할 수 있습니다. 함수 포인터를 24 비트로 만들거나 간접 호출 함수가 첫 번째 64K에서 끝나지 않도록하려면 함수 포인터가 16 비트가 될 수 있도록 첫 번째 64K에 자동 GOTO를 넣습니다. 또는 'class'함수가 64 개의 다른 함수보다 작 으면 8 비트 포인터를 사용하십시오.

내가 너무 많이 묻는거야?

+0

아니, 너는 너무 많이 묻지 않는다. 나는 동의한다; 일단 함수 포인터를 사용하면 HiTech 컴파일러를 사용할 수 없다는 것을 알았습니다. C18은 훨씬 잘 작동했지만 여전히 문제가있었습니다. 그러나, 그들은 꽤 쉽게 해결되었습니다. – janm

+1

마이크로 칩의 컴파일러를 언급하고 있습니까? 내 기억은 C18이 문자 수학을 int로 승격시키지 않는다는 것입니다. 내 코드는 int 프로모션에 의존하는 경우가 많으므로 표준 동작을 벗어나는 것이 용납 될 수 없습니다. – supercat

1

저는 1 년 정도 SourceBoost를 사용해 왔습니다. 전 정말 흥분하지 않았지만 괜찮습니다. 그러나 SourceBoost 7, MCC18 및 Hi-Tech C 사이의 코드 크기 테스트를 완료했습니다. 결과는 놀랍습니다.

SB7 키트는 MCC18 및 HTC의 약 2/3 크기의 코드를 생성하는 작은 샘플 프로그램 (구조, 배열, 함수 포인터, 구조 포인터, chars 및 ints)을 제공합니다. 그 중 얼마나 많은 부분이 시작과 런타임 오버 헤드인지를 알아보기를 원했기 때문에 샘플 프로그램에 무작위로 더 많은 것을 추가했고 크기 델타는 SB가 다른 것의 2/3 크기라고 나타 냈습니다. HTC는 MCC18보다 약간 작았지만 유의하지는 않았다. 모든 최적화는 모든 환경에서 실행됩니다. 내가 SB에 대해 좋아하지 않는

일들은 다음과 같습니다

  • 느린 IDE는 약간 MPLAB보다 더 & 링크
  • 를 컴파일 인라인 어셈블러
    • 는 제한했다. 나는 그것에 대해 좋아

    일들은 다음과 같습니다

    • 음, 코드 크기가 확실히 경쟁보다 작은 것 같다.
    • 일부 언어 확장 (예 :참고 문헌). 하지만 이식성을 죽입니다.
    • 가격입니다.
    • 포럼을 통한 지원은 실제로 매우 좋습니다. 저자는 종종 게시합니다. 사용되지 않는 코드 (I이 기능은 컴파일 및 링크 속도가 느려집니다 생각)의
    • 자동 제거

    나는 SB IDE를 좋아하지 않기 때문에, 내가 에디터 소스 인사이트를 사용하고 바위! SB "make"유틸리티는 절망적이기 때문에 GnuWin32 make를 사용합니다. make는 절대적으로 진짜이며 무료입니다.

    그래서 나는 도구 선택에 대해 조금 더 나아 졌다고 느낍니다.

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

  • 0

    MPLAB C-18은 좋으며 학생용 버전이 무료입니다. 그것은 사용자 인터페이스를 가지고있어 사용자를 혼동시키지 않을 정도로 간단합니다. 그것은 내가 사용하는 것입니다.