組込みシステム

μT-Kernel開発キット
「UCT μT-Kernel DevKit tuned シリーズ」

技術情報FAQ

■開発環境

IAREWはK60付属のVer.6.10とWebの最新バージョンではどちらを使うべきですか?
IAR Embedded WorkbenchはK60付属のVer.6.10とIARのWebサイトで公開されている最新バージョンではどちらのほうがよいでしょうか?

弊社で動作を確認しているのは Ver.6.10 です。こちらをご利用ください。
なお、複数人で開発を行う場合、開発者間での利用バージョンは必ず統一する必要がありますので、ご注意ください。

■ビルド

inline関数がリンクエラーとなる

リンク時にinline関数の部分で エラー[Li005]: no definition for "knl_force_dispatch" [referenced from C:\ProgramFiles\UCT\utkernel_source_kinetis\ide\iar\twr_k60n512\
RAM_Debug\Obj\tkstart.o] といったエラーが発生します。
本エラーは、プロジェクトのC/C++コンパイラオプションで「C++ インライン動作」が無効になっている場合に発生します。
このオプションの確認方法は以下の通りです。

1.「ワークスペース」のファイルツリーのプロジェクト名(twr_k60n512)で右クリックする。
2.「オプション」を選択する。
3. オプションウインドウで「C/C++コンパイラ」のカテゴリを選択する。
4.「言語1」タブを選択する。
5.「Cの派生言語」グループに「C++ インライン動作」のチェックボックスがあります。
 チェックボックスにチェックを入れる。
6. [ OK ] をクリックしてダイアログボックスを閉じる。

このチェックが外れていると、本エラーが発生します。
チェックボックスにチェックを入れてからビルドしてください。

■アプリケーションの開発

usermain.cとは別に自社開発のファイルを追加するにはどうすればよいのでしょうか?

自社で開発するアプリケーションを application.c、application.h として追加する手順は?

1. ワークスペースの「ファイルツリー」で kernel/usermain を右クリック
2. [ 追加 ] → [ ファイルの追加 ]
3. ダイアログでapplication.c, application.hを選択(まとめて選択できます)
4. [ 開く ]
なお、マイコンピュータ(エクスプローラ)からEWARMのファイルツリーにファイルをドラッグ&ドロップしても追加できます。

kernel/usermainの下にグループ(フォルダ)を作成して、その中にファイルを追加する手順は?

1. ワークスペースの「ファイルツリー」で kernel/usermain を右クリック
2. [ 追加 ] → [ グループの追加 ]
3. グループ名を入力
4. [ OK ]
5. 追加したグループで右クリック
6. ファイルの追加と同様の手順でファイルを追加
(注)ここで追加したグループは、ローカルのフォルダ・ファイル構成には反映されません(そのため、ローカルのフォルダ構成とプロジェクトのツリー構成が一致しなくてもエラーにはなりません)。
なお、マイコンピュータ(エクスプローラ)からのドラッグ&ドロップではグループ(フォルダ)を追加できません。

μT-KernelのAPIをコールするために最低限必要となるインクルードファイルはどれですか?

以下の3つのヘッダファイルをインクルードしてください。
#include <basic.h>
#include <tk/tkernel.h>
#include <tm/tmonitor.h>

タイマー割込み周期はどうやって変更するのですか?

config/sysdepend/twr_k60n512/utk_config_depend.h に含まれる以下の設定を変更した上で、全体をビルドし直してください。
・#define CFN_TIMER_PERIOD 10
o 単位はミリ秒で、デフォルトでは10(ミリ秒)に設定されています。

「FLASH Debug」でダウンロードを行ったが、プログラムがFLASHに書き込まれないのですが?

何らかの原因でFLASHへのプログラム書き込みがロックされている可能性があります。 このような症状が発生した場合、以下の手順でロック状態を解除してください。

1. TWR-K60N512とJ-Linkを接続してください。
2. EWARMインストール先の arm\bin フォルダ内に移動してください。
3. jlink.exeを実行してください。
* コマンドプロンプトが起動します。
4. 下記のコマンドを入力してください。
J-Link> unlock Kinetis
5. 下記のコマンドを入力して jlink.exe を終了します。
J-Link> exit
本件に関する情報は、IAR SYSTEMSのサポートページに掲載されています。
詳細についてはこちらでご確認ください。
http://supp.iar.com/Support/?note=77989

■ダウンロード・デバッグ

「スタック 'CSTACK' のスタックポインタがスタック範囲の外にあります」というメッセージが表示されるのですが?

μT-Kernelの動作としてはまったく問題ありません。
μT-Kernelのタスク(初期タスクから実行されるusermainを含みます)が実行状態になると、スタックポインタの指す領域がビルド時に設定された初期スタック(CSTACK)から、μT-Kernelが管理する領域に確保されたタスク用のスタック領域に切り替わります。
EWARMのデフォルト設定では、スタックポインタがCSTACK領域の外を指すと警告が表示される設定になっているので、本メッセージが表示されています。

EWARMで以下の設定変更を行うことにより、本メッセージを非表示にできます。

1. メニューバーの [ツール] → [オプション] を選択してください。
* 「IDEオプション」ウインドウが表示されます。
2. 左側メニューの「スタック」を選択してください。
3.「スタックポインタが境界外の時にワーニング」のチェックをはずしてださい。
4. [OK] ボタンを押してください。
5. 以上の設定により、本メッセージが表示されないようになります。

■デバッグ

デバッグ実行時に「ブレークポイントの数が無効」「コードに古いブレークポイントが含まれている」というエラーが出て、デバッガが強制終了してしまうことがあります。

EWARMのメモリウインドウでリードアクセス不能のメモリ領域を表示すると、本現象が発生することがあります。
また、本現象が発生した後に再度「ダウンロードしてデバッグ」を行うと、メモリウインドウにリードアクセス不能の領域が表示された状態(即、本現象が発生する状態)でデバッガが起動してしまいます。

本現象を回避するためには、以下の手順を実行してください。

1.「ダウンロードしてデバッグ」を行う。
* ダウンロードしたあと、実行は行わないでください。
2. メモリウインドウを閉じる。
3. デバッグをいったん終了する。
* ここでエラーメッセージが出る場合がありますが、無視してください。
4. 再度、「ダウンロードしてデバッグ」を実行する。
5. メニューの [表示]→[メモリ] でメモリウインドウを再表示する。
6.「実行」ボタンで実行します。
* この時点でエラーが発生しなければ、本現象が発生しなくなります。

* メモリウインドウのスクロールバーを使用してアドレス表示範囲を変更すると、本現象が発生する可能性があります。アドレス表示範囲の変更は「移動」の右にあるボックスへのアドレス入力で行うようにしてください。

ページトップへ