Arduino Sketch for STM8 Development Workshop

買い物メモが続く。

STM8関連の書籍はあまり見かけないんだが、自分の守備範囲にぴったり合った本があったので購入。
過去にもこの方の著書はよく買ってる。

値段がKindle版だったらちょびっと安かったけど、普段koboで読んでるからしかたない。
Kindleの辞書機能も良さそうだから、いずれ買ってみたい。

でも結局クーポン使って実質安かったので、まあ良しとしておきます。

 

内容は、Arduino IDEでSTM8用の開発環境を作って簡単なスケッチを動かすという、よくある流れ。
そもそも、Sduino以外に公式でSTM8がArduino IDEで使えるというのを知らなかった。
STM32なら知ってたが、要するにやることはSTM32とあんまり変わらない(気がする)。

ちなみにSTM32のもあるので(もちろん購入済み)、読み比べてみようと思う。

英語ダメダメなので辞書で訳しつつ読んでるもんだから、むちゃくちゃ歩みが遅いです。
あとこういうのもある。

この手の書籍はまとめ買いしてます。

 

で、読み進めてる途中なんだけど、そもそもここで使ってるSTM8の載った基板はいつものちっちゃいアレじゃない。
STマイクロで出してる、NUCLEO-8S208RBというまともなボード。

 https://www.st.com/content/st_com/en/products/evaluation-tools/product-evaluation-tools/mcu-mpu-eval-tools/stm8-mcu-eval-tools/stm8-mcu-eval-boards/nucleo-8s208rb.html

実はこれが出てたのも知らなかった。
調べると結構情報出てくるなあ。発売されたのが去年の秋ぐらいだから、STM32のシリーズと比べると新しいほう。

この本の情報がSTM8S103F3P6で使えるかわからないし、他ので代用できるかもしれないけど、それはそれとしてこのボードは手に入れておきたい。
また欲しいものが増えてしまった。(我ながら物欲のかたまり)

Sponsered Link

STM8S103F3P6ボード(正体不明)

謎の物体、ではなく基板を購入した。

もちろんAliExpressで。

正体がわからないものに手を出すなとあれほど(自分に)言い聞かせてるのに、やっぱり我慢できませんでした。


ただ、購入したのはこれ↓のはずだった。

AliExpress.com Product - Free shipping Stm8s103f3p6 development board /stm8s003f3p6 development board

でも、来たのがどうやらこっち↓らしい。

AliExpress.com Product - STM8S103F3P6 development board STM8S003F3P6 development board

…ということに、数日経って気付いた。

(届いてからしばらく放置しちゃってたんで)
気付くの遅くてフィードバックは閉めちゃってるし、意図的にこっちを送ってきたのかどうか今となってはわからない。

 

物としてはどちらも同じSTM8S103F3P6が載ってる基板なので自分的には問題ないんだけど、そもそも使い方がわからない。

STM8S103F3に最初から周辺機器をつけてるので勉強のためのボードだろうな、とにかく手に入れればなんとかなるだろ…と思って購入したんだけど、正直舐めてた。
そもそも回路図がないと、どの部品にどう繋がってるのかわからないので、手が出せない。

調べても資料が出てこない。通常は基板におまけのDVDが付いてくるらしいけど、それも無いし。

 

もうクローズしているせいか、購入先に問い合わせても返事がない。1週間以上経ってるのでもう諦めてる。

商品が無事に来ただけでも良かったかな。

しかたないので自力で調べて使ってみます。(予定)

Sponsered Link

mipOS

STM8シリーズで使えるRTOSについて調べていて、その流れでサンプルをビルドしてみた時のメモ。

内容はあまりSTM8と関係ないんだけど、カテゴリは一応STM8シリーズにしておく。

今後RTOSでメモすることがあるかどうか、わからないので。


以下のサイトはSTM8について詳細が記載されていていつもお世話になっていたんだけど、ここに動作可能なRTSOについてまとめられていた。
 http://www.colecovision.eu/stm8/rtoses.shtml
主にSDCCで参考にさせてもらっていたけど、RTOSまで書いてあるとは知らなかった。

(ググって見つけたら、いつも見ていたところだったというオチ)

 

SDCCでコンパイルできるもののうち、上記リスト中のmipOSというのが気になった。というより、ファイルが少なくてわかりやすいかな?と単純に考えた。

githubに必要なデータが置いてある。
 https://github.com/eantcal/mipos
これを使ってコンパイルしてみようと考えて、それで先日のVisual Studioのインストールに話が戻る。
Windows10にSDCCを入れてもいいんだけど、あえて使ったことのない環境に手を出した。(無謀なことを…)
SDCCを使うならできればLinuxでやりたいし。

 

ファイルをダウンロードして(サイズが小さくて一瞬で終わった)、exampleフォルダにあるmipos_examples.slnをVisual Studioで開く。
C言語ならやっぱりhelloworldだよね、ということでファイルを開いてみた。
組み込みプログラムにはあまり関係ないが。

で、ビルドしてみたらエラーが出た。想定内。

だいたいあっさり行くわけない。

でもエラーの内容がよくわからない…Visual Studioのインストール時に忘れ物したかな?
追加でインストールするなら、Visual Studioを入れたとき同時にVisual Studio Installerというのが入ってるので、それを開いて「変更」をクリックすると選択できる。

が、あまり関係なかったことは後で気づいた。

純粋に、エラーが出ているバージョンのsdkを入れないといけないようだ。

以下から、バージョン 10.0.16299.91を選択してダウンロード。

 https://developer.microsoft.com/ja-jp/windows/downloads/sdk-archive

そのままインストール。ちょっと時間がかかった。

 

インストール後、最初のエラーは出なくなったんだけど、今度は
 「エラー LNK1104 ファイル "../../../debug/mipos.lib" を開くことができません」
というエラーが出た。
しかしフォルダを調べてみると、ちゃんとmipos.libが出来てるんだけどなあ。

やっぱりSDCC使った方がいいだろうかとか思ったけど、ちょっと調べてみたら入力に必要なファイルへのリンクが間違ってる、ということらしい。

 

メニューの「プロジェクト」「helloworldのプロパティ」で出てくるメニューから、「リンカ」下の「入力」の一番上の行を編集する。

「追加の依存ファイル」の中から../../../debug/mipos.libを探し出し、../を一つ消す。

これで無事ビルドが出来た。

デバッグのところから、「デバッグなしで実行」で動作も確認。

あとは自分で何かカスタムできたらなあ、というところ。

 

RTOSで検索しているといろいろありすぎて、どれを使ったらいいのか悩む。
Arduino IDEよりRTOSのほうが便利という話もあるけど、そこまで使い込んでないので自分としてはあまり必要はない。
というか、使いどころに困る。
でもいろんなフリーRTOSがあっておもしろいので、お気に入りのボード(STM8Sシリーズ)で動作確認ぐらいはしていきたい。
(と、自分で自分の宿題を増やすタイプ)

Sponsered Link

Sduino(STM8S103F3P6からSTM8S105K4T6)

大掃除していて見つけたというか、ほぼ一年放置していたけどふとSTM8Sのことを思い出したので調べていた。

(おかげで掃除が進まない)

 

STM8SシリーズをArduino IDEで使うSduinoの件。

久々にチェックしてみたところ、いつの間にか更新されていた。

 https://tenbaht.github.io/sduino/

細かいところが変わっている。

さっそく、かなり前のおさらいでSTM8S103F3P6のちっちゃいボード(ここではSTM8S103 breakout board)でOLEDのSSD1306に表示ができなかった件を確認。

 https://tenbaht.github.io/sduino/api/Mini_SSD1306/

結局、STM8S103でメモリが足りないというエラーはまさにその通りで、現時点ではどうしようもないらしい。

以下を見た方がわかりやすいかな。

 https://github.com/tenbaht/sduino/issues/42

諦めずに今後に期待、というところか。

 

それならちょっとでも大きいメモリを持ってるやつならいいんだろうか、ということで、STM8S105K4T6の黒いやつを引っ張り出してきた。

前はこれがSduinoで使えなかったけど、更新されているならいけるかな?と簡単に考えた。

その前に、自分のPC(このときのOSはLinux)に入ってるArduino IDEのバージョンが1.8.8。

これで使えるんだろうかと心配したけど、以前のセッティングが残っていたのでそのまま使えた。

ツールのボードマネージャーからSduinoを確認して、バージョンアップは必要。現在は0.4のはず。

 

まずはLチカでしょ、と、Blinkのスケッチを開いてボードをSTM8S105K4T6にしてコンパイル、ST-LinkでSTM8S105K4T6と接続して転送…できない。

コンパイルは通るようになったのに、やっぱりPCの問題かと思ったら、エラーを見る前に原因判明。

「Upload method 」にST-Linkを指定してなかった。

こんなのあったっけ?と思ったけど、前はなかった…気がする。たぶん。

まあとにかくこれで無事にスケッチを転送できて、青色LEDが点滅したので動作確認OK。

STM8S105K4T6ボードもSduinoで使えるようになっていた。

 

が、続けてSSD1306を表示させるスケッチをSTM8S105K4T6でリベンジしたところ、コンパイルと転送は成功したものの、表示できていない。

エラーが出ないので、これは直しようがないというか、自分ではお手上げ。

というわけで結局また宿題が増えた。Sduinoの更新を待ちつつ、また調べてみるしかないか。

Sponsered Link

STM8S105K4T6ボード(続き)

心残りだったので、STM8S105K4T6をもうちょいいじってた。

結局、ST-Linkを認識しなかったのは原因不明。Ubuntuを再起動したら認識するようになった。

単なる接触不良だったらわかりやすいんだけど、そうでもなさそう。

この辺りはまた調査しないといかんかも。

 

とにかく無事認識してくれたので、先日できなかったSDCCでのLチカで簡単に動作確認。

元ネタはだいぶ前にも使ったやつ。

 https://github.com/vdudouyt/sdcc-examples-stm8

これを改めてダウンロード。

中にあるblinky.cを編集、今回はLEDに繋がってるピンがPE5なのでPEはそのまま。

ただ、前のと同じように0x80を0x20に変更。(0x20 = 0b0010 0000)

makeでコンパイル。

 

ファイルを転送する際には型番さえ変えればOK。

 $ stm8flash -c stlinkv2 -p stm8s105k4 -w blinky.ihx
 Determine FLASH area
 Writing Intel hex file 194 bytes at 0x8000... OK
 Bytes written: 194

Lチカ成功。…あんまり感動はない。(LEDが点滅するだけだし)

データシートと回路図は確認した方が良いけど、STM8S103Fのボードと似たように使えるなら便利そう。

せっかくRAMの容量が大きくなったんで、それを活かした使い方をしたいところ。

Sponsered Link