ベアメタルで高速I/Oに挑戦、LPC1114の実力に迫る:「mbed」で始めるARMマイコン開発入門(12)(4/4 ページ)
mbedでベアメタルプログラミングを行うメリットは、バイナリサイズの縮小だけではなく、直接制御によって高速なI/Oを実現可能です。Lチカを例に、ベアメタルプログラミングによる高速I/O制御を試します。
おわりに
今回はGPIOの高速制御の限界に挑戦しました。ベアメタル的手法を使えば48MHzのクロックでも6.87MHzでI/Oを制御することができました。C言語で普通に書いても7サイクルでした。アセンブラで書いても恐らく、7クロックより速くすることはできないでしょう。これはmbedのコンパイラがとても優秀だということかもしれませんね。
1980年代に私が外資系のコンピュータメーカーに務めていた頃、COCOM(対共産圏輸出統制委員会)規制というものがあり、社員はその教育プログラムを受けることが義務化されていました。
その資料にCOCOM規制の対象になるコンピュータのスペックが記されていました。それを見るとCPUの処理速度だけでなくI/Oの転送速度が速いコンピュータも対象でした。軍事転用された場合のポテンシャルが高いためです。当時、LPC1114が存在していたら間違いなくCOCOM規制対象物資だったことでしょう。LPC1114が(時代の差こそあれ)そのくらいのポテンシャルを秘めたマイコンであることを認識して頂ければ幸いです。
「mbedで始めるARMマイコン開発入門」ということで12回連載してきましたが、掲載は今回が最後になります。ここまでこのテーマで続けてこられたのもひとえに読者の皆さんのおかげだと思っております。LPC1114の周辺デバイスを網羅するということで始めた企画ですので、I2CやSPIについても触れたかったところではありますが、記事に対するご要望やご意見がありましたらMonoist編集までお寄せ下さい。
今後とも組み込みや電子工作に関わる記事や書籍に関わっていきたいと思っています。また各地で講演やワークショップなども行っています。それらの情報はTwitterの@imaocaまたはFacebookで発信していますので、フォローして頂ければと思っています。今後ともよろしくお願い致します。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- ARMマイコンの“ベアメタルLチカ”に挑戦
ARM「mbed」の開発環境にはクラスライブラリが用意されており、ターゲットマイコンの種類を問わない開発が可能ですが、ハードウェアを直接たたくベアメタルの手法でも開発が可能です。バイナリ軽量化を図れるベアメタル開発について勉強します。 - シリアル割り込みを使って、2つのプログラムを並行動作させる
“割り込み”の概念を理解することで、複数のプログラムを並行しているかのように処理できますが、その方法はタイマーを使うだけではありません。今回はシリアル割り込みを使った並行動作について学びます。 - 「割り込み」を理解してタイマーを使いこなす
ARMマイコン「LPC1114」には周辺機器としてタイマーが搭載されており、“割り込み”の概念を理解することで、複数のプログラムを並行しているかのように処理できます。 - ARMマイコンからのPWM出力でLEDを“ボヤっと”光らせる
デジタルの出力は本来「0」か「1」ですが、PWM出力を用いれば疑似的なアナログ出力を得ることができます。ARMマイコン「LPC1114」を使って、LEDを“ボヤっと”光らせてみたり、サーボモータの制御に挑戦してみましょう。 - ARMマイコンに内蔵された周辺デバイスの使い方を学ぶ−アナログ入力編−
ARMマイコン「LPC1114」にはさまざまな周辺デバイス(ペリフェラル)が内蔵されています。今回はアナログ信号をデジタル信号に変換するA/Dコンバータの使い方を学びます。