鳥なき里のマイコン屋(49) ARM Mbed その7、classの行方

開発ツールとしてのARM Mbedを調べてみるシリーズから「スピンオフ(フォークというべきか?)」する感じで、ターゲットボードにいろいろデバイスをつなげてみるシリーズを始めました。そのときに、真っ先に困ったのが、デバイスを繋げるための自分のコードを書くときに「どんなスタイルで書くのがいいの?」という点。組み込み用のマイコンのプログラミングというとCで書くのが「未だに」一般的じゃないかと思います。しかし、Mbedは基本C++で、結構カッコよくclassを使ってハードウエアの下の方を隠蔽している感じです。

“鳥なき里のマイコン屋(49) ARM Mbed その7、classの行方” の続きを読む

鳥なき里のマイコン屋(48) ARM Mbed その6、Make-GCC-ARMへイクスポート

Mbed-CLIをも少し使ってみるつもりでおりました。Mbed-CLIはOS5向けのようですが、OS2も可能という記述を見つけたので、「Mbed-CLI用」のOS2サンプルプロジェクトのimportをMbed-CLIから試みたのですが、途中で落ちてしまいました。どうせコマンドラインで作業するのであれば、Web環境から既にツールチェーンMake-GCC-ARM宛てでローカルディレクトリにイクスポート済のOS2のサンプルプロジェクトをビルドするのと大差なくね、ということで、そちらでビルドからgdbデバッグまでを通しでやってみました。実質の作業時間5分くらい。あまり簡単すぎて、本当に良いのだろうか、とも思いましたが、問題ありません。ちゃんと動いていますよ。

“鳥なき里のマイコン屋(48) ARM Mbed その6、Make-GCC-ARMへイクスポート” の続きを読む

鳥なき里のマイコン屋(47) ARM Mbed その5、OpenOCD+GDBでデバッグ

昨日、Mbed-CLI環境が立ち上がり(といっても大した作業はしていませんが)ローカル環境でビルドも成功しました。GCC_ARMのクロスツールチェーンの中を見やればgdbも入っています。これでデバッグできるかといえばさにあらず。WindowsやLinuxの上で自OSの上で動作するプログラムを作るセルフ開発であればgdbでセルフデバッグできますが、マイコン(ROM/RAM積んだマイクロコントローラ、MCU)のクロス開発環境ではそうは問屋が卸しません。リモートデバッグのための準備が必要です。

“鳥なき里のマイコン屋(47) ARM Mbed その5、OpenOCD+GDBでデバッグ” の続きを読む

鳥なき里のマイコン屋(46) ARM Mbed その4、Mbed-CLI

楽しく使わせていただいているArm Mbed環境ですが、そろそろCLI(コマンド・ライン・インタフェース)の開発環境についても触れないわけにはいきません。まず技術的な面からは、クラウドベースのMbed環境はソースコードからオブジェクトへのコンパイル(ビルド)はできるのですが、デバッガを使うことができないためです。もう一つはルール的な問題です。ソースコードをクラウド上に置いておくような開発の方法は、伝統的な会社の多くでは制限されているという点です。ソースコードの社外あるいは部門を越えた持ち出しについては、厳しく管理されている会社多いですものね。クラウドにソースを上げておくなどトンデモない、と。そんな場合にMbed-OS使えないのは世界を狭めてしまうので、クラウドにソースを置かず、ローカルで開発する手段が提供されています。

“鳥なき里のマイコン屋(46) ARM Mbed その4、Mbed-CLI” の続きを読む

鳥なき里のマイコン屋(45) ARM Mbed その3、OS2種類、どっち?

昨日も書きましたが、Mbedという「開発環境」は、Mbed-OSという「実行環境」と不可分なようです。しかし、そのOSに2種類というか2バージョンあるのです。「彼ら」の呼び方で

OS 2 と OS 5

です。途中の3とか4はどこにあるの?とか、OS 2といわれると、その昔のIBM OS/2を思い出してしまうのですがね、とか閑話休題。そんな2種類あると言われると、どっち使ったらいいものか、まずは両方調べないとならないな、などと思うのです。ところが、Webベースの開発環境で、プログラムの新規作成を選ぶと、ひな形にするテンプレートを選んだ時点で勝手にどちらかに設定されています。特になんのお断りもなし。そんなOSのバージョン知らなくても無意識に使えてしまう?のがちょっと怖い。

“鳥なき里のマイコン屋(45) ARM Mbed その3、OS2種類、どっち?” の続きを読む

鳥なき里のマイコン屋(44) ARM Mbed その2, printf, OSのお陰

第42回で「開発時に使うけど実行時には使わないソフトウエアを主に」などと方針を述べたのですが、この Mbed というWebベース(クラウド)の開発環境については実行時に必要なソフトウエアを抜きに語ることはできません。

Mbed-OS

という ”RTOS” があること前提の開発環境だからです。また、ブラウザ画面の中で開発ができる、という便利さの反面、当然、制約事項もあります。しかし、そこも含めて結構良く考えられている環境ではないかと思います。

“鳥なき里のマイコン屋(44) ARM Mbed その2, printf, OSのお陰” の続きを読む

鳥なき里のマイコン屋(43) ARM Mbed その1、お手軽過ぎて?

第2部開発ツール編行きますと自分で書いたものの、「いや~面倒くさいね~」とちょっと手を付けかねていました。新規の(私が使ったことがない)開発ツールをやるとなると、ビルドして実機で動かすことくらいはやっておきたいです。すると開発ツールをインストールするだけでなく、ツールの使い方を調べ、片やターゲットのMCUを調べ、MCUを搭載したボードの回路など調べて、と準備が結構大変。サンプルプログラムくらいはどこかで公開されているにせよ、いわゆる「Lチカ」やるだけでも勉強しないとならない(読まなければならないドキュメント)ことが多すぎ、と思っていたら最近は全然そんなことは無い環境があるのでした。年寄りは目から鱗。

“鳥なき里のマイコン屋(43) ARM Mbed その1、お手軽過ぎて?” の続きを読む

鳥なき里のマイコン屋(42) 第2部開発ツール編スタートにあたり

シングルチップ・マイクロコントローラ、MCU、CPUにROM/RAMまたは相当のメモリと周辺回路まで集積した「マイコン」、そのメーカーも一巡できてしまった感じ(もし落ち漏れあったらご指摘ください、慌てて追加いたします)なので、どうしようかとしばらくお休みしておりました。満を持してということはまったく無いのですが、第2部ということで開発ツール編をスタートしたいと思います。今回は、スタートにあたり前置きかな。

“鳥なき里のマイコン屋(42) 第2部開発ツール編スタートにあたり” の続きを読む

鳥なき里のマイコン屋(41) SiFive RISC-V、MCUにもなり MCUではなく

頭の片隅にその名はちらちらしつつも、いままで避けてきていましたものに

RISC-V

があります。最近「盛り上がっている」オープンな命令セットアーキテクチャです。

オープンで自由だ

などと言われると何かよさげでつい浮かれて乗ってしまいそうな気もするのですが、ちょっと懐疑的な気持ちもあるのです。自由の裏にはそれを維持するための努力がとっても必要だから。でもそろそろ避けているわけにもいかない時期に来ているようです。

RISC-Vは「アーキテクチャ」であるので特定の実装に依存することはありません。しかし、その実チップとなれば実体ハードウエアを持たざるを得ず、特定の実装になるわけです。そこで登場するのが、「実チップ」を手掛けている会社ですが、その中でSiFive社は本命的な一社じゃないかと思います。この会社がカバーしようとしている「実装」は、Arm Cortex-Aシリーズクラスの比較的ハイエンドからCortex-Mシリーズクラスのローエンドまで幅広く含むようです。下の方はまさにマイクロコントローラ(MCU)領域、そして、実際「マイクロコントローラ」に分類せざるを得ない「実チップ」も出しているようなのです。この投稿のシリーズ、実装とその売り方(売られ方)に興味があります。いたしかたありません、RISC-Vのマイクロコントローラを眺めておきましょう。

“鳥なき里のマイコン屋(41) SiFive RISC-V、MCUにもなり MCUではなく” の続きを読む

鳥なき里のマイコン屋 (39) MarvellのWiFiマイクロコントローラ

MCUで検索すると、このシリーズでフォーカスしている “MicroController Unit” (マイコン)でなく、アメコミ映画で有名な、”Marvel Cinematic Universe” の方がヒットしてしまいます。その上、半導体業界には、Marvelと綴りの非常によく似た Marvell社も存在します。大手半導体企業群の一角を占める会社といってよいでしょう。ネットワーク関係、ストレージ、モバイルと結構手広く商売している中で、「間の悪いこと」に「こちらの 」Marvell社にも MCU (マイコン)が存在するのです。その名は88MW320。前回、WiFi搭載の8ビット系マイクロコントローラを取り上げさせていただきましたが、WiFiを売りにしているという点では、こちらの方が本命かも。

“鳥なき里のマイコン屋 (39) MarvellのWiFiマイクロコントローラ” の続きを読む

鳥なき里のマイコン屋(38) Rabbit(Digi)、独自の進化を遂げた強力8bit CISC

Digi International社というと、ZigBeeなどの無線モジュール製品などを思い浮かべる方が多いのではないかと思われます。開発キットなども充実していて使いやすい製品がそろっている印象です。実験、試作、少量生産に適する「出来合いの通信モジュール」の会社という理解で、使用しているマイコン類などのチップは全て外部から調達しているものと考えていました。勿論、外部から調達しているチップも多いのですが、一部は自社内に持っていたのです。

今回調べさせていただく Rabbit という名のプロセッサはもともとRabbit Semiconductorという会社の製品だったのですが、いつの間にかDigi社に買収されており、RabbitはDigi社のブランドになっておりました。それだけでなく、Digi社の方向性とマッチして、独自の進化を遂げておりました。なかなか強力。

“鳥なき里のマイコン屋(38) Rabbit(Digi)、独自の進化を遂げた強力8bit CISC” の続きを読む

鳥なき里のマイコン屋(37) Bridgetek、熱帯のマイコン屋

私の乏しい数度の個人的体験(それも10年以上前ですが)では、「寒かった」印象が残っているのです、シンガポール。オフィスの空調がどこの会社も効き過ぎ。ネクタイ締めて、上着を着ていてもシンシンと冷えてくる。外は晴れて暑いのに。それはさておき、当時、ある日本の会社のマイコンの設計を「外注」で受けている半導体会社がありました。シンガポールにもかなり昔からマイコンを設計できるエンジニアがいたのです。働いている人は、半分が中国系、半分がインド系という感じ、ちょうど両側の世界の接点的な位置にあるのでさもありなん、という感じ。シリコンバレーの設計もアジア系が多いので、似た雰囲気。さて、エンジニアがいるのですから、マイコンの会社がシンガポールにあっても不思議ではありません。そうです、あります、Bridgetek社です。ただ、今回、事情あり、個別の機種の説明は無くても済むか。

“鳥なき里のマイコン屋(37) Bridgetek、熱帯のマイコン屋” の続きを読む

鳥なき里のマイコン屋(36) Infineon、車載とパワー

欧州というかドイツ半導体の巨人、Infineon Technologies社が後回し(?)なっていたのは他意はありません、たまたまです。MCU業界をひとわたり巡回しきるにあたって(といってまだ取り上げたいところはあるのですが)、トリということでご登場願うことにいたしました。Infineon社は、ドイツが地盤という土地柄からも、当然、

MCU製品は車載がメイン

です。他の車載向けMCUを展開している会社のHPを見ると、まず汎用品があり、車載品への入口もあるのですが、車載品の詳しいことは営業にお聞きください的なスタンスが多いです。(車載品、は車のプロの人以外来てもらっても困るということです。)しかし、Infineon社では何も言わなかったら車載、みたいな徹底ぶりです(というかドイツ人は皆、車屋さんにも思えます)しかし、そこにもコアの用途を整理して、車載以外にも住み分けを図る意図のようなものが感じられました。

“鳥なき里のマイコン屋(36) Infineon、車載とパワー” の続きを読む

鳥なき里のマイコン屋(35) Sonix, 音声マイコンの世界のリーダー?

台湾は、マイコン屋らしいマイコン屋が多くて良いです。その中でも本日調べさせていただく Sonix社は、調べるほどに製品の層の厚さを感じる上に(マイコンは多品種でなけりゃ)、ねらい目に合わせて特徴(周辺回路の味付け)も出ていて流石だと思います。惜しむらくは、ターゲットが比較的ローエンドのアプリ向けだというところ。まず、お値段的には、それほど美味しい商売にはならないんじゃないかしら。でもね、「マイクロコントローラ商売は薄利多売と見つけたり」でしょ。地道に行きましょ、地道に。

“鳥なき里のマイコン屋(35) Sonix, 音声マイコンの世界のリーダー?” の続きを読む