投稿記事の表示、検索方法

本ブログは、マイコン:MCU関連情報をWordPressというソフトウェアを使って投稿しています。今回は、WordPressブログ投稿記事を効率的に表示、検索する方法を3つ示します。

※WordPressは、ブログサイト制作時に便利なツール。機能追加が容易なプラグインや、外観を簡単に変更できるテーマが多数あるので、カスタマイズも容易で、運営者が投稿のみに専念できる。

カテゴリ選択

各投稿の下には、カテゴリとタグ(キーワード)が表示されています。

投稿カテゴリーとタグ
各投稿の下に表示されるカテゴリーとタグ

カテゴリ選択は、1つのMCU投稿をピックアップして表示する最も簡単な方法です。

例えば、カテゴリのRL78マイコンをクリックすると、日付の新しい順にRL78関連投稿のみが表示されます。PCなどの大画面表示の時は、左端にカテゴリ一覧が表示されるので選択が簡単になります。

PCのカテゴリ表示
MCU毎の投稿を簡単にピックアップできるPCのカテゴリ表示

カテゴリ選択でブログを表示すると、興味のあるMCU投稿がまとまるので便利です。投稿数が多い時は、複数ページに渡りピックアップされます。表示ページ一番下に複数ページへのリンクが表示されます。

複数ページのリンク
カテゴリ投稿数が多い時に表示される複数ページのリンク

ページ番号が大きい、つまり日付の古い投稿は、そのMCUの選択理由や、IDE:統合開発環境インストール方法など最も基本的でMCU開発初期に必要となる情報が記載されています。古い順に読むとより容易にMCU理解が進むかもしれません。

タグ選択

カテゴリとは別に、投稿下にタグと呼ばれる、いわゆるキーワードが示されています。

投稿のタグ(キーワード)
各投稿の下に表示されるタグ(キーワード)

投稿内容で興味が湧いたキーワード(例:リアルタイムOS)がこのタグ内にある場合は、タグをクリックすると、キーワードにより投稿記事がまとめられます。タグ検索は、複数カテゴリに跨った横断的な検索方法です。

自分の興味があるMCUと他社MCU比較などに使うと便利です。

検索窓

ブログ右上にあるSearch:検索窓を使っても投稿の検索ができます。

検索窓
検索窓による投稿記事検索

タグに無いキーワードや、2018年4月など時期を検索窓に入力してクリックすると関連投稿が表示されます。

まとめ

ブログ投稿記事を効率的に表示、検索する方法を3つ示しました。

  1. カテゴリ選択:MCU毎の投稿まとめに最適
  2. タグ選択:キーワードでの横断的な複数MCU比較や理解に適す
  3. 検索窓:タグ以外のキーワードや、投稿時期での検索に適す

本プログは、複数MCUの内容を、時系列で投稿するので、興味ある対象が様々な雑音で読みにくくなる可能性はあります。この場合には、上記3方法で投稿をまとめると読み易くなると思います。

また、手動で関連する投稿を添付する場合もあります(関連投稿を自動選択するWordPressプラグインもありますが使っていません)。

但し、技術者リスク分散の点からは、雑音も耳に入れておくのも良いと思います。どの投稿もチョットした空き時間で読めるように、A4で1~2ページの文章量です。本ブログをご活用いただき、MCU情報整理やプロトタイプ開発に役立つマイコンテンプレートに興味を持っていただければ幸いです。

関連投稿:ルネサスのIDE買収とリスク分散:技術者個人のリスク分散必要性の章参照

CS+のCS78K0Rコンパイラ消える?

ルネサスツールニュース2016年4月1日号で、CcnvCA78K0Rが発表されました。

これは、RL78の統合開発環境CS+のCA78K0RコンパイラCソースを、CC-RLコンパイラCソースへ変換するツールです。58ページからなるユーザーズマニュアルも公開中です。

コンパイラ一本化への布石

統合開発環境:IDEのコンパイラが2本あるのは、使う側、提供する側双方にとってメリットはありません。

まして、CC-RLが性能では優れているので、CA78K0Rを使い続けるのは既に顧客へ提供済みのCソースを使うからでしょう。

本ツールは、そんなCソースをCC-RL Cソースへ変換します。CA78K0Rコンパイラは、半導体デバイスでは良くあるディスコン(discontinue)にして、CC-RLコンパイラへ一本化するための布石だと思います。

IDE

ルネサスは、統合開発環境IDEも独自開発のCS+と、ワールドワイドで一般的なEclipseベースのe2 studio、さらにRenesas Synergy™ 開発環境(ISDE)やHewなども提供中です。

要は、デバイス開発に使いやすいIDEが良いのですが、誰とどのように開発するか等の条件によりルネサスは、様々な解を提供しているのです。Synergyは別物としても、何種類も提供するのは大変でしょう。他ベンダがEclipseベースで一本化されているのとは、対照的です。

ベースとなるのがEclipseでも、各社IDEのAPI関数を生成するツールは全く異なります。ルネサスのAPI生成ツールが慣れもあって使いやすいので、この特徴を活かした発展を望んでいます。

マイコンIDEを早く効果的に習得するコツは、コチラのページにまとめています。

ブログカテゴリ修正

マイコンのサブカテゴリを、6種のマイコンとIoT向けPCに修正しました。

ARM Cortex-M0+またはM0コアのマイコン、FreescaleのKinetisマイコン、NXPのLPCマイコン、ルネサスのRL78マイコンとR8Cマイコンです。
IoT向けのPCは、Windows 10 IoTコアを実装できるCPUボードを対象としました。

KinetisとLPCマイコンは、Cortex-M0+/M0マイコンと重複しています。
これは、Cortex-M0+/M0を重視したためで、このカテゴリから、今後新しいマイコンが発売されることを想定しています。

この基になった記事がコチラです。「Cortex-Mプロセッサを軸にしたARMのIoT戦略」の項で、市場早期対応にARMコア利用が優れていること、小さな実装面積と少ない電力要求のIoT市場にはCortex-M系が良く、Bluetoothなどの無線IPをSoC実装した新マイコン発表の可能性を示しています。

正式版がリリースされた無償Windows 10 IoTコアは、Wi-FiとBluetoothサポートなので、この新マイコンとの相性も良さそうです。

ブログ記事検索は、キーワード短縮表記をお使いください

カテゴリ修正に合わせて、過去の記事のタグ追加と修正も試みましたが、記事数が多いので断念しました。従って、記事の検索にタグを使うと、検索漏れが生じます。

ブログ記事のタグ検索
ブログ記事のタグ検索

対策として、関連記事の検索は、「検索窓にキーワードの短縮表記」をお使いください。例えば、LPC812とLPC824の記事を検索するときは、“LPC8” を入力するなどです。タグ検索よりは遅いのですが、検索漏れは防げます。よろしくお願いいたします。

ブログ記事のキーワード検索
ブログ記事のキーワード検索

RL78常設セミナテキスト改版

2014年5月30日発行のルネサスサポート情報 vol.197で、ルネサス常設セミナテキストの改版がレポートされました。レポートでは、「新規公開」とありますが、ダウンロードして旧版と比較した結果を示します。

セミナテキスト改版内容

コース名 レポート記事 旧版との比較結果
R8Cマイコンコース テキスト新規公開 2012年3月21日 Rev. 2.20と同じ
RL78マイコンコース テキスト新規公開 2013年12月18日 Rev. 1.30へ改版
RL78コンパイラコース テキスト新規公開 2014年3月13日 Rev. 1.07へ改版
RL78リアルタイムOSコース テキスト新規公開 2014年3月31日 Rev. 1.02へ改版

※R8Cマイコンコーステキストは、改版内容が不明で、公開テキストは前版と同じでした。

テキストの変更履歴がないので、具体的にどこを変更して改版したのかは不明です。しかし、どのテキストも内容が濃く、一読に値します

テキストですので、重要項目を1~10まで記載しています。初心者には、読むだけで大変で、理解にかけられる労力が不足することも多いと思います。そんな時は、各テキストの最重要箇所のみを抽出したコレに先ずザット目を通してください。特に、コンパイラコースのその1~3を理解した後に、テキストに戻ると理解が捗ると思います。

テンプレート活用のマイコン開発

限られた時間で効率的にマイコンを習得するには、手軽に用意できる開発環境と、テンプレートを活用するのも一つの方法です。ワードやパワーポイントには多くのテンプレートが提供されますが、組込みマイコンのテンプレートは少ないようです(サンプルソフトは、あくまでサンプルでテンプレートとは、別物です)。

そんな時は、販売中のRL78/G1xテンプレートを活用下さい。業務に使えて、テキストの重要箇所エッセンスをプログラムへ盛り込んだテンプレートになっています。世界標準のARM 32ビットマイコンLPC8xxテンプレートも販売中です。

サンプルソフトの構造

LPC8xxテンプレート開発時に参考にするサンプルソフトの構造について説明します。

サンプルソフトの構造
サンプルソフトの構造

RL78/G1xの無償IDEは、CubeSuite+、GUIで周辺回路のパラメタを設定すると、使用分の周辺回路APIが生成される優れものです。詳しくは、コチラの記事などを参照してください。一方、LPC8xxの無償IDEが、EclipseベースのLPCXpressoです。パソコンへのインストとアクティベーションなどは、トラ技2014年2月号やLPCXpressoサイトを参照してください。LPCXpressoもCubeSuite+と同様、サンプルソフトがIDEに付属しています。

スタートアップ処理とユーザプロジェクト処理

LPCXpressoをインストし、付属サンプルNXP_LPC8xx_SampleCodeBundle.zipをIDEへ展開後、そのソースを読む際のポイントは、サンプルソフトの構造です。構造の解説文が少ない(見あたらない)ので、説明を加えます(付属LPCXpresso User GuideはIDEの使い方解説書です)。

Blinkyを例に示します。組込みソフトは、2つの処理から成ります。「スタートアップ処理」と「ユーザプロジェクト処理」です。スタートアップ処理は、電源ONで自動的に実行されるResetISR()で、メモリなどの初期設定を行います。次にSystemInit()で、動作クロックなどのシステム関連の設定を行います。その後、ユーザプロジェクト最初の関数main()をコールします。

ユーザプロジェクト処理は、無限ループの前に2関数をコールします。HdwInit()で、使用する周辺回路の初期設定を行い、UserInit()でその他の初期設定を行った後に無限ループします(HdwInit()とUserInit()は、説明の都合上作成した関数名です)。

各関数は、NXP社提供のLPC8xxライブラリと、ARM社提供のCortex-M0+コアライブラリを使っています。またユーザが作成する関数も、これらライブラリを使って作成します。つまり、これらのライブラリがAPIを提供しているのです。ライブラリで初めから全てのAPIを提供しているところが、CubeSuite+と違う箇所です。

スタートアップ処理は、全てのサンプルプロジェクトでほぼ共通ですが、ユーザプロジェクト処理は、サンプルにより使う周辺回路が違いますので異なります。普通は、1個のサンプルプロジェクトで、1種類の周辺処理を紹介しますので、無限ループは文字通り簡単な無限ループで終わるものが殆どです。

スタートアップ処理の要は、最低限の動作ができる環境を作成するのが目的で、ブートストラップと呼ばれるゆえんです。パソコンのBIOSに相当する部分と言えば解り易いでしょうか? IDEのデバッガ動作時には、この部分は飛ばしてメイン関数の入口からデバッグを開始します。つまり、本来は、必要性が無い限り、変更不要と考えても良いでしょう。

ユーザプロジェクト処理も、無限ループ前を「周辺回路の初期設定:HdwInit()」と「その他のユーザ初期設定:UserInit()」に分けて考えると、参考にする部分がより明確になります。HdwInit()は、周辺回路の使い方が同じならそのままコピー利用もできます。但し、CubeSuite+と違って、LPCXpressoの場合はAPIパラメタで回路動作が変わるので、APIソースを解読する必要もあります。

サイズが大きいプログラムも、結局は無限ループ部分が大きいだけで、構造は同じです。大きな無限ループ部分の流用性や可読性を上げるために、ファイル分割などの技術を使っているだけです。

テンプレート工夫箇所

この構造が理解できると、サンプルプロジェクトの見通しが良くなります。そして、せっかく提供されているサンプルを上手く利用し、複数処理を実行するには、「無限ループ箇所を工夫すれば良さそうだ」、ということも判ります。組込み用のリアルタイムOSなども、この工夫の結果できたものと理解しても良いでしょう。但し、リアルタイムOS利用時は、OSの理解や面倒なオーバーヘッドも生じます。販売中のRL78/G1xテンプレートやLPC8xxテンプレート(近日発売予定)は、もっと手軽に複数処理を実現するものです。

入手性の良いマイコン分類図

入手性の良いマイコン一覧(チップワンサイトより抜粋)
入手性の良いマイコン一覧(チップワンサイトより抜粋)

組込みマイコンの分類図を、チップワンストップサイトで見つけました。この図は、チップワンストップで販売中のマイコンですので、「入手性が良いマイコン」と言えるでしょう。新規マイコン開発にあたり、どの機種を選択するかの残りの指標は、「入手価格」と「開発のし易さ」、「将来にわたる入手性」です。緑がARMコアマイコン、青がオリジナルコアマイコンを示しています。

コア差別から周辺回路差別へ

8/16ビットマイコンは、過去、現在と各社からいろいろな機種が発売されてきました。全て青のオリジナルコアマイコンで、開発手法やIDEも各社ハラバラでした。より性能の良いオリジナルコアにより、囲い込み戦略がとられていました。これら従来機の製造は、米)ロチェスター社との連帯により、将来にわたる入手性を保証する方法が、ルネサスなどで取られています。

一方、32ビットマイコンは、緑のARMコアが大半です。米)マイクロチップとオン・セミコンダクターを除く各社が、ARMコアのラインアップを提供しています。マイコンは、従来のコア差別から、周辺回路差別戦略へシフトしているといえます。実際、各社の周辺回路は、(少なくとも見た目は)16ビット機でも32ビット機でも同じものを使っています。米)サイプレス社などは、アナログ周辺回路を実装し、同じARMコア機でありながら十分な差別化も達成しています。

IoT時代の新マイコン

全ての機器がネットに繋がるIoT時代のマイコンには、通信制御は必須で、それなりの能力は必要です。これには、既存8/16ビット機で頑張るよりも、32ビット機が適しています。低消費電力と高速化の両方を追求し、IoT要求にマッチするコストパフォーマンスを満たすコアの解として、ARMコアは優れているのでしょう。また開発環境もほぼ同じなので、開発のし易さも(慣れれば)Betterです。さらにARM社は、32ビット機でありながら、8/16ビット市場を狙う低価格なCortex M0+を投入しましたので、新製品マイコンコアは、ARM独占になる可能性もあります。

ARM対Non ARMを記事へ

ARM派にとっては当たり前のことですが、世界標準と言われるCMSISを使ったアクセスやEclipse IDEなど、Non ARM派にとって「?!」を感じる箇所は多くあります。このブログではこの違和感を記載していきます。Non ARM派がARMを知る時、各自の取得技術側からARMを診ると、より効率的にARM習得ができるからです。

マイコンの長期供給情報を提供開始

2014年1月21日、ルネサスエレクトロニクスは、自動車、産業機器向けの長期安定供給が求められるマイコンなどの製品を対象に、今後10年/15年/20年以上の3パターンで、供給(予定)期間のサイト掲載を始めました。

RL78/G1xの供給期間

本ブログ記載のRL78/G13: R5F100LEAFBは、20年以上、RL78/G14: R5F104LEAFBは、15年の予定に属しています。R8C/25: R5F21256SNFPは、10年です。先日のJake Dyson Products LED照明の37年以上のライフに比べると、短い気もしますが…。大手が独り勝ちする半導体の世界では、会社自体がいつ消えるかも判らない状況ですので、ルネサスエレが存続する限りは、安心して使えそうです。

マイコンセミナーテキストの概要

2013年4月2日発行のルネサスエレクトロニクスセミナーニュースVol.83によると、マイコンセミナーのテキストをPDFで公開しており、セミナー受講に関係なく閲覧ができます。そこで、RL78とR8Cのテキストをダウンロードしましたので、その概要を示します。

セミナーテキストは、1ページに“スライド+解説”の構成で、網羅的記述のユーザーズマニュアルよりは、理解しやすいものです(但し、下記に示すように結構ページ数がある)。また、ユーザーズマニュアルの重要項目のみを抜き出して解説しているので、この内容を理解していれば、RL78、R8Cマイコンを使用するには十分な内容と推測されます。機種は、RL78/G14に限定して解説していますが、G13にもほとんどそのまま適用できます。

テキスト名 概要
RL78マイコンコース2013/2/26 Rev.1.22

(全243ページ)

RL78/G14のユーザーズマニュアル・ハードウエア編のサブセット。

G14特有のイベント・リンク・コントローラ、データ・トランスファ・コントローラの記述あり。第6章の割込み制御は、理解しやすく良くできている。CubeSuite+のコード生成を利用する際に、割込み優先順位とバンク設定の考え方の参考になる。

RL78コンパイラコース2013/3/18 Rev.1.05

(全194ページ)

ユーザーズマニュアル・RL78、78K0Rコーティング編のサブセット。

共用体を配列として宣言する場合は、全体が偶数サイズとなるようにメンバ調整が必須などの注意事項記述。第3章の効率アップ手法と、第6章のスタックサイズの算出は、必読。

R8Cマイコンコース2012/3/21 Rev.2.20

(全238ページ)

R8C/25のハードウエアユーザーズマニュアルと、Cコンパイラユーザーズマニュアルのサブセット。

R8Cは、3/x、5/xと性能と使いやすさを追求して展開中であるが、本テキストは、R8C/25に限定して解説しており、個人的にはうれしいし、役立つ。全体の目次ページが無いので、各章目次を抜き出したものを以下に添付。

 

R8Cマイコンコーステキスト全体目次

第1章 概要

1.1 R8Cファミリの特徴

1.2 R8Cファミリのシリーズ展開

1.3 R8C/25グループ概略仕様

1.4 開発ツール

第2章 R8C/2xシリーズのハードウェア

2.1 アドレス空間

2.2 リセット動作と電圧検出回路

2.3 発振回路

2.4 パワーコントロール

2.5 プロテクト機能

第3章 R8Cファミリのアーキテクチャ

3.1 SFR領域と固定ベクタテーブル

3.2 レジスタセット

3.3 扱えるデータタイプ

3.4 メモリとレジスタ上のデータ配置

3.5 アドレッシングモード

3.6 命令セット

第4章 NC30の実装仕様

4.1 概要

4.2 データ型と修飾子

4.3 絶対番地へのアクセス

4.4 メモリ配置

第5章 スタートアッププログラム

5.1 役割と構成

5.2 プログラム例

5.3 スタック使用量の算出

第6章 R8Cファミリの割り込み制御

6.1 割り込みの動作と使用方法

6.2 INT割り込み

第7章 割り込みプログラムの記述

7.1 割り込みを使うには

7.2 スタートアッププログラム

7.3 割り込みの初期化

7.4 割り込み関数

第8章 R8C/25グループの内蔵周辺機能

8.1 プログラマブル入出力ポート

8.2 タイマ

8.3 ウォッチドッグタイマ

8.4 シリアルインタフェース

8.5 A/Dコンバータ

8.6 フラッシュメモリ

付録

A. NC30起動オプション一覧

B. アセンブリ言語レベルの最適化

マイコンセミナーテキストの概要

2013年4月2日発行のルネサスエレクトロニクスセミナーニュースVol.83によると、マイコンセミナーのテキストをPDFで公開しており、セミナー受講に関係なく閲覧ができます。そこで、RL78とR8Cのテキストをダウンロードしましたので、その概要を示します。

セミナーテキストは、1ページに“スライド+解説”の構成で、網羅的記述のユーザーズマニュアルよりは、理解しやすいものです(但し、下記に示すように結構ページ数がある)。また、ユーザーズマニュアルの重要項目のみを抜き出して解説しているので、この内容を理解していれば、RL78、R8Cマイコンを使用するには十分な内容と推測されます。機種は、RL78/G14に限定して解説していますが、G13にもほとんどそのまま適用できます。

テキスト名 概要
RL78マイコンコース2013/2/26 Rev.1.22

(全243ページ)

RL78/G14のユーザーズマニュアル・ハードウエア編のサブセット。

G14特有のイベント・リンク・コントローラ、データ・トランスファ・コントローラの記述あり。第6章の割込み制御は、理解しやすく良くできている。CubeSuite+のコード生成を利用する際に、割込み優先順位とバンク設定の考え方の参考になる。

RL78コンパイラコース2013/3/18 Rev.1.05

(全194ページ)

ユーザーズマニュアル・RL78、78K0Rコーティング編のサブセット。

共用体を配列として宣言する場合は、全体が偶数サイズとなるようにメンバ調整が必須などの注意事項記述。第3章の効率アップ手法と、第6章のスタックサイズの算出は、必読。

R8Cマイコンコース2012/3/21 Rev.2.20

(全238ページ)

R8C/25のハードウエアユーザーズマニュアルと、Cコンパイラユーザーズマニュアルのサブセット。

R8Cは、3/x、5/xと性能と使いやすさを追求して展開中であるが、本テキストは、R8C/25に限定して解説しており、個人的にはうれしいし、役立つ。全体の目次ページが無いので、各章目次を抜き出したものを以下に添付。

 

R8Cマイコンコーステキスト全体目次

第1章 概要

1.1 R8Cファミリの特徴

1.2 R8Cファミリのシリーズ展開

1.3 R8C/25グループ概略仕様

1.4 開発ツール

第2章 R8C/2xシリーズのハードウェア

2.1 アドレス空間

2.2 リセット動作と電圧検出回路

2.3 発振回路

2.4 パワーコントロール

2.5 プロテクト機能

第3章 R8Cファミリのアーキテクチャ

3.1 SFR領域と固定ベクタテーブル

3.2 レジスタセット

3.3 扱えるデータタイプ

3.4 メモリとレジスタ上のデータ配置

3.5 アドレッシングモード

3.6 命令セット

第4章 NC30の実装仕様

4.1 概要

4.2 データ型と修飾子

4.3 絶対番地へのアクセス

4.4 メモリ配置

第5章 スタートアッププログラム

5.1 役割と構成

5.2 プログラム例

5.3 スタック使用量の算出

第6章 R8Cファミリの割り込み制御

6.1 割り込みの動作と使用方法

6.2 INT割り込み

第7章 割り込みプログラムの記述

7.1 割り込みを使うには

7.2 スタートアッププログラム

7.3 割り込みの初期化

7.4 割り込み関数

第8章 R8C/25グループの内蔵周辺機能

8.1 プログラマブル入出力ポート

8.2 タイマ

8.3 ウォッチドッグタイマ

8.4 シリアルインタフェース

8.5 A/Dコンバータ

8.6 フラッシュメモリ

付録

A. NC30起動オプション一覧

B. アセンブリ言語レベルの最適化

構造体と共用体

構造体と共用体は、マイコンのソフト作成時、初心者には必須技術です。既存ソースの理解や、コード生成ソースの解読に欠かせないからです。そこで、初心者も判りやすいシンプルな解説書を作成しました。

構造体は、“複数の既存型で、新しい型を作る”。共用体は、“複数の既存型で、メモリを共有する”。この2点を覚えてください。そうすれば、以下の例(R8C/25)が理解できます。RL78の場合は、”bit”が予約語になっているので、適当に変えれば(私の場合は、”b”を使用)使えます。

構造体の解説
構造体の解説
構造体の中身
構造体の中身

 

共用体の解説
共用体の解説
共用体の中身
共用体の中身