
別件(別ボードでと言うべきか)でセンサなどを工作していたので、Cypress社のPSoC開発環境であるPSoc Creatorの勉強がお休みになっておりました。PSoCで工作したいセンサも出てきたので、今回は接続のための下準備を始めてみたいと思います。PSoCの「売り」であるアナログ・コンポーネントの使用に入るのですが、思わぬところでハマって一刻空費してしまいました。何のことはない、回路図の編集で「ツボにハマって」いたのです。
デバイス作る人>>デバイス使う人>>デバイスおたく
昨日USBシリアルを準備して備えておったのは、Cypress社のPSoCの開発環境である
PSoC Creator
なんであります。開発環境やら周辺部品やらをいろいろ遊んでいくためにはターゲットボードは「何枚あっても良いな」けれども「先立つ物が」などと思っていた矢先
トラ技5月号にPSoC 4 体験キット、その名も”TSoC”
ということで付録基板が付いていました。GWの10連休中に遊ぶためにCQ出版様が付録を付けたのかとも思われます。早速、遊んでみることにいたしました。
マイコン向けの開発環境では、ホスト(大抵はパソコン)の上でオブジェクトをビルドした後、開発用のターゲットボードに刺した「エミュレータ」とか「プローブ」とか呼ばれるハードウエアの箱を通してターゲットボードにオブジェクトを「ダウンロード」して実行することが多いと思います。またエミュレータにはターゲットをデバッグするための支援機能が内蔵されており、これを呼び出して(多くはホスト上のデバッガが裏で操作しているのですが)デバッグを行います。最近の「お手軽」開発ボードでは、従来独立した箱だったエミュレータに相当する部分までボード上に搭載してしまい、直接パソコンにUSB接続してダウンロードもデバッグも行えるものが増えています。
しかし、多くの開発プロジェクトでは、ターゲットとなるハードウエアの開発と並行してそれを制御するソフトウエアも開発しないとスケジュール的に間に合わないことも多く、ソフトウエアに着手した時点ではまだターゲットボードが存在しない、という状況も多いと思います。そんな時に使われたりするのが「シミュレータ」です。多くのマイコン向け開発環境に、マイコンメーカなどが開発した「ソフトウエア・シミュレータ」が含まれており、ターゲットのハードウエア無に、ホスト上でマイコン用のオブジェクトプログラムを動作させ、テストできるようになっています。 “鳥なき里のマイコン屋(50) ARM Mbed その8、Mbed Simulator” の続きを読む
開発ツールとしてのARM Mbedを調べてみるシリーズから「スピンオフ(フォークというべきか?)」する感じで、ターゲットボードにいろいろデバイスをつなげてみるシリーズを始めました。そのときに、真っ先に困ったのが、デバイスを繋げるための自分のコードを書くときに「どんなスタイルで書くのがいいの?」という点。組み込み用のマイコンのプログラミングというとCで書くのが「未だに」一般的じゃないかと思います。しかし、Mbedは基本C++で、結構カッコよくclassを使ってハードウエアの下の方を隠蔽している感じです。
Mbed-CLIをも少し使ってみるつもりでおりました。Mbed-CLIはOS5向けのようですが、OS2も可能という記述を見つけたので、「Mbed-CLI用」のOS2サンプルプロジェクトのimportをMbed-CLIから試みたのですが、途中で落ちてしまいました。どうせコマンドラインで作業するのであれば、Web環境から既にツールチェーンMake-GCC-ARM宛てでローカルディレクトリにイクスポート済のOS2のサンプルプロジェクトをビルドするのと大差なくね、ということで、そちらでビルドからgdbデバッグまでを通しでやってみました。実質の作業時間5分くらい。あまり簡単すぎて、本当に良いのだろうか、とも思いましたが、問題ありません。ちゃんと動いていますよ。
楽しく使わせていただいているArm Mbed環境ですが、そろそろCLI(コマンド・ライン・インタフェース)の開発環境についても触れないわけにはいきません。まず技術的な面からは、クラウドベースのMbed環境はソースコードからオブジェクトへのコンパイル(ビルド)はできるのですが、デバッガを使うことができないためです。もう一つはルール的な問題です。ソースコードをクラウド上に置いておくような開発の方法は、伝統的な会社の多くでは制限されているという点です。ソースコードの社外あるいは部門を越えた持ち出しについては、厳しく管理されている会社多いですものね。クラウドにソースを上げておくなどトンデモない、と。そんな場合にMbed-OS使えないのは世界を狭めてしまうので、クラウドにソースを置かず、ローカルで開発する手段が提供されています。
昨日も書きましたが、Mbedという「開発環境」は、Mbed-OSという「実行環境」と不可分なようです。しかし、そのOSに2種類というか2バージョンあるのです。「彼ら」の呼び方で
OS 2 と OS 5
です。途中の3とか4はどこにあるの?とか、OS 2といわれると、その昔のIBM OS/2を思い出してしまうのですがね、とか閑話休題。そんな2種類あると言われると、どっち使ったらいいものか、まずは両方調べないとならないな、などと思うのです。ところが、Webベースの開発環境で、プログラムの新規作成を選ぶと、ひな形にするテンプレートを選んだ時点で勝手にどちらかに設定されています。特になんのお断りもなし。そんなOSのバージョン知らなくても無意識に使えてしまう?のがちょっと怖い。
第2部開発ツール編行きますと自分で書いたものの、「いや~面倒くさいね~」とちょっと手を付けかねていました。新規の(私が使ったことがない)開発ツールをやるとなると、ビルドして実機で動かすことくらいはやっておきたいです。すると開発ツールをインストールするだけでなく、ツールの使い方を調べ、片やターゲットのMCUを調べ、MCUを搭載したボードの回路など調べて、と準備が結構大変。サンプルプログラムくらいはどこかで公開されているにせよ、いわゆる「Lチカ」やるだけでも勉強しないとならない(読まなければならないドキュメント)ことが多すぎ、と思っていたら最近は全然そんなことは無い環境があるのでした。年寄りは目から鱗。
頭の片隅にその名はちらちらしつつも、いままで避けてきていましたものに
RISC-V
があります。最近「盛り上がっている」オープンな命令セットアーキテクチャです。
オープンで自由だ
などと言われると何かよさげでつい浮かれて乗ってしまいそうな気もするのですが、ちょっと懐疑的な気持ちもあるのです。自由の裏にはそれを維持するための努力がとっても必要だから。でもそろそろ避けているわけにもいかない時期に来ているようです。
RISC-Vは「アーキテクチャ」であるので特定の実装に依存することはありません。しかし、その実チップとなれば実体ハードウエアを持たざるを得ず、特定の実装になるわけです。そこで登場するのが、「実チップ」を手掛けている会社ですが、その中でSiFive社は本命的な一社じゃないかと思います。この会社がカバーしようとしている「実装」は、Arm Cortex-Aシリーズクラスの比較的ハイエンドからCortex-Mシリーズクラスのローエンドまで幅広く含むようです。下の方はまさにマイクロコントローラ(MCU)領域、そして、実際「マイクロコントローラ」に分類せざるを得ない「実チップ」も出しているようなのです。この投稿のシリーズ、実装とその売り方(売られ方)に興味があります。いたしかたありません、RISC-Vのマイクロコントローラを眺めておきましょう。
後回しにしていたら、先月2019年2月に新製品のプレスリリースが出ていたことに気が付きました。TDK-Micronas社 堂々のArm Cortex-M3搭載MCUの新機種を発表です。TDKという名を冠しているとおり、日本のTDKの傘下にありますが、こちらドイツの会社です。マイクロコントローラメーカの一覧表の「欧州」分類に追加しないと(後で時間があるときに改定いたします。)TDK-Micronas社は、ホールセンサを車載や工業用途向けに売っているのがメインに見えるのです。そして、センサ側(位置を見張る側)からアクチュエータ側(位置を動かす側)に守備範囲を広げていくのにあたり、「スマートな制御」のためにプログラミングの必要が出てきて、徐々に「マイコン屋」化していったのではないかと推測されます。かなり珍しいケースではないかと思います。