教育用、と銘打って売られている「マイコン・ボード」的なもののひとつに
Micro:bit
というものがあるのをご存知かもしれません。小学生くらいを主対象にプログラミングの学習用など意図したボードのようです。世界中に蔓延っている?らしいです。調べてみると、この開発環境、如何にも「モダン」な要素にあふれています。子供相手のおもちゃなどと馬鹿にしたものじゃありません。
デバイス作る人>>デバイス使う人>>デバイスおたく
このところ、またMbedのWeb開発環境に戻って作業しています。大分慣れてきたのですが、ちょっと疑問に思うことがありました。Web開発環境の裏側では「コンパイラ」が動作している筈ですが、それはどのようなコンパイラなのかと。いろいろ見れば、Armの「純正コンパイラ」
Arm Keil
であるようですが、gccのように
gcc –version
などとやってコンパイラのバージョンとか分からないものかと思っていました。まあ、知ったからといって、コンパイラのバージョンにセンシティブなほど本格的な使い方はしていないのでありますが。心の片隅にしまわれた小さな疑問というだけのことです。 “鳥なき里のマイコン屋(64) Mbed、使われているコンパイラは何?” の続きを読む
一種類とか一社製品とかばかり見ていると知らぬ間に頭が「その常識」に囚われて、いろいろ見えなくなることがあるものです。このところ、ST社のSTM32マイコンを搭載したNucleoボードでばかり「遊んで」います。ちょっと他社のマイコン、それもArm EbedのWeb開発環境でプログラムを作れるものにもちょいと手を出しておくかいなと思いました。選んだのは、
NXP社のLPC11U35搭載のボード
です。正確に言えば、NXP社のLPC11U35マイコンを搭載したEmbedded Artists社のEA LPC11U35 QuickStart Board互換の秋月製ボードです。純正品に比べると大分お手頃だったので、つい。
RTOS(リアルタイム・オペレーティングシステム)などと言うと、とても敷居が高くて、準備するだけで数か月みたいなイメージをもっていたのですが、
では違うようです。今日も実働時間1時間もかからずに、何の知識もない状態から、4スレッド(一般のRTOSでは普通タスクと呼ぶけど)、セマフォにイベントフラグ、割り込みハンドラなど含めたRTOS(Ebed OS5)の練習プログラム、動いてしまいました。でも、いつもの調子で大慌てなドタバタもあったんであります。まあ、書いてみないと分からない。 “モダンOSのお砂場(1) Mbed OS、スレッド、セマフォ、イベント、割り込み” の続きを読む
先日からST社のツールを使わせていただいておりますが、よく資料も読まずに作業していたので、ここに来てちゃんと資料を読もうと思いいたりました。マイコンツールの基本中の基本に、作成したプログラムを実機のプログラムメモリに書き込むときに使うオブジェクトファイルフォーマットというものあり、古くから、
などというものが使われております。当然、WindowsやLinuxでもオブジェクトファイルフォーマットは存在し、PEとかELFとかが使われます。マイコン用とパソコン用の違いを簡単に述べれば、以下のような感じでしょうか。
実際には、ELFフォーマットのような相対番地のフォーマットでコンパイル、リンクまで済ませた後、バイナリツールを使って絶対番地のマイコンに転送できるHEXフォーマットに変換し、書き込みツールでマイコンに書き込む、といったことが行われます。
ST社においても、この手の操作は必須なだけに当然ツール類がサポートされています。
最近、マイコン開発ボード間の接続にUARTを使うようなことを始めております。時間もないので途切れ途切れにソフトを書くしかないのですが、そのマイコン上でなければ書けないようなものならともかく、UART使った文字ベースのプログラムであれば、
パソコンの上である程度作って、デバッグしてから
マイコンに持っていけば簡単じゃん、とか思ってしまうわけです。とは言え、VCでWindowsのAPI使って書く気が起きませぬ(普段Windows上ではお手軽なC#ばかりだから)。WSL(上のUbuntu)か、Cygwinか、MSYS2か、いずれにせよ、gccで書いてマイコンのgccに持ち込むのがよろしかろう、などと考えました。しかし、まてよ、WindowsのCOMxxってその手の環境で使ったことなかった。どんなお名前で呼べば良いの?トホホな疑問です。
前回は、STM32CubeIDEをインストールしてプロジェクトを作ってみたところで終わってしまいました。今回は、恒例の「Lチカ」をビルドして走らせようと思うのですが、初めての環境、手探り状態です。そんな簡単な事でも、やはり初回はノーエラーとは行きません。またまたダウンロードが走り出します。
前回はマイコン(ノード側)の通信テストの相手にするために、Raspberry Piを使おうと思い立ち、Raspberry Piを「数年ぶりの再稼働」いたしました。数年ぶりともなると溜まるものが溜まっています。ファイルの更新作業だけで夜中までかかってしまいました。ようやく今回から、Raspberry Pi上に「テスト用のサーバーもどき」を作り始めたいと思います。お手軽重視なので、簡単に作れるものが良いな~と探したところ
Python上で動作するBottleというフレームワークが良さげ
ではないかなと考えました。Pythonでしたら普段から使っているので(Python使いの人のPythonらしいPythonコードには未だに慣れず、ごくごく普通な書き方をしておりますが)何かとお手軽。
※『Literature Watch Returns (L.W.R.)』の投稿順 index はこちら
最近、マイコン用開発ツールをいろいろ勉強させてもらっている投稿が多いのですが、
最近のマイコン開発環境、便利すぎ、お手軽すぎ
と感心しきりだったのです。しかし、何でそんなに便利に、お手軽になったのかには、大きな事情というか流れというかがあったのでした。遅ればせながら CQ出版のInterface誌の2019年5月号(先月の内に読めばオンタイムだったのだが、読んだのは昨日、既に5月になっていた)を読んでようやく目から鱗というか、理解に至りました。
ベアメタルでスタートアップルーチンをアセンブラで書く
そういうスタイルが「まずい」理由が、令和になる前、とっくの昔に存在していたのですね。。。
“Literature watch returns (4) あなたの知らないモダンOSの世界、Interface 2019/5月号 CQ出版” の続きを読む