MPLAB X IDE : XC32 C32 の件

2016年9月25日

MPLAB X IDE : XC32 C32 の件


また例によって、かいつまんで書くつもりがだらだらになってしまいました。


なんだかんだ言ってましたが、秋月で売っている PIC32MX220F032B メモリバカ食いで微妙とか言ってましたが、C32 を使うと MIPS16 オプションと 最適化制限ありません
どこかのHPで見かけたのですが、こことか。


#ifndef __MIPS16_H__
#define __MIPS16_H__
#define _MIPS16 __attribute__ ( (mips16) )
#endif /* __MIPS16_H__ */


他のHPでもこの件については書いてありました。割り込みは MIPS16 がエラーになるので、
#define _MIPS32 __attribute__ ( (mips32) )
を、関数の帰り値の後ろに付けるとか書いてましたが、普通にコンパイルできました。割り込み関数の構文でライブラリを使っているからでしょうか。そしてちゃんとコード量は減りました。
後は、他のコンパイラなんでしょうか。戻り値の後ろにMIPS16の指定を全ての関数に付けなければならないとか見かけましたがそんなことはありませんでした。XC32か他の話を私が混同しているのでしょう。
ライブラリですが、XC30 でも C32 でも問題なくコンパイルできるので安心です。Compiler.hをインクルードするとこうなるのでしょうか。検証もなにもしてませんが。
C32 は、バージョンアップが止まっているみたいですが、全く困らないので C32 使うしかないでしょう。
今後なにか使えないPICが出るようであれば、XC32で。
Android Audio Control Demo で、Flashが100%ぎりぎり越えて大変な目にあったことがありますが、MIPS16と最適化Sで50%位に減りました。ですので最適化3にして60%いい感じですねぇ
デバックでは MIPS16 オプション付けて最適化なしでやったことがないので、なんとも言えませんがソースコード通りに動くようであれば、付けてもいいしFlash余っているようであれば、MIPS16 オプション必要ないです。
ですがとりあえず、PIC32MX250F128 は1つは買っておいた方がいいと思います。Flashいっぱいになるようなことがなければ全く必要ありませんが。マイクロファンだっけかな。ここのHP検索してみてください。そこで売ってます。
で、MPLAB X IDE しか最近使っていないのですが、MPLAB IDE で XC32 使えるのでしょうか。
MPLAB X IDE は #define を解析して使わないコードは灰色になります。
Demo のコード使おうとすると、全PICで使えるようにしてあるので、#if defined(C8)とか、大量のコードがありまして、これが全部灰色になるのでとても使いやすいです。ただ検索の文字列をペーストできないので、プロジェクトの #define とかペーストできないのでとても不便です。そこだけ治してくれれば最強なんですが。
C32と合わせて、これで FA ではないかと。
XC32 のMIPS16のオプションは2カ月しか使えないという話らしいですが、どうやって確認するれば良いかというと、フォルダの日付だけはインストールした日付なので、そこで確認できるでしょう。
C32 も同じく2カ月かとおもっていたら、そんな制限は無いようです。
インストールしたフォルダの時間から察するに、4ヶ月半制限なしでした。バグってる見たいな感じですかね。
残り14日とか毎日出ますが、ライセンス切れる日まで、14日毎日同じです

ちなみに PIC32MX220F032B に、chip select 14bit の機能があるようです。使えるわけがないのですが、PIC32ってついにバスアクセスできるようになってるんですね。秋月様、PIC32の面実装の100pinとか64pin売ってください。お願いしますw
それの機能を使えば、LCDのコントロールもすばらとか用途不明のSRAM(バックアップ位)とか、使えてすばらです。なくてもdsPIC33でLCDはタイミング的にぎりぎりだったがしますが。
と、言うことで、PIC18F2550 は完全に使う意味が無くなりました。PIC32MXが220円ですし。ありがとうPIC18そしてさようなら PIC18。てな感じで今のところそう感じています。で、結局そのうちなんだかんだ言うかもしれませんが。
4550はUSB付いててなかなかいい感じですが、同じくPeripheralな機能が8bitなのでとてもめんどくさいです。
基本秋月でしか買っていないないので、dsPIC30F4013 に PIC32MX のこれの組み合わせの方が相当楽です。
CDCのサンプルあることだし220円だし、実装場所を食うのでそこは臨機応変に。2550は3個くらい余っているので使い切るまではCDC selialブリッジに使うことは有意義かと。そのあとはPIC32のこれでしょう。
とは言ってもそんな大量に物作らないし、USB必要なければ更に2550が掃けません。
LEDチカチカが8bit Timerなので、48Mで動かしていると8bitに250いれて、最大周期で2msecなんですよね。こんなに早くする必要がなくて、プログラムが結構遅くなっているのではないでしょうか。7segダイナミックならこのくらいがいいですが。
CDCの件で久しぶりに18F触ったのですが、dsPICとかばかりだったので、PIC18は厳しいですね。痛感しました。USBいらなくてチープなものであれば、16F、12Fとかで十分かと。まあ、値段次第です。

PIC32

Posted by saba