Smalight FAQ
Smalightユーザーの皆様からよく寄せられる質問についての回答です。以下の質問を選択すると回答が表示されます。 TCP/IP, SDK につきましては只今準備中ですのでいましばらくお待ちください。
Q&A
| 区分 | 質問 | |
| どこで購入できるのか? | ||
| 標準価格はいくらか? | ||
| 納期はどのくらいか? | ||
| カタログが欲しい。 | ||
| 見積書が欲しい。 | ||
| 購入後のサポートについて保守は無償か? | ||
| Smalight OS V2 | ||
| サービスコール中は割込みを受け付けますか? | ||
| プライオリティタスクとローテーションタスクの定義がわからない | ビルド時にワーニングが出力されます! | |
| Smalight OS V1 | ||
| 割込み受付サンプルはなぜ3類必要なの? | ||
| 同じ割込みだけど、ディスパッチしたいときとディスパッチしたくないときがあるのですが? | ||
| 割込みがタスクスタックに依存しているのでは? | ||
| ノンマスカブル割込のサンプルがおかしいのでは? | ||
| タスクスタックの計算方法がわかりません | ||
| OSスタックの計算方法は? | ||
| uinitのスタックはどうなってるの? | ||
| 割込みスタックの計算方法は? | ||
●Q. どこで購入できるのか?
| (株)ルネサステクノロジ製半導体製品を扱っております販売会社・特約店からご購入頂けます。 URL : http://japan.renesas.com/fmwk.jsp?cnt=/eigyou_kyoten.htm&fp=/support/purchasing_info/child_folder&site=i& title=%E5%9B%BD%E5%86%85%E5%96%B6%E6%A5%AD%E4%B8%80%E8%A6%A7> ご不明な点は、ソフトサポート (soft.support@kitasemi.renesas.com) までお問合わせください。 |
●Q. 標準価格はいくらか?
| ソフトサポート(soft.support@kitasemi.renesas.com)までお問合わせください。 |
●Q. 納期はどのくらいか?
| ご注文頂いてから2週間です。 |
●Q. カタログが欲しい。
| Smalightダウンロードコーナーからカタログをダウンロードできます。 そちらをご参照ください。 |
●Q. 見積書が欲しい。
| (株)ルネサステクノロジ製半導体製品を扱っております販売会社・特約店にご依頼ください。 URL : http://japan.renesas.com/fmwk.jsp?cnt=/eigyou_kyoten.htm&fp=/support/purchasing_info/child_folder& site=i&title=%E5%9B%BD%E5%86%85%E5%96%B6%E6%A5%AD%E4%B8%80%E8%A6%A7 ご不明な点は、ソフトサポート(soft.support@kitasemi.renesas.com)までお問合わせください。 |
●Q. 購入後のサポートについて保守は無償か?
| 有償にてサポート致します。 ご不明な点は、ソフトサポート(soft.support@kitasemi.renesas.com)までお問合わせください。 |
●Q. サービスコール中は割込みを受け付けますか?(V2)
| コンフィグレーションにて、カーネルマスクレベル(OS動作中の割込みマスクレベル)を定義することができます。
カーネルマスクレベルより高い優先度の割込みはサービスコール中でも受け付けることができます。 但し、カーネルマスクレベルより高い優先度の割込みはdisp無割込みとして実装する必要があります。 disp無割込みからはOSのサービスコールは発行できません。 ※ 多重割込みがサポートされていないデバイスではカーネルマスクレベルという概念はサポートされません。 |
●Q. プライオリティタスクとローテーションタスクの定義がわからない(V2)
| コンフィグレーションにて、タスク数(KNL_TCB_NUM)とプライオリティタスク数(KNL_TCB_PRI_NUM)を指定します。
実際はどのタスクがプライオリティタスクで、どのタスクがローテーションタスクになるかを下記例で説明します。 [config.c]
タスクIDは1から順に連続で割り当てられます。タスク優先度はプライオリティタスクについてはタスクIDと同一になり ローテーションタスクについては、最低優先度となり、全て優先度は同一になります。タスク優先度は小さい程高くなります。 この場合、プライオリティタスクが tsk01 , tsk02 、ローテーションタスクが tsk03 , tsk04 となります。 |
●Q. ビルド時にワーニングが出力されます!(V2)
| Smalight OSのワークスペースを開いて、なにも変更せずにビルドすると以下のワーニングが出力されます。 L1100 (W) Cannot find "C" specified in option "start" このワーニングはCセクションが存在しないのに、セクション定義されていますという意味のワーニングになります。 Cセクションとは const型のデータを格納する定数領域です。提供するサンプルプログラムの雛形に、たまたま、Cセクションが含まれない ためワーニングが出力されます。 コーディングを進めることでたいていCセクションが生成されるため本ワーニングは無視して頂いて問題ないと思いますが、 リンカの設定に含まれるセクション定義からCセクションを削除することで回避できます。 |
●Q. 割込み受付サンプルはなぜ3類必要なの?(V1)
Smalight OSでは特徴/用途から以下の3種類の割込みの概念を用いております。
|
●Q. 同じ割込みだけど、ディスパッチしたいときとディスパッチしたくないときがあるのですが?(V1)
| この場合は、割込み受付は「通常割込み(マスカブル割込)」のサンプルを利用してください。割込み処理はこの様にコーディングすると実現できます。 [H8/300Hの場合]
disp()を発行すると割込み処理から直接ディスパッチャへ処理が移り、発行元には戻りません。 |
●Q. 割込みはタスクスタックに依存しているのでは?(V1)
一見、タスクスタックをそのまま使用している様に見えますが、
INTPOP/INTPUSHマクロ内部で割込みスタックにスタックを切り替えを行なっております。
slos.inc を確認してみてください。
|
●Q. ノンマスカブル割込のサンプルがおかしいのでは?(V1)
| 本サンプルは1本のノンマスカブル割込みだけが発生する環境でのみ正常に動作します。 INTPOPマクロはスタック退避した後、スタックを割込みスタックに切り替えます。 ノンマスカブル割込みはマスク不可能な為、割込み処理中、またはOS処理中にも発生します。 そのため、割込み処理中にスタック切り替えすると使用中の割込みスタックを上書きするという現象が発生します(スタック破壊)。 ノンマスカブル割込み中にスタック切り替え、ディスパッチ処理への遷移は禁止されております。 実装する際は、@INTPOP/INTPOPマクロをカスタマイズし、スタック切り替えが発生しない様にする。 または A専用の割込みスタックを作成した上で、INTPOP/INTPOPマクロをカスタマイズしてそれを使用する。 等の方法があります。 |
●Q. タスクスタックの計算方法がわかりません(V1)
| Smalightサイズ算出サービスで、
希望するCPUのタスク最低スタックサイズを取得できます そこで記載されるタスク最低スタックサイズは、タスク毎に必要になるスタックの最低スタックサイズです。 タスクの最低スタックサイズとは、タスクからOSサービスコール発行と割込み発生を前提した場合に使用するスタック使用量の最大値を指します。 タスクスタックの計算方法は、関数ネストと各関数のスタック使用量を調査し一番最大になるサイズに、 タスクの最低スタックを加えたものです。 ex) H8/300H Tinyでのタスクスタック計算例
例えば、H8系ではルネサス製コンパイラパッケージに callwalker というスタック計算ツールがありますので、 併用することで簡単に計算できます。 |
|||||||||||
●Q. OSスタックの計算方法は?(V1)
OSスタックはOSで使用されます。OSスタックを使用する処理は以下の通りです。
uniit()とstack_init()を呼び出すとき、OSメイン処理からジャンプサブルーチンコールされます。 MCUによってジャンプサブルーチンのスタック使用量は異なりますが、その分余計に必要です。 |
●Q. uinitのスタックはどうなってるの?(V1)
| OSスタックを使用しております。 ここで説明しているOSスタックサイズを、 uinit()のスタックが超える場合、OSスタックを変更してください。 |
●Q. 割込みスタックの計算方法は?(V1)
| @INTPUSH BINTPOPは、割込み発生元(タスク、またはOS)のスタックを使用して、
最後に割込みスタックへの切り替えを行なっております。 Aが割込みスタックを使用している個所になります。A部分のスタック使用量を計算してください。 ex) H8/300H,H8/300H Tinyの場合
|
|||||||||||||||||||||||||||||||||||||||||
