(toppers-users 3720) Re: TOPPERS SSPをBuildして見ました。 Windowsのmake dependdeでNG?

koizumi yoshiyuki koizumiyoshiyuki @ gmail.com
2012年 1月 14日 (土) 00:28:12 JST


 こいさんです

SSPを動かしていますが、どうも動きがおかしいように思えます。
  'a'でtask1が動作しましたが停止することができませんでした。ソース修正後の動作が正しいような気がしますが、そんなことはないきもしています。

SSPは情報が少ないのでソースを1日程度読んだだけなので、自信はありません。
sample1はどのように操作するのが正しいのでしょうか。

void main_task(intptr_t exinf)
{
 static ID tskid = TASK1;
 static uint_t tskno = 1;
 char_t c;

 /* シリアルポートからの文字受信 */
 if(serial_rea_dat(SIO_PORTID , &c , 1) > 0)
 {
  switch(c)
  {
  case 'e':
  case 'z':
  case 'Z':
  case 'r':
   message[tskno - 1] = c;  // ** change
      break;
  case '1':
   tskid = TASK1;
   tskno = 1;  // ** change
   break;
  case '2':
   tskid = TASK2;
   tskno = 2;  // ** change
   break;
  case '3':
   tskid = TASK3;
   tskno = 3;  // ** change
   break;
  case 'a':
   SVC(act_tsk(tskid));
   break;
なにぶん資料が少ないのでよくわかりません。よろしくお願いします。

又、SSPはタスク毎にスタックを持たずに動作するシステムなのでしょうか。この辺話は、ソースを呼んで理解するのは骨の折れる作業ですね。
(スタックらしいソースの記述が一つしか見つかりませんでした)


以上



2012年1月13日17:22 杉本明加 <asuka.choronos @ gmail.com>:

> こいさんさん
>
> 杉本です。
>
> SSPで使用しているPerlユーティリティは全てEUC+LF形式で
> 保存した状態で動作確認しています。
> (CygwinのインストールもUnix設定で行って確認しています)
>
>
> SSPの仕様はdoc/ssp_spece.txtをご覧ください。
> (SSPの仕様書はあるのですが、現状公開されているTOPPERS統合仕様書には
> マージされていません)
>
> SSP開発の背景としては、待ちを使わないようなシンプルなアプリケーションへの
> RTOS適用があります。待ちがなくともスケジューラや割込みハンドリング機構、
> 時間管理機能といった恩恵に預かることができます。
>
> SSPの開発背景や適用分野はTOPPERSからのプレスリリースも参考にしてください。
> http://toppers.jp/press/release-1111.pdf
>
>
> 以上、よろしくお願いします。
>
>
> 2012年1月13日16:35 koizumi yoshiyuki <koizumiyoshiyuki @ gmail.com>:
> >  こいさんです
> >
> >
> >  TOPPERS-SSPをWindows
> CygwinでBuildして見ました。ソースがEUCなので、作業前にS-JISに変換してBuildした処、make
> > depenが失敗しました。
> >
> >
> > Generating Makefile.depend.
> >
> > ../utils/confkernel svccall.def ../kernel/kernel_construction.def
> > Makefile.config
> > Line 65 : predicate must be 'define' or 'require'.
> > Line 63 : predicate must be 'define' or 'require'.
> > Line 60 : predicate must be 'define' or 'require'.
> > Line 57 : predicate must be 'define' or 'require'.
> > Line 55 : predicate must be 'define' or 'require'.
> > Line 42 : predicate must be 'define' or 'require'.
> > Line 39 : predicate must be 'define' or 'require'.
> > Line 36 : predicate must be 'define' or 'require'.
> > Line 33 : predicate must be 'define' or 'require'.
> > Line 31 : predicate must be 'define' or 'require'.
> > Line 29 : predicate must be 'define' or 'require'.
> > Line 24 : predicate must be 'define' or 'require'.
> > Line 11 : predicate must be 'define' or 'require'.
> > Line 8 : predicate must be 'define' or 'require'.
> > Line 5 : predicate must be 'define' or 'require'.
> > Line 2 : predicate must be 'define' or 'require'.
> > make: *** [genkerconf] Error 1
> >
> >
>  原因はkernel\kernel_construction.defをS-JISに変換すると改行がCR、FLになります。kernel_construction.defの改行のみの行がPerlのutils\confkernelで改行のみ行が処理できないようです。onfkernelに一行追加しました。
> >
> >
> >  97             while($line = <IN>)
> >
> >  98             {
> >
> >                              local $/ = "\r\n"; # 削除したい改行文字を設定
> >
> >  99                          chomp $line;
> >
> >
> >
> >
> >  Windowsでやる人はあまりいないのかも知れませんが報告しておきます。
> >
> >
> >
> >
> >  追伸(SSPに対する疑問です)
> >
> >
> >
> >
>  SSPにはタスクを待ちする処理がないようです(まだ詳しく読んでいません)。待ちの処理がなくてRTOSを使う意味が私にはよくわかりません。この辺を説明しているような何かが有りませんでしょうか。SSPの仕様を決めたときのメモ。のようなものでも紹介していただければ幸いです。
> >  extensionに周期ハンドラがあるのでタスク起動と周期ハンドラでシステムを作れと言っているのでしょうかね。
> >
> >
> >  タスク、タイマ、イベント、クリティカルセクション、キューがあればRTOSとして何とかなると思っていましたが、別な考え方があるのでしょうかね?
> >
> >  以上
> >
>
-------------- next part --------------
HTMLの添付ファイルを保管しました...
URL: <http://www.toppers.jp/pipermail/users/attachments/20120114/a5187abc/attachment.html>