【TOPPERS】ITRON総合スレ3【NORTi】【HOS】at OS
【TOPPERS】ITRON総合スレ3【NORTi】【HOS】 - 暇つぶし2ch450:Be名無しさん
10/04/09 09:30:37 .net
>MontaVista社のモバイル向けLinuxが「Android」に対応
>URLリンク(ednjapan.rbi-j.com)

Linuxが泥井戸に対応って、文章変な希ガス

451:Be名無しさん
10/04/09 16:04:55 .net
>>449
ent_int,ret_intの意味わかってる?
OS何?NORTI?

効果は割り込み発生時のレジスタの退避と
復帰時のレジスタの復元を気にしなくてよくなるんじゃね
(ent_int,ret_intのこと)

あと動的に割り込みハンドラを変更可能なところかな

面倒と思うならdef_inhなしで動かしてみろよ
多分ちゃんと動かないしめんどくさいことになるはず

このへん似たような現象っぽい
スレリンク(os板:541-番)

452:Be名無しさん
10/04/09 21:42:25 .net
OSはnortiです。
def_inh使わなくてもちゃんと動いてますよ。
スレリンク(os板:683番)
もdef_inhなしで割り込み使ってるみたいだし、必ず変になるってことも
ないと思うんだけど。
動的にハンドラ変更なんてしないから使わなくてもいいのかな。

453:Be名無しさん
10/04/10 14:39:35 .net
カーネル管理外なら、intprg.c でも問題ないが、
割り込みハンドラから、サービスコールを利用するならdef_inhとent_int ret_int
での囲いが必要ですよ。

HEWの出すintprg.cはRTOS対応ではないので、レジスタの退避、復帰を
#pragma interrut で行っています。 よって、intprg.cでの割り込みハンドラは
かならず割り込みのあった元のプログラム(タスク)に戻ります。
ITRONでは、これでは問題で、割り込みハンドラから(多重割り込みも含め)元のタスク
に戻ろうとするときに、タスクのスケジュールとディスパッチを行う必要があります。
たとえば、isig_sem()が呼び出されて、割り込まれたタスクよりも優先度の高いタスク
がレディになった場合は、元のタスクではないタスクへの切り替えが必要なわけです。
この処理のことを遅延ディスパッチといいます。
ret_intは、レジスタの復帰とこの遅延ディスパッチを行うために必要な処理です。


454:Be名無しさん
10/04/10 18:17:24 .net
ITRONに限った話ではないね。

たとえばMS-DOSに割込みハンドラを登録するファンクションがあるけど(AH = 25H)、
普通は0000:0000+4*割込み番号にあるテーブルを直接書き換えてしまっても動く。

でも、MS-DOSをフックして何かやってるドライバが何かやってたら、おかしなことに
なるかもしれない。インタフェースが用意されてるということはそういうこと。

455:Be名無しさん
10/04/13 23:31:23 .net
割り込みハンドラでサービスコール使うならdef_inhしなきゃ
だめってことですか。
ハンドラ内で今のとこサービスコール使わないし関係ないのか。
ちなみに非タスクコンテキスト(割り込みハンドラ内の
ent_int ret_intで囲まれた関数内)でwup_tskって使えないよね?

456:Be名無しさん
10/04/14 08:13:23 .net
μITRON3.0の仕様では、割込みハンドラからタスクを起床させる機能があることを
要求してるけど?

その場合に、普通と共通のwup_tskが使えるのか、iwup_tsk(割込みハンドラから
呼ぶためのシステムコールには頭に i を付ける)という専用のシステムコールを
使うのか、はインプリメント依存。

なので使ってるITRONのマニュアルを見て。

NORTiはほぼ全部に i が付くのが別に用意されてるんだっけかな?

457:Be名無しさん
10/04/14 12:46:32 .net
>>456
ほぼ正解。 Nortiは、以下のように書かれてます。
なお、μITRON 仕様では、非タスクコンテキスト専用システムコールの先頭文字をi として区
別してよいことになっています。NORTi の場合、システムコール内部でコンテキストを自動判
別していますので区別は無く、i 付きのシステムコールは、i 無しのシステムコールに同じと、
kernel.h で定義してあります。

458:Be名無しさん
10/04/22 12:49:01 .net
以下のプログラムってバグってるってわかるよね。

typedef struct {
T_MSG msg;
UW data1;
} UserMSG;

void task1(VP_INT extinf)
{
UserMSG userMsg;
userMsg.data1 = 0x1234;
snd_mbx(MBX_ID32,(T_MSG *)&userMsg);
}


459:Be名無しさん
10/04/24 14:04:37 .net
>割込みハンドラからタスクを起床させる機能があることを要求してるけど?
いつ(どういうタイミングで)、タスクを起床させるんでしょうね?

460:Be名無しさん
10/04/24 14:39:19 .net
何の話をしたいの。遅延ディスパッチ?

461:Be名無しさん
10/04/24 15:30:11 .net
>459
正確には、起床待ちのタスクが、iwup_tsk()によって起床、つまりレディ状態になるのは
iwup_tsk()が呼ばれて戻るまでの間になります。この状態で ref_tskすればレディ状態が
返ります。実際のディスパッチは、全割り込みが終わって、ret_intで実行されますが、
レディQの状態により実行状態になるタスクが決まります。

462:Be名無しさん
10/04/24 15:30:19 .net
URLリンク(kumikomi.asablo.jp)

463:Be名無しさん
10/04/24 16:36:44 .net
>>462
コメントを送っておいたよ。


464:Be名無しさん
10/04/25 20:31:19 .net
>>459
3.6.2.サービスコールの遅延実行
これが実装されているなら、ディスパッチャの直前
URLリンク(www.toppers.jp)

465:Be名無しさん
10/04/26 10:36:49 .net
ITRONでポーリング→メッセージとかイベント、しかやったこと無くて割り込み使ったこと無いのですが、やヴぁいですか?

買ってきたUSBドライバの中で割り込み発生してるんだろうけどw

だれか、ITRON割り込みフレームワーク説明お願いします。(説明サイトでもおk)

466:465
10/04/26 15:33:11 .net
何となく思い出したけど、割り込みって割り込み用関数用意すんだっけよね?
interruptみたいな宣言で。
で、関数がコールされてそこでは処理せずにメッセージ送る、みたいな。
関数コールする方法はFPGAな人が知っとけばおk、と。

あってる?

467:Be名無しさん
10/04/26 18:33:20 .net
何か教科書一冊買ったら?

468:465
10/04/27 10:27:32 .net
公式T-Engine本なら持ってるお?

469:Be名無しさん
10/04/27 21:56:14 .net
動作モードA,B,Cがあってどれか1つのモードが常に実行状態だとします。
モードA,B,Cはスイッチ入力のタスクともう一つそれぞれ2つ動いています。
例えばモードAが動いていて、スイッチ変化等でモードAからBに切り替わった
場合、モードAのタスクはter_tskで自分のスイッチタスクともう一つのタスクを
強制終了させ、モードBのタスク2つを起動させるっていう方法は問題ないもので
しょうか?
それともほかによい方法があったりしますでしょうか?


470:Be名無しさん
10/04/28 06:52:10 .net
>469
1)ter_tskで自タスクは終了できなかったと思う。ext_tskかな
2)それ以外のタスクをter_tskで終了させていいかどうかはタスクの処理
 内容によりますね。一般的にはクリティカルセクションがある場合の対策
 が必要ですね。
 対策としては、クリティカルセクションでディスパッチ禁止にするか
 ミューテックスを使う方法と、タスクに終了してくれとメッセージを送って
 終わってくれるのを待つ方法だと思う。


471:Be名無しさん
10/04/28 20:28:30 .net
終了させる必要はないんじゃ?
常に実行状態ならないようにしたら

472:Be名無しさん
10/04/28 22:30:56 .net
a

473:Be名無しさん
10/04/28 23:01:47 .net
toppers/jspのsample1に関して質問です。

TASK1,TASK2,TASK3が起動されており、TASK1がまず動作します。
eを押し、ext_tskします。するとTASK2が動作します。
ここまではいいのですが、ここでeを押してもTASK2はextしません。
これはどういうことなんでしょうか?

474:Be名無しさん
10/04/29 00:00:33 .net
>>473
TOPPERSの配布物を使う場合は、付属のドキュメントとキッチリ読むことがまず大事ですね。
後、最初自分もわからなかったのですが、μITRON4.0仕様書に書かれている内容については
ダウンロード対象の配布物に入っていません。実装定義、実装依存部の説明のみです。
さて、ご質問ですが、sample1.cの頭のほうの説明をみましょう、書いてますよ。

475:Be名無しさん
10/04/29 00:15:40 .net
>>474
1,2,3を入力しないとダメなんですね。わかりました。

周期ハンドラは,三つの優先度(HIGH_PRIORITY,MID_PRIORITY,
* LOW_PRIORITY)のレディキューを回転させる.プログラムの起動直後は,
* 周期ハンドラは停止状態になっている.

というのがよくわかりません。 なぜ回転させるんですか?
回転というのがそもそもよくわかりません。

476:Be名無しさん
10/04/29 08:05:34 .net
>475
なるほど、レディキューという言葉を使っているのが適切でないですね。
正確には、タスク優先順位の回転 ですね。
それが何かは、μITRON4.0仕様書を確認してください。
なぜそうするかは、ラウンドロビン風にタイムシェアスケジュールしたいからじゃないかと思う。


477:Be名無しさん
10/04/30 21:46:03 .net
toppers/jspのsample1のVC用、2010だと開けなくなってない?

478:Be名無しさん
10/05/01 09:31:37 .net
確認したらtoppersメーリングリストへ

479:Be名無しさん
10/05/01 13:32:33 .net
>477
コンパイラのバージョンアップしたらうまくいかない。カーネルパッケージのバージョンアップしたら文字コードが
おかしい とか言うのは結構すくなくない。 これに会員は年間10万(団体)払って、自分たちで直しましょう とか
言う対応なのかな。

480:Be名無しさん
10/05/01 23:59:52 .net
雛形出来きたから、後はお好きに状態とか

481:Be名無しさん
10/05/05 18:53:26 .net
>>471
別に終了じゃなくてもslp_tskでもいいと思ったけど、他タスクに対してslp_tsk
ができないので、ter_tskならIDで自タスク以外に対してできるのでそっちのが簡単かなと
思ったんです。

482:Be名無しさん
10/05/05 19:08:38 .net
sus_tskは?

483:470
10/05/05 20:18:15 .net
>481 >482
ter_tskが一番安全じゃないのかと思う。
終了させるタスクが、広義の待ち状態になる場合があった場合に面倒が少ないように思うから。
あくまでタスクの動き方というかアプリケーションによるけど、最初からまた繰り返すようなケースなら
ter_tsk、 途中から再度レジュームならsus_tskでいいと思う。sus_tskの場合にサスペンド状態時に
待ちが解除されるイベントを受けるならそれでもいいがその間受けないならなんらかの対応が
必要になる。別の言い方をするとしがらみが多い作りになる
また、相手タスクが勝手に休止状態になるような場合には、sus_tskで停止する場合には、タスク起動をしてやらないと
続行できないのでひとつ判断が必要になると思う。

484:Be名無しさん
10/05/06 21:06:39 .net
こういうモード遷移で定石みたいなやり方ってないんですかね?
こいうときはこうするみたいなのが載ってる本とかあると助かるんだけど。

485:Be名無しさん
10/05/07 09:03:20 .net
ITRON系ってサンプルコード本が無いんだおねw

486:Be名無しさん
10/05/08 21:51:12 .net
開発環境HEWでNORTIをポーティングしてるんだけど、
nortiがSTACKっていうセクション使ってるみたいでSTACKセクション
作ったんだけど、HEWもプロジェクト作成するとデフォルトでSって
いうSTACKセクションもってて、HEWがデフォルトで作るSはいらないかなと思って、
削除するとSがないって怒られるんだけど、SとSTACK2つあるのはおかしいですよね?
ずっと昔ポーティングしたことがあって、そのときはセクション見ると
STACKだけだったのでSの方はなくす(統合?)ことができると思うのですが、
やり方がわかりません。わかる方いますか?

487:Be名無しさん
10/05/10 14:06:48 .net
>486
NORTi Version 4 (SuperH/SHC)補足説明書
というのに書いてあるけど、たぶん見てないでしょうね。

Interface 2006年8月号対応「NORTi Version 4 (SuperH/SHC) 体験版カーネル」
URLリンク(www.mispo.co.jp)

というので、SH用のサンプルプロジェクトもあれば、
上記マニュアルも含まれているよ。
第4章移植ガイド にHewプロジェクトの作り方が書いてあるよ。



488:Be名無しさん
10/05/18 01:49:23 .net
H8だと、こんなコードを吐くからね
00000000 _PowerON_Reset: ; function: PowerON_Reset
00000000 7A0700000000 MOV.L #STARTOF S+SIZEOF S,SP


489:Be名無しさん
10/05/20 22:50:34 .net
>>488
どうもデフォルトで生成される下記コードが
__entry(vect=0) void PowerON_Reset(void)
488のコードを生成するせいでSがないって怒られるみたいですね。
ぶっちゃけSセクションとSTACKセクション2つあっても問題ないかな?
マルチタスク環境に移行したらSTACKを使うわけだし、SはPowerON_Reset
で呼び出す関数から戻るときにしか使わないわけでしょ?


490:Be名無しさん
10/05/24 11:01:18 .net
SHとH8が違うにしても、HEWで使う方法の基本は同じじゃないかな
NORTiではHEWの自動生成は使わないのが基本
>どうもデフォルトで生成される下記コードが
というのは、マニュアル読んでないのでしょうね。

4.1 新規プロジェクト作成時の注意
4.1.1 Empty Application の選択
NORTi では、HEW が自動的に生成する次のような雛形ソースファイルを使用しません。
lowlvl.src, dbscr.c, hwsetup.c, intprg.c, lowsrc.c, resetprg.c, sbrk.c, vecttbl.c,
lowsrc.h, iodefine.h, sbrk.h, stacksct.h, vect.h
新規プロジェクトワークスペース作成する場合、プロジェクトタイプとして必ず「Empty
Application」を選択して、これらのファイルの生成を抑制してください。


491:Be名無しさん
10/06/02 19:41:18 .net
>>463
話があってないような?

492:Be名無しさん
10/06/02 21:50:11 .net
今時、lowlvl.srcってのも

493:Be名無しさん
10/06/06 02:43:02 .net
>>462
何で偉そうなの?

494:Be名無しさん
10/06/30 10:11:47 .net
ベクターテーブルとかって例えばHEWだったらジェネレートしてくれるんでしたっけ?
それは何々あるか理解しとけば弄らなくても良いのでしょうか?
ハードウェアからの多重割り込みってどうやって抑止するんでしょうか。

495:Be名無しさん
10/06/30 13:48:10 .net
割込みを受け付けると、割込み禁止モードになるハードウェアが多いんじゃないかと思うけど。

496:494
10/06/30 13:53:00 .net
なるほど、回路とかFPGA側で多重割り込みなんかしないような作りにするわけでつね。

497:Be名無しさん
10/06/30 16:25:00 .net
てか、マニュアルで確認してくださいよ?

498:Be名無しさん
10/07/01 09:23:04 .net
>>494
> ベクターテーブルとかって例えばHEWだったらジェネレートしてくれるんでしたっけ?
だいたいそう。全マイコンでどうかまではよくしらない。

> それは何々あるか理解しとけば弄らなくても良いのでしょうか?
マニュアルを見ればかいてあるはず。


> ハードウェアからの多重割り込みってどうやって抑止するんでしょうか。
マイコンによってすべてそうかは知りませんが、M16Cファミリなら
#pragma INTERRUPT って書いた時のオプションで、割込み禁止なのか許可なのか指定できる。 
記憶が正しければ /E を付けた場合に許可だったと思う。
仕組みは、コンパイラが、割込みハンドラでレジスタのスタック保存をし、割込み許可フラグを
/Eの有無によって、セットするかしないかの動作だと思う。
/Eがなければ、割込み禁止状態(マスク可能なもののみだけど)でCのハンドラが呼び出される。



499:Be名無しさん
10/07/28 00:47:09 .net
OSの勉強しようと思ったけどLINUXのソースコードは難しいので、TOPPERSから始めて見たが、
TOPPERSでも大変だなあって思った。

作った人は偉い

500:Be名無しさん
10/07/28 13:34:33 .net
シングルソースで済むように、フル装備のITRONだからねー

501:Be名無しさん
10/07/28 13:46:21 .net
>499
TOPPERSは他と比較すると読みやすいかもしれませんが、
一応実用になるRTOSのカーネルのソースを理解するのは、
上級者向けということなので、結構難しいよ。
一応、NEXCESSだったか、今はそれなりの料金かかるけど
そこで、カーネルの内部構造 という講座があって、高田先生
みずから説明してくれたりするよ。


502:Be名無しさん
10/07/28 15:08:42 .net
Unix V6, V7か Minixがいいのでは。

503: [―{}@{}@{}-] Be名無しさん
10/07/28 16:53:52 .net
只今オープン価格中です
良かったら見てください。
URLリンク(ameblo.jp)

504:Be名無しさん
10/07/28 21:08:28 .net
>>500
そうですね。
CPU固有のソースコードを分離したせいで思ったよりも複雑ですね。
それに伴ってコンフィグレーターが複雑だし、静的APIのコンバーターもあったりして、
カーネルよりもコンパイルの仕組みの方が複雑な気がしました。

505:Be名無しさん
10/07/28 21:09:40 .net
>>501
URLリンク(www.nces.is.nagoya-u.ac.jp)
終わっているようですが

>>502
ま、TOPPERSである程度勉強を進めてしまったので、このままTOPPERSをしてみたいと

506:501
10/07/29 10:15:09 .net
>505
国からカネもらってやってたのが終わって、今はNCESですね。
近々のは以下のようなのがあります。
URLリンク(www.nces.is.nagoya-u.ac.jp)

507:Be名無しさん
10/07/29 21:43:15 .net
>>506
名古屋まで行って聞きたいセミナーはないような
URLリンク(www.nces.is.nagoya-u.ac.jp)

508:Be名無しさん
10/07/29 21:53:04 .net
TOPPERS/JSPのWindowsシミュレーション環境をWindowsXPで動かそうとしたけど
Visual Studio 2008だとうまく動かないな。

make.vbsがちっとも動作しない。
jsp/cfg/vc_project/のchecker.dspとconfigurator.dspのコンパイルは何とかなるけど、
jsp/tools/WINDOWS/vc_project/toppers.dspがコンパイルできない。

やはりVC++6がいるのかな?

509:Be名無しさん
10/07/30 01:12:44 .net
未だにVC++6にしか対応していないってのは問題かも

510:Be名無しさん
10/07/30 21:15:18 .net
>>508
Linuxのシミュレーション環境もそのままでは動作しない
このパッチが必要
URLリンク(www.northern-cross.info)

TOPPERSプロジェクトの人達はPC系OSで動かすことはあまり考えていないようだ
まあ、PC関係のソースコードを変更する度にバージョンアップしたくないってのもあるかもしれないが

511:Be名無しさん
10/07/31 14:54:11 .net
>>508
逆にH8やARMとか安いボードが手に入るのにVSのエミュレータで動作を試そうという動機がよくわからないのだが.


512:Be名無しさん
10/07/31 15:36:14 .net
>>511
おすすめプリーズ

513:Be名無しさん
10/07/31 17:18:19 .net
>>511
ARMの場合、az9360mbとintegrator以外で動かすとなると、ポーティングが必要になる

514:名無し募集中。。。
10/08/01 10:12:53 .net
>>511
試してみる時点でボードが必要というのは敷居が高い
だからWindows/Linuxのシミュレーションの存在意義がある
しかしメンテナンスされていないため残念な状態に

既に足を踏み入れた人にとってはわからない葛藤だろうね

515:Be名無しさん
10/08/01 11:51:46 .net
>>511
安いボードだと動かすのに苦労しそうだが

516:Be名無しさん
10/08/01 12:30:36 .net
気軽に試したい時、ポーティングなんてやってられない

517:Be名無しさん
10/08/01 16:58:36 .net
>>508
VS2008で動かした覚えがあるよ。ターゲットボーティングよりは簡単だったはずだよ。




518:Be名無しさん
10/08/01 17:03:29 .net
>>514
skyeyeを使うという手があるよ。

519:Be名無しさん
10/08/01 18:46:50 .net
>>517
詳細キボンヌ

520:Be名無しさん
10/08/02 21:16:07 .net
517逃亡?

521:ITRON名無しさん ◆4WD27e3i1o
10/08/03 22:56:53 .net
風邪ひいて寝込んでいたくらいで逃亡扱いですか.
いい具合に殺伐としているね.
手っ取り早い修正案は,きじねこさんのところにあるよ.
URLリンク(www.kijineko.co.jp)
ぼくは違う方法で切り抜けたような気がするけれどね.

522:520
10/08/05 00:07:37 .net
>>521
ぬるぽ

523:Be名無しさん
10/08/05 07:48:37 .net
   ( ・∀・)   | | ガッ
  と    )    | |
    Y /ノ    人
     / )    <  >__Λ∩
   _/し' //. V`Д´)/ ←>>520
  (_フ彡        /

524:508
10/08/06 22:25:19 .net
>>521
感謝。動きました。
私は>>520ではないので念のため

525:Be名無しさん
10/08/06 22:58:09 .net
違う方法マダァ-? (・∀・ )っ/凵⌒☆

526:Be名無しさん
10/08/07 12:06:07 .net
uITRONってまだ使われているのですか?
最近はLinux系の組込みOSやT-Engineの方が主流になりつつあるようですが

527:Be名無しさん
10/08/07 22:00:50 .net
確かにこんなショボイOSの勉強しても時間の無駄かもな・・・
でもOSの基礎を学ぶには良いかも

528:Be名無しさん
10/08/10 10:57:32 .net
基本を学ぶことを普通無駄とは言わない。

529:Be名無しさん
10/08/10 16:38:16 .net
KOZOSっていうOSがあるみたいだけど、学習用にお一つどう?

530:511
10/08/10 23:37:52 .net
ARMならベステクのBTC090(AT91SAM7S)がいいんじゃないの.
TINETまでやるんだったらH8-3069FがTOPPERSのテキストも揃っているし.
>>518のようにタイミング気にしないんなら,Skyeyeはいいと思う.

AT91SAM7SのJSPとか需要あるの?

531:ITRON名無しさん ◆4WD27e3i1o
10/08/15 20:51:52 .net
>>530
> AT91SAM7SのJSPとか需要あるの?

某ロボコンとか。


532:Be名無しさん
10/08/25 19:47:14 .net
nortiくみこんでるんだけど、
L1502 (W) Stack size in "os_core" conflicts with that in another file
Phase OptLinker finished
ってワーニングがでる。
何すると消えるかわかります?


533:Be名無しさん
10/08/25 22:27:47 .net
例外処理ルーチンってスリープするシステムコールを呼んではいけないですよね?

534:Be名無しさん
10/08/26 09:16:47 .net
>>532
スタックとして指定されてるメモリの範囲に、なんか別のオブジェクトがあるよ、
ってことじゃないの?
ていうかnortiはサポートなしという契約もありだっけ?

>>533
一般に割込みハンドラ中から、待ちに入るようなものを呼んではいけませんが、
そもそも割込みハンドラはタスク独立部なので、待ちに入る主体は何かという
ところからして問題です。

タスク例外の場合、タスクのコンテキストですが。

535:Be名無しさん
10/08/26 09:46:00 .net
>533
質問が、どうも曖昧なので、答えるのが難しいね。

原文
例外処理ルーチンってスリープするシステムコールを呼んではいけないですよね?

1)例外処理ルーチンとは
タスク例外、CPU例外ハンドラがあり、
通常の割込みハンドラ、割込みサービスルーチンは、μITRONの仕様では例外処理
とは呼ばない。 どれを指して質問しているのか?

2)スリープ
待ち状態もしくは広義の待ち状態という表現があるが、スリープ(正確には
起床待ち状態)は、
単にslp_tsk()とtslp_tsk()のみである。この2つのみ限定した質問なのか?

3)システムコール
μITRON4.0では、サービスコールと呼ぶ、μITRON3.0以前に限定した質問なのか?

536:533
10/08/26 21:31:08 .net
質問し直します。

TOPPERS/JSPのタスク例外処理ルーチンの中でスリープするサービスコールを呼んではいけないですよね?
wai_sem, wai_flgみたいなスリープする可能性のあるサービスコールってことです。

537:535
10/08/26 21:59:53 .net
>536
呼んでも問題ありません。>534もそう回答しているけどたぶん理解できてない
からまた聞いたんですよね。

スリープとは、起床待ち状態への移行のことで、wai_semではないよ。
μITRONでは、スリープとは極めて狭義な意味ですよ。


538:533
10/08/26 22:21:04 .net
>>537
待ち状態=スリープってことです。厳密な言葉の意味と違っていたらごめんなさい。
タスク例外で待ち状態になっても起こす人っているのかしら?

539:537
10/08/27 08:03:09 .net
>>538
自分が想像するには、タスク例外は、ハードウエア的な異常処理をタスクが行った場合に
CPU例外 --> タスク例外起動 --> タスク終了 (必要があれば再起動)
じゃないかと思う。たとえば、メモリ保護機能などですね。
その場合にアプリケーションによるけど、何かを待つか、一定時間待ってからタスクの終了もしくは
再起動が必要になるケースがあるのなら、タスク例外処理ルーチンで待つこともあるかもしれないです。


540:533
10/08/27 22:09:09 .net
>>539
なるほど、タスク例外で待ち状態になれるけど、特殊な例なのかな。
ソースコードを見る限りはスタックはタスクと一緒だけど、レジスタをスタックにプッシュしてから例外処理ルーチンに飛んでいるから
疑似割込みみたいな感じだけど、割り込みは許可されているから待ち状態やスリープ状態になれそうだし、
だけど誰が起こすのかな?とか思っていた。

541:Be名無しさん
10/09/15 22:53:08 .net
会員リストを見たが中々凄い面々だと思うのだが。

URLリンク(www.t-engine.org)

MSがいるのは意外だった

542:Be名無しさん
10/09/16 10:21:57 .net
>541
推進してる個人法人が会員とは限らないからね

543:Be名無しさん
10/10/20 06:43:20 .net
TOPPERS/ASP, 非依存部はバージョン上がっていくのに依存部は取り残されてるもの多いね
何かの資料でいろんなCPUに移植して動かすだけにならないようにという文をみたことあるけど
それすらできないようになってるのかw

544:Be名無しさん
10/10/20 06:50:06 .net
放置されてるのか
完了してるのか

545:Be名無しさん
10/10/20 08:31:37 .net
そういえばTOPPERS userMLで、こないだASPの依存部の話題あがっていたよね。
回答しても返事がないものもあって、今までのパターンからすると数ヵ月後なのかな

546:Be名無しさん
10/10/20 10:45:16 .net
放置(担当がにげちゃった?)されてるんじゃないか
非依存部パッケージは次のようにリリースされてるけど、依存部は1.3.xや1.4.0で
止まってるし
 asp-1.6.0.tar.gz    2010-08-01
 asp-1.5.0.tar.gz    2010-06-28
 asp-1.4.0.tar.gz    2009-05-11
 asp-1.3.2.tar.gz    2008-08-21
 asp-1.3.1.tar.gz    2008-05-13

547:Be名無しさん
10/10/20 11:14:03 .net
逃げたじゃなくて、卒業したといったほうが

548:Be名無しさん
10/10/20 20:47:01 .net
というか メンテの義務もないし逃げも隠れも必要ないでしょ


549:ITRON名無しさん ◆4WD27e3i1o
10/10/21 15:57:23 .net
多くの非依存部担当者はTOPPERS専業ではなし,人間だから暇なときもあれば忙しい時もあるよね.
古い非依存部からの変更点は,doc/version.txt にあるよね.
ASPを使おうと思う程度の技術力があれば,十分に対応可能な程度の変更量だと思うよ.

550:Be名無しさん
10/10/21 18:05:12 .net
一般人にはそれが出来ないんですよ。

551:Be名無しさん
10/10/21 20:00:16 .net
んでは金で解決するしかなかろう。


552:Be名無しさん
10/10/21 20:21:25 .net
一般人としては担当の義務の有無などどうでもいいかな
公式で「ASPカーネルは、現時点で、以下のターゲットプロセッサ/ターゲットシステムをサポートしています。 」と書いてる物くらいは
きちんと対応してほしい
それができないターゲットは、「今後メンテナンスされないターゲット」とかわけてほしい
一担当ではなくTOPPERSプロジェクトのアナウンスの仕方に文句がある

553:Be名無しさん
10/10/21 23:48:01 .net
オープンソースの文化についてあまりなじみがないのでわからなくて、書いている
から、初めから謝っておくけど、
Linuxだって、ターゲットによって、バージョンアップされなかったりすること
もありそうだと思うんだけど どうなんでしょうか。


554:Be名無しさん
10/10/22 07:59:06 .net
gitとかで更新履歴をwebで公開してくれたらいいのにね

555:ITRON名無しさん ◆4WD27e3i1o
10/10/22 09:23:10 .net
>>552
TOPPERSプロジェクト本体では基本的に「サポート」はしていないので,「~のターゲット依存部が存在しています」くらいにしたほうがいいのかな.
サポートが欲しければ >>551 のようにするか,金がなければ公設試に駆け込むか.

「メンテナンスされない」と思われたターゲットも,担当者が出てくると復活することがある.
ASP で依存部と非依存部を別パッケージにしたのも,この辺りの判断がつきかねるからなんだよ.

556:ITRON名無しさん ◆4WD27e3i1o
10/10/22 09:31:21 .net
>>553
Linux(やBSD)も,ドライバ周りが狭義のカーネルの進歩についていけないことがあるね.
TOPPERSよりも遥かに開発者リソースが潤沢なAndroidも,1.6のままのものもあれば2.2.1に対応できているものもあり.
(Androidはリソースが潤沢で恵まれている反面,TOPPERSなんか比べ物にならないほど複雑でもあるけれど.)

557:Be名無しさん
10/10/22 10:11:35 .net
比較してる内容が微妙

558:553
10/10/22 15:42:01 .net
コメントありがとう。
いいだしっぺながら
Linuxやandroidなどと比較するのにも無理があるようにも思います。

実際、会員じゃないので正確な情報はわかりませんが、バグ情報などは
会員には情報公開しているが一般向けには公開していないもしくは時期が
ずれるというのは聞いたことがあります。
会員は毎年お布施が必要ですし

オープンソースをうたい文句ですが、結局プロプライエタリなものになっていくん
でしょうか。


559:ITRON名無しさん ◆4WD27e3i1o
10/10/22 18:04:12 .net
>>558
ドライバとコアの開発同期問題は,かなり相似していると思うけれど.まあいいや.

CygnusからRedHatからCodeSourceryに至るまで,情報展開に誤差を設けるのはOSS保守組織の基本的なモデルだよ.
カーネルでも,組込みLinuxのみならず,eCOSやRTEMSも同様だよね.
お布施が必要な代表例は Eclipse ね.Eclipseの場合は,仕様をコントロールしようとしたら,お布施の上に開発者も提供しなければならない.
日本だと,産総研と頂点とする公設試や大学系で商売無視できる"ハッカー"の恩恵が大きいから勘違いしがちだけれど.

TOPPERSがどうなるのかは,ぼくには判らない.でも「OSSは手段であって目的ではない」というのはNPOになる前から表明しているTOPPERSのスタンスだね.
オープンソースにメリットがあれば続けるだろうし.口ばかりで手も金も出さない人ばかりだと思えば公開やめちゃうかもね.


560:Be名無しさん
10/10/22 19:50:52 .net
話がずれてるような?

561:Be名無しさん
10/10/22 20:07:10 .net
このスレに軸なんてあったっけ


562:Be名無しさん
10/10/22 20:31:13 .net
>>559
金や手をだしても基本無視じゃね?
俺たちのやりたいようにやるって感じで!
そんな感じにみえるんだけど…

>>561
っ終焉
っ終了
っ閉鎖

563:ITRON名無しさん ◆4WD27e3i1o
10/10/22 22:16:28 .net
>>562
「みえる」って言われちゃうとそれ以上,反応のしようがないよ.脳内だもんねそれって.
何か具体的に無視されて憤慨したということなら,中の人に伝えようもあるけれどさ.

564:Be名無しさん
10/10/23 19:52:29 .net
>TOPPERSプロジェクトでは,ソフトウェアの作り方でも組み込み向けを強く意識している。
>具体的には,「アプリケーションごとの作り込み」に馴染むように,
>理解しやすい,改造しやすいソース・コード作りを実践中だ。

565:Be名無しさん
10/10/27 18:03:21 .net
>>563
中の人と連絡とれるなら>>543, >>555あたりの話をよろしく

566:Be名無しさん
10/10/27 21:24:39 .net
>565
メンテナンスされていないことは中の人も知らない話じゃないと
思うけどね。 知っててやらないだけの話だと思う。
中の人にはusers MLで結構、すぐに伝わるよ。

567:Be名無しさん
10/10/27 22:50:19 .net
メンテするか、サポートするターゲットからはずすとかコメントいれるとかしてよ!って話でしょ
伝わるよとかやらないだけだから駄目なんだよってことでは?

568:Be名無しさん
10/10/28 07:10:45 .net
一番駄目なのは2ちゃんねるで騒ぐだけ、って奴なんだけどな。

569:Be名無しさん
10/10/28 09:53:59 .net
>565 が、TOPPERSのメンテや情報管理を改善して欲しいと
思う理由はなになのかと考えています。 あくまで利用者側としてよくなければ
使わなければよいだけじゃないかと思いますね。
他に選択肢がないわけでもないと思うし。

だいたいTOPPERS/JSPにしてもASPにしても個々のマイコン別に性能評価
もされていないものだし、されていれば公表してしかりと思う。
ただ各人で性能評価する手段があってドキュメントに書いてあったりはします。

少なくとも利用者側で考えるなら、性能評価ができるぐらいのところまで
はTOPPERSを知っておかないと使うことは見送ったほうがいいという
のが私の見解。

実際の性能はどうかというと、特に割込み応答性については最初から勝負して
ないので、メーカー純正に比べて差があります。

具体的に割込み応答性能のひとつについて
10月の初旬にusersMLでカーネル監理外割込みについて、回答したけど
ある意味ダメ出しの内容だったのか、それからレスがなくスレッドストップ
していたりします。
都合の悪いことはスルーされているのでしょう。


570:Be名無しさん
10/10/28 15:41:26 .net
あの話題がそのあと続いてないのは、単に最初の質問者が一通り質問し終わったってだけだと
思うけどなぁ。

どこがどう都合悪くて、なぜスルーしていると?

571:Be名無しさん
10/10/28 16:21:35 .net
精密な時間計測が必要なら、どこで割禁されるかわからないOSとか使わないほうがいいだけでしょ

572:Be名無しさん
10/10/28 16:46:31 .net
MLへの書き込みで、解決しそうなら、それなりに返すもんじゃないかと
思う。一応教えてくれ っと来て 回答、普通 それをやってみる くらい
返すもんでしょ。匿名掲示板ではなく、実名MLですので。
単に質問者がコメントに対しお礼をしない人だったのかもしれませんが

>どこがどう都合悪くて、なぜスルーしていると?
都合悪いというか、ダメ出ししているのでバツが悪いのでは と思うけどね。
実際、最初からカーネル管理外割込みに対応していないなら仕様としてできません
というなら仕方がない話なんだけど
TOPPERS新世代カーネル統合仕様書なんかでカーネル管理外割込みが使える といいながら実際
使えない実装になっているわけなんですよ。 質問者じゃなくとも、それの実装者が
言い訳じゃないかもしれないけどそれなりの反応があってもいいんじゃないかと
思っているわけです。

意図的にバグだと書いてないのですが、実装した人からすればそれにレス
するとすれば、バグではないということを証明する(指摘ミス)か、バグを直しますというレス
するしかないですよね。
そうなってくるとちょっと重たい話になるように思ってバグとは書かなかったんだけどね。
バグ直しますとなるとやらんでもいい仕事が増えるということになるのでしょう。

バグということではなく、ある利用者の形態に合わせた改定
案なのであえて実装者側が弁明しなくてもいいという流れになっていると思っています。

高田先生にしてもマイコン別の個別の状況についてはたぶんわからない
というのもあって放置じゃないかと


573:Be名無しさん
10/10/28 21:36:29 .net
上位層しかみてないかも
archに依存した部分が読める人はあんまりいないからね。

574:Be名無しさん
10/10/29 16:49:29 .net
それでは上位層の話

CRE_CYC(CYCHDR1, { TA_HLNG|TA_STA,(VP_INT) 0, cyc_hdr, 2, 0 });
の場合 TOPPERS/JSPの場合

回答1
start
timer-tick 0 ----- 1 ----- 2 ----- 3 ----- 4 ----- 5 ----- 6 -
cyc_hdr -------run-----run-------------run-------------run-

回答2
start
timer-tick 0 ----- 1 ----- 2 ----- 3 ----- 4 ----- 5 ----- 6 -
cyc_hdr run------------run-------------run-------------run-


回答3
start
timer-tick 0 ----- 1 ----- 2 ----- 3 ----- 4 ----- 5 ----- 6 -
cyc_hdr ---------------run-------------run-------------run-


どれになると思う?
理由もあれば書いてくれたらOK。
ググればでてくるけど、理由は書いてないから、よければ来週
識者に聞いた理由を書くけど。


575:Be名無しさん
10/10/29 17:37:50 .net
サービスコールの仕様通りの実装なら3じゃねーの?

起動周期2で起動位相0なんだから
初期化後0msのタイミングでタイマーが起動し
2ms後にハンドラ起動すると思うけど
動かしてみたの?

2はともかくなんで1が出てくるのかわからん

576:Be名無しさん
10/10/29 22:39:10 .net
マンドクサイのがT-ENGINEの先行きダメ確定でいまさらTOPERSにスリヨル工作員が出てきそうとかさ。草の根の雑魚じゃなくて古参連中がとかさ。

577:ITRON名無しさん ◆4WD27e3i1o
10/10/30 12:24:25 .net
>>572
> TOPPERS新世代カーネル統合仕様書なんかでカーネル管理外割込みが使える といいながら実際
> 使えない実装になっているわけなんですよ。

統合仕様書(Release 1.2.0)には,こう書いてあるね.

NMI以外にカーネル管理外の割込みを設けるか(設けられるようにするか)どうかは,ターゲット定義である.

ターゲット定義だよ.

578:Be名無しさん
10/10/30 14:56:02 .net
割り込みの実態が分からないで実装してますから...

579:Be名無しさん
10/10/31 03:18:51 .net
>>576
両方先行きが駄目に見えますがw

580:Be名無しさん
10/10/31 03:45:47 .net
発想はいいのに、実装がついていけてないのが...

581:Be名無しさん
10/10/31 13:47:39 .net
>577
読み方があまいよ。
ITRONのドキュメントは、読み慣れないと読み違えるよ。

だいたいITRONの用語に「ターゲット定義」という用語がない。
たぶん、>577 は「実装定義」と勘違いしたように思う。
ここで言う「ターゲット定義」は「ターゲット毎にユーザーが定義する」
と置き換えるればわかりやすいでしょう。
原文をもっと前後を入れて引用すると以下のとおり

----
2.7.7 カーネル管理外の割込み
高い割込み応答性を求められるアプリケーションでは,カーネル内で割込みを
マスクすることにより,割込み応答性の要求を満たせなくなる場合がある.こ
のような要求に対応するために,カーネル内では,ある割込み優先度(これを,
TMIN_INTPRIと書く)よりも高い割込み優先度を持つ割込みをマスクしないこと
としている.TMIN_INTPRIを固定するか設定できるようにするか,設定できるよ
うにする場合の設定方法は,ターゲット定義である.
TMIN_INTPRIよりも高い割込み優先度を持ち,カーネル内でマスクしない割込み
を,カーネル管理外の割込みと呼ぶ.また,カーネル管理外の割込みによって
起動される割込みハンドラを,カーネル管理外の割込みハンドラと呼ぶ.NMIは,
カーネル管理外の割込みとして扱う.NMI以外にカーネル管理外の割込みを設け
るか(設けられるようにするか)どうかは,ターゲット定義である.
それに対して,TMIN_INTPRIと同じかそれよりも低い割込み優先度を持つ割込み
をカーネル管理の割込み,カーネル管理の割込みによって起動される割込みハ
ンドラをカーネル管理の割込みハンドラと呼ぶ.
----


582:Be名無しさん
10/10/31 14:20:40 .net
>575
正解は1、仕様的に理想は2。
3は間違い。
ごめん、どうでもいい話なんであんまり気にしなくていいよ。

周期ハンドラの起動位相は、周期ハンドラを生成するサービスコールが呼び出された
時刻(静的APIで生成する場合にはシステム初期化時)を基準に周期ハンドラ
を最初に起動する時刻を指定する相対時間の解釈する。

なので、そのとおりに解釈すると起動位相が0なので、システム初期化時なので
2が理想的な動作と言えます。

実際にこれは自分が高田先生に聞いた回答は、まだ初期化が終わっていないから
つまり、タイマーチック0では初期化が終わっておわず。次のタイムティックで
遅延して周期ハンドラが呼び出されるということだそうです。


583:Be名無しさん
10/10/31 14:27:43 .net
置き換えればわかりやすいでしょうなら、最初から置き換えた文章を書けとw

584:Be名無しさん
10/10/31 16:09:55 .net
>583
読みやすさは、考えていないし、仕様として厳格、正確に書くことを目標としていると聞いたことがある。
わかりにくいものは別途解説本等に任せるということだそうです。

585:Be名無しさん
10/10/31 16:26:03 .net
素直に「わかりにくい文章しか書かないから解説本でも期待しろ」だけのほうが好感がもてる
厳格、正確に書くと、間違いなくわかりやすいけどクドイからそこまで書かなくてもいいよって感じになりそうだがw

586:Be名無しさん
10/10/31 17:14:50 .net
文書化されるより、サンプルコードとかテストコード書いてくれた方が助かるような

587:ITRON名無しさん ◆4WD27e3i1o
10/10/31 19:42:26 .net
>>581
ITRON仕様書を百読するに,直近のレスくらい流し読みしようよ.仕様書とは比較にならないくらい平易な会話だよ.

>>572 では「TOPPERS新世代カーネル」とあり, ぼくは「統合仕様書(Release 1.2.0)には」と返しているんだよ.

588:ITRON名無しさん ◆4WD27e3i1o
10/10/31 20:21:42 .net
>>587 だとちょっと説明が分かりづらいかな.いろいろ端折り過ぎちゃった.ごめん.
でも,経緯を全部言うと「平易な解説書」並みに書かなきゃいけないことがあるから,端折っちゃう.ごめん.

>たぶん、>577 は「実装定義」と勘違いしたように思う。

断言するね.ターゲット定義 == ターゲット実装定義なんだよ.

ちょっと守秘気味の話なので出典を引用できないのだけれど,μITRON仕様書から統合仕様書に至る時期某カーネルの開発時に,
▼μITRON4.0仕様の「実装定義」は「ターゲット定義」と読み替え,修正する.▲
なんてチケットが飛んだとともあったんだよ.
μITRON4.0仕様書やTOPPERS統合仕様書を1000回読んでもそんな経緯は判らないだろうから,>>581 が勘違いするのも無理ないけれどね.


まあ,ターゲット依存部は「ボード毎にユーザがつくるもの」って強弁すればユーザ依存だよ.
でも,新世代カーネルの依存部は(以前の2層ではなく)n層なので,割込みコントローラがどの層に来るかは,アーキテクチャを固定しなければ判らない.
ユーザ依存と一般化すると詭弁っぽく聞こえるかもしれないね.

589:Be名無しさん
10/10/31 23:03:09 .net
割込みコントローラがどの層に来るかは,アーキテクチャを固定しなければ判らないは最悪だな

590:ITRON名無しさん ◆4WD27e3i1o
10/11/01 00:23:36 .net
>>589
うん,そうだね.最悪だね.
プロセッサの現状を判らない人は理想の最適解を出してくれると思うんだ.
君はどんな解を持っているの?

591:Be名無しさん
10/11/01 00:58:58 .net
スタックポインターを二つ持ってるのもあるし、
割り込みレベルの使い方もarchで違うし、
場合分けをうまくやるしかないかもね

592:581
10/11/01 09:05:19 .net
>588
>▼μITRON4.0仕様の「実装定義」は「ターゲット定義」と読み替え,修正する.▲
>なんてチケットが飛んだとともあったんだよ.

なるほど、暇つぶしで、結構コメントしたけど収穫ありかな。
だとすると前回も書いたけど、「ターゲット定義」はどこに定義されているというでしょうか。

明らかにここでいうターゲット定義と実装定義は違うものだよ。

>TMIN_INTPRIを固定するか設定できるようにするか,設定できるようにする場合の設定方法は,ターゲット定義である.

>実装定義とは、ITRON仕様で定める機能仕様の中でITRON仕様の中で標準化せず、実装毎に規定すべき事項であることを示す。以下略。

前者は、すでに実装されたものをユーザーが設定を変えて使うもの。わかりやすく言えば、タイムティックを NUMEとDENOを設定を変えるぐらいのことですね。
後者は、実装時に決めた仕様の詳細を定義することで

ぜんぜん違うことになる。これを、
>▼μITRON4.0仕様の「実装定義」は「ターゲット定義」と読み替え,修正する.▲
信じられないくらい間違った話なんだけど、特別な前置きがあったにしても想像しずらいね。

>577 は実装定義と勘違いしたなら文脈的にも合う話で、これをユーザーのカスタマイズつまり
「カーネル管理外割り込みは、ユーザーカスタマイズで設定するものだよ 」
と言っても反論でもなんでもない話になってしまうわけなんだな。

中の人っぽいからもっと言っとくと、比較的新しいドキュメントは日本語が酷いよ。定義もせず書いている場合が多いね。
あなたの説明 >588 でも、 「ユーザ依存」とか突然使い出すし、用語を定義せずに使われる場合が多い。
特に保護拡張仕様書。「メモリ保護」そのものを定義すらしていない。アクセス保護機能については定義されているがメモリ保護は定義せずに乱用しているよ。
よく見てみるとわかると思う。 
ITRONの仕様書が読みにくいのは、ちゃんと用語を定義してないせいもあると思うよ。


593:Be名無しさん
10/11/01 09:17:29 .net
それだけはっきり中の人に文句があるなら、mlで言えばいいと思うんだ。
クローズドでないmlもあるんだし。

名前出せないなら今時Gmailで複数アカウント取ればいいんだし。

594:ITRON名無しさん ◆4WD27e3i1o
10/11/01 10:20:57 .net
>>592
未定義の用語があるのは,まだ網羅性に余地があるというのもあるね.
読者の技術知識やカーネルが提供する機能を考えれば自明だから省略しているというのもあるよ.
「ターゲット依存」は前者かな.「メモリ保護」は後者ではないかな.
統合仕様書のメモリ保護の部分は,まだAPIも検討中の段階だから,前者かもしれないね.


でね,これは仕様書のどこにも書いていないことかもと思うのだけれどね.
TOPPERS統合仕様書は,ターゲット非依存部/ターゲット依存部/アプリケーション
の3つのモジュールが存在すると暗に仮定している.
そう思うと読み解きやすくなると思うよ.
TMIN_INTPRI を変えたくなるのはアプリの事情かもしれないね.
でも,その仕組みを用意するのは,(上記3階層で選ぶなら)ターゲット依存部だよね.

μITRON仕様書では,緩い標準化しかしていないし,ターゲット依存部と非依存部は分化していなかった.だから単に「実装定義」と呼んでいた.
TOPPERS統合仕様書は,現存する実装の非依存部の実装仕様書として書かれているんだ.μITRON仕様書とは立ち位置が違う.

実装仕様書なのだから,非依存部に実装定義は存在し得ない.
しかし,実装定義はターゲット依存部に残るよね.こうやって残ったものが,ターゲット定義と呼ばれているんだよ.


> 信じられないくらい間違った話なんだけど、特別な前置きがあったにしても想像しずらいね。

まだ信じられないかな?


「でも,経緯を全部言うと「平易な解説書」並みに書かなきゃいけないことがあるから,端折っちゃう.ごめん. 」

595:Be名無しさん
10/11/01 10:33:55 .net
>593
あなたの意見はわかる。
説明が十分でないので補足すると、
UserMLはそういう目的ではない。利用者が困ったことの解決の手助けになればいいこと。
TOPPERSの成果物の不具合やドキュメントの不備のクレームをつけるところではない。
なので、バグという報告でなく個別のカスタマイズ方法ということで回答しているというのはその趣旨にそったことです。
さらにITRON保護拡張仕様書はTOPPERSのドキュメントではない。

自分は業務でやっているから、業務を通じて責任者よりわからないことは問い合わせをしている。
言ってみれば客が出してきた仕様書の日本語がおかしいと客に言うのかという話ですよ。
あくまで「メモリ保護」について用語の定義がないかXXということで解釈してよいか という
問い合わせをして回答をもらえば済むことだから、別におおごとにする必要はない。

>名前出せないなら今時Gmailで複数アカウント取ればいいんだし。
usersMLはWEBから見れるから、私が誰かはここの発言を見れば明らかなので匿名に
こだわっているわけじゃない。
userMLに以前から、不具合はいくつか報告されていて、自分が回答したこともあるが
それでも放置状態なわけで、そこに書くことに効果があるとは思わないね。
以前も書いたけど、TOPPERSサイドに義務も責任もないから。



596:ITRON名無しさん ◆4WD27e3i1o
10/11/01 11:08:58 .net
>>593
誰しも,チラシの裏に書き捨てたいことの一つや二つはありますし,
壷やらヒwiヒヒerやらMLやらリアルやら上手に使い分ければと.

597:ITRON名無しさん ◆4WD27e3i1o
10/11/01 11:20:27 .net
>>594
> 「ターゲット依存」は前者かな.

s/依存/定義/
母語が仕様書の >>581 に怒られそうだ.

蛇足ついでに.
「ターゲット定義」はRelease 1.2.0仕様書だと 2.1.2 で定義されているね.
ターゲット非依存としている場合でも逸脱を明示すればターゲット毎に制約が許される場合もある.
詳しくは原本を読んでみてね.

598:Be名無しさん
10/11/01 12:47:22 .net
>594
よくわかった。

>>▼μITRON4.0仕様の「実装定義」は「ターゲット定義」と読み替え,修正する.▲
というのはμITRON4.0仕様書を修正せよ という話ではなく、実装仕様書を書き起こす際、μITRON4.0仕様書をコピペしたものから、s/「実装定義」/「ターゲット定義」/g せよ という話なんですね。誤解していました。

さて、本題に戻りますが、
>TMIN_INTPRIを固定するか設定できるようにするか,設定できるようにする場合の設定方法は,ターゲット定義である.

ということは、
TMIN_INTPRIを固定するか設定できるようにするか,設定できるようにする場合の設定方法は,ターゲット毎に用意するドキュメントにおいて規定されている。

に置き換えられる。

M32Cの用意するドキュメントにおいて
-----
○カーネル管理内/外の割込み

ある割込み優先度以上の割込み優先度をカーネル管理外の割込みとして用いることが可能である.カーネル管理内の割込みの最小値は TMIN_INTPRI で設定
されている.TMIN_INTPRI はデフォルトでは,-7となっており,ターゲット依存部で上書きが可能である.
-------
と記載があるので、ターゲット定義において可能な仕様であると解釈できる。

たから >577 の指摘通りターゲット定義だが、ターゲット定義として機能として
有効なんだから、ターゲット定義だからどうした? って話だと思うが。ターゲット定義しているが実際に使えない実装であるには違いないだろ って話に変わりは無いことですよね。


599:Be名無しさん
10/11/01 13:01:34 .net
>>594
>未定義の用語があるのは,まだ網羅性に余地があるというのもあるね.
>読者の技術知識やカーネルが提供する機能を考えれば自明だから省略しているというのもあるよ.
>「ターゲット依存」は前者かな.「メモリ保護」は後者ではないかな.

メモリ保護は自明というのは、たぶん関係者ではそうなんだと思いますが、だから抜けている
のでしょう。
2.3.2 メモリオブジェクトのアクセス保護
というのがあり、これをメモリ保護と呼んでおらず、「メモリオブジェクトのアクセス保護」と
「メモリ保護」と乱用しているのですよ。
ドキュメントの査読が不十分なんだと思いますが


600:ITRON名無しさん ◆4WD27e3i1o
10/11/01 15:28:10 .net
>>598
> ターゲット定義だからどうした? って話だと思うが。

その件に関してだけいえば,統合仕様書を引き合いに出すのは冗長だよ,という話でもあるよね.
正直,全ての情報を精査したわけではないけれど,>>598 の言うとおりなら,
ターゲット定義を記述した文書の誤りか,実装の誤りということだろうね.

601:Be名無しさん
10/11/01 16:31:11 .net
ここに少しありますね。
URLリンク(www.kumikomi.net)

自分は、ASPはカーネル管理外を使えるようにしたものであるという
うたい文句のひとつだったと思っている。上記PDFでも紹介されている。
これがターゲット定義だから出来ていないのは、個別の問題という
のはあまりに言い訳がましいと思っている。

なぜカーネル管理外がどうこう言うのは、
TOPPERSのカーネルが多少手を抜いた部分がネックになるので
その分、カーネル管理外を用意する必要があると思うからです。

なんのことかわからないかもしれませんが、優先度待ちキューの
検索方法は、待ちタスク数に比例して割込み禁止時間が長くなる
という仕様になっているからです。JSPでは規模的に問題ない
話ですが、ASPよりも大きな仕様のものには不適格でしょう。
ですので
カーネル管理外をきちんと使えないと使いものにならないと
思っています。


602:ITRON名無しさん ◆4WD27e3i1o
10/11/01 21:50:53 .net
>>601
ああそのプレゼンの筆者をぼくはよく知っているよ.でも,そのプレゼンも統合仕様書も,ガンガッて使えるようにしたとは書いてないよね.
書くはず無いんだよね.
一般論としして,リソースを統べるカーネルの仕様を決める人たちが,管理できない領域のカーネル管理外を積極的に勧めたとしたら,構造的に頭オカシイよね.
ただ,4.0仕様以前のμITRONを含むもう一つのITRON仕様よりは,問題に向かい合おうとしている.>>601は,どう感じているかな.

優先度待ちキューの問題は…カーネル管理外で解決できる問題とは思えないよ.一般論としてはね.
もちろん,ぼくが知らないアーキテクチャで上手くいくレアケースの可能性について,否定はしないよ.

603:ITRON名無しさん ◆4WD27e3i1o
10/11/01 22:22:41 .net
>>559
PX仕様だけで言うならば,色々と検討が足りなかったことが明らかになっているね.
IIMP→HRP→HRP2でAPIの変更なんていう大変更も加わっているよね.

当時の査読がどうだったかという問題もあるだろうけれど,
T-KernelとTOPPERSの分断とか,(今は亡き)TRON協会の対応とか,さまざまな要因で,
関係者が改訂したくても改訂できないという状況が続いてしまったという,ツマラナイ事情もあるんだよ.
この辺りは問題の性質上,表には見えてこないよね.
ぼくも,今の年齢で言えば50代以上の大御所連中には,いろいろ言いたいこともあるけれど,詮ないから言わない.ヘタレでごめんね.


604:ITRON名無しさん ◆4WD27e3i1o
10/11/01 22:23:58 .net
あ,HRP2はまだ内輪ネタだった.ごめん.

605:Be名無しさん
10/11/02 11:43:43 .net
いくつもコメントするのも何なので、ケース別に番号つけます。
1.カーネル管理外について
>602
>一般論としして,リソースを統べるカーネルの仕様を決める人たちが,管理できない領域のカーネル管理外
>を積極的に勧めたとしたら,構造的に頭オカシイよね.
>ただ,4.0仕様以前のμITRONを含むもう一つのITRON仕様よりは,問題に向かい合おうとしている.>>601は,
>どう感じているかな.

リソースを統べるカーネルという意識は私にはない。だからITRONごときがリソースを占有するな
という思いがある。そういう意味でカーネル管理外は重要な機能だと考えています。

2.優先度待ちキューの問題
>優先度待ちキューの問題は…カーネル管理外で解決できる問題とは思えないよ.一般論としてはね.
一般論という言葉は特別な意味あいでもあるかのようですが、カーネル管理外で救えるケース
がほとんどではないのかと私は思っている。ただサービスコールが使えないだけのこと
じゃないかと。

優先度待ちキューの対策としてサービスコールの遅延実行が有効ではないかと考えたことが
ありますが、そういえば、待ちキュー対策のためではありませんが2.3年前にサービスコールの遅延実行
をやってみたいということをMLで発言されていたけどどうなったか気になるところです。

3.PX仕様書
>色々と検討が足りなかったことが明らかになっているね.
明らかになっている情報源が開示可能なら教えて欲しいです。(まじめに)


606:Be名無しさん
10/11/02 12:32:45 .net
ついでに書いておきますが、PXについては、セキュアOS的なもの
ではない仕様なんですよね。
unixでいうところの chmod が誰でもできちゃう仕様のようですが
IIMP→HRP→HRP2とかで対応されたりしているのでしょうか。


607:ITRON名無しさん ◆4WD27e3i1o
10/11/02 16:41:29 .net
> リソースを統べるカーネルという意識は私にはない。

きみがそう思うことは止めないけれど.
>>601 のプレゼンの人は,カーネルの仕事は仮想機械の提供であるという立ち位置だよ.
最近の筆である組込みプレスの仮想化特集でも立ち位置を崩していない.
必要悪としてのカーネル管理外割込みを否定はしないだろうけれどもね.

きみの主張を裏付ける参考引用としては不適切ではないかな.

608:ITRON名無しさん ◆4WD27e3i1o
10/11/02 17:06:29 .net
>>605-606
> 明らかになっている情報源が開示可能なら教えて欲しいです。(まじめに)

残念ながら,ことごとくpublicでないんだよね….使われる分野が分野だけに,いろいろ難しいの….
本当に急いでいるのであれば,TOPPPERSの個人会員(準会員で十分)になって,先月の技術検討会議の資料を取り寄せることを勧めるかな.
急ぎでなければ,HRP2カーネルのリリースは年内…遅くとも年度内にあるかなと思う.
その時に統合仕様書も改定になるだろうから,PX仕様と差分を取ればいろいろ見えてくると思うよ.

ちなみに,PX から HRP2 に到るまで,ファイルシステムは無いし chmod も無いよ.
アクセス許可ベクタがアクセスパーミッションという意味では似ているけれど,非なるものと思ったほうが良いかもね.
アクセス許可ベクタの変更は,動的生成をサポートしていなければできないし,できたとしてもカーネルドメインのみに絞ることは容易なので,誰でも変更できるというのには当たらないと思うよ.
ただ,PX系の仕様は,アプリ開発者の過失によるダメージを最小限にするということが主目的で,悪意あるアプリケーションの混入と攻撃についてはあまり重視されていない.っていう傾向はあるよ.
石のバリエーション多すぎて考えても徒労ってことがあるからね.例えば,メモリ管理で実行可能フラグが落とせない石で,スタック壊されたらなんでもできちゃうよね.
セキュアOSの定義は揺れるだろうから,PX系がセキュアOSかどうかも揺れると思うけれどね.


609:Be名無しさん
10/11/02 18:24:29 .net
dispacherの汗がトリッキーなことしてるのが

610:Be名無しさん
10/11/02 19:59:34 .net
>607
私の頭が悪いのかもしれませんが。貴殿の文学的表現がよくわからないです。
仮想機械の提供だから、CPUを占有してもよい ということ?
>組込みプレスの仮想化特集
については読んでいないので、わからないですね。

ただ、自分が思うのは、ITRONが組込みシステムの基盤になっているとは思えない
ことがあるんじゃないかと思える状況として以下の2点あるように思う。

ひとつは結構な規模のシステムでITRONを使っているシステムでは、アプリケーション層
が結構な規模らしいが下位層のITRONはラッピングをしていて、マイコンやOSが変わっても
対応できるようにしている。 ありふれた方式かもしれないが、ITRONである必要は
ユーザー側にはなく、要件にマッチしているからシステムに組み入れているだけにすぎない。
そういう状況において、「リソースを統べるカーネル」というのはなんだか片腹痛いような気がしますね。

もう一件については、これも聞いた話ですが、自動車関係のプラットフォームですね。
なにとはいわないが、アメリカのお化けの名前みたいなものです。そういうものに
ITRONのアプリというのはナンセンスな話かもしれませんが、組入れるには
あくまで脇役としてCPUを占有しないものが必要なのではと考えるのですが、
かなり思い違いをしているかもしれません。

>きみの主張を裏付ける参考引用としては不適切ではないかな.
新機能として、カーネル管理外があげられているということです。
重要視しているかどうかについていっているわけではなく、新機能としてうたい文句で
あることに違いはないですよね。

611:ITRON名無しさん ◆4WD27e3i1o
10/11/02 20:24:45 .net
> 新機能としてうたい文句

リアルで彼に聞けばよいと思うよ.
彼でなくても,TOPPERSの中の人は非実在ではないから,会う気になれば会えるよ.来月はETだしね.

612:Be名無しさん
10/11/02 21:47:30 .net
>できたとしてもカーネルドメインのみに絞ることは容易なので,誰でも変更できるというのには当たらないと思うよ.
そこですよ。
そう、容易といえばそのとおりで、保護ドメインもカーネルオブジェクトにして、それに
アクセス許可ベクタを設定できるようにすることで保護ドメイン別にアクセスできない保護ドメインの設定が
可能になる拡張も可能と考えている。 おっしゃるとおり「悪意あるアプリケーションの混入と攻撃については
あまり重視されていない」が、これである程度対応可能じゃないかと思っている。

ここで問題に思うことが2つある。
ひとつは、容易に拡張できることや、拡張することが当たり前になるとITRONのおおもとの目的である
アプリケーションの標準化が難しくなる。もう今は当初のITRONの本来の目的からはずれて
新たな目標に向かっているのかもしれませんが。

もうひとつは、「悪意あるアプリケーションの混入と攻撃についてはあまり重視されていない」件
仕様書を書いた時期が古く意識していなかったということなのでしょうか? セキュアOSは組込みシステム
であっても重要な課題であると考えますが、単に時代遅れということなのでしょうか?

>残念ながら,ことごとくpublicでないんだよね….使われる分野が分野だけに,いろいろ難しいの….
>本当に急いでいるのであれば,TOPPPERSの個人会員(準会員で十分)になって,先月の技術検討会議の資料を取り寄せることを勧めるかな.
>急ぎでなければ,HRP2カーネルのリリースは年内…遅くとも年度内にあるかなと思う.
ありがとう。 金払ってまで欲しい情報でもないです。「明らか」というので公の情報なのかと思っただけです。
会員の中で「明らか」ということなんですね。不具合情報とかでも会員にしか見せないというのが、一番納得できない
点だったりします。そういう意味でお布施はしたくないですね。


613:Be名無しさん
10/11/02 22:12:54 .net
払うだけ無駄でしょ

614:Be名無しさん
10/11/02 22:33:53 .net
>石のバリエーション多すぎて考えても徒労ってことがあるからね.例えば,メモリ管理で実行可能フラグが
>落とせない石で,スタック壊されたらなんでもできちゃうよね.
もともとすべての石で対応できないものだし、MMUのおまけでMPU(メモリプロテクションユニット)の代行しているもの
も含めて考えるとそうかもしれないけど、今後は、命令フェッチのみ禁止するMPUは増えるように思うんだけどな。


615:ITRON名無しさん ◆4WD27e3i1o
10/11/02 23:18:19 .net
>>612
> 「明らか」というので公の情報なのか

HRPのソースコードは公開されているので,読めば理解できるはずだよね.
ただ,ぼくもきみもコンパイラではないし,ソースコードには経緯が書かれていないので,これを公の情報といって良いのかどうか.人間であるぼくには躊躇われるって話だと思ってほしいな.

ソフトウェアにおける"不具合"というのは幅広いけれどね…会員になったから細かいバグ情報が手に入るかというと,必ずしもそうでもないよ.特にターゲット依存部に関してはね.
狭い意味での不具合情報の収拾や修正依頼を期待するのであれば,活発そうな会員企業とサポート契約するか,自信があるなら自前で修正すると決断したほうがよいかもしれない.
この目的でのお布施は,ぼくも勧めない.

ただ,なぜこのような仕様になっているのかという情報収集や,この仕様はおかしいといった表明は,会員になったほうがはるかに効率的じゃないかなとは思うよ.
ETとかESECとか学会とかで中の人を捕まえてもよいと思うし,中の人も,お布施無いから対応しないってこともないと思う.けれど,効率はあまりよくないんじゃないかな.
好き好きだけれどね.ここはチラ裏だものね.

616:Be名無しさん
10/11/03 00:02:22 .net
>615
コンパイラではないし とか、正直に公の情報がないと書けばすむものをまた文学的表現ですね。
>狭い意味での不具合情報の収拾や修正依頼を期待するのであれば
わかってて書いているかもしれないと思うけどTOPPERSにバグがあっても困らない立場ですが、仕様書が間違っていると少し
困る人です。ある意味TOPPERSの成果を業務に活用しているもっとも顕著な仕事かもしれないと思っています。
あくまでTOPPPERSのソースコードは仕様を把握するための手助けしかないわけですが

>ただ,なぜこのような仕様になっているのかという情報収集や,この仕様はおかしいといった表明は,会員になったほうがはるかに効率的じゃないかなとは思うよ.
ITRONばかり踏み込んで情報収集するならそうかもしれない。ある程度こぼれてくる情報収集だけで十分な話ですよ。
PXにしても、どれだけ市場ニーズのあるものなのと考えるわけです。ここのスレタイのNORTIなんかHPみてもいつの夏休みを記載しているの
というサビレようですよね。かなり前にどこかとタイアップしてPX仕様のを作るとか言ってたような気がしますがどうなったんだろうと思っています。
「リソースを統べるカーネル」という言葉を見た瞬間、ものすごく個人的な感想で申し訳ないが柔道の山下さんの
「柔道だけが人間形成をすると思った柔道家がいるとすればそれはおごりだ」と言ったことを連想してしまいました。


617:ITRON名無しさん ◆4WD27e3i1o
10/11/03 00:52:43 .net
>>616
ええと,何を問題視しているのか判らなくなっちゃってるのだけれど?

リソースを管理するためにカーネルがあるのであって,管理できないカーネルなんてただのオーバヘッドだっていう考え方は,別段特殊でもない…よね?
Linuxがiopermで叩かれたり,BSDの/dev/memは?って不毛に罵り合ったりとかは,2010年のエンジニアでも履修しておくべき雑学...だよね?

その辺の破綻の末に,ハイパバイザってのが台頭したって気もするのだけれど,...これは見方により異なるだろうから同意を得るつもりは無いよ.


> ITRONばかり踏み込んで情報収集するならそうかもしれない。

ええと,TOPPERSを顕著に業務に活用しているけれど,ITRONばかり踏み込んでいられない…? よく判らないな.OSEK系ならITRON関係ないしね."文学的"であることを真似してくれなくてもいいよ.


柔道とカーネルが同じかどうかは,更に良く判らないいな.「カーネル道」とかあるのかな.おじゃる丸の「プリン道」と相通じるカッコ良さを感じるけれど,生憎ぼくは入門しないような気がするよ.


MISPOさんの件は…まあこの十年にいろいろとあったみたいだけれど,ぼくは細かいことは知らないし,大まかなこともしらないことにしたいな.偶然なことに,ぼくには茅の外の話だから.


618:Be名無しさん
10/11/03 02:09:34 .net
>リソースを管理するためにカーネルがあるのであって,管理できないカーネルなんてただのオーバヘッドだっていう考え方は,別段特殊でもない…よね?
>616 では、カーネル管理外の話題は書いていないつもりなんだけど

>ええと,TOPPERSを顕著に業務に活用しているけれど,ITRONばかり踏み込んでいられない…? よく判らないな.
>OSEK系ならITRON関係ないしね."文学的"であることを真似してくれなくてもいいよ.
真似してしまったね。解説するよ。単純に「今更」ということ、今はそうだけど、今後は必要なくなる可能性が
大きいという話。個人的な案件の話ということもあるが市場のニーズと遠いところにあれば、今までどおりでは
ないよね。NORTIの話もそういう流れのつもりで書いている部分もあるわけですよ。
単純に言うとITRONのシェアが高ければ高いほど、私の仕事が今後も続いていくだろうが、縮小するなら
別の道を考えないといけないと思うわけですよ。
TOPPERSのMLでM32CやR32Cの依存部や割り込み応答時間等まで回答している私がなにをしているかは
お分かりだと思うのですがね。


>柔道とカーネルが同じかどうかは,更に良く判らないいな.
柔道は他の武道と違うことは単純にメジャースポーツであること、もうひとつは、人間形成のためにある
ということを明文化していることが他の(メジャー)スポーツとの違いといっていいです。
スローガンがあるわけですよ。
それでそのスローガンを実践することができるのが柔道だけだと思いがちな柔道指導者が実際に
多いのだと思います。
何かTRONとTRONのスローガンとTRON指導者?と似ていませんか?


619:ITRON名無しさん ◆4WD27e3i1o
10/11/03 02:41:26 .net
> 私がなにをしているかは

素で全然わからない.ていうか特定のターゲット依存部にしか興味のない人に敬意は払うけれど興味ない.ごめん.

620:Be名無しさん
10/11/03 05:04:40 .net
一般人引きつけるための...

621:Be名無しさん
10/11/04 08:10:14 .net
ITRON名無しさんが読んでないかどうかは知らないけど、
相手がTOPPERS-usersを読んでると決めてかかってない?

622:Be名無しさん
10/11/04 22:43:43 .net
柔道に詳しいと決めてかかってる…

623:名無し募集中。。。
10/11/06 17:52:23 .net
>>602
あれ?同一人物だと思ってた

624:ITRON名無しさん ◆4WD27e3i1o
10/11/06 18:06:27 .net
そうかもしれないしそうでないかもしれない.

625:カーネル”管理”外 ◆3Z31ybHRiA
10/11/07 21:35:00 .net
トリップを付けてみました。
RX用のASPが公開したようですので、ソース見てました。
それで、ただで様子見できるページに追加しました。
HEWシミュレータで実行する手順をアップしました。
URLリンク(alvs.dyndns.tv)

>600
>ターゲット定義を記述した文書の誤りか,実装の誤りということだろうね.
RXについては、カーネル管理外はちゃんと対応してあります。ただお勧めしない旨
書いてあるのは気になるところですが、M32CからRXを作ったみたいですし、
M32Cと同じ会社がやっているし、さらにuserMLでRXのアップした報告もあるし
間違いなく、わかっていて黙っているのでしょう。
隠しているというわけではないが、あえてコメントしないだけだとは思いますが


626:Be名無しさん
10/11/21 20:12:50 .net
def_inhとcre_isrの違いがよくわかりません。
def_inhがハンドラでcre_isrがサービスルーチン
ってのはわかるんだけど、
例えばdef_inhはハード的な割り込み、たとえばUart
の送受信とかに使用。
cre_isrはタイマー割り込みとかに使用。
っていう考え方であってる?


627:Be名無しさん
10/11/23 19:28:24 .net
>626
単にカーネルの実装上の都合だと思うけど

628:ITRON名無しさん ◆4WD27e3i1o
10/11/25 14:34:12 .net
>>626
URLリンク(www.assoc.tron.org)
の284ページ[補足説明]あたりを読むと良いと思うよ.
def_inh は複数ハンドラを同時には登録できないよね.
レベルトリガで割込み線を共有しているようなターゲット,isrのほうが便利かもね.

仕様策定時,既存のカーネルにinhとisrの2派があって纏め切れなくて…
って裏話を聞いたような気もするから >>627 のように理解してもOKかもね.

629:Be名無しさん
11/01/03 12:04:31 .net
TOPPERS Builder キタコレ

630:Be名無しさん
11/01/09 15:55:36 .net
ITRONではない独自OSだけどKOZOSってどう?
URLリンク(www.saturn.dti.ne.jp)

631:Be名無しさん
11/01/09 21:46:22 .net
割り込みで切り替えてるから、まともな方では?

632:Be名無しさん
11/02/07 20:08:30 .net
12個のタスクをsta_tskすると、15秒に1回程度acre_isrで
生成した定期割り込みサービスルーチンが遅延してしまいます。
sta_tskを11個に減らすと問題ありません。
すべてのタスクが同じ優先度3で動いています。
なぜこのような現象が起きるのかわかりません。
回避方法があれば教えてください。

633:Be名無しさん
11/02/07 21:21:19 .net
同時に動かそうとしてるからでしょ。
動く必要がないtaskは、wait状態にするんじゃないの?

634:Be名無しさん
11/02/07 22:19:38 .net
>632
どの程度を遅延すると言っているのかにもよるけど、
なんとなくカーネルのバグのにおいがします。
下手な実装のITRONでも、スタートタスクで多くの時間はかからないから。
理由は、タスクキューは優先度別に分けられている場合がほとんどで
FIFOでTCBを並べればいいから、割り込みに影響が受けるほど処理時間は
かからないと思うから。

635:Be名無しさん
11/04/24 17:55:25.21 .net
(・∀・≡・∀・) ダレモイナイ

636:Be名無しさん
11/05/05 13:43:25.48 .net
・。・゚・(ノД`)・゚・。・

637:Be名無しさん
11/06/07 01:10:10.79 .net


638:ITRON名無しさん ◆4WD27e3i1o
11/06/29 14:43:56.67 .net
>>632-634
それらのタスクの中で loc_cpu が呼ばれていたとすると,12個だとダメで11個ならOKという現象は作れるかもしれないね.


639:Be名無しさん
11/06/29 15:45:47.37 .net
この手ので長期の割禁なんかするほうがおかしいでしょ

640:ITRON名無しさん ◆4WD27e3i1o
11/06/29 16:57:55.81 .net
>>639
割り込み禁止が短かったとしても,"定期割り込み"の周期が短ければ起こせちゃうかもよ.
絶対時間でなく,相対時間で考えないといけないのではないかな.
もう少し可能性の話を続けるならば,サービスコール中は原則割り込み禁止だから,loc_cpu を使わなくても現象は起きるかもしれないね.


641:634
11/06/30 10:12:55.69 .net
>640 さんは わかっているし、その通りなんだけど、たぶん、ここの住民には理解できないように思う。
自分も少し勘違いしてたと思うけど、sta_tskしたときじゃなくて、sta_tskした後、割り込みが遅延することがあるということ
なんだと思う。
平たく言えば、ITRONカーネルそのものも割り込みのオーバーヘッドがあるので、割り込みが遅延するのは当然の話です。
だからどの程度の遅延を起こしていて、遅延したと言っているかによる。
TOPPERSの実装および、Nortiもそうだけど、最大割り込み禁止時間は思ったより大きいですよ。


642:Be名無しさん
11/06/30 16:53:46.25 .net
まだ、悩んでたんだ

643:Be名無しさん
11/06/30 18:19:30.19 .net
割り込みが禁止だったんだろw

644:ITRON名無しさん ◆4WD27e3i1o
11/06/30 22:52:14.16 .net
>>641
sta_tsk の時かもしれないよ.そうじゃないのかもしれないけれどね.
sta_tsk も割込み禁止時間が延びがちなサービスコールだから.
キューの長さで実行時間が変わるサービスコールを使っていたりすると,
タスクの数が要因になることもあるかもね.(フルセット仕様のイベントフラグのように)

645:ITRON名無しさん ◆4WD27e3i1o
11/06/30 22:54:20.07 .net
>>643 loc_cpu が入っていましたというほうが,ありがちな気はするね.

>>642 「プロバイダ規制ってのがあってね….」書こうとしたらまた規制食らってたよ.orz


646:Be名無しさん
11/07/01 16:34:15.77 .net
TOPPERSは構造体の定義が?な所があるから、下回りの要の部分がなんだかなって感じになってるからな

647:641
11/07/01 21:37:25.80 .net
>644
間違ってはいないけど、誤解する書き方されていますね。
1.sta_tskはキューの長さによって実行時間の変わるサービスコールではない。
2.キューの長さによって実行時間の変わるものは優先度待ちのサービスコールすべて
3.TOPPERS Nortiに限ると 実行時間==最大割り込み禁止時間
だけど、半導体メーカー純正は、 実行時間 > 最大割り込み禁止時間 になってる
 ものが多い。


648:ITRON名無しさん ◆4WD27e3i1o
11/07/02 16:46:43.16 .net
>>647 の1.は,>>644の上二行と下二行の間に空行を入れろって話かな.
2. は,全てをカバーできていないのではないかな. flg で TA_WMUL がある場合もキューの長さに依存するね.
3. は,TOPPERSやNORTiでも実行時間 > 最大割り込み禁止時間ではないかな.割り込み禁止が係るのは,サービスコールのエントリポイントの内側だよね.

てな感じで, >>641 でさえ誤解しない書き方をするのはとても難しいことなので,少しくらい大目に見てほしいな.


649:423
11/07/02 17:14:27.91 .net
>>647
1についてはその通り、関連のないことを書いてるからね
2については特殊なケースのみと勘違いされるので多くの一般的条件を書いたまで
3はエントリーの内だそとだという些細なことじゃないよ。
例えば優先度待ちでタスクが100個待っていた場合100回ループするけど
その間割り込みをあけるあけないの違いがある


650:ITRON名無しさん ◆4WD27e3i1o
11/07/02 18:35:24.25 .net
判っている人同士で,細かい足の取り合いしてもつまらないね.ごめんね.

651:423
11/07/02 22:20:06.20 .net
>>650
実際には特殊なことさえしなければ大丈夫ということを書かれているので
比較的やんわり書くとあげあしとりみたいかもね。

3について、つまり割り込み応答性能はtoppers やnorti は手をぬいているよ。ってことです。
それがわかっていないとエントリーの内側だとか言う
ほとんど意味のない理由をづけになるんじゃないかな


652:Be名無しさん
11/07/02 22:25:59.68 .net
>>651
名前が423だけどこのスレの番号じゃなかったです。失礼

653:ITRON名無しさん ◆4WD27e3i1o
11/07/03 07:57:07.23 .net
JSPカーネルはμITRON仕様のスタンダードプロファイルでサービスコールの不可分性を保証することが求められているので,サービスコール中でカーネル管理の割り込みを開けられないよ.
TOPPERSもFI4カーネルで一部,サービスコール内で割り込み開けたりしていた時期もあったのだけれど,検定仕様書に基づくテストが通らなくなるなどあって戻したりしてるよ.

つまりは,"サービスコールの不可分性"とのトレードオフだよ.ってことです.
それが判っていないと手抜きだとか言う
粗暴な理由付けになるんじゃないかな

654:Be名無しさん
11/07/03 08:41:17.55 .net
>653
なんだ、ある程度わかっている人みたいですね。 そう サービスコールの不可分性の保証の話ですよ。
ただ勘違いしていると思えるのは、サービスコールの不可分性の保証は、かならず処理の前後関係まで保証
しないといけない規定ではないし、実装定義として一部のケースで可分性を認めてもよいという取り決め
になっているわけですよ。
例えば優先度のwaitキュー検索に関して言えば、割り込みを空けることがあっても不可分性は保証される
よ。だからトレードオフということはない。 確かに複数待ちイベントフラグのiset_flgとiclr_flgにおいては
保証できないケースがある。ただ、この場合に限り貴殿の言う割り込み応答性と不可分性の保証のトレード
オフにはなるけど、特殊なケースで、問題にならないと思う。それよりもTOPPERSで優先度待ちキュー検索で
割り込みを空けなかったのはテスト量が増えるからしなかったというのが真相らしいので、これを手抜き
というのは「粗暴な」ではなく真っ当な理由ですよ。
実際には、割り込みを空ける手法はマルチプロセッサ対応のSMPカーネルで実装されている。もちろん不可分性
も保証されているよ。先ほどの前後関係が変わる動きになる。これが実装上必須なのでやっていて、
この対応のためにテスト手法を工夫されているのも事実。だからASPやJSPでもテスト手法を工夫すればできる
話なんだな。やっぱ手抜きですよ。


655:ITRON名無しさん ◆4WD27e3i1o
11/07/03 21:53:00.08 .net
>>654 技術的/仕様的な点でツッコミどころ満載な長文をありがとう.
でもごめん,それらはとりあえず脇においておくよ.揚げ足の取り合いの前に,確かめておきたい大事なことが一つある.
段落分けずに書いたってことは,SMPカーネルっていうのはTOPPERS/SMPカーネルを指すわけだよね.
ならば君は「TOPPERS開発成果物の知的財産権に関する規則」もしくは,どこかの会社と結んでいるはずのNDAに抵触してる可能性があると,ぼくは思う.
もし君が当時学生だとしたら,その管理責任を君の所属研究室が追うことになるだろう.君はどう思う?


656:Be名無しさん
11/07/03 22:18:08.90 .net
あちゃー

657:Be名無しさん
11/07/03 23:22:58.31 .net
NDAがどうしたって?

658:Be名無しさん
11/07/04 00:54:02.95 .net
SMPの仕様は一般公開されて無いみたいね
会員は見れるのかな?
会員しか知りえない情報を漏らしたらまずい気がする

659:Be名無しさん
11/07/04 01:26:47.14 .net
>思う
>気がする
この手の話題に...


660:ITRON名無しさん ◆4WD27e3i1o
11/07/04 10:19:45.74 .net
>>659
条件分けしてみようか.

まず,TOPPERS/SMPカーネル仕様の disclosure level は概ね3層に大別できる.
a. 学会発表やカンファレンスなどで公知となっているもの.
b. 早期リリースでTOPPERS会員のみ読めるもの.
c. TOPPERS会員でも読めないもの.

実は c. が存在するかどうかは,ぼくは知らない.なのに c. を仮定するのには理由がある.早期リリースで読めるのは,仕様"案"だからだよ.
("案"であることは, URLリンク(www.toppers.jp) に書いてある公知な事実だよ.)
>>654 で,TOPPERS/SMPカーネルが仕様として成立しているように書いているのがブラフでなければ, c. は存在する可能性が高い.
c. の権利者は名古屋大学もしくはセイコーエプソンかな.少なくとも片方ががその仕様を進んでダダ漏れさせているなら >>654 はシロ.そうでなければクロだね.
(ダダ漏れがあったとして,その経緯次第では,上記組織の信頼性に関わるかもしれないけれど.それはとりあえず横に置いておこう)

b. の内容を,ぼくは知っている.でもそれに沿っての揚げ足とりは,ぼくには続けられない.知財約款を反故にするほどヤンチャじゃないよ.このケースでも >>654 はクロ.

最後に >>654 が a. の情報のみで話を組み立てている場合には,シロとなるね.
ただし,サービスコールの不可分性を云々できるほどの詳細な発表は,ぼくは知らない(世の中にはあるのかもしれない).

現時点では黒白どちらの可能性もあるんだよね.
だから「可能性があると,ぼくは思う.」と書いたんだよ.

>>654 には,白黒がはっきりと判るよう,情報のソースを説明して欲しいな.

661:Be名無しさん
11/07/04 12:46:35.58 .net
>割り込みを空ける手法
この部分かな
誰?でも思いつきそうな

662:Be名無しさん
11/07/04 12:57:33.57 .net
思いつくのはいいけど
それがSMPに実装されて実現しているという情報が
一般に公開されているかどうかじゃないの?

663:Be名無しさん
11/07/04 13:12:11.38 .net
妙な縛り入れるところとは付き合わないほうがいいのかな
何かあると、あとでグダグダ言い出しそうだな

664:ITRON名無しさん ◆4WD27e3i1o
11/07/04 22:13:06.00 .net
>>662 知財縛りで書けないことを省くと,ざっくり,そういうことだよね.

665:654
11/08/11 18:07:24.91 .net
一応誤解を与えたということで、すまんかった。あやまっておく。
ここはスレタイにもあるように用語はTOPPERSの特有の用語で
書くのが基本であり、
「マルチプロセッサ対応のSMPカーネル」
と書けば、TOPPERS/SMPのことと理解されるのに違いないこと
ですね。
自分の見たソースはTOPPERS/FMPのことで、FMPとは一般用語では
ないので、上記の記載にした。
FMPはAMP型でSMP型じゃないよ。という突っ込みがあるかもしれ
ないが、AMPだSMPだというのはあまり一般的じゃないのでそう
書いた次第だ。


666:Be名無しさん
11/08/11 19:16:24.70 .net
衒学脳の厨っぷりを堪能した。

667:654
11/08/11 23:31:02.90 .net
突っ込みどころ満載とか言っていたけど、さらに追加かもしれないが、具体的に書こう。
TOPPERS/FMP1.2 のソース wai_flgの部分だ。
wobj_make_wait();
について、t_acquire_nested_tsk_lock_self()のように、割り込みがあったら戻り値をNULLにして
retryに飛んだらよい。 ということなんだけどな。
つまりwaitQue検索時に適当な割合で割り込み許可と割り込み有無チェックをいれるわけだな。

eventflg.c のline:350~line:371
retry:
t_acquire_obj_lock(&GET_OBJLOCK(p_flgcb));
if ((p_flgcb->p_flginib->flgatr & TA_WMUL) == 0U
&& !queue_empty(&(p_flgcb->wait_queue))) {
release_obj_lock(&GET_OBJLOCK(p_flgcb));
ercd = E_ILUSE;
}
else if (check_flg_cond(p_flgcb, waiptn, wfmode, p_flgptn)) {
release_obj_lock(&GET_OBJLOCK(p_flgcb));
ercd = E_OK;
}
else {
if ((my_p_pcb = t_acquire_nested_tsk_lock_self(&GET_OBJLOCK(p_flgcb))) == NULL){
goto retry;
}
p_runtsk = my_p_pcb->p_runtsk;
p_winfo_flg = (WINFO_FLG *)(&(p_runtsk->winfo_obj));
p_winfo_flg->waiptn = waiptn;
p_winfo_flg->wfmode = wfmode;
p_runtsk->tstat = (TS_WAITING | TS_WAIT_FLG);
wobj_make_wait((WOBJCB *) p_flgcb, p_runtsk);
release_nested_tsk_lock(my_p_pcb);


668:Be名無しさん
11/08/12 07:11:50.24 .net
SSPまだー

669:元ITRON名無しさん ◆4WD27e3i1o
11/08/16 23:14:53.08 .net
>>665, >>667
突っ込みどころ満載すぎて引用できないよ….ごめんね.

670:667
11/08/17 15:07:31.79 .net
>669
夏休みモードなんかな(自分はそうだけど)

2.1 実装方針とモデル
サービスコールの大部分を一つの割込み禁止区間として実
装している

TOPPERS/JSP --->
スタンダードプロファイルの機能セットの範囲内では,この方法でもそれほど
悪い結果にはならない.(user.txt)

ところが
TOPPERS/FI4 ---> 同じ文面(動的生成のみ追記されている)(fi4_user.txt)

フルセットなのにスタンダードプロファイルでは、ってちょっとまじめに考えているのかと....

名古屋大でのカーネル内部構造の講義において
TOPPERS/JSP
「割り込み許可にしなかったのはテストの時間がかかりリリースの時期にマッチ
しないと判断したことがある」

--->
TOPPERS/FMP -->スピンロックにおいて割り込み応答性のため、
割り込み許可するロジックを実装。

テストの問題は?
---> TTSPによって、割り込みを起こすテストを網羅することも比較的容易にテスト可能になった。

それだったら、TOPPERS/JSPやASPでも、TTSPを利用することで割り込み許可するべきじゃないのか?
と思うけど、ニーズがないというか性能評価までして使うユーザーがいないということなのかな



671:Be名無しさん
11/08/17 16:33:08.83 .net
>ここはスレタイにもあるように用語はTOPPERSの特有の用語で
>書くのが基本であり、
>「マルチプロセッサ対応のSMPカーネル」
>と書けば、TOPPERS/SMPのことと理解されるのに違いないこと
>ですね。
ダウト
スレタイよく嫁よ
メインは「ITRON総合スレ」だろ
スレタイにTOPPERSが含まれているがNORTi、HOSも書かれている

あんたの言葉を借りると「スレタイにもあるように」
複数のOSが書かれているので
>用語はTOPPERSの特有の用語
とは限らない

あとテンプレにはT-Kernelもあるので
必ずしもSMP=TOPPERS/SMPとは限らない
話の流れ的にTOPPERSを指してると言えるけどね

あと、FMPは一般用語じゃないと言ってるが
仮にそうだとしても検索すれば意味ぐらいすぐわかるだろ

672:667
11/08/17 17:38:01.91 .net
>>971
>>「マルチプロセッサ対応のSMPカーネル」
>と書けば、TOPPERS/SMPのことと理解されるのに違いないこと
>>ですね。
>ダウト

じゃあ、それとは限らないという意見なので、誤解されてもしかたないことでもない
ということなんかな。
まぁ誤解を与えたわけだし、あやまってるし、そうでもないよといわれてもどっちでもいいことなんだけどな


673:元ITRON名無しさん ◆4WD27e3i1o
11/08/20 23:27:27.64 .net
>>665
> AMPだSMPだというのはあまり一般的じゃないのでそう書いた次第だ。

マルチプロセッサの文脈で両者を混同すると,たぶん学部生でも単位もらえないと思うのだけれど,最近は違うのかな.
TOPPERSかどうかではあまり関係なくて.
T-Kernelには興味ないのでろくに追いかけていないけれど,彼らもAMPかSMPかはきちんと分けているよね.
謝ってくれる必要はないけれど,用語はきちんと使いましょうよとは思うよ.

674:元ITRON名無しさん ◆4WD27e3i1o
11/08/20 23:35:08.47 .net
>>670
> 「割り込み許可にしなかったのはテストの時間がかかりリリースの時期にマッチ
> しないと判断したことがある」

これホントかなと言うのが直感.いや誰か(高田センセ?)が言ったと信じてみたとしても.
JSP1.0のリリース時点で,テストスイートなんてなかったよ.
最初のテストスイートができたのは,FI4と同じ時期. IPA案件の成果だから間違いないよ.
2000年当時からかなり長い間,割り込み禁止が長いのは「読みやすさを優先した」ということになっていたんだよね.


675:元ITRON名無しさん ◆4WD27e3i1o
11/08/20 23:45:20.50 .net
別段の守秘がある話でもないから過去振り返っちゃおう.
公開前のFI4カーネルって,割と割り込み開けてたんだよ.
けれども,それやっちゃうとトロン協会の検証仕様書(案)のテストケースが通らなくなっちゃうんだよね.
で,テストスイートがオカシイのかカーネルがオカシイのか判らんという話になって,結局戻したんだよ.
FI4のソースコードを見ると,特にIDのチェックの辺で「なんでこんな変な処理?」っていうのが時々残っているかもしれないけれど,それはその残骸.


676:元ITRON名無しさん ◆4WD27e3i1o
11/08/21 00:17:10.68 .net
>>667
で,割と本質なFMPでの実装の話だっけね.
これは別にJSP/ASPの割込み禁止区間を問題視して割込みを開けているわけではないよね.
プロセッサ内排他に比べてプロセッサ間排他の時間があまりにも読めないので,仕方なく開けているのではないかな.
もし,JSP/ASPの割込み禁止区間の長さがこの実装の理由なら,whileループでぐるぐる回る[i]set_flg のほうは更に頑張るはずだよね.(あとはソースコード読みなおしてみて)

677:Be名無しさん
11/08/21 19:51:36.68 .net
>>674
>これホントかなと言うのが直感.いや誰か(高田センセ?)が言ったと信じてみたとしても.
直感を何度もはずしているのに懲りないですね。

>JSP1.0のリリース時点で,テストスイートなんてなかったよ.
あくまで後からTTSPができたと書いているのに誤解しないでほしいものです。「テスト可能になった。」と順番に書いてるよね。
そうです。そのとき無かったからできないのは理解しているつもり。
今テストスイートがあるなら、やってみるべきだし、割り込み空けない理由がなくなった時点
で対処すべきことだと思う。

>2000年当時からかなり長い間,割り込み禁止が長いのは「読みやすさを優先した」ということになっていたんだよね.
理由はひとつではないとは思うけどね。また高田先生の思っていることがプロジェクトの総意でもないかもしれない。
表向きには、やはりドキュメントに書かれてあるとおり、それほど問題にならないから ということだと思うけどね。(JSPにおいては)
ただ、当初JSPにおいては、コードが仕様書の延長ともいえるので、「読みやすさ優先」という理由にはなるけど、
ASP以降はμITRONの仕様にとらわれない決定版という方針からするとおのずと「読みやすさのため」という理由は無い話ですよ。


678:Be名無しさん
11/08/21 19:54:14.23 .net
>676
なんだかなぁ、君の言うとおりのことを指摘しているんだけど。どうも言葉が伝わらないな。
そうですよ。 スピンロックは必然。 waitQの待ちは有限時間なので必然ではない。
だから、WaitQの待ちでも有限時間だけども、STDPROFよりも大きいものは問題なので
対応したいが、テストがかかるため天秤にかけた結果WaitQの待ちは見送った。
見送った理由は、開発期間、時間的な理由もちゃんとした理由としてできない理由としてそれは
それでそのときの判断としては正しいと思うよ。
一方、スピンロックは必然的に割り込みを空けなくてはならなくなった。
必要は発明の母という言葉があるようにそれでようやくTTSPを作ったわけ。
必要であれば作れたってことは、FMPの開発時で、waitQの問題に対処できるわけなんだな。
これも実は開発者自身に直接聞いて回答いただいている。
「WaitQの割り込みをあけることも可能だが、性能的に問題にならないので対応していない」
という回答。まぁさらに聞きたかったけど、あまりにその講義の範囲を超える話に
なりそうなのでそれまでしか聞かなかった(聞けなかった)です。

>whileループでぐるぐる回る[i]set_flg のほうは更に頑張るはずだよね.
>(あとはソースコード読みなおしてみて)
[i]set_flgを見ているからわざと、wai_flgを引用しているんだけどな。
ただこれはドキュメントに書いてある。
---------------------------------------------
ASPカーネルでは, 以下のシステムコールは待ち解除されるタスクの数に比例
して長くなる.
・init_xxx
・イベントフラグ set_flg()
FMPカーネルでは,ロックを取得する関係ため,実行時間の上限が定まらない.
------------------------------------------------
ちょっとこれってお粗末じゃないのと正直思うけどね。


679:Be名無しさん
11/08/21 19:56:05.48 .net
>675
以前も同じこと書いていたよね。
JSPやFI4はμITRON4.0準拠なのでそうかもしれないけど
ASP以降においてはμITRONの仕様を超えて決定版を作るという話だから
その枠にはめる必要は今の時点ではないと思う。

くだらない話をすれば、FI4において、トロン協会の検証仕様書(案)に準拠
しないために割り込み空けるのやまたのならその旨を正直にドキュメント
に書いておくべきじゃないのかと思うけどね。
そうあるべきなのに、フルセットなのにスタンダードファイルではとか
おかしなドキュメントのままというのが今の状態ですね。


680:元ITRON名無しさん ◆4WD27e3i1o
11/08/21 22:57:45.82 .net
まずは,過去についての話.

>>677
え? だって
> TOPPERS/JSP
> 「割り込み許可にしなかったのはテストの時間がかかり

っていった時点のTOPPERS/JSPのコーディング時点ではTTSPなんて無いよね.
TTSPができた時点で,NCESは既にJSPなんか興味持ってないよ.(ちょっと言い過ぎかな)
時系列で並べると,JSPについていえば,TTSPとかテストスイートとかにかかわらずああいう実装になっているはずなのだけれど.
歴史語るなら時系列をキチンとしようよ.未来からなら何でも言えるよね.
もしASPの話に限るなら,JSPの話を持ち出す必要なんて無いよね.過去のことなのだから.

>>679
fi4のドキュメントが貧弱なのはそのとおりw.
それは認めた上で,君の主張に沿って議論するならば,君の指摘も蛇足でしか無い気がするよ.
フルセットだから割込みを開けるべきということが自明なら別だけれどね.


681:元ITRON名無しさん ◆4WD27e3i1o
11/08/21 22:59:31.62 .net
そして,新世代系の話題.
TOPPERSも10年だし,時系列を混同すると話がワケワカラなくなるよね.

>>678
> [i]set_flgを見ているからわざと、wai_flgを引用しているんだけどな。

えっと…
割り込み禁止区間が長いのがTOPPERSの手抜き→FMPのwai_flgみたいにすりゃいいのに,と主張して,同[i]set_flg は目をつぶるの?
主張がよくわからないよ.もうちょっと細かく説明してほしいな.


682:元ITRON名無しさん ◆4WD27e3i1o
11/08/22 01:26:39.25 .net
ああそうか,>>679 と同一人物と思しきカキコを読みなおして判った気になったよ.
ASPは決定版だから,すべからくの箇所で頑張って割込み開けて当然って話なのかな.FMPの例とかはこじつけで.
(もしくはTTSPある今,JSPも変えろって話…の主張は取り下げたのかな?)
もしそうならば,割込み開けるのが決定版の条件であることを >>679 は示せばよいのではないかな.

極めて個人的にはだけれども,頑張って割込み開ける処理を入れるオーバヘッドをいれることで救われるアプリケーションよりも,そのオーバヘッドがウザいアプリのほうが多いのではという気がするよ.
「いやオレのアプリは違う」っていう意見が多ければ,いくら伽藍のTOPPERSでも考えを改めるだろうね.

683:Be名無しさん
11/08/22 15:57:24.38 .net
1,時系列云々について
>680
>歴史語るなら時系列をキチンとしようよ.未来からなら何でも言えるよね.
>もしASPの話に限るなら,JSPの話を持ち出す必要なんて無いよね.過去のことなのだから.

何度も書いているように、JSPでTTSPは無かったよ。それは異論は無いよ。
何度も書いているでしょ。

JSPの話を持ち出していることがおかしいという意見なら、その部分はJSPの実装から
変更されておらず、そのまま引きずっているよね。だから過去のことでは無いよ。

実際にJSPの内部構造で聞いた話だからJSPでと正確に書いているわけ。
JSPが過去のものというならWaitQの実装をASPにおいて過去のものにしてからの
話ですよ。


誤解しないようにわかりやすく書くよ
以下、時系列

WaitQの処理

1.JSP 理由 テストに時間がかかるから割り込みあけなかった
2.FI4 JSPと同じ実装じゃないとトロン協会の検証仕様書(案)が通らないので割り込みあけなかった
3.ASP JSPと同じにした。standerdプロファイルだしいいよね
4.FMP ASPと同じにした。standerdプロファイルよりも大きい仕様だけど
    でも、ASPと同じ割り込みを開けなくても性能的に問題なかったのでそれでいいよね
    割り込みをあけるテストはTTSPでできるようになった。

それなら、ベースとなるASPにおいても割り込みあける処理にすべきことだよ。

684:Be名無しさん
11/08/22 16:02:29.89 .net
>680
>君の指摘も蛇足でしか無い気がするよ.
どの部分がどう蛇足なんでしょうか?
「くだらない話」の部分のことを言っているのかな?

>フルセットだから割込みを開けるべきということが自明なら別だけれどね.
自明じゃないと思う理由は何?
μITRON4.0の仕様書のサービスコールの不可分性の保証に割り込み応答性の
ために云々書いていることと、JSPのドキュメントにおいて、スタンダードプロファイル
においてという枕詞を付けている点で自明だと思うけど、そうでないことを示す
公式ドキュメントなどあるのかな?


685:Be名無しさん
11/08/22 16:08:58.06 .net
>681
>割り込み禁止区間が長いのがTOPPERSの手抜き→FMPのwai_flgみたいにすりゃいいのに,と主張して,同[i]set_flg は目をつぶるの?
>主張がよくわからないよ.もうちょっと細かく説明してほしいな.
目をつぶっているわけじゃないけど、set_flg iclr_flgで不可分性の保証ができない
ケースがどうしてもあるから、話が君にとって難しいと思ったからわかりやすいほうを
例に挙げただけだよ。

set_flgの割り込みをあけた場合に、iset_flgには対応できるけど
iclr_flgには対応できないことがあることを君がわかるなら説明してもいいけどね。
説明できますか?


686:Be名無しさん
11/08/22 16:17:35.21 .net
>682
>極めて個人的にはだけれども,頑張って割込み開ける処理を入れるオーバヘッドをいれることで
>救われるアプリケーションよりも,そのオーバヘッドがウザいアプリのほうが多いのではという気
>がするよ.「いやオレのアプリは違う」っていう意見が多ければ,いくら伽藍のTOPPERSでも考えを改めるだろうね.

オーバーヘッド測ってから言えばいいこと。
自分の知る限りチップメーカー純正のITRONで割り込みをあけないものは無いはずだしね
是か非かというのは、もともとの議論のポイントではない。
ひょっとするとメーカーは必要のないことを一生懸命やっているのかもしれない。


687:元ITRON名無しさん ◆4WD27e3i1o
11/08/22 20:37:01.36 .net
>>686
> オーバーヘッド測ってから言えばいいこと。

そっくり返すよ.


688:686
11/09/12 10:04:36.92 .net
>687
本業で、割り込みをあける場合のオーバーヘッドを測ってるからそういったんだよ。

689:Be名無しさん
11/09/13 03:06:40.03 .net
構造体の定義が頭壊れる方向にできてるから、割禁が長い、TOPPERS

690:Be名無しさん
11/09/13 07:50:25.44 .net
おまえの頭が壊れてるんだろ

691:Be名無しさん
11/09/13 09:46:47.51 .net
>構造体の定義が頭壊れる方向
kwsk

692:Be名無しさん
11/09/13 13:11:43.21 .net
タスク切り替えの本体の汗読んでたら、おかしくなってこないか?
あのこねくり回した流れは何って感じだけど

693:Be名無しさん
11/09/13 17:11:04.78 .net
自分で書いてみりゃわかるが、ああいうのは
何度書きなおしてもきれいにならん


694:Be名無しさん
11/09/13 17:14:36.13 .net
>構造体の定義が頭壊れる方向
と逝ってるでしょうが

695:Be名無しさん
11/09/13 17:26:31.08 .net
>692 タスク切り替えの本体の汗
ってディスパッチャのこと? だとすればporting.txtからの引用だけど、なんのひねりもないけどな。タスク例外だけ少しひねりがあるぐらいだけどね。
void
dispatch(void)
{
改行が多いので省略
}
void
dispatcher(void)
{
#ifdef LOG_DSP_ENTER
log_dsp_enter(p_runtsk);
#endif /* LOG_DSP_ENTER */
dispatcher_0:
while ((p_runtsk = p_schedtsk) == NULL) {
割込みを許可したらCPUロック解除状態になるよう準備する
非タスクコンテキストに切り換える … (*1)
do {
割込みをすべて許可し,割込み発生を待つ … (*2)
割込み許可前の状態に戻す(=カーネル管理の割込みを禁止する)
} while (!reqflg);
reqflg = false;
タスクコンテキストに戻す … (*1)
CPUロック状態に戻す ... (*3)
}
自タスク(p_runtsk)のTCBからスタックポインタを復帰する
#ifdef LOG_DSP_LEAVE
log_dsp_leave(p_runtsk);
#endif /* LOG_DSP_LEAVE */
自タスクのTCBから実行再開番地を復帰し,そこへ分岐する … (*a)
}



次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch