マイコンテンプレートサイト更新完了

12月30日のPSoC 4、PSoC 4 BLE、PRoCテンプレート発売に間に合わなかったマイコンテンプレートサイトの更新が完了しました。

今回の更新では、LED照明ページを削除し、マイコンテンプレート関連のみのサイトとしました。昨年10月のサイト障害時の、“Simple is Best”の経験が理由です。

LPCXpresso v8.0.0へ更新

Freescaleを買収した新NXP、ARM Cortex-M0/M0+マイコンの今後のラインアップについては、気になるところですが解りません。NXPサイトを観ると、LPC8xx/111x、旧FreescaleのKinetisシリーズ全てがそのまま残っています。暫くは、様子を観察する必要がありそうです。

例えば、Cypressは、2014年末に買収したSpansionのFM0+マイコンを1年経過後の2015年11月、Cypress名で発売しました。このように、買収や合併で既販マイコンがどうなるかの判断は難しいものです。

そんななか、LPCXpressoは、v8へ更新されました(更新日は合併完了直前の2015/11月、LPCOpenは、V2.19のまま更新無し)。また、Kinetis Design StudioやProcessor Expertも更新されております。新マイコン追加等はありませんが、最新版へのUpdateをお勧めします。

Windows XPサポート終了とWindows 10への対応だと思います。どちらのIDEもEclipseベースですので、これも統合などがあるかもしれません。

LPCXpresso v7.9.2とLPCOpen v2.19リリース

2015/09/14、LPCXpresso v7.9.2がリリースされました。

この新LPCXpressoのデフォルトインストール先、C:\nxp\LPCXpresso_7.9.2_493\lpcxpresso\Examples\LPCOpen
にLPCOpenの新バージョンv2.19 2015/09/01も同時にインストールされます。

残念ながらこのLPCOpen v2.19も、前版v2.15積み残しのGPIO_APIバグ、uinit8_tを修正してunit32_tを使うが解決されていません。従って、LPC824テンプレートも“開発待ち”を続けます。

NXPのFreescale買収は、2015年末完了予定で進行中です。マイコン部門のみを比較すると、NXPよりもFreescaleの方が大きいそうで、今回の積み残しはこれが反映されたのかもしれません。LPCXpressoとLPCOpenの組合せは、他社と比較しても使いやすいIDEなだけに残念です。

一方、FreescaleのKinetis Design Studio 3.0.0 IDEもEclipseのUpdateはありますが、メジャーバージョンアップはありません。

NXP、Freescaleともに2015年末に向けて忙しいのでしょう。両社のARM Cortex-M0+/M0マイコン状況は、様子がはっきりするまで待ったほうが良い、というのが現段階の判断です。そこで、先に取上げた、Cypress PSoC 4/PRoCの調査を次回報告する予定です。

マイコンIDE習得のポイント

Windows 10 Home Update制御

販売中のマイコンテンプレート説明資料は、テンプレートについて重点的に説明しています。しかし、ご購入者様から頂く質問には、テンプレート動作環境、つまりマイコンIDEに関するものも多くあります。
今回は、このマイコンIDE使い方のコツ、ポイントを説明します。

Windows 10発売を機に、皆さんは今新しいOSの機能や利用方法を習得中だと思います。マイコンIDEと、このWindows 10を関連付け解説を試みます。

マイコンIDEは、OSと考えるべし

Windows 10、旧Windows 7や8と比べると、新ハードウエアやネットワーク、セキュリティ対応に機能満載です。多くの設定項目がありますが、最初はデフォルト設定で動かすのが良いでしょう。慣れてくれば、設定をいろいろに変えて、自分好みにカスタマイズもできます。

マイコンIDEも同じです。IDEは、多くのマイコン機種、使用言語、デバッグ方法に対応できるよう多くの選択肢:プロパティを持ちます。ユーザマニュアルにも、多くのページを使ってプロパティの説明があります。しかし、IDEを使う時に、これら多くのプロパティを、全部知るのは無理ですし不要です。

Windowsと同じく最初はデフォルトで使用し、徐々にカスタマイズするのがIDEやOSなどの環境ソフトの使い方です。

初心者にとって、デフォルト設定でIDEが使えればありがたいのですが、多くのIDEは、中級~上級者へも対応する、いわば「初心者と中級者以上の二兎を追う方式」のため、多少のカスタム設定が必須です。
このカスタム設定が最も少ないのが、IDEベンダ提供の標準評価ボードを使ったマイコン開発時です。弊社テンプレートが、この評価ボードで動作確認しているのもこのためです。

  • マイコンIDEのプロパティ設定が多いのは、しょうがない。
  • カスタムプロパティ設定の少ないIDE+標準評価ボードが、マイコン初心者には適す。

マイコンIDEの使い方ポイント

使用するマイコン、開発言語(C/C++ または アセンブラなど)、IDE(コンパイラやデバッガなどの開発環境)は選定済みとします。この時のIDE設定手順が下記です。3段階から構成されます。

マイコンIDE設定手順
マイコンIDE設定手順

IDEへ使用マイコンとデバッガなどの環境ツール設定が、最初の段階です。ここでは、Rapid Application Development: RADツールを使用するか否かなども選択肢になります。MCU:マイコン本体クロック設定と周辺回路の設定が、次の第2段階です。最後が、IDEが出力したスケルトンソースへ、ユーザソースを追加し、ビルド&ボードデバッグを繰り返し行い、アプリケーションを完成させます。

ポイント1:IDE生成スケルトン理解

直ぐにユーザソースを追記したい気持ちは解ります。しかし、使用するRADツールに応じてIDEが生成するスケルトンが異なることがよくあります。例えば、FreescaleのKinetis Design Studioの場合、RADツールにProcessor Expertを選ぶ場合と、Kinetis Software Development Kitを選ぶ場合とでは、スケルトンが異なります。ルネサスのCS+でも、コード生成の有無でスケルトンは全く異なります。

先ず、IDEが生成する「スケルトン動作を把握することが最重要」です。このために、RAD選択肢を変えることも必要でしょう。殆どのIDEの場合、第2段階のMCUクロックは、デフォルトで安全動作周波数に設定済みです。従って、周辺回路なしでも生成されたスケルトンコードでボードデバッグができます。

スケルトン動作把握とは、「マイコン電源投入後、順番にどの処理を行い、main()を呼出しているか、次に、割込み処理の記述はどこで行っているかを知ること」です。

main()呼出しまでの処理(スタートアップ処理)は、MCU動作クロックを変更する場合などを除けば、大体把握できればOKです。また、マイコン機種による違いも少ないです。

一方、割込み処理記述は、使用マイコンやIDEにより様々です。経験的に、IDEと標準評価ボードの組合せで用いる記述方法が、解りやすさや柔軟性に優れます。素直に、この方法でユーザ処理を追加することをお勧めします。

  • IDE生成スケルトンは、使用RADツールにより異なる。
  • 生成スケルトンの動作を把握することが最重要。

ポイント2:デバッガ接続

最初は、MCUクロックはデフォルト設定、周辺回路なし、スケルトンコードのみでビルドします。このビルドは、IDE生成分のみですので100%成功するハズです。

問題は、デバッガ接続です。

IDEがサポートするデバッガは、通常4~6種類もあります。デバッガに応じてさらに詳細設定が必要ですので大変です。ここは、ユーザマニュアルの「対応デバッガ部分のみ」を注意深く読んで、設定する必要があります。ユーザマニュアルが分厚いのは、このように対応種類が多いためです。使用するデバッガのみに絞って読めば、恐れるに足りません。

IDEとデバッガを接続後、ビルド出力をボードへダウンロードし、デバッガで動作確認します。何もユーザ処理を追加していない時の動作、例えばスタートアップ処理後のRAMクリア状態などが確認できます。

ユーザ処理は追加していませんが、これでIDEの処理全体を一通り試すことができます。

  • IDEとデバッガ接続は、ユーザマニュアルの対応部分を拾い読み。
  • 最初のビルドは、スケルトンコードのみでデバッガ接続しIDE全体処理を体験。

ポイント3:サンプルソフトAPI利用例を活用

スケルトンは、骨組みです。この骨組みに、ユーザ処理を追記すれば、アプリケーションが完成します。

骨組みには、IDEが使用周辺回路に応じてライブラリを生成します。このライブラリへのインタフェースがAPIです。IDEの役割は、APIの中身を作ることです。

ユーザソースは、このAPIの使用順序を記述するのみと考えても良いです。少し前までは、このライブラリもユーザが開発していました。しかし最近は、ライブラリはベンダが提供します。ベンダ提供ライブラリを使えば、ユーザソースは、API使用順序のみですので、移植性やメインテナンスも楽です。

APIの使用法は、これも分厚いAPIレファンスマニュアルに記述されています。しかし、真面目にこれを読む前にサンプルソフトを参照します。典型的な周辺回路APIの使い方、これがサンプルソフトです。サンプルに出てくるAPIのみをレファレンスマニュアルでチェックすれば十分です。サンプルソフトの選び方は、コチラを参照ください。

  • IDEは、スケルトンと、使用周辺回路に応じたAPIを生成。
  • サンプルソフトを参照し、典型的なAPIの使い方を学ぶ。

まとめ

多くのプロパティがあり、付属マニュアルも厚いので取っ付きにくいマイコンIDEですが、ここで示した方法を用いれば、早く効果的にIDEを習得できます。

具体的な話が少ないので、皆様のお叱りを受けそうですが、少しでもご参考になれば幸いです。

* * *

Windowsには、様々なTipsがあります。各マイコンIDEのTipsも少なからずありますが、ここでは個々のIDEによる違いは無視して説明しました。実は、IDEで差が生じるのはRADです。RADに対しては、初心者の方は、少し力を入れてマニュアルを読む必要があるかもしれません。
但し、これも必要な周辺回路の箇所のみを拾読みすれば、事足ります。分厚いマニュアルは、読む箇所を間違わないように、拾読みで対処しましょう。

Windows 10 Home UpdateコントールTips

マイコンIDEで具体例が無かった代わりのTipsです。
Windows 10 HomeでOS Updateをユーザが制御できない問題に対し、フリーソフト: Winaero Tweakerが役立つかもしれません。Technical Preview対応ですが、製品版にも使えそうです。

Windows 10 Home Update Control
Windows 10 Home Update Control

速報 Windows10 Homeで各社マイコンIDE起動確認

Windows10 Home
Windows10 Home
Wnidows10で動作中の各社マイコンIDE
Wnidows10で動作中の各社マイコンIDE

7月29日から配布開始されたWindows10 Homeで、ルネサスCS+、NXP LPCXpresso、フリースケールKDSの各社マイコンIDE起動を確認しました。

予約後、順次Windows10へのUpdateが開始されています。私のノートPC:Windows8.1無印64bit版が、無事Windows10 HomeへとUpdateされました。早速、各社のマイコンIDEを起動しましたが、問題なく動作しています。今のところ。

Windows8の時と比べると、問題が少ない感じがします。他の開発PC:Windows 7 UltimateとWindows8.1 Proは、Updateを遅らせ様子をみる予定でしたが、この感じだと全てUpdateしても良さそうです。

Windows10 HomeはUpdateをコントロールできない

Windows10 Homeは、Windows自身のUpdateタイミングをユーザがコントロールできません。コントロールパネルにWindows Updateが無いのです。意識しなくても自動的に常に最新Windowsが使える反面、更新による既存アプリの動作トラブルリスクもはらんでいます。

リスク回避には、Windows10 Pro以上の版に備わるUpdateタイミングコントロールが必要です。しかし、結局、最新OSで正常に動くことがWindowsアプリには要求されるでしょう。Windows10アプリ開発は、これまで以上に大変そうだと感じるのは私だけでしょうか? 各社のIDE開発担当者の負担は、増える一方です。

EclipseベースのIDEが増えつつあるのは、こうした背景があるのかもしれません。ルネサスのCS+は、独自開発の使い易いIDEですが、Eclipseベースのe2 Studioも視野に入れる必要があるかもしれません。

NXPのFreescale買収、株主承認取得

NXPによるFreescaleの買収に進展があり、7月2日株主承認が得られました。後は、規制当局の承認を得て、予定通り今年の終わりまでに完了するようです。

気になる両社のCortex-M0/M0+マイコンの今後については、未だ不明確です。
個人的には、統合開発環境IDEは、NXPのLPCXpresso、Rapid Application Development : RADツールは、FreescaleのProcessor Expertが好みなので、折衷的なIDEができると嬉しいです。両社同じEclipseベースIDEですが、異なります。

ルネサスの新マイコン:Renesas Synergy MCUも、EclipseベースIDE(E2Studio?)でARM Cortex-M0+/M3/M4コアと予想しています。この新マイコンの詳細発表は2015年4Qで、NXP買収完了とほぼ同じタイミングです。

Kinetis Design Studio V3.0.0リリース

FreescaleのKinetisマイコン無償開発環境KDSの新バージョンV3.0.0が2015年5月5日リリースされました。関連資料から、特徴を探ります。

ポーティングガイトが詳しくなった

以前は、Code Warriorからの移行ガイドのみでしたが、これに旧KDSからの移行も加わりました。つまり、KDS V3.0.0で旧版プロジェクトを変更すると、変更後は、旧版では、Openできないということです。KDS V2.0.0を継続して使われる方は、注意が必要です。

Processor Expert V3.0.0へ更新

旧PEで、TSS_LibraryがFRDM-KE02Z40評価ボードで正常動作しない不具合が解消されたかは、後日報告します。

Kinetis SDK v1.2.0でサポート評価ボードが増えた

KSDK v1.2.0サポートボード一覧
KSDK v1.2.0サポートボード一覧

残念ながら、Kinetisテンプレートで使用したKシリーズマイコンのFRDM-KE02Z40Mボードは、V3.0.0でもSDKサポートはありません。SDKメリットは、ボード動作確認済みのサンプルソフトが、Freescaleから提供されることです。
次期Kinetisテンプレート候補のLシリーズは、多くの低価格評価ボード(FRDM-KLxxx)がサポートされていますので、この中らか対象マイコンと評価ボードを選定する予定です。

以上、KDSV3.0.0リリースの速報でした。

Kinetis Eテンプレート発売

ARM Cortex-M0+ Kinetis Eテンプレート発売開始

freescaleのKinetis Eテンプレート、Processor Expert自作サンプル添付版を¥1000(税込)で販売します。テンプレート解説資料の、P1:概要とP2:仕様を示します。

Kinetis Eテンプレート説明資料P1
Kinetis Eテンプレート説明資料P1
Kinetis Eテンプレート説明資料P2
Kinetis Eテンプレート説明資料P2

Kinetis Design Studio自作Processor Expertサンプル添付

テンプレートは、LED出力とSW入力のみを組込んだ「シンプルテンプレート」と、組込み必要機能をほぼ全て盛込んだ「メニュードリブンテンプレート」の2つに、Kinetis Design Studioと評価ボードで動作確認済みの「自作Processor Expertサンプルソフト(ADCやTimerなどの17種)」を添付し、もくじ内容の説明資料付きで¥1000です。

購入ご希望の方は、メール(宛先:info@happytech.jp)にてお知らせください。銀行振込口座を返信いたしますので、税込代金¥1000円を振込でください。入金確認後、全もくじページとテンプレート、PEサンプルを一式にしてZIP圧縮ファイル(約30MB、PEサンプルなどを含むため、サイズが大きいです)をメールにてお送りします。後は、ご自由にテンプレートに変更や修正を加えて頂いて、Kinetis E早期習得、アプリ開発に役立てて頂ければ幸いです。

KDS IDE Tipsを豊富に記述

マイコンテンプレートサイトには、テンプレート添付の自作Processor Expertサンプル一覧(もくじP7)とシンプルテンプレート写真(もくじP13)も掲載中です。今回は、特に2014年夏新リリースのKinetis Design StudioのTips(もくじP9-12)にも重点をおきました。現在KDSは、2.0.0ですが、新開発のEclipseベースIDEなので、これらTipsがあると、開発ステップの最初のつまずきが無くなります。その他3種類のマイコンテンプレートの記事も掲載していますので、合わせてご覧ください。

テンプレート対象者は、初級~中級のソフト開発者です。上級者は、これに似たテンプレートを既に持っており、IDEの使い方にも慣れているからです。本来は、上級者がテクニックを含む自分のテンプレートを初級~中級者へ教え、教えられた側でさらに、テンプレートに修正を加えれば、技術継承も容易です。しかし、この継承は、習得済みの者にとっては、オーバーヘッドになり、未習得の者にとっては、理解困難な面が多いものです。

販売テンプレートは、詳細なもくじ資料付きですので、だれにでもその内容が理解できます。また、テンプレートソースには、「判りにくい英語ではなく、日本語コメント」を豊富につけていますので可読性も高いと思います。対象マイコンの早期習得、アプリ開発に最適です。

Kinetis Design Studio 2.0.0リリース

11月24日Kinetis Design Studioの新版2.0.0がリリースされました。Kinetis Eテンプレートもこの新しいKDS2.0.0で開発します。このKDSにも期待した評価ボード:FRDM-KE02Z40MのProcessor Expert: PEサンプルソフトは付属していません。このことは、テンプレートに自前PEサンプルソフトをつけて販売するというKinetis Eテンプレートの狙いには好都合です。

今回は、KDS2.0.0の簡単な使い方を説明します。

コードサイズ制限なしのKDS

freescaleのIDEには、Code Warrior: CWとKDSの2つがあります。KinetisシリーズはKDSでサポートされ、CWは今サポートしているKinetisのみで打ち切りです。CWは、無償版128KB制限がありますが、KDSは、コードサイズ制限なしで無償版のみです。どちらもEclipseベースですが、細部は異なります

KDSインストール

インストールは簡単です。サイトからWindows版インストーラをダウンロードし、実行すれば完了です。Cドライブ直下のC:\Freescal\KDS_2.0.0\にインストールされます。

起動すると、最初にワークスペースの場所指定が必要です。Cドライブのデフォルトワークスペースを使う場合は、そのままですが、私は、Dドライブのマイドキュメント内にワークスペースを作成します。これにより、KDS再インストやUpdateでも、自作したプロジェクトファイルは影響をうけません。ワークスペース指定後は、別プロジェクトのインポート、または、新プロジェクト作成の作業をします。

サンプルソフトのインポート

KDSの評価ボード:FRDM-KE02Z40Mのサンプルソフトが少ないことは以前記載しました。そこで、別ボードサンプルを使う場合や、CWサンプルをインポートする場合は、「Copy projects into workspaceのチェックを外す点」に注意してください。☑したままでインポートすると、インポートソースの表示ができません。

CodeWarriorサンプルソフトのインポート例
CodeWarriorサンプルソフトのインポート例

新プロジェクト作成

自前のプロジェクト作成時は、File>New>Kinetis Design Studio Projectを選択します。プロジェクト名を入力後、BoardsかProcessorsを選択します。Boardsとは、FRDMなどの評価ボード、ProcessorsとはKDSでサポートしているKinetisシリーズのことです。残念ながらFRDM-KE02Z40MはBoards選択肢にありませんので、Processors>Kinetis E>MKE0x/KEA>KE02Z/KEAZN(20MHz, 40MHz)>MKE02Z64xxx4を選びます。この後、コード生成ツールとしてProcessor Expert: PEを使うか否かの選択をします。

Processor Expertt利用の選択肢
Processor Expert利用の選択肢

PEを選択しないと殆ど何もないmain.cを持つプロジェクトができます。一方、PE選択時は、main.c/Event.c/Event.hの3ファイルから成るスケルトンプロジェクトが生成されます。main.cは、スタートアップ処理後の最初に起動される関数main()を含むファイルで、Event.cとEvent.hは、割込み処理ファイルです。

PE利用時のユーザコード追加

Processor Expert利用のユーザコード追加場所
Processor Expert利用のユーザコード追加場所

main.cとEvent.c/Event.hの一例を示します。ユーザコードを追加できる場所は、/* Write your…*/の後です。この指定場所にPEで作成したコンポーネントのAPI関数を使ってユーザコードを追加していけばソースコード完成です。PEでコンポーネントを変えてAPIを再生成した場合でも、指定場所に追加したユーザコードはそのまま保存されます。

PEを利用しない場合は、これらAPI関数や割込み処理ファイル分割も自分で設計する必要があります。

ソースコード完成後は、ビルドとデバッグの繰返しです。ビルド、デバッグの一連作業は、EclipseベースのIDEならどれも違いはありません。これが、Eclipse IDEが開発者に好まれる理由です。

Kinetis Eテンプレートとは、

KDSを使った、ワークスペース設定>プロジェクト作成>ユーザコード追加>ビルド>デバッグ作業を簡単に説明しました。何回かプロジェクト作成を経験すると、いつも同じようなユーザコードやファイル構成に出合います。Kinetis Eテンプレートは、この同じようなコードとファイル構成を纏めてテンプレート化したものです。つまり、PEが作成したスケルトンに、より完成アプリに近いユーザコードを肉付けし、ファイル構成に工夫を加えたものです。そして評価ボードで動作確認済みで提供します。

PE出力のスケルトンファイルは、どのようなアプリにでも対応できる基本形ですが、API関数を除くと殆どゼロのコーディングスタートです。テンプレートを使えば、このゼロスタートをかなり改善できます。また、時分割の簡易マルチタスク処理も行いますので、OSを使うほどではないマイコンアプリには最適です。結果として、アプリの早期開発、問題点抽出ができます。テンプレートに関する詳細な情報も添付しますので、初心~中級レベルの開発者にとっては有用です。

さらに、評価ボードで動作確認済みの多くの自作PEサンプルソフトをKinetis Eテンプレートに添付します。これで、KDS付属サンプルソフトが少ないことを補完できます。PEサンプルとテンプレートを合わせて使うと、より早くKinetis E理解、アプリ開発ができます。販売開始は、2014年末予定です。

 

現在販売中の他マイコンのテンプレート一覧は、コチラをご覧ください。

Processor Expertの解析

以前示したKinetis Eソフト開発の最重要要素、Processor Expert: PE、これがテンプレート開発の大きな障壁です。今回は、簡単なPE適用例を示し、PE利用指針とテンプレートに自作PEサンプルソフトを添付する経緯について示します。

3レベルのProcessor Expertコンポーネント

PEは、マイコン周辺回路パラメタのGUI設定、パラメタ整合性チェック、デバイスドライバ生成、ユーザソース所定位置へのドライバ自動挿入を行うアドオンツールです。CodeWarrior: CWとKinetis Design Suite: KDSで同じものが使われています。これらの機能は、ルネサスRL78マイコンのコード生成と同じです。PEは、さらにOperating System: OSへの適用と移植性を強く意識した設計になっています。

このためPEコンポーネントには、3つのレベルがあります。LDD(論理デバイスドライバ)レベルコンポーネント、Highレベルコンポーネント、Lowレベルコンポーネントの3つです。レベルは、コンポーネント抽象度を示し、LDD>High>Lowの順に高く、移植性も高くなります。

コンポーネントレベル 説明
LDDレベル OS利用が前提で、マイコンハードウエアとOS分離が目的のHAL: Hardware Abstraction Layerを適用したデバイスドライバ。OSや機種が変わっても、移植性が高いソースコード生成が可能。
Highレベル OSを使わない一般的マイコンのデバイスドライバ。機種が変わっても、移植性が高いソースコード生成が可能。
Lowレベル 使用マイコンに依存したデバイスドライバ。周辺回路毎の初期化コンポーネントとメソッド/イベントAPIを提供。

PE想定OSは、freescale無償提供のMQX Liteですが、FreeRTOSなどにも適用できそうです。

Highレベルコンポーネントは、LDDコンポーネントを流用

HighレベルコンポーネントとLDDコンポーネントは、別物ではありません。LDDコンポーネントのパラメタの一部を自動設定し流用しています。ツール開発の立場から言えば、当然でしょう。

Processor Expartコンポーネント使用例

LDDレベル

GPIO処理例を示します。無限ループを回る度にGPIO出力ピンに接続したLEDが点滅する例です。

LDDレベルコンポーネント使用例
LDDレベルコンポーネント使用例

面倒なのは、全LDDレベルのAPIに1行目で定義したパラメタが必要なことです。10行目のトグル動作でさえこのパラメタが必要です。4行目の初期化は、ピン初期値がHighかLowか、出力方向か入力方向かなどのGUIで設定したパラメタが自動設定されます。

Highレベル

LDDコンポーネントの代わりにHighレベルコンポーネントを使うと、10行目のパラメタが不要になります。但し、これは、別のところで下記マクロが追加されたために不要になったようにソース記述ができるだけです。
#define Bit1_NegVal()       (Bit1_NegVal(LDD_TdeviceData))

結局、PEコンポーネントは、LDDレベルもHighレベルも同じものを使っていて、ソース記述時にパラメタ1個分簡素になるだけです。多くのパラメタを使ってAPI移植性を高めているのです。ルネサスのコード生成と比べると、APIパラメタが多く、回りくどく感じます。

Lowレベル

Lowレベルのコンポーネントを使用すると10行目のトグル動作は、下記になります。
GPIO_PDD_TogglePortDataOutputMask(FPTB_BASE_PTR, (1<<18));

Lowレベルは、周辺回路毎にメソッド/イベントAPIが提供され、パラメタで具体的な処理位置を指定する必要があり、初期化処理にも多くのLowレベルAPIコールが必要になります。

Processor Expert の課題と利用指針

PEユーザガイドに各レベルコンポーネントの機能説明はありますが、具体的な使用例、つまりサンプルソフトがありません。使用例が無いと機能理解が困難になります。特にLowレベルの記述は、LDDやHighレベルに比べ少ないです。LDDかHighレベルのコンポーネントを使うことがPEの前提条件で、Lowレベルは、LDDレベルでカバーできない部分のみに使用するのだと思います。

以上から、LDDレベルコンポーネントを使ってテンプレートを開発する方針とします。そこで、開発に使えそうなサンプルソフトを調査しました。

FRDM-KE02Z40MのCW、KDSサンプルソフト一覧

2014年11月時点で、テンプレート開発評価ボード:FRDM-KE02Z40Mに使えるサンプルソフトを示します。NonPEとは、Processor Expertを使わない従来タイプのデバイスドライバのことです。因みに、NonPEでGPIOトグルを記述すると、PEのLowレベルに近い記述で、下記になります。
GPIO_Toggle(GPIOB, GPIO_PTE7_MASK);

サンプルソフト(2014/11E現在) サンプル数 概要
CW10.6付属 PE Examples 1 評価ボードの3軸加速度センサプロジェクト。使用コンポーネントのデフォルト設定値からの変更箇所が判らない問題あり。
CW10.6付属 NonPE Examples 29 最も多くのサンプルソフトがあるが、CW専用ドライバでKDSへ移植できない。
KDS1.1.1付属PE Examples 0 KDS1.1.1付属サンプルソフト無し。自作PEサンプルソフトをKinetis Eテンプレートに添付予定。
KDS1.1.1付属NonPE Examples 0 KDS1.1.1付属サンプルソフト無し。
Kinetis SDK1.0.0 0 FRDM-K22Fボードなど5種対応中だが、評価ボード対応版無し。

この一覧表から、現時点のFRDM-KE02Z40Mサンプルソフト状況を纏めると以下となります。

  • CW PEサンプルソフトは、KDS PEサンプルソフトへのポーティング可能
  • CW NonPEサンプルソフトは、KDS NonPEサンプルソフトへのポーティング不可能
  • KDSとPEを開発環境に選ぶと、テンプレート開発評価ボードで使えるPEサンプルソフトは、CW版をポーティングして得られる3軸加速度センサプロジェクト1個のみ

CWのPEサンプルソフトは、KDSへ移植が可能ですが、一部手直しが必要です。また、一番サンプル数が多いCWのNonPEサンプルソフトは、CW専用ドライバで開発されていてKDSへ移植できません。

KDS Processor Expert サンプルソフトをKinetis Eテンプレートへ添付

販売予定のKinetis Eテンプレートも従来テンプレートと同様、シンプルテンプレートとメニュードリブンテンプレートの2構成です。さらに、現在のPEサンプルソフト状況を考えると、KDSのPEで動作する自作サンプルソフトをテンプレートと同時提供すれば、テンプレート付加価値が上がります。つまり、KDS1.1.1付属PE Examplesのサンプル数0を補完する試みです。

次バージョンKDSでは、freescaleからKDS PE付属サンプルが提供されるかもしれません。しかし、少なくともそれまでの間は、KDS1.1.1のProcessor Expertを使ってFRDM-KE02Z40Mで動作するサンプルソフトは有りません。自作サンプルソフトが目的でテンプレートを購入して頂ける方がいるかもしれません。

繰り返しになりますが、PEのユーザガイドには、十分な機能説明はあります。しかし、サンプルソフトが無いと、せっかくの機能説明も上級者以外には意味不明になります。また、コンポーネントのデフォルトパラメタ設定値のどこを変えたサンプルなのかも明示すると、より解りやすいものとなるでしょう。テンプレート説明資料では、この部分も明らかにします。

テンプレート対象のKinetis KEマイコンは、低価格で非常に良くできたARM Cortex-M0+マイコンです。統合開発環境は、CWからKDSに変わります。KDSでは、OS使用有無にかかわらず、PEを習得しているほうが、KEシリーズだけでなく、全Kinetisマイコン開発のために有益です。

FRDM-KE02Z40M評価ボードで動作するKinetis Eテンプレートと、多くのKDS Processor Expert サンプルソフトを提供すべく開発中です。

Kinetis Design StudioとCodeWarrior

Kinetis Eテンプレート開発は、順調とは言えません。理由は、IDEとProcessor Expertです。今回はIDEについて説明します。

Kinetis専用IDE: Kinetis Design Studio

freescaleのIDEは、商用CodeWarrior: CWがあります。無償128KB制限は、Kinetis Eマイコン開発(ROM≦64KB)には問題なしです。しかし、CWで開発できるKinetisは、現版サポートのみで打ち切られ、今後リリースされる全てのKinetisシリーズマイコンは、Kinetis専用IDE: Kinetis Design Studio: KDSでサポートされると発表されました。

KDSは、無償でROM制限がありません。全てのKinetis K/L/W/M/Eマイコン開発ができ、技術サポートは、KDSコニュニティで受けられます。IDEサイズもCWよりも小さいので高速動作します。

KDS1.1.1の現状

CWと色々な個所で異なります。IDE画面の例を示します。

CW(左)とKDS(右)Projetcs View差
CW(左)とKDS(右)のProjects View差

左のCWプロジェクトビューは、ファイル毎のビルト結果が表示されますが、右のKDSプロジェクトビューには、これがありませんので、プロブレムビューでのチェックが必要です。CWは、さすがに商用IDEなので、細かいところにも配慮があり、使い易くできています。

また、テンプレートに応用できるサンプルソフトも、CW、KDS両方を探しても今のところ1個しか発見できません。Kinetisソフトウエア開発キット(SDK)もKinetis E以外の5種ハードサポートのみで、Hardware Abstraction Layer(HAL)対応なので、流用も結構面倒です。HALについては、Processor Expertの時に別途説明する予定です。

CWに比べ利用できる資料は、最小限です。これが、上級者ならともかく、普通の開発者には、とまどうところです。

CWプロジェクトのKDSへの変換

CWプロジェクトは、KDSへそのまま使えません。KDS最大の問題点です。説明が少ないポーティングガイドがありますが、ポーティング時、多くのエラーが発生し、上手く変換できないこともあります。ヘルプが役に立たないのは、いつものことです。しかし、無いよりは、CWのように豊富にあった方が良いです。

つまり、数あるCWサンプルを利用する場合や、上級者以外が使うには、CWに比べ現版KDS1.1.1は障壁が高いのです。これが、KDSリリースから半年しかたってないためか、それとも、Kinetisシリーズ+KDSに商用CWとは別戦略があるためかは、判りません。

 

いずれにせよ、誰もが使えるKinetis Eテンプレートを開発するには、現状ではCWとKDSの両方を使う必要があります。テンプレート販売時には、ご購入者様がKDSで動作することが必要となるからです。殆ど同じプロジェクト作成に2つのIDEを使って、ゼロベースで作成が必要なこと、これが開発を遅らせる原因です。