RoboCup Junior Japan Rescue Kanto OB
2005~2013
2005~2013
実は部活用に急いでデータベースを確立したいので
結構な速度で目次に投入する必要のありそうな記事を書きたしていたりします。
今日はその中でもPICのコンパイラについてお話ししましょう。
コンパイラについては以前にもあちらこちらで記述しているかと思うのですが、コンパイルは翻訳機なので
C言語を機械語に翻訳してくれます。でも、パソコンに対して使う命令とPICに対して使う命令って勿論違いますよね?
だとしたらそれに応じて翻訳機、つまりコンパイラも変える必要があるのです。
一般的なC言語だと、gccとかccとかborlandが定番ですけど、PICだとどうなるのでしょう。
実はPICの場合、ファミリーごとにコンパイラが分かれています。
つまり、16Fだとこのコンパイラ、24Fだとこのコンパイラ、という風になっているというわけですね。
とりあえず今はうちの部で基本的に使われているコンパイラについて紹介します。
まず最初に紹介するのはHI-TECH C、どっかの会社と同じ名前ですね。
これはMPLABインスト-ルの際についてくるコンパイラです。
PICのコンパイラとしては恐らく一番標準的なもので、大体今のPICなら殆どのPICはこれで対応できるはずです。
現在はPIC10、12、16、18ファミリーまでしか対応していないようです。また、16までと18でも分かれているようです。
只、基本的に定義されている関数がちょっと少なめなので初心者にはちょっととっかかりにくいかもしれません。
このコンパイラでは基本、「レジスタ」というものを直接操作することで命令を行なっていくようになっています。
NXCとかだと、このレジスタに直接触れる機会はなく、基本的に関数を通してレジスタの中身を操作しています。
つまり、元々NXCとかに定義されている関数のほとんど(モーターを回したり、センサーを読んだりするもの)は
このレジスタの操作を関数にまとめたものということになります。
まぁレジスタってなんなんだ!?という話はまた今度にして、とりあえずそういうものだという理解をしておいてください。
Lite版は此方からダウンロードできます。
そして説明するのがMPLAB C Compiler for PIC24 MCUs and dsPIC DSCs。
ちょっと前までC30っていう名前のコンパイラでした。
このコンパイラはMPLAB C というコンパイラの一種でPIC24F、24E、24H、DSPIC30F、33F、専用のコンパイラです。
上で挙げたPICの場合、HI-TECH Cでプログラムを作るよりも、此方で作るほうが楽なので使っています。
追記:今のHI-TECH Cコンパイラは上で挙げたPICは使えないようです。
此方はHI-TECH Cのようにレジスタをあまりいじらなくていいように
NXCみたいに関数が作られている仕様になっているんですけど・・・
このコンパイラの関数は色々と信用がおけないのでやっぱりレジスタをいじったほうがいいと思われます。
これはLite版はフリーコンパイラで、此方の方でダウンロードできます。
最後に紹介するのがMPLAB C Compiler for PIC32 MCUs。
これもMPLAB Cコンパイラの一種です。これはPIC32MX専用となっています。
現在、他に32MX対応のコンパイラが無いのでC言語で32MXをするならこれしかありません。
とりあえず今回紹介したコンパイラの中では一番使える関数が多いというのが特徴でしょうか。
でもわざわざ32MXを使うような人は基本的にPICには精通している人のはずなので、
わざわざ関数を使うようなこともないでしょう。恐らく殆どの人がレジスタで済ましているはずです。
このコンパイラもフリーなので、此方からダウンロードすることができます。
とりあえず今うちで使っているコンパイラは以上3つだと思います。
今回紹介したのは全てMicrochip社の純正のコンパイラですが、他にも色々とコンパイラは存在します。CCSとか・・・。
因みにCCSは事故コンパイラで有名なので余り推奨は致しません。ホントのホントに初心者用ですね。有料だし。
あまり色々させるとあの子はバグります。例えるなら・・・NXT-G的な。
まぁこんな感じでこのようなコンパイラを使ってPICではプログラムを書いていくことになります。
このブログでもこの先、PICによるプログラムを記述する場合があるとは思いますが、
勿論コンパイラによって微妙に命令などが違ってきますので(Microchipのはどれもあんまり変わらないけど・・・)
どのコンパイラのプログラムなのかは注意して頂いた方が宜しいかと思われます。
という訳で今回はコンパイラの話でした。それではまた。
(^・ω・)ノ RadiumProduction in RoboCup Junior
結構な速度で目次に投入する必要のありそうな記事を書きたしていたりします。
今日はその中でもPICのコンパイラについてお話ししましょう。
コンパイラについては以前にもあちらこちらで記述しているかと思うのですが、コンパイルは翻訳機なので
C言語を機械語に翻訳してくれます。でも、パソコンに対して使う命令とPICに対して使う命令って勿論違いますよね?
だとしたらそれに応じて翻訳機、つまりコンパイラも変える必要があるのです。
一般的なC言語だと、gccとかccとかborlandが定番ですけど、PICだとどうなるのでしょう。
実はPICの場合、ファミリーごとにコンパイラが分かれています。
つまり、16Fだとこのコンパイラ、24Fだとこのコンパイラ、という風になっているというわけですね。
とりあえず今はうちの部で基本的に使われているコンパイラについて紹介します。
まず最初に紹介するのはHI-TECH C、どっかの会社と同じ名前ですね。
これはMPLABインスト-ルの際についてくるコンパイラです。
PICのコンパイラとしては恐らく一番標準的なもので、大体今のPICなら殆どのPICはこれで対応できるはずです。
現在はPIC10、12、16、18ファミリーまでしか対応していないようです。また、16までと18でも分かれているようです。
只、基本的に定義されている関数がちょっと少なめなので初心者にはちょっととっかかりにくいかもしれません。
このコンパイラでは基本、「レジスタ」というものを直接操作することで命令を行なっていくようになっています。
NXCとかだと、このレジスタに直接触れる機会はなく、基本的に関数を通してレジスタの中身を操作しています。
つまり、元々NXCとかに定義されている関数のほとんど(モーターを回したり、センサーを読んだりするもの)は
このレジスタの操作を関数にまとめたものということになります。
まぁレジスタってなんなんだ!?という話はまた今度にして、とりあえずそういうものだという理解をしておいてください。
Lite版は此方からダウンロードできます。
そして説明するのがMPLAB C Compiler for PIC24 MCUs and dsPIC DSCs。
ちょっと前までC30っていう名前のコンパイラでした。
このコンパイラはMPLAB C というコンパイラの一種でPIC24F、24E、24H、DSPIC30F、33F、専用のコンパイラです。
上で挙げたPICの場合、HI-TECH Cでプログラムを作るよりも、此方で作るほうが楽なので使っています。
追記:今のHI-TECH Cコンパイラは上で挙げたPICは使えないようです。
此方はHI-TECH Cのようにレジスタをあまりいじらなくていいように
NXCみたいに関数が作られている仕様になっているんですけど・・・
このコンパイラの関数は色々と信用がおけないのでやっぱりレジスタをいじったほうがいいと思われます。
これはLite版はフリーコンパイラで、此方の方でダウンロードできます。
最後に紹介するのがMPLAB C Compiler for PIC32 MCUs。
これもMPLAB Cコンパイラの一種です。これはPIC32MX専用となっています。
現在、他に32MX対応のコンパイラが無いのでC言語で32MXをするならこれしかありません。
とりあえず今回紹介したコンパイラの中では一番使える関数が多いというのが特徴でしょうか。
でもわざわざ32MXを使うような人は基本的にPICには精通している人のはずなので、
わざわざ関数を使うようなこともないでしょう。恐らく殆どの人がレジスタで済ましているはずです。
このコンパイラもフリーなので、此方からダウンロードすることができます。
とりあえず今うちで使っているコンパイラは以上3つだと思います。
今回紹介したのは全てMicrochip社の純正のコンパイラですが、他にも色々とコンパイラは存在します。CCSとか・・・。
因みにCCSは事故コンパイラで有名なので余り推奨は致しません。ホントのホントに初心者用ですね。有料だし。
あまり色々させるとあの子はバグります。例えるなら・・・NXT-G的な。
まぁこんな感じでこのようなコンパイラを使ってPICではプログラムを書いていくことになります。
このブログでもこの先、PICによるプログラムを記述する場合があるとは思いますが、
勿論コンパイラによって微妙に命令などが違ってきますので(Microchipのはどれもあんまり変わらないけど・・・)
どのコンパイラのプログラムなのかは注意して頂いた方が宜しいかと思われます。
という訳で今回はコンパイラの話でした。それではまた。
(^・ω・)ノ RadiumProduction in RoboCup Junior
カレンダー
最新CM
カテゴリー
らじぷろ目次
らじぷろ検索機
最新記事
(01/01)
(01/03)
(08/27)
(04/29)
(01/01)
(11/20)
(09/06)
(09/04)
(08/09)
(08/06)
(07/27)
(05/29)
(03/15)
(01/01)
(05/07)
プロフィール
HN:
Luz
性別:
男性
アーカイブ