10

マイクロチップ PIC18F252 に基づく新しいプロジェクトを開始しています。使用するのに最適な 'c' コンパイラは何ですか?

4

15 に答える 15

8
  1. Microchip C18 コンパイラ: 本当に最高で使いやすいです。プロの使用に最適です。
  2. HI-TECH : Microchip が動作しない場合に使用されます (PIC16 の場合)。
  3. CCS
  4. ソースブースト

PS: 私自身、PIC18F25XX および PIC18F45xx ファミリに取り組んだことがあるので、これについては少し知っています。;)

PS2: コンパイラのバグ (私たちに起こった) の場合、Microchip チームは非常に反応的で、新しいバージョンは非常に迅速にリリースされます。Microchip と連絡を取り合っている地元の再販業者を探し、その代理店とのイベントに参加して直接連絡を取ってください。かけがえのない。

于 2008-09-18T15:19:19.060 に答える
7

私は数年前にHitechPICC18コンパイラとMicrochipC18コンパイラについて広範囲にわたる調査を行いました。

マイクロチップC18コンパイラを採用することを決定したほとんどの人は、マイクロチップのWebサイトにアクセスしたときにそれを見て、アセンブリ(ひどいIDE IMHO)からMpLabにすでに精通しているからだと思います。

HiTechのソリューションはANSICにはるかに近いです(したがって、コードははるかに移植性があります)。C18を使用すると、あらゆる種類のコンパイラ固有のキーワードを追加し、メモリをさらに管理する必要があります。

  1. 変数を割り当てるRAMバンクを指定する必要があります。
  2. const文字列を(ramではなく)プログラムスペースに割り当てるには、romキーワードを使用する必要があります。
  3. リンカスクリプトを編集せずに、256バイトを超える変数を割り当てることはできません。

より詳細な優れた比較は、ここで見つけることができます:http ://www.xargs.com/pic/picc18-vs-c18.html

コンパイラ以外にも、IDEを考慮する必要があります。私は熱心な日食ファンなので、この理由でHiTechのHiTideが本当に好きでした。ただし、Microchip社がHiTechを購入したため、HiTideをサポートしなくなったようです。これは公式ではないと思います...しかし、HiTechサポートの私の経験から...彼らはもうバグを修正していません。これは本当に残念です。


私も彼らのプロコンパイラを試しました。私はそのアイデアが本当に好きです。しかし、私のプロジェクトは自動パラメータブロックの要件を超えており、それを使用できませんでした。また、コンパイルに非常に長い時間がかかるように見えましたが、プログラムの複雑さのせいであった可能性があります。

于 2009-05-22T05:44:53.697 に答える
6

tech PICC は私にとって常に信頼できるものであり、何年にもわたって開発されてきました。

于 2008-10-26T14:52:16.157 に答える
5

私は Microchip コンパイラを使用したことはありませんが、HiTech の製品を何年も使用しています。私は概して彼らの PIC16 コンパイラが好きでしたが、彼らの PIC18 コンパイラはかなりイライラします。すべての変数を手動でバンクに配置する必要がないことはありがたいのですが、HiTech のコンパイラで使用される規則は煩わしく、奇妙で、ばかげています。簡単な背景: チップには、変数の 16 個の 256 バイト バンク (*すべての 256 バイトがすべてのバンクで使用できるわけではありません) と 1 つのバンク ポインターがあります。変数に直接アクセスするには、適切なバンクを選択する必要があります。バンクの変更には 1 つの命令が必要です。

サイズが 2 ~ 255 バイトの範囲のグローバルおよび静的な int と構造体、およびそれらの配列は、モジュールごとにそれぞれ psect に割り当てられます。各モジュールの psect は 256 バイトのページに収まる必要があります。バイトの配列と個々のバイトは、すべてのバイトが別のページに存在する可能性があると想定される「大きな」psect に入ります。

プログラム全体のすべての自動変数とパラメーターは、256 バイトのページに収まる必要があります (リンク時に静的に割り当てられます)。リンカーは、同時にライブになることのない変数をオーバーレイしますが、特定の署名を持つ関数ポインターへの呼び出しは、アドレスが取得され、その署名を持つ関数を呼び出すことができると想定しています。

最大 128 バイト相当のグローバル変数と静的変数を「near」として宣言することができます。これらは、バンク切り替えなしでアクセスできます。自動変数またはパラメータを「近く」に配置するように指定することはできません。

HiTech で使用されるバンク切り替え規則は、多くの関数が、それ自身のモジュールの外部で変数をまったく使用しない場合でも、movlb (switch-bank) 命令が散りばめられることを意味します。

「全知のコード生成」はしたくありません。カスタム psect のキーワードまたはマクロを定義し、自動変数とローカル変数が他の変数と psect を共有できるようにすることで (指定されたバンキング制限を考慮して、可能な範囲で自動変数/パラメーターをオーバーレイする)、物事を適切に配置するためのいくつかのヒントを追加する機能が必要です。コンパイラ ベンダーが本当に親切にしたい場合は、ポインターがバンク修飾子を受け入れることを許可して、特定の psect 内のもののみを指すポインターを 8 ビットで格納できるようにします。同様に、関数および関数ポインターのバンク修飾子を使用して、特定の間接呼び出しが特定の関数でのみ機能することを指定できるようにします。関数ポインタを 24 ビットにしたり、間接的に呼び出された関数が最初の 64K になるように作業したりするのではなく、関数ポインターが 16 ビットになるように、最初の 64K に自動 GOTO を配置します。さらに良いことに、関数「クラス」に含まれる関数の数が 64 未満の場合は、8 ビット ポインターを使用します。

求めすぎですか?

于 2010-08-19T17:09:49.273 に答える
4

私たちはCCSを使用していますが、これは非常に優れています。非常に遅いですが、うまく機能します。とにかく、私は他のコンパイラとの比較をしていないので、より良い選択肢があるかもしれません.

于 2008-09-18T15:03:53.840 に答える
3

私は CCS が好きではありませんでした。

SourceBoost は悪くなく、かなり安く、約 40 ポンドです。

Microchip C18 コンパイラは最高の IMO ですが、非常に高価です。ただし、無料のデモ/学生版があります。

于 2008-09-18T15:15:25.390 に答える
3

私は現在CCSを使用していますが、それが嫌いです。それは非常に非標準的であり、C のサブセットの多くを占めているため、最悪です。近日中に乗り換えを検討中です。最初に Microchip C18 コンパイラを試してから、試用版とサンプルを確認したところかなり安定しているように見える HighTech を手に入れます。

于 2008-10-17T17:23:03.973 に答える
2

私は長年CCSを使用してきました。いくつかのバグを発見しましたが、サポートは素晴らしく、C18 や HiTec よりも CCS の方が迅速かつ簡単に開発できます。

于 2009-05-27T04:13:32.823 に答える
2

IAR システムには PIC18 コンパイラ/IDE: IAR Embedded Workbench for PIC18 があります

于 2008-10-27T12:10:33.470 に答える
2

SDCC を使用します。

http://sdcc.sourceforge.net/

フリーではない (しかしフリー!) PIC コンパイラの場合、mikroC は gr8 です。

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

HTH

于 2008-10-25T12:21:07.757 に答える
1

MPLABC18-学生

于 2009-12-25T18:41:27.463 に答える
1

私はSourceBoostを1年ほど使用していて、完全にワクワクしているわけではありませんが、問題はありません。ただし、SourceBoost 7、MCC18、およびHi-TechC間のコードサイズテストを完了したところです。結果は驚くべきものでした。

小さなサンプルプログラム(構造体、配列、関数ポインター、構造体ポインター、chars、intsを含む)の場合、SB7キットはMCC18とHTCの約2/3のサイズのコードを生成しました。そのどれだけが起動と実行時のオーバーヘッドであるかを判断したかったので、サンプルプログラムにランダムなものを追加しました。サイズのデルタは、SBが他のサイズの2/3であることを示しました。HTCはMCC18よりわずかに小さかったが、それほど大きくはなかった。すべての最適化はすべての環境でオンになっています。

SBについて私が気に入らない点は次のとおりです。

  • 限定インラインアセンブラ
  • コンパイルとリンクが遅い
  • IDEはMPLABよりわずかに優れています。

私がそれについて好きなことは次のとおりです。

  • まあ、コードサイズは確かに競合他社よりも小さいようです。
  • 言語へのいくつかの拡張(例:参照)。ただし、移植性は失われます。
  • 価格。
  • フォーラムを介したサポートは実際にはかなり良いです。著者はしばしば投稿します。
  • 未使用のコードの自動削除(この機能はコンパイルとリンクを遅くすると思います)

私はSBIDEが好きではないので、エディターにSource Insightを使用し、それがROCKSになります。SBの「make」ユーティリティも絶望的であるため、私はGnuWin32 makeを使用します。これは絶対に本物であり、無料です。

全体として、私は自分のツールの選択についてかなり気分が良くなっています。

とにかく、これが誰かを助けることを願っています。

于 2010-12-18T18:23:12.697 に答える
1

C18 コンパイラを使用することを強くお勧めします。非常に堅牢で、非常に使いやすいです。専門的な開発には必須です。それは実際に取り組んでいるプロジェクトのサイズに依存します。

無料/学生版から始めると、使い心地がよくなります。プロジェクトが小さい場合は、これで十分かもしれません。PIC 18F で大規模な開発プロジェクトを終えたばかりで、C18 コンパイラに非常に満足しています。

于 2008-09-18T15:47:24.237 に答える
1

MPLAB C-18 は素晴らしく、無料の学生版があります。ユーザーを混乱させないほどシンプルな優れたユーザー インターフェイスを備えています。それは私が使用するものです。

于 2012-08-27T16:44:39.407 に答える
0

それを回避できる場合 (私の好みはそうです)、MPLAB で PIC18 アセンブラーを使用します。無料であり、適切なハードウェア/デバッガーのサポートがあるという事実に加えて、比較的よく文書化されているという利点があります。その小さな命令セットとシンプルさにより、簡単で迅速なコーディングが可能になりました。

ただし、c に設定されている場合:

CCS は使用するのに適したコンパイラであり、少しバグがあり、非常に高価ですが、優れたデバッグ機能も備えています。

Microsoft Embedded Studio (またはそのようなもの) は、C コードを記述する Visual Studio 6 の方法論に既に慣れている場合に最適です。ここでも優れたハードウェア サポートと優れたデバッガーを使用できます。

無料のソリューションを探しているなら、実際に MPLAB 用の C コンパイラを入手できると思いますが、個人的には使用したことがないので、判断を下すことはできません。

于 2008-09-18T15:04:27.367 に答える