PIC

MPLAB C32 compilerを使ってみた

2012年4月27日

Microchip のPIC32シリーズに、PIC32MX150F128B / PIC32MX250F128B という、DIP-28 の石を見つけた。RAM も 32 KB あるし、PIC32MX250F128B の方は USB ホストとしても使えるので、色々と面白いことに使えそう。価格も、$5 前後と、手ごろである。早速注文したので、2-3日で届くはずだが、待ちきれず、MPLAB C32(PIC32 用の C コンパイラー)で少し遊んでみた。

PIC32は、Microchip独自の開発のCPUではなく、MIPS (Microprocessor without Interlocked Pipeline Stages)という、MIPS Technologiesが開発している RISC アーキテクチャの CPU を用いている。どうやら、ARM に似ているらしい。

レジスタは、32 bit 幅だから、長サイズの整数や浮動小数点演算などは、得意なはずだ。他方、組み込みマイコンではI/Oなどとの連絡を行う必要がある。そちらはどうかと、色々調べてみた。

ポートBのビット0を反転させる動作を考えてみる。これは、「LATBbits.LATB0=!LATBbits.LATB0」という命令で書けるのだが、MPLAB C18 (PIC18F用の C コンパイラー)では、次のようにコンパイルされる。

LATBbits.LATB0=!LATBbits.LATB0;
  000E    708A     BTG 0xf8a, 0, ACCESS

1サイクルですむ。最速で16 Mhzだから、63ナノ秒である。

同じことを、C32でやってみると(最適化はレベル1)

LATBbits.LATB0=!LATBbits.LATB0;
9D0000D8  3C02BF88   lui         v0,0xbf88
9D0000DC  8C446130   lw          a0,24880(v0)
9D0000E0  30840001   andi        a0,a0,0x1
9D0000E4  2C840001   sltiu       a0,a0,1
9D0000E8  8C436130   lw          v1,24880(v0)
9D0000EC  7C830004   ins         v1,a0,0,1
9D0000F0  AC436130   sw          v1,24880(v0)

7サイクルもかかる。PIC32MX150F128Bだと最速で40 Mhzだから、175ナノ秒かかる計算。PIC32MXシリーズの最速である80 Mhzでも、88ナノ秒であり、PIC18Fよりも遅い。

同じ動作をするほかの命令を試してみた。

LATBbits.LATB0=~LATBbits.LATB0;
9D0000D8  3C02BF88   lui         v0,0xbf88
9D0000DC  8C446130   lw          a0,24880(v0)
9D0000E0  00042027   nor         a0,zero,a0
9D0000E4  8C436130   lw          v1,24880(v0)
9D0000E8  7C830004   ins         v1,a0,0,1
9D0000EC  AC436130   sw          v1,24880(v0)

LATB^=0x0001;
9D0000D8  3C02BF88   lui         v0,0xbf88
9D0000DC  8C436130   lw          v1,24880(v0)
9D0000E0  38630001   xori        v1,v1,0x1
9D0000E4  AC436130   sw          v1,24880(v0)

どうやら、「LATB^0x0001」が一番速いようで、80 Mhzの石では50ナノ秒、40 Mhzの石でも100ナノ秒だから、PIC18Fと比較して、同程度のスピードで実行できる。

このままでは使い勝手が悪いので、次のようにしてみた。

#define toggle(x,y) x^=1<<y
toggle(LATB,15);
9D0000D8  3C02BF88   lui         v0,0xbf88
9D0000DC  8C436130   lw          v1,24880(v0)
9D0000E0  38638000   xori        v1,v1,0x8000
9D0000E4  AC436130   sw          v1,24880(v0)

これなら、使い勝手はよいだろう。さらに、

#define set(x,y) x|=1<<y
#define clear(x,y) x&=(~(1<<y))&0xFFFF

とすれば、ビットのセットとクリアーも、同じように4サイクルで実行できる。

C32もだんだん分かってきたので、何か作ってみよう。ただこの感じだと、必ずしも大は小をかねるということにはならなさそうである。ケースによっては、むしろPIC18の方が速いというようなことが、多々ありそう。PIC18に搭載のCPUは、さすが組み込み用にチューンアップされたものと言える。

コメント

zxc (2012年5月16日 03:57:45)

Datasheetにビット操作用に LATxSET , LATxCLR , LATxINVの記載があり
1のbit"のみ"を、それぞれセット,クリア,反転できるようです
ビット反転は下記の方が1命令短いようです
LATBINV = 0x0001;

Katsumi (2012年5月16日 09:23:12)

zxcさん

どうも有り難うございます。新しく扱うものなので、コンパイラのみに頼ってました。Datasheetをちゃんと見た方が良いですね。

後で気がついたのですが、読み込み用の "lw" は2クロック使います。LATBINVの使用で "lw" も使わなくて済むのなら、さらに早くなりそうです。

割り込み等、少しでも早いレスポンスが求められる時など、こういった情報は本当に有り難いです。

ugg slippers (2018年10月28日 22:38:27)

http://www.birkenstocksandalssale.us.com/ birkenstock shoes
http://www.huaraches.us.com/ huarache
http://www.balenciagas-sneakers.us.com/ balenciaga sneakers
http://www.cartier-bracelet.us.com/ cartier bracelet
http://www.jordan11spacejams.us.com/ jordan shoes
http://www.ultra--boost.us.com/ ultra boost
http://www.monclers.uk/ moncler coat
http://www.nikeairmax-90.us.com/ nike air max
http://www.swarovskis.us.com/ swarovski rings
http://www.hermesbirkin-handbags.us.com/ Hermes Wallets
http://www.uggs-forwomen.us.com/ ugg slippers
http://www.balenciaga--shoes.us.com/ balenciaga shoes
http://www.lacosteshirts.us.com/ lacoste outlet
http://www.moncler--jacket.us.com/ moncler jacket mens
http://www.curry4-shoes.us.com/ stephen curry shoes
http://www.adidasyeezys.org.uk/ yeezy
http://www.yeezyboost350shoes.us.com/ yeezy shoes
http://www.longchampbag.us.com/ longchamp le pliage
http://www.polo-ralph-lauren.org.uk/ ralph lauren, polo
http://www.airjordan11spacejam.us.com/ jordan shoes
http://www.adidas-yeezyboost350.us.com/ yeezy boost 350 v2
http://www.pandorajewelryrings.us.com/ pandora jewelry
http://www.goyardbag.us.com/ goyard bag
http://www.pandora--rings.us.com/ Pandora Bracelet
http://www.nikeair-max.co.uk/ nike air max
http://www.nike-airmax-2018.us.com/ nike air max 2018
http://www.ray--ban.us.com/ ray ban sunglasses
http://www.katespade--outlet.us.com/ kate spade bags
http://www.air-max-97.us.com/ air max 97 mens
http://www.under-armour-shoes.us.com/ under armour outlet
http://www.prada--bags.us.com/ prada purse
http://www.pumarihannafenty.us.com/ rihanna fenty puma
http://www.asicss.us.com/ asics womens running shoes
http://www.pandorajewelryscharms.us.com/ pandora jewelry official site
http://www.bvlgaris.us.com/ bvlgari
http://www.pandora-charmsjewelry.us.com/ pandora charms
http://www.montblancs.us.com/ mont blanc outlet
http://www.louboutinredbottoms.us.com/ louboutin
http://www.coach--bags.us.com/ coach
http://www.nike-airmax270.us.com/ nike air max 270
http://www.eccoshoesoutlets.us.com/ ecco boots
http://www.nike--shoes.co.uk/ nike outlet
http://www.pandora-jewelrysale.us.com/ pandora jewelry
http://www.ralphlaurenspoloshirts.us.com/ ralph lauren shirts
http://www.swarovskisjewelry.us.com/ swarovski rings
http://www.adidas-ultraboost.us.com/ adidas ultra boost
http://www.mcm--bags.us.com/ mcm handbags
http://www.kd10-shoes.us.com/ kd 10
http://www.rayban-glasses.us.com/ ray ban sunglasses
http://www.jordan--11.us.com/ jordan
http://www.katespadebags.us.com/ kate spade outlet
http://www.adidasyeezy-350.us.com/ adidas yeezy
http://www.christianlouboutinredbottoms.us.com/ louboutin
http://www.salomon--shoes.us.com/ Salomon xa pro 3d
http://www.pandorauk.us.com/ pandora uk
http://www.nikelebron15.us.com/ lebron james shoes
http://www.airmax-2018.us.com/ nike air max 2018
http://www.adidasnmdrunnerr1.us.com/ nmd adidas
http://www.michaelkors-handbagss.us.com/ michael kors handbags
http://www.fitflops-sale.us.com/ fitflop shoes
http://www.jordanretro11-shoes.us.com/ jordan retro 11
http://www.chromehearts-jewelry.us.com/ chrome hearts
http://www.jordan11.co.uk/ jordan shoes
http://www.jordans11shoes.us.com/ jordan 11 retro
http://www.ray--bansunglassess.us.com/ ray ban eyeglasses
http://www.redbottoms-louboutin.us.com/ christian louboutin
http://www.true--religion.us.com/ true religion outlet
http://www.new--balance.us.com/ new balance
http://www.skecherss.us.com/ skechers shoes
http://www.katespadepurses.us.com/ kate spade bags
http://www.air-max-95.us.com/ air max 95
http://www.adidas-yeezy-shoes.us.com/ Yeezy Boost 350 V2
http://www.nikeair-max90.co.uk/ air max 90
http://www.lebron15-shoes.us.com/ lebron shoes
http://www.mcms.us.com/ mcm wallet
http://www.salomonspeedcross3.us.com/ salomon xa pro 3d
http://www.kyrie-irving-shoes.us.com/ nike kyrie
http://www.mulberry-handbags.us.com/ mulberry bag
http://www.ugg--slippers.us.com/ uggs for women
http://www.longchampbackpack.us.com/ longchamp backpack
http://www.ferragamoshoess.us.com/ ferragamo shoes
http://www.kyrie-4.us.com/ kyire 3
http://www.burberry--scarf.us.com/ burberry
http://www.adidas--shoes.co.uk/ adidas
http://www.burberry-bags.us.com/ burberry handbags
http://www.skechersuk.co.uk/ skechers women
http://www.rayban--glasses.us.com/ ray ban sunglasses
http://www.truereligion--jeans.us.com/ true religion jeans men
http://www.northface-jacket.us.com/ womens north face jacket
http://www.yeezyboost350v2.co.uk/ yeezy boost 350 v2
http://www.yeezyboost350--v2.us.com/ yeezy boost 350 v2
http://www.jimmychooheels.us.com/ jimmy choo shoes
http://www.pandora--jewelrys.us.com/ pandora charms
http://www.redbottom--shoes.us.com/ red bottoms
http://www.asics--shoes.us.com/ asics womens shoes
http://www.barbours.org.uk/ barbour jacket
http://www.celines.us.com/ celine wallet
http://www.ralphlauren--polo.us.com/ polo ralph lauren
http://www.pandoras-uk.co.uk/ pandora bracelet
http://www.james-hardenshoes.us.com/ harden vol 2
http://www.adidas-superstarshoes.us.com/ adidas originals superstar
http://www.hermes--belt.us.com/ hermes
http://www.birkenstock--sandals.us.com/ birkenstock shoes
http://www.fitflopsshoes.us.com/ fitflop sale
http://www.stephen-curry-shoes.us.com/ curry 4
http://www.nikeairmax270.org.uk/ nike air max 90
http://www.ed-hardys.us.com/ ed hardy clothing
http://www.fitflop--sandals.us.com/ fitflop shoes
http://www.goyardbackpack.us.com/ goyard
http://www.nikeairmax-97.us.com/ nike air max 97
http://www.uggsformen.us.com/ uggs for women
http://www.adidasnmd-womens.us.com/ adidas nmd womens
http://www.vapormaxs.us.com/ vapormax
http://www.air-max-270.us.com/ nike air max 270 men
http://www.monclerjacketmens.us.com/ moncler jacket womens
http://www.prada--handbags.us.com/ prada
http://www.nike-huaraches.us.com/ huarache shoes
http://www.airmax90shoes.us.com/ nike air max
http://www.skechers--shoes.us.com/ skechers
http://www.michael-kors-bags.us.com/ michael kors handbags
http://www.salomonshoes.co.uk/ salomon
http://www.kevin-durant-shoes.us.com/ nike kd
http://www.mbts.us.com/ mbt womens shoes
http://www.chrome--hearts.us.com/ chrome hearts bracelet
http://www.polo-ralphlauren-outlet.us.com/ polo ralph lauren
http://www.monclerjacketwomens.us.com/ moncler jacket mens
http://www.pandoras-jewelrys.us.com/ pandora charms
http://www.nikekdshoes.us.com/ kevin durant shoes
http://www.monclerjacket.org.uk/ moncler coat
http://www.oakley--glasses.us.com/ oakley eyeglasses
http://www.supreme--clothing.us.com/ supreme jacket
http://www.uggs--boots.us.com/ uggs for men
http://www.nikeairmax-95.us.com/ nike air max 95 mens
http://www.nike--vapormax.us.com/ air vapormax
http://www.adidasoriginalsultraboost.us.com/ adidas ultra boost uncaged
http://www.moncler-coat.us.com/ moncler jacket mens
http://www.burberrys.org.uk/ burberry scarf
http://www.nikeairmax97.co.uk/ air max 97
http://www.pandora-jewelrybracelet.us.com/ pandora jewelry
http://www.mulberrys.org.uk/ mulberry
http://www.chromeheartsjewelrys.us.com/ chrome hearts ring
http://www.oakley--sunglassess.us.com/ oakley glasses
http://www.northfacejacketoutlets.us.com/ north face vest
http://www.fitflop--shoes.us.com/ fitflop sale
http://www.adidasoriginalsnmd.us.com/ adidas nmd
http://www.air-max-90.us.com/ nike air max
http://www.adidasnmds.co.uk/ adidas nmd r1
http://www.nikeairvapormaxflyknit.us.com/ nike vapormax
http://www.barbourjackets.co.uk/ barbour wax jacket
http://www.salomon-boots.us.com/ salomon xa pro 3d
http://www.coachbags-outlet.us.com/ coach bags
http://www.airmax270.co.uk/ air max 270
http://www.valentino--shoes.us.com/ valentino heels
http://www.supremeshirt.us.com/ supreme clothing
http://www.airmax95.co.uk/ nike air max 95
http://www.salvatore-ferragamo.us.com/ salvatore
http://www.pandorasjewelry.co.uk/ pandora charms
http://www.pandoraearrings.us.com/ pandora jewelry
私が忙しくなり

コメント送信