あわせて読みたい


マイコン 目次
2022/10/23 EtherCATはここからジャンプできます。 マイコン記事の目次です。記事をお探しの場合は、この目次ページから目を通してみてください。 【RL78】 RL78の記事…

※2021/11にアップした記事を加筆・訂正したものです。 RL78で感じたことなどメモ。 数年前からポツポツとRL78を使う仕事が出てきたので、まとめた記事をこちらにアップしました・・・さすがにこの頃はもうH8やSHの仕事は無い(^^; RL78の開発環境はCS+と言う名前の統合環境=IDEで、自動コード生成を内蔵しており、初期化処理などはこの自動コード生成を使うことで、(慣れれば)試運転まで行けます・・・とは言ってもmbedの方がはるかに簡単なのは間違いない。 RL78(と言うか開発環境)の方が優れている部分は 1:開発ツールCS+、CPUマニュアル、ネット情報が日本語だもんね これはでかい。 新しいCPUって、ただでさえ分からないのに、開発ツールやCPUのマニュアルが英語だと更に難解度増幅で、目が泳いじゃいます。 英語の文章って、単語一つ一つをしっかり読まないと理解出来ないじゃないですか。 日本語だと漢字の並びをざざ~っと読み飛ばして、必要な部分に直ぐ目が行く感じがする。ですよね? マニュアルって千ページも有るのがざらなんで、日本語ってのはやっぱりでかいです。 ネット情報も日本語なら流し読みできるし。 2:コードを追いやすい 自動コード生成が作り出すコードが分かりやすいです。 んまぁCPUマニュアルを読まないとならないのは確かだけど、それでもかなり分かりやすい。 CPUマニュアルを読むと言っても、CS+内で知りたい項目の上にカーソルを移動すれば目的のページが表示されるので手間はかからない(これもかなり便利です)。 CS+内蔵のスマートマニュアル しかも言語がC(C++じゃない)なので、クラスの中を追いかけたり、コンストラクタを調べたりする必要も無く、デバッガで単純にステップ実行すれば済むというのもでかいです(mbedだとOSのソースを入れておかないと追いかけられないし、結構書き方が難しいので理解しにくい場合が有る)。 3:CPUの動作を完全に自分の管理下に置ける OSナシで生のコードで動作するのが好きだ。 CPUの動作全部を完璧に自分の管理下に置けるってでかいですよね? 特に組み込み系でアセンブラから来てたりすると、この価値のでかさは納得と思います。 デバッガとオシロがあれば、CPUを手なずけることが可能ってのは、これはかなりのアドバンテージです。 省電力で動作させたい?行けるじゃ~ん。 多重割込みでレジスタバンクを器用に使い分けたい?行けるじゃ~ん。 CPUを起こさずにデータ取得をしたい?簡単じゃ~ん。 ただしmbedとは異なりCPUマニュアルを読む必要が有るんです。 単純なAD入力を一つ使うのでも、CPUマニュアルを読み込まないと絶対に使えません。 しかもコード生成されたコードをコールする必要も有る。 main()で最初に初期化関数をコールし、割込みを許可し、AD完了割込み関数(何処にあるのか探さないとだし)に必要なコードを追加し、main()に値を渡す処理を追加し・・・と言うような手順が必要。 しかも好きな場所にコードを書いたりしたら、コードの再生成時には消えちゃうとかあるんで、CS+の使い方も事前に知っておかないと。 組み込み系のプログラミングに慣れてりゃ当たり前の事だけど、一般人がArduinoやmbedのつもりで手出ししたら、ちっとも動かないのは当然と思います。 mbedなら『AnalogIn xxx』の一行で済むことも、RL78では通用しないってんだから困った。 ADとはなんぞや?そのADを動かす仕組みとは?ADから値を取得するコードの書き方は?コード生成はどんなコードを吐き出すか? この辺を全部理解しないとAD一つ動かないけど、日本語だもんね!OSナシだもんね! 自分の場合は、8割程度はmbedで、残りの2割がRL78って雰囲気かもです。 mbedで済むならmbedで、やばそうならRL78でって感じです(さすがにもうSHは出番が無い)。 <ついでに要望> CだけじゃなくてC++でも書けるようにならないかな? mbedのコードを流用する場合、分解してCに置き換えてるけど、C++で書ければmbedのコードを移植しやすいんで助かります。

コメント