制御系なら俺に聞いてもいいぜ(8)at TECH
制御系なら俺に聞いてもいいぜ(8) - 暇つぶし2ch100:デフォルトの名無しさん
05/10/29 17:11:43
スマナイけど、俺たちは仕事をする為にこのスレに来てるわけじゃないし、ましてやタダ働きする為に来てるんでもない。

なにか面白い書き込みを楽しみに来てるわけで。
細かい具体的内容書かれれば書かれる程、ゲンナリしちゃうわけ。

質問は結構だけど、もう少し整理してくれ。
理解出来ないから丸投げじゃ、面白くもなんともないよ

101:デフォルトの名無しさん
05/10/29 17:12:45
double CMBM::Connect()
{
   if (isConnected()) return -2;
   // try to open shared memory
   hMapFile = OpenFileMapping(FILE_MAP_READ, FALSE, "$M$B$M$5$S$D$");
   if (hMapFile == 0)
   return -1;
   // try to make a first read to memory
   if (!ReadValues())
   return -1;
   Connected = true;
   //return MBM version
   return data->sdVersion;
}
//---------------------------------------------------------------------------
bool CMBM::isConnected()
{
   return Connected;
}


102:デフォルトの名無しさん
05/10/29 17:17:06
>回答者はそれをダウンロードして試した上で俺様に答えるべき、とでも思ってるのかな。
>っていうか、スレ違いのような気がする。
>まあマルチがはわわ~、なんだろうけどさ。
↑(だから、コードを貼ったのだ)
矛盾

>理解出来ないから丸投げじゃ、面白くもなんともないよ

結局、答える能力はないから、自己投影で最後に難癖つけてきただけだろ。


103:デフォルトの名無しさん
05/10/29 17:18:11
>制御系なら・・・

「羊頭狗肉」ってこういうことを言うんだ。

104:デフォルトの名無しさん
05/10/29 17:22:53
だからさ、 回答したくなるような+アルファをクレって、
そういう芸風はもう飽きてるんだよ。


105:デフォルトの名無しさん
05/10/29 17:25:35
お前のためのスレじゃない
飽きたなら消えろ

106:デフォルトの名無しさん
05/10/29 17:29:25
おいおい・・・このスレの最初のスレから3割以上レスしてたこの俺に消えろっていうんだな?

107:デフォルトの名無しさん
05/10/29 17:30:17
その通り
邪魔だ消えろ

108:デフォルトの名無しさん
05/10/29 17:43:28
判ったよ。 じゃあ、後は頼んだ。

109:デフォルトの名無しさん
05/10/29 17:47:07
AD変換のシステム(計測マン・マシーンインターフェースソフトも含む)
は計測制御の基本だよ。計測が出来なければ制御(DAシステム)なんて
出来るわけがないからだ。しかもCPUの温度に関してときてるのだ。それなのに、
「制御」のスレで、その質問に高飛車に「スレ違い」って言うような連中が、
なんら批判されず、のさばってられるスレっていうのは奇妙なものだ。


110:デフォルトの名無しさん
05/10/29 17:47:58
住人さんたち、スレタイに「系」がついてることを忘れるなよ。

111:デフォルトの名無しさん
05/10/29 17:50:53
>>109 誰も高飛車に言ってないだろ。 そんだけ講釈出来るんだらお前が答えて終わらせてやれよ。

112:デフォルトの名無しさん
05/10/29 18:00:48
結局 (俺も含めて) 誰も回答できないわけか…。

113:デフォルトの名無しさん
05/10/29 18:02:45
>スマナイけど、俺たちは仕事をする為にこのスレに来てるわけじゃないし、ましてやタダ働きする為に来てるんでもない。
こういうの、高飛車だけではないな。陰湿な排他的性格も含むから。
あ、そうか。ここの「制御」って「人間排他制御」のことか。(藁

今や水冷とかファンコントロールがオーバークロッカーだけでなく静音マニアでも
でもあたりまえ。それを「仕事」とか「タダ働き」だとさ。呆れるね。

114:デフォルトの名無しさん
05/10/29 18:03:25
金にならねえやっつけ仕事ほど、無駄な時間の浪費はない。

115:108
05/10/29 18:08:02
やれやれ

質問者へ
 1、まず、どういう立場なのかとか多少は自分の事も書いてみて
 2、つぎに、何をしようとしているのか買いてみて
 3、そして、問題は何なのか簡潔に書いてみて


 で、メモリマップファイルで、通信しようとしているようだけど、
 書かれているコードではバイト数をゼロでREADオンリーにしてる。 後から変更しているの?

116:デフォルトの名無しさん
05/10/29 19:06:55
MBMの本体が動いてないからじゃないの?

117:デフォルトの名無しさん
05/10/29 20:06:59
本家にBBSあるんだからそこで聞けよヴォケ
URLリンク(www.livewiredev.com)


118:デフォルトの名無しさん
05/10/29 20:16:48
制御系とか関係ないじゃん。
MBM DLLをVBから使いたいってことじゃん。

ス レ 違 い

119:96
05/10/29 20:16:51
>>100の書き込みは俺じゃないよ。
っていうか、>>96の書き込みを見て、それでそれに応えるつもりで
コードをコピペしてるんだったら、質問者は基本的な日本語の読解力が怪しいんじゃないの?

まあ>>102が質問者かどうかわからないけど、それにしてもね。

とりあえずWin32のCのintに対応するVBの型はIntegerじゃなくてLongだよ。
それが障害の原因かどうかはわからないけどね。

120:デフォルトの名無しさん
05/10/29 20:20:46
大体質問に答えてもらおうって態度じゃないな。
俺のところじゃそのモニタを使えてるが
絶 対 に 教 え な い

121:108
05/10/29 20:39:04
あ勘違いだ。 サイズゼロだと、最大を指定したのと同じなんだね。

それから
 data = (TSharedData *)MapViewOfFile(hMapFile, FILE_MAP_READ, 0, 0, 0); <―でエラー
と書いてあるから、 data  への書き込みに失敗したのだろう。

となると、CMBMが作成されていないのに、メソッドが呼び出されたという所かな


122:108
05/10/29 20:46:58
ところでVBからDLLを呼び出すからエラーの追跡が面倒になるのだと思うのだが
VBだけではポインタが無いから難しいと思ったのだろうけど・・・・・

なんか昔、VBだけでやれた気もするんだけどなあ

最近、こういうのはDelphi使ってるから忘れちゃったよ。Delphiならポインタ使えるし

123:デフォルトの名無しさん
05/10/29 21:20:34
VB厨(笑)

124:108
05/10/29 21:35:58
ちょっとぼんやり思い出した。
long 変数でポインタを受けて、MoveMemoryとかのAPIで VarPtr(構造体) で移動ってな所だったかな?



125:デフォルトの名無しさん
05/10/29 22:04:26
まあ制御系でもVB使わない事もないが、さすがにメインじゃ使わない。
PC用のGUIが必要なら DelphiかBCBだろ。
ただ、実験とか社内ツールだとExcelVBAなら結構多いかもな。

一昔前は測定器にPC使ってVBなんてのも多かったけど、
なんか大変動じゃないけどいつの間にかVBやってた所はZ80と一緒に地盤沈下。

126:96
05/10/29 22:12:59
>>125
本当にこの世界の人?
この世界に限らず、特定用途向けのGUIアプリなんて今でもほとんどVB製ですけど。
じゃなきゃ、ここ二年ぐらいはドトネト。

Delphi使ってるなんてところは日本じゃほとんど見たことない。

127:デフォルトの名無しさん
05/10/29 22:19:01
>>196
そうか?
なんかVBアプリからの置換の仕事が多いから一昔前は多かったというのは実感してるが、
昔はバブルだったのか、これが今の請負額より1桁上の金額取ってたのかよというのばかりだけどな

128:デフォルトの名無しさん
05/10/30 00:10:28
組み込み専門の俺には割り込む余地も無い(w


129:デフォルトの名無しさん
05/10/30 00:12:57
>>128
組込み専門なら、割り込みもこなせなくてどうする!

130:デフォルトの名無しさん
05/10/30 02:38:39
最近は、そういうのは OS がやってくれたりするからなぁ。

131:デフォルトの名無しさん
05/10/30 11:07:10
組み込みと制御系って何が違うの?

132:デフォルトの名無しさん
05/10/30 12:55:35
制御系は組込み系の部分集合。

133:デフォルトの名無しさん
05/10/30 12:57:08
まあ、諸説あるだろうけど…

組み込み系というのは、機器に組み込まれて動作するソ
フトウェアを言う。つまり、どちらかと言うと実装上か
ら見た区別。

制御系は、機器を制御するソフトウェアを言う。つまり、
用途から見た区別。

だと思う。

134:デフォルトの名無しさん
05/10/30 16:55:54
組み込み系⊆制御系
じゃないの?

135:デフォルトの名無しさん
05/10/30 17:01:48
>>134
は?

136:デフォルトの名無しさん
05/10/30 17:55:26
>>132, >>134
例えば、物流の制御システムなんかだと PC 使ってやってることもあるから、
制御系だけど組み込み系じゃないって感じがする。

逆に、電卓のプログラムは組み込み系だけど制御系というのはちょっと違う感
じがする。

137:デフォルトの名無しさん
05/10/30 20:04:49
>>136
LCDの制御やボタンの入力などを読んだりするのは?

138:デフォルトの名無しさん
05/10/30 22:33:03
>>137
気分的には制御と言いたくない。

139:デフォルトの名無しさん
05/10/30 22:56:11
マジレスすると、電卓にソフトウェア部分は無い。

140:デフォルトの名無しさん
05/10/30 22:58:02
そんな餌で、釣れるんか?

141:デフォルトの名無しさん
05/10/30 23:13:35
>>140
連れてるじゃん

142:俺も含めて大漁だな、オイ。(w
05/10/30 23:27:11
オマエモナー。

143:デフォルトの名無しさん
05/10/31 00:28:02
制御系っていうと、最近は会社によっては、
MPUの仕様やプログラムは一切知らずに、
ステートフローや伝達関数書いてシミュレーションしたり、
実験してパラメータ決定するだけで、
その組み込みは、他部署にお任せってのも多々あるみたいだけど、
このスレでは、そういうやからもおkなん?

144:デフォルトの名無しさん
05/10/31 00:34:27
>>143
ああ、あの「試作品作るなんてお金の無駄です。」ってやつな。
いいんじゃね?

145:デフォルトの名無しさん
05/11/02 21:47:03

こんにちは、今回、会社にあるん古いバーコード・プリンタを
復活させる必要が出てきました。マニュアルを読むとRS232c経由で
制御できるようなんですが、XPのDOS窓から、RS232Cにエスケープコマンドって
送れますか?

昔、DOSの頃パラレルのプリンタをエスケープシーケンスで制御して遊んだ事が
あるんですが。出来ることは覚えていますが、TYPE CONとかなんだったか
忘れてしまいました。

詳しいサイトとかありましたら教えてください。


146:デフォルトの名無しさん
05/11/02 22:00:30
>>145
送れるるよ。modeコマンドで各種パラメータを設定するのを忘れずに。
あーあと、EscコードはEscキーでは発生しないからね。

147:145
05/11/02 22:12:20
>mode
 ありがとうございます。だんだん思い出してきました。

148:145
05/11/02 22:18:06
>147
みつけました。あした一日遊んで見ます。
URLリンク(forum.nifty.com)

149:デフォルトの名無しさん
05/11/03 11:18:35
>>145
ターミナルソフト使ったほうが便利では?

150:デフォルトの名無しさん
05/11/06 00:33:09
半角かなの使用率高いな

151:デフォルトの名無しさん
05/11/06 19:01:32
制御系で働くものとしては、どの程度まで制御理論を理解するのが一般的なんだろ。
現実的には古典から最新理論まで全部理解してるって無理だと思うんだよなぁ

152:デフォルトの名無しさん
05/11/06 19:34:27
俺は古典制御ならわかるが、現代制御はさっぱりだな
でも、仕事では殆どが、通信の制御だったり、ロジックの制御だったり、
デバイスの制御だったりするから、
知らなくても全く問題なしだw

153:デフォルトの名無しさん
05/11/06 20:01:41
>91
亀だが、MSがDriver Install Frameworks Tools 2.0
とか称してそのあたりを纏めたツール・APIを公開している。
1.0のときには、ドライバ認証が要るとかいうふざけた話だったが。

154:デフォルトの名無しさん
05/11/07 17:37:06
>>153
情報ありがとうございます。
そのツールを使用して何とか
作成しようと思います。

155:デフォルトの名無しさん
05/11/08 16:38:40
TRON準拠のマイコンソフトなのですが、
デバッグのため、イベントが発生する毎にリングバッファにイベントをどんどん記録する、
という仕組みを追加する事にしました。
リングバッファに書き込む処理自体は共通のサブルーチンを用意して、イベントを引数で渡す、という
単純なもので特に問題ないのですが、
このサブルーチンを通常のタスク処理と、割込み両方から使いたいので、排他制御を考える必要が発生しました。

実装に当たって参考になる、なにか、良い資料やサンプル等ないでしょうか。または定番の方法など


156:名無し募集中。。。
05/11/08 18:39:08
NORTi/86 ?
排他ならセマフォが定番

157:デフォルトの名無しさん
05/11/09 00:06:45
>>155
正直そういう処理をするなら、排他以前に
イベントの検出直後~リングバッファへの書き込みの間は
割り込みを禁止(Maskでは無い)しないと、イベントの発生順が
訳分からん状態になると思われ

158:サービスコールの不可分性
05/11/09 02:34:47
>155
以下、uITRONVer4仕様での話
固定長メモリプールからイベントを書き込むバッファをゲットする。
(固定長メモリプールの長さはイベントのデータの最大長とする。)
書きたいデータをそのバッファに書く。
ゲットしたデータをメールボックスで送り出す。
受けるタスクでメールボックスを受け、固定長メモリを解放する。

実装によりますが、非タスクコンテキストからもpget_mpf(),snd_mbx()が利用できるものが
多いと思います。少なくともNortiは、仕様書をみたところそうなっています。
この場合、特に排他処理を用いなくても問題ありません。というよりサービスコール
はリエントラントです。(正確には、サービスコールの不可分性の保証のことです)

方法は上記と違いますが、参考としては、私の知る限り、toppersJSPのログ機能です。
ログタスク経由か、直接出すかを選択できたと思います。ログタスク経由の場合はいったんキューイング
して出していたように記憶しています。肝心な排他制御しているかどうかは未確認
です。 していなければ、セマフォよりも、loc_cpuが、いいかと思います。
lockするのは、キューの管理ポインタの更新時のみに限定できると思います。
ver4からの仕様ですが、loc_cpu中といえどカーネル管理外の割込は可ですので、
lock中 != 割込ディセーブルです。お間違えなく。




159:デフォルトの名無しさん
05/11/09 15:29:49
レスありがとうございました。
説明が最初に不足しておりましたが、元々の処理のタイミング等に出来るだけ影響を与えないようシンプルにしたい、
という事情がありまして、
本当は割込み禁止はしたくなかったのですが、
検討の結果、157さんもおっしゃるような書き込み中割込み禁止にする、という方向になりました
結局、これが一番シンプルでした あとは、割込み禁止期間が少しでも短くなるようなロジックにしました
(セマフォはやや大掛かりになってしまうため不可)
ありがとうございました。


160:デフォルトの名無しさん
05/11/11 01:12:18
>>152
そんなもんだよね。
古典も完璧とはいえないけども

161:デフォルトの名無しさん
05/12/01 16:02:03
Forth使ってる人居る?

162:デフォルトの名無しさん
05/12/01 19:38:10
組み込みスクリプトに?
自作の中間言語インタプリタなら作って使った事はあるけど

163:デフォルトの名無しさん
05/12/02 00:45:42
業務系プログラマでつ。
制御系にジョブチェンジしたいんですが
(Java,C/C++、簡単なUSBのドライバならつくれます)
参考書籍を3冊くらい教えてください。

164:デフォルトの名無しさん
05/12/02 00:56:48
>>163
制御系たっていろいろあるからね。
目指すものによっていろいろ

 ドライバ書けるなら、いろんなOSマスターして
ドライバ屋という手も無いではない
 その場合はマニュアル見ながらひたすらソース読んだ方が
理解できたり。。。。。

165:デフォルトの名無しさん
05/12/02 11:19:25
>>163
弊社でよければ面接の用意をしますw
いや、業務系も制御系も人が足らんのよ。

166:デフォルトの名無しさん
05/12/02 13:10:43
昼間から2ch覗いてる管理職のいる会社には行きたくないです

167:デフォルトの名無しさん
05/12/02 13:18:20
大丈夫、夜間仕事しているから(ぉぃ

168:デフォルトの名無しさん
05/12/02 14:18:18
プログラミングではなく制御設計はこのスレではあまり関係ない?
PIDとかz変換とか。

169:デフォルトの名無しさん
05/12/09 00:35:52
正直、業務系に転職したい
業務系ならあと20年は働ける気がする

170:デフォルトの名無しさん
05/12/09 00:49:42
妄想だけじゃメシは食っていけないよ?

171:デフォルトの名無しさん
05/12/09 01:01:24
>>168
それをネタに話してもスレ違いと暴れる奴はいないと思うが
電気・電子板でやった方が人がいると思うぞ

俺は無理、ついていけない

172:デフォルトの名無しさん
05/12/10 08:48:03
マ板のクミコスレで聞いたら呆れられたのでこっちで聞かせて。 8051互換チップでDAC端子
が「作動状態」=Lo-Z状態=制御電圧が出ている状態、「停止状態」=Hi-Z状態で、テスタ
で見てみると0Vが出てるように見えます。 これと0Vが出てる状態とがどう違うか?なんです。

インピーダンスって、理科の時間には「交流、とくに高周波に対するコイルの抵抗」って習った
のに、直流の端子でインピーダンスがどういう意味を持つんですか?

173:デフォルトの名無しさん
05/12/10 09:44:22
>>172
またも板違い
電気・電子板が適切かと

制御電圧に対してHiZだって事でしょ

インピーダンスは交流もあるんだよ

174:デフォルトの名無しさん
05/12/10 12:50:43
>>172
 そのテスターで、+電源とその端子の間の電圧を測って、それぞれ結果を報告してみて。それからだ

175:デフォルトの名無しさん
05/12/10 17:01:26
マ板って、、、、、あそこはネタスレだろう
しっかり釣られて、まともな話をし始めてるのが業だな

>>172
お前さんのやったことは
+端子と-端子を持っただけの時の電圧を測ったのと変わらん

176:デフォルトの名無しさん
05/12/10 17:35:19
>>172
ぶっちゃけ、その線が断線しているのと同じ状態<HiZ

177:名無し募集中。。。
05/12/11 21:13:24
ハイ・インピーダンスって抵抗値が大きすぎて繋がっていない事と同義だと思うの
TTL出力は出力と出力をつないではいけないけど、3ステート出力なら
出力していないときはハイインピーダンスにしておけば大丈夫(バスの基本原理)

178:デフォルトの名無しさん
05/12/15 17:30:36
ありがとう。理系的な解り方じゃないけど、感覚的にはわかったような気が・・・(^o^)

話は変わりますけど、安いROMライタありませんか?簡単なシリアル入出力をよく頼まれる
のですが、PCしかないのでHEXを送って向こうで焼いてもらうと、つまらないタイプミスが
1,2度はあります。弁当箱は貸してもらえそうなので、ROMライタを自前で持ってれば便利そう
なのですが・・・スマートライタというのは見たことあってコンパクトでいいなと思ったのですが、
\59,800ぐらいします。

179:デフォルトの名無しさん
05/12/15 17:55:28
仕事じゃないなら秋葉でジャンクを探すとか自作するとか。
仕事なら、レンタルで借りるとか。
#処で弁当箱とは何のこと?
#それがUVEPROMの消去用の紫外線灯の入った箱のことなら蛍光灯スタンド+殺菌等でも大丈夫w

180:デフォルトの名無しさん
05/12/15 18:58:47
URLリンク(www11.plala.or.jp)
日本製で安価なのは パレット11ハンディ
windowsソフトは別売だけど URLリンク(www.tensyo.com) にある

先頭の安価なのは秋月ならもっと安価
URLリンク(akizukidenshi.com)
これの使い勝手は判らない。
もし買ったらレポートよろしく


181:デフォルトの名無しさん
05/12/15 19:01:58
殺菌灯は強力なので、カバーをつけないといけないよ。
俺は、隣の机でカバー無しで使ってたら顔の半分の皮がボロボロと・・・

182:179
05/12/15 19:10:32
机の下に入れて水虫対策とか。

私自身は机の中に入れてた。

183:デフォルトの名無しさん
05/12/15 19:21:06
8255と16550を合わせたようなLSIないですか?

184:178
05/12/15 19:33:39
皆様早速ありがとうございます。半田ごては髭剃りのニカド交換ぐらいしかできないので
自作はムリです。 弁当箱=「ターゲットのボード+電源」の箱です。ちょうどドカ弁ぐらいの
大きさなので。 27C256か27C512ぐらいしか焼かないのですが、客先のはなんかドデカイ奴
で、とても持ち出しとか考えられません。 >>180さんのは安いですね。イレーザーが意外と
安かったのも参考になります。 レポートご期待よろ。

185:名無し募集中。。。
05/12/15 21:38:20
ROMライタっていう名前じゃないけどROMも焼ける
URLリンク(aitendo.ocnk.net)

186:デフォルトの名無しさん
05/12/16 08:58:43
その弁当箱とやらを改造して
フラッシュメモリとダウンローダを乗せとく

187:デフォルトの名無しさん
05/12/17 00:17:45
>>183
昨今、そういったマルチIOのLSIはなくなっちまってるだろ
別にLSI載せるよりIOてんこ盛りのCPUを選択したほうが安いし

188:178
05/12/17 04:53:02
>>186 改造、というか作り直すときはROM周りだけじゃなくCPUから全部になると思います。
8251を4CH-->uartが4CH載ってるH8(下位シリーズ)はないので、3CHは内臓、あと1CHは
タイマで作るというのを客に提案してあります。わざわざ基盤起こすほどのシロモノでもないので
8085が秋葉で買える間は今の基盤でいくみたいです。

189:デフォルトの名無しさん
05/12/29 19:21:28
このスレマジなだけに年末居なくなるのも早いなあ。雑談の一つも出ずにパタッと無人になる

190:デフォルトの名無しさん
05/12/30 17:23:00
何が言いたいのかわからん。

191:デフォルトの名無しさん
06/01/04 18:03:34
>>189
>>190
言わんとしていることだけはなんとか読み取れる

みんなネタが豊富なマ板の組み込みスレに行っちまったんじゃないか?
ネタスレがすっかりマトモなスレになっちまってる(w

192:デフォルトの名無しさん
06/01/05 06:49:47
でもこっちの方が質問にマジレスしてくれるから頼りになります。

193:デフォルトの名無しさん
06/01/15 01:10:20
はじめまして。質問させてください。
この度、タスクを担当することになったのですが、例えばタスクAが割込み信号を受けて
処理を開始しますが、プログラムの処理中に別の割込みを受けた場合はどうなるのでしょう?
その処理が中断されて新たな割込みの処理に走ってしまうのでしょうか?
それともプライオリティにより、処理が終わるまで割込みが待たされたりするのでしょうか?


194:デフォルトの名無しさん
06/01/15 01:16:10
さーて、OSはなんだね

195:193
06/01/15 01:17:44
失礼しました。OSはiTRONっす

196:デフォルトの名無しさん
06/01/15 01:28:12
>タスクAが割込み信号を受けて処理を開始
うーん、まぁいいや。

以下、割り込みを禁止していない状態での話ね。
あと細かい話も省略。

>プログラムの処理中に別の割込みを受けた場合はどうなるのでしょう? 
>その処理が中断されて新たな割込みの処理に走ってしまうのでしょうか? 

うん。プログラムというか、タスクの実行中なら割込み処理するよ。


>それともプライオリティにより、処理が終わるまで割込みが待たされたりするのでしょうか? 
タスク実行中なら割込まれちゃうね。


197:193
06/01/15 01:42:13
>>196
レスありがとうございます

> >プログラムの処理中に別の割込みを受けた場合はどうなるのでしょう?
> >その処理が中断されて新たな割込みの処理に走ってしまうのでしょうか?
> うん。プログラムというか、タスクの実行中なら割込み処理するよ。
やはりそれまでの処理は途中で中断されてしまうのですね。

> >それともプライオリティにより、処理が終わるまで割込みが待たされたりするのでしょうか?
> タスク実行中なら割込まれちゃうね。
つまり、処理に割込まれないようにするために割込み禁止にするって事ですか?

ちなみに、やろうとしていることは、USB接続された他のPCのソフトから文字列が送られ、
その文字列毎に処理を行うものなんです。
"ABC"と叩かれたらAの処理"DEF"と叩かれたらまた別の処理をするみたいな。
ここで"ABC"の処理中に"DEF"の文字列を受け取ってしまった場合を考えていました。

行うものです。

198:193
06/01/15 01:44:23
>>197
> 行うものです。 ←ミスです^-^;

単純に割込みを禁止にしてしまうと他の割込み処理に影響しないかなぁ、など
馬鹿な頭で思ってしまったのです。



199:デフォルトの名無しさん
06/01/15 01:56:05
>>197
割込みはタスクより優先されて動くよ。

1.タスクはOSの同期オブジェクト待ちになって受信データを待つ。
2.割込み側はOSの同期オブジェクトをシグナル状態にしてタスクの待ち状態を解除して割込み処理を終了する。
3.タスクはOSによって待ちを解除されて受信したデータを取得して処理する
4.タスクは再び受信データ待ちになる。

って感じで同期するんではないかと。
同期オブジェクトについては先輩に聞いて下され。
たぶんそこが分かれば一歩前進できたといえるかと。

貴方の言うとおり、割込み禁止は他の割込みにも影響するよ。
タスク部を書く人はなるべく割込み禁止を使わないか、その期間が短くなるようなコードを
書くことを求められるだろうね。

200:デフォルトの名無しさん
06/01/15 01:57:28
普通は、
割り込み処理では、送られて来た文字列をバッファに溜め込んで、
通常処理では、バッファに溜まった文字列を解析&実行させる。

ってえのが常識ってもんだ。
割り込みを禁止にするなんて、論外。
割り込み処理を使う意味が無い。

201:193
06/01/15 02:06:18
>>199
レスありがとうございます。
同期オブジェクトですか。初めて聞いた言葉なので後で調べてみるっす!
割込み禁止の処理を使う事があったら、ご指摘の点について注意してコーディングします。

>>200
レスありがとうございます。
仰る通りですね。イメージとしては文字列をバッファに溜めて・・だと思うのですが
(まだソースコードをみていないので)、文字列をバッファに詰め込む前に、更に割込みが
あがって来てしまった場合とかを考えてしまうのです。

202:デフォルトの名無しさん
06/01/15 02:15:03
>>201
文字が送られて来る時間の間隔を計算してみれば? よっぽどマヌケなコードでも書かない限り、バッファメモリに書き出す処理が終了する方が早いでしょ?

203:デフォルトの名無しさん
06/01/15 02:21:31
>>202
すげーw

204:デフォルトの名無しさん
06/01/15 03:37:58
>>201
> 文字列をバッファに詰め込む前に、更に割込みが
> あがって来てしまった場合

そういう場合のために割り込み禁止という機能があるのよ。
割り込みハンドラ(){
 割り込み禁止
 受信データを蓄積用のバッファにコピー
 割り込み許可
 必要があれば受信フラグを立てたり、タスクを起こしたり
}
当然、割り込み禁止区間は極力短くしないとシステム全体に影響が及ぶ。

>>202のような、受信間隔なんていう不確定なものをあてにするのは、
不可解なバグの要因になるので、普通はしない。

205:デフォルトの名無しさん
06/01/15 03:44:58
>>204
おいおい、ハーウェアの通信性能以上に短い間隔にはならないんだよ?
確実に数値で計算出来る値だろうがw

206:デフォルトの名無しさん
06/01/15 03:45:40
ハードウェアだな・・・タイプミスしちまったw

207:デフォルトの名無しさん
06/01/15 03:47:33
つうか、ハードウェア割り込みに関係する所を作るのに、ハードウェアの性能とか動作タイミング計算しないでどうするの?

208:デフォルトの名無しさん
06/01/15 03:49:06
なんかよく分らないから割り込み禁止にしちゃおう って方が問題だな。

209:デフォルトの名無しさん
06/01/15 04:06:22
まあ、脳あるOS(CPU)ならハードウェア割り込みには、要求される動作速度や重要度に沿ったプライオリティーが付いてるからな。

210:デフォルトの名無しさん
06/01/15 04:10:29
>>202
そのネタ面白いね

211:デフォルトの名無しさん
06/01/15 04:11:44
>>209
ネタ?

212:デフォルトの名無しさん
06/01/15 04:12:49
>>205
ノイズの可能性は無視?

213:デフォルトの名無しさん
06/01/15 04:13:36
>>205
通信以外の割り込みは無視?

214:デフォルトの名無しさん
06/01/15 04:14:01
>>205

多重割り込みなんか関係無いよなw

もっと続けてー

215:デフォルトの名無しさん
06/01/15 04:16:05
>>208
割込みマスクの必要性をよく分かってないのは誰ですか?

216:デフォルトの名無しさん
06/01/15 04:20:44
他の割り込みが処理に要する時間と、通信割り込み内で要する処理時間を合計しても、次の通信割り込みには間に合うんだよ。
つうか、そう作る。

217:デフォルトの名無しさん
06/01/15 04:23:16
イタタタ

218:デフォルトの名無しさん
06/01/15 04:24:45
要は、割り込み処理内でダラダラと処理させないって事だな。

219:デフォルトの名無しさん
06/01/15 04:25:39
>>207>>216
そういう作り方自体は制御系としては別に間違ってないよ。
OSもないような小規模で、かつ、ハードが確実に特定できるターゲットならね。

>>193のターゲットはiTRONと言ってるんだが、
それでもそんな作り方を薦めるつもりなの?

220:デフォルトの名無しさん
06/01/15 04:28:03
>>219
OSが何であれ、そうしないと通信データ取りこぼすよ?

221:デフォルトの名無しさん
06/01/15 04:28:33
まーOSの無い小規模なシステムならそれでもいいんじゃね?

だがOS載せてる環境でタイミング依存するコードなど書くのは愚かだね

222:デフォルトの名無しさん
06/01/15 04:30:42
>>220
何のために受信バッファだのフロー制御だのがあるの?

223:デフォルトの名無しさん
06/01/15 04:32:14
ちょっとまて、
信号って言うのはハードウェア割り込みの事じゃないのか?
だから、ハードウェア限定されてる話じゃないのか??
つうか、普通ならドライバーがやってる仕事を書いてるだけなんだが???

224:デフォルトの名無しさん
06/01/15 04:32:48
ハードの動作タイミングなんかに依存してるほうがよっぽどヤバいだろ

225:デフォルトの名無しさん
06/01/15 04:33:30
>>222
だから、受信バッファに貯める処理自体の話をしてるし、フロー制御もありだよ?

226:デフォルトの名無しさん
06/01/15 04:33:51
>>223
……。
>>197を読み直したら?

227:デフォルトの名無しさん
06/01/15 04:34:40
OS載っているのにタイミング「だけ」で何とかしようという輩がいるとは…


228:デフォルトの名無しさん
06/01/15 04:36:46
割り込み処理内ではバッファに貯めるだけとか極力少ない最低限の処理をして、もうひとつの処理でゆっくり実装するって話の。
特に、クリティカルな方の話なのになぁ・・・。

229:デフォルトの名無しさん
06/01/15 04:39:11
なあ、普通は、通信割り込み内ではバッファに書き込むとか、ハードウェア制御だけとかするんだろ?
この部分はどんなOS乗ってようが、ハードウェア依存だし、タイミングの話からは逃れられないだろ。

230:デフォルトの名無しさん
06/01/15 04:44:34
そんなもんは必要条件

なぜか割込み不要と言い切っているところがワロス

231:デフォルトの名無しさん
06/01/15 04:45:36
おまえら、割り込み処理内で"ABC"や"DEF"の解析まで全部やる気だった? バカだろ?

232:デフォルトの名無しさん
06/01/15 04:46:22
バカが湧きました

233:デフォルトの名無しさん
06/01/15 04:47:58
>>230
割り込み不要?
そんな読解力無い奴相手だったのか??

234:デフォルトの名無しさん
06/01/15 04:49:33
>なんかよく分らないから割り込み禁止にしちゃおう って方が問題だな。 

おーい名無しばかりでよくわからんが、これ言った奴なんか言えよw


235:デフォルトの名無しさん
06/01/15 04:50:13
>>233
喪前さん以外(多分漏れ以外に2人くらいいそうだが)はそう読んでるぞ。
書き方の問題じゃないか?

236:デフォルトの名無しさん
06/01/15 04:52:05
読解力ではなく書き手のry

237:デフォルトの名無しさん
06/01/15 04:54:42
>>234
俺のf読解力ではその一言を書いた奴が
一番分かってないように見えるね。

238:デフォルトの名無しさん
06/01/15 04:55:40
>>234
俺だ。
処理自体を吟味もせず、割り込み禁止すれば解決! みたいな考えは、危険だろ。
何故禁止にするのか、禁止期間は他の割り込みに影響が出ないか吟味した上で、最小限度の禁止区域を設ける。
そういうプロセスで考えないと、割り込み内で解析までやって頭から最後まで禁止にされちゃあ、かなわん。

239:デフォルトの名無しさん
06/01/15 04:56:50
うh

240:デフォルトの名無しさん
06/01/15 05:00:05
おーい、>>200 に書いた奴も出て来いよ


241:デフォルトの名無しさん
06/01/15 05:00:52
割り込みハンドラではデータコピー処理だけして、解析はタスク側だけでやる、
という前提の上で、割り込みハンドラと割り込み禁止の問題を話してる
・・・んじゃないのか?

242:デフォルトの名無しさん
06/01/15 05:02:09
>>240
200も割り込み禁止にすればどんな長い処理でも出来るって思ってる節がある事への反論じゃね?

243:デフォルトの名無しさん
06/01/15 05:09:30
>>242
そう読める?

反論ということならば、>>199に対してだろうが
>>199が「割り込み禁止にすればどんな長い処理でも出来るって思ってる」節がある
ようには見えないんだが。

244:デフォルトの名無しさん
06/01/15 05:11:02
>>242
>>200は「タスクで割り込み禁止するなんて論外」と言ってるだけで、
冒頭で「解析は通常処理(タスク)で」とも言ってるから、
そういう風には思ってなさそうだが。


245:デフォルトの名無しさん
06/01/15 05:12:46
>>243
>>199じゃなくて、元発言に対してだろ?

246:デフォルトの名無しさん
06/01/15 05:13:26
>>200書いた奴でてこないのか~

247:デフォルトの名無しさん
06/01/15 05:17:20
>>245
あー、そっちが自然だね
レス先書かない奴がいるとワケワカラン


248:デフォルトの名無しさん
06/01/15 05:22:10
まあ、>>200が言葉足らずだった事は認める。
誰に対して言ってるのかは、勘違いしないでくれよ。
>>199>>200は1分23秒差だ。
少し考える時間を含めれば、到底無理だ。

249:デフォルトの名無しさん
06/01/15 05:22:24
普通とか常識とか使って断言口調で書く奴と話がしたかったなぁw

寝る!

250:デフォルトの名無しさん
06/01/15 05:28:19
>>249
多分、2人だけだったんじゃねえの? ここにいたの。

251:デフォルトの名無しさん
06/01/15 05:30:58
俺も寝ますよ?

252:デフォルトの名無しさん
06/01/15 05:31:42
いや、見てはいたが余りにアホ臭いので放置しておいた。

253:デフォルトの名無しさん
06/01/15 05:33:23
おまいら、分身の術上手いですね?

254:デフォルトの名無しさん
06/01/15 05:37:35
ネタはさておいて久しぶりに盛り上がったな

255:デフォルトの名無しさん
06/01/15 05:40:40
ですなぁ

ム板でもこのスレはやや年齢高いのか、荒れそうで荒れないような

256:デフォルトの名無しさん
06/01/15 08:39:52
まあ、みんな新人の同じようなミスと教育に疲れきっていますから。
新人のレベルによって、
 「判らんのなら割り込み禁止しろ!」といってみたり
 「判らんからといって割り込み禁止するな!」と言ってみたり

257:名無し募集中。。。
06/01/15 10:07:20
あれ?祭りだった?

258:デフォルトの名無しさん
06/01/15 13:02:26
これで「荒れてない」って感覚は相当ヤバいというか麻痺してると思うけどね。
海外の掲示板よく覗くが、こういう技術系の内容の板で
こんな幼稚なやり取りをやってるところは見たことがない。

正直、いい歳した大人がこんな幼稚なことやってる国の将来が明るいはずがないと思う。
将来っていうか今でも十分ダメだけどね。

259:デフォルトの名無しさん
06/01/15 13:50:07
あれてないよ

260:デフォルトの名無しさん
06/01/15 13:52:14
ここは2ちゃんだということを忘れてるなw

261:デフォルトの名無しさん
06/01/15 14:04:19
幼稚だね本当。
赤信号みんなで渡れば怖くない、と。

なるほど、日本人を海に飛び込ませるには「もうみんな飛び込みましたよ」と
言ってやればいいわけだw

ここがどこか、ではなく、どこであろうと自分自身が何をするがが問題だろうが。
こういう劣等民族は滅ればいいと思うね。

262:デフォルトの名無しさん
06/01/15 14:12:57
そういうおまいは、ここが2ちゃんであろうとなかろうと、
そういう煽り文章を書くんだなwwww

263:デフォルトの名無しさん
06/01/15 14:29:08
制御系やってる人って頭いいよね

264:デフォルトの名無しさん
06/01/15 15:24:04
結論見えてから吠えてる方がいますね

265:デフォルトの名無しさん
06/01/15 18:57:41
組込み系の参考書でよいものがあったら教えてください。
イケメン技術者の方々

266:俺も含めて大漁だな、オイ。(w
06/01/15 22:05:51
>>265
一言で制御系といっても範囲が広いから、どういう方面か
ぐらい書いてね。
方面が良くわからんと言うレベルなら、とりあえず「イン
ターフェース」とかの雑誌を買って読んでみそ。

267:デフォルトの名無しさん
06/01/15 22:39:48
>>266
アリガト!(´▽`)イケメン技術者!!

268:デフォルトの名無しさん
06/01/19 00:01:04
タスクの処理で

while(1)

 なんか信号を受け取る関数

 受け取った信号毎にswitchで処理
 case A:
  mallocする
  なんか処理
  freeする
  break;
 case そのた信号毎の処理:
  break;


みたいな処理をみかけたのですが、この場合ってmallocしてfreeするまでに割込みが
入ってきた場合、ヒープをfreeできない恐れがありますよね?

269:デフォルトの名無しさん
06/01/19 00:07:34
なんでですか?

270:デフォルトの名無しさん
06/01/19 00:21:54
恐ろしい処理してるなおい。

メイン処理がまさにmallocの最中に、割り込み内でmalloc呼び出しするのかよ!!!!!!!!!

271:デフォルトの名無しさん
06/01/19 00:51:32
>>268
OSは?

一般的な定義の上でなら、
タスクの処理フローに割り込みは影響を与えないから
free()できないなんてことにはならない。

割り込まれたらいきなり「なんか信号を受け取る関数」に
処理が飛んでいくようなOSであれば、そういうこともあるかもね。


272:デフォルトの名無しさん
06/01/19 00:58:54
>>271
OSはよくわかんねス。一昨日から客先なもので。
携帯なんですけど。

割込みとかシグナル?とかよく分からんのですけど、なんか良い書籍ありますかね?
制御系ってムズイっす。

273:デフォルトの名無しさん
06/01/19 01:20:33
再入可能か不可かって話か?

274:デフォルトの名無しさん
06/01/19 01:38:20
>>272
携帯だとiTRONか、malloc()とかもろにあるならRTLinuxとかかな。
とりあえず、もすこし知識付けないと、そもそも仕事にならんべ。

制御系の本はふつーのパソコン向けのコーナーよりも、
電子・電気系の棚にある可能性高いからそのへんをチェック。


275:デフォルトの名無しさん
06/01/19 01:38:40
>>268
>入ってきた場合、ヒープをfreeできない恐れがありますよね?
なんでそう思うの?

"なんか信号を受け取る関数”の箇所で割り込みをチェックしてるみたいだから
リエントラントにならないから大丈夫じゃねーの?




と、詳細も知らないくせに答えてみるテスト。

276:デフォルトの名無しさん
06/01/19 01:54:42
>>273
初めて聞いた言葉でよく分からないス。。

>>274
ありがとございやす。もうちと知識つけたいです。
本屋にあるかどうか。。かなり田舎なので(´Д⊂

>>275
割込みが入るとそちらが優先され処理が中断されると聞いて、
mallocしてからfreeするまでに割込みが上がったらそこで処理が中断される??
と思ったッス。。。

277:デフォルトの名無しさん
06/01/19 02:03:01
今思ったッス。。割込みで処理が中断っていうのはもしかしてCPU割り当てが割込み処理
へと移ったって事なんすか、、?

ワカンネ!!ムッキーヽ(`Д´)ノ

制御系の人達はマジ尊敬します(´Д⊂

278:デフォルトの名無しさん
06/01/19 02:52:38
>>277
タスクの処理    OSの処理        割り込み処理
-------------+------------------+------------------
タスク動作中
   ↓
割り込み発生 →タスクの状態を保存→割り込み処理開始
                             ↓
タスク動作再開←タスクの状態に戻す←割り込み処理終了
   ↓
タスク終了

制御系に限らず、マルチタスクOSの一般的な動作。
割り込みを契機に、タスクの状態を保存・復帰するのがミソ。
複数のタスク動作の切り替えも基本的には同じこと。


279:デフォルトの名無しさん
06/01/19 06:44:03
割り込みによって中断(と言っていいかどうか微妙)された方のタスクは
通常は割り込まれたことに気付かないという認識であってますか?

280:デフォルトの名無しさん
06/01/19 07:09:48
時計見て時間が経ってたら気づくでしょうよ。

気づく気づかないじゃなくて、
割り込まれる前の場所にちゃんと帰ってくるってこと。

281:デフォルトの名無しさん
06/01/19 12:38:36
割り込みが難しいと思ったことはないなあ。
まあアセンブラでコード書けるようなすごい単純な機械しか扱ってないからだろうけど。

.NETとかのマルチスレッドのコードの方がよほど難しく感じる。
なんていうか、最終的な実際の動作の具体的なイメージがつかみにくいっていう
抽象化の暗黒面が効いてくる感じがする。

282:デフォルトの名無しさん
06/01/19 23:06:51
>>281
非リアルタイム環境だとスケジューリングが決定的じゃないから
目的の現象が必ずしも発生するとは限らないしね。

283:デフォルトの名無しさん
06/01/20 00:07:02
>>278-282
ありがとうございます。なんとなく分かってきたっス。
例えば、タスク内でいじっているバッファなんかを、割込み処理内で
いじったりするのは良くないっすね?


284:デフォルトの名無しさん
06/01/20 00:21:03
>>283
ヒント: 排他制御

285:デフォルトの名無しさん
06/01/20 05:02:14
>>283 タスクと割り込みとでは共通の変数は極力持たないようにするのが一般的。
どうしても必要な場合は、タスク側が最小限の時間に限って割り込み禁止を使う。

典型的な例ね:受信文字カウンタnを、受信割込み処理で++、タスクが受信文字を取り出したら
--する、なんて状況で、タスクがn--するときに割込みが起きたとする。
n--ってのはreg<--n, reg--, reg-->nという機械語になるが、この2つのカンマのところで
割り込むと、レジスタ保存、割込み処理でreg<--n, reg++, reg-->nして、割り込んだ所へ戻る。
その後3番目のreg-->nが実行されると、割り込みで++した結果が失われる。これを避ける為に
タスク側は、割り込み禁止;n--;割込み許可;のように書く。この位なら待たせても割り込み
処理の遅れは許容できる。あまり長い処理を割り込み禁止で実行したりするのは顰蹙もの。
=割込み処理というのは、例えば9.6Kbpsの受信なら1mS以上遅れてはならないとかの
物理的制約があるのがふつうだから。

286:デフォルトの名無しさん
06/01/20 08:31:04
32bitCPUで64bitの共有変数をタスク側で読み込み中に割り込み、
割り込み側が++してたまたま下位32bitが0で上位32bitに繰り上がり。
タスク側の読み取り値が出鱈目になると。

BIGendianかLITTLEendianかで変わってくるが。


287:デフォルトの名無しさん
06/01/23 01:14:30
>>285-286
レスありがとうございます!

ちょっと難しいっすね。ソース上1つの処理に見えても
アセンブラでは複数の処理なんすね。
reg<--n, reg--, reg-->nとか32bitCPUで64bitの共有変数
の話はまだ勉強不足で分からないですが(´Д⊂

288:デフォルトの名無しさん
06/01/23 01:28:29
アセンブラわからないで割り込み制御のコード書くなよw

289:デフォルトの名無しさん
06/01/23 01:40:26
>>288
それが、まだ書いたことないんすよ・・・
今回初めてやることになったんですがプレッシャーです。。

290:デフォルトの名無しさん
06/01/23 01:48:05
>>289
新人さんでつか?

291:デフォルトの名無しさん
06/01/23 08:58:49
>>289 cで書いてもオブジェクトコードリストは必ず取ってね。それを見るとずいぶん勉強になるよ。

292:デフォルトの名無しさん
06/01/23 22:40:12
最近の最適化コンパイラは、(初心者には) あっと驚
くような最適化する時があるから、オブジェクトコー
ドリスト (*.cod のことだよね。) みる時は、最適
化を抑止しておいた方がいいかも。

293:デフォルトの名無しさん
06/01/24 01:51:05
リリース版のオブジェクトコードリスト見ないでどうするよ?
最後にゃあそこが勝負の分かれ目になる事もあるからなぁ。

294:デフォルトの名無しさん
06/01/24 05:22:23
ARMプロセッサだと、
演算やロードと同時にビットシフトとか、
命令ごとに条件実行やフラグアップデートの有無を指定できるから、
コンパイラやコンパイルの条件によって、だいぶ出力されるコードちがうよね
条件実行命令多用して、実行時間が常に一定で最適化するか、
普通に分岐を使うかわりに、条件によっては実行速度が最速になる方をとるか、
コードサイズをとるか・・・

295:デフォルトの名無しさん
06/01/24 06:50:49
割り込みの話じゃなかったの?

296:わざわざ (初心者には) って、断ってあるにもかかわらず…。
06/01/24 21:51:24
>>293
俺はさぁ、最適化したオブジェクトコードでも見れるんだせぃ。

って言う自慢か?

297:デフォルトの名無しさん
06/01/24 23:04:56
そんなの自慢にもなってないから違うだろ。

298:デフォルトの名無しさん
06/01/24 23:41:26
そうか、なんとなく二行目が得意げに見えたから
そう思ったけど、違うのか。

じゃ、まったく意味不明だな。

299:デフォルトの名無しさん
06/01/25 01:07:15
>>298
リリース版で出るバグがあった場合、コンパイルスイッチ変えて追っかけてもデバッグの意味が合いって事だろ?

300:デフォルトの名無しさん
06/01/25 03:23:34
>>299
あとまあ再現性がなく、お客さんのとこで一ヶ月に一回あるかないかのクラッシュで手がかりは
レジスタダンプとスタックトレースだけとか。

301:デフォルトの名無しさん
06/01/25 08:12:02
まあそういうケースでは別の場所に原因があって参考にならないのな。
メモリダンプのが有効だがセキュリティ上問題ある死ね。

302:デフォルトの名無しさん
06/01/25 09:27:44
うちの会社では、
最適化かけると問題が起こるからと言って、
最適化せずに外に出しちゃってるyp!・・・orz

303:デフォルトの名無しさん
06/01/25 09:32:17
普通最適化かけないけど?

304:デフォルトの名無しさん
06/01/25 16:14:07
チャレンジャーな俺は最適化レベル最高にして、外に出した。

305:デフォルトの名無しさん
06/01/25 19:51:05
>>290さん
まったくの新人ではないっす。

>>291-292さん
ありがとうございます。色々勉強になります。
今までレス下さった方々にも感謝m(_ _)m

306:デフォルトの名無しさん
06/01/26 18:23:37
最適化レベル最高にしないとROMに入りきらない漏れは激ヤバです。
仕様追加きたらもうだめポ。


307:デフォルトの名無しさん
06/01/27 00:46:49
>>306
それは何か間違ってる。

308:デフォルトの名無しさん
06/01/27 06:48:43
ASMで書けば半分になるぞ。

309:デフォルトの名無しさん
06/01/27 06:50:50
>>306
圧縮して起動時にRAMに展開する。 

310:デフォルトの名無しさん
06/01/27 08:13:51
RISC アセンブラ手書きは割り込みハンドラでやって器が狂いそうだったのでもうイヤっす。
ROM256KiB/RAM12KiB のワンチップdeどうやって...


311:デフォルトの名無しさん
06/01/27 08:30:02
>>310
データシートですら、ほとんどが KB = 1024 で書かれてるのに、
律儀に KiB 使ってるやつ初めて見た

312:デフォルトの名無しさん
06/01/27 18:03:32
その辺にもジェネレーションギャップ感じるなあ。
俺なんかASMでコンパイラぶちのめすのが快感なんだが。 KiBって10のn乗表現なの?

313:デフォルトの名無しさん
06/01/27 20:00:39
riscって書いてるのが老眼で読めないのかな
いや老眼じゃなくて痴呆症かもしれないが

314:デフォルトの名無しさん
06/01/27 20:45:47
シグナルってナニ?タスクにどばっとシグナルがくるとどうなる?


315:デフォルトの名無しさん
06/01/28 00:32:54
単独のk,m,gは他の単位系にならって10^n。
Ki,Mi,Giを新設して2^nに割り振ることにしよう、という話がどこかで出ていた。

316:デフォルトの名無しさん
06/01/28 01:03:34
どっかに、ってそんなのPCのHDDのスペック表示の問題以外で聞いたことないけど

317:デフォルトの名無しさん
06/01/28 01:06:01
メガバイトの時代ならそうそう表記の違いによる混乱は少ないが、ギガ超の時代、ちょっとのけぞるほどの差があるからなぁ・・・

318:デフォルトの名無しさん
06/01/28 02:48:49
1Ki=1024=1K+24
1Mi=1048576=1M+48K+576
1Gi=1073741824=1G+73M+741K+824
1Ti=1099511627776=1T+99G+511M+627K+776

うーむ、確かに1Tiとなると1割近くも違うのか。
つーか、99G……

319:デフォルトの名無しさん
06/01/28 09:17:33
MLで書いた制御系のプログラムを教えて

320:デフォルトの名無しさん
06/01/28 11:36:24
>>319
何が知りたいのかはっきり言えよ。
具体的な何かの制御のアルゴリズムが知りたいのか、実装を見たいのか。
具体的でなければスルーされるぞ。

321:デフォルトの名無しさん
06/01/28 12:01:51
技術系メーリングリストでプログラムを書いたことがありますか?

322:デフォルトの名無しさん
06/01/28 12:39:05
MLってひょっとしてMachine Language?

323:デフォルトの名無しさん
06/01/28 12:42:01
MLで書かれた制御系のプログラムで
1:実際に使われているもの
2:プロトタイプでも公開されているもの
3:こんなの作ってみましたみたいなもの
どれでもいいのでみせてください、
MLだとやっぱり作りにくいんですか?
もしそうだとしたら、どういう部分で作りにくくなるのですか?
そういうことが知りたいです。
Cとか使えないので。

324:デフォルトの名無しさん
06/01/28 12:52:00
>>323
I/Oや割り込みなど諸々のハードウェア用の機能が用意されているMLがあったとしたら、
アルゴリズム的にはCでもMLでも同じなので、MLでも十分に作れる。

325:デフォルトの名無しさん
06/01/28 13:04:26
>諸々のハードウェア用の機能
ってたとえばどんな機能なのでしょうか、
組み込みとかあまり詳しくないので。

あと、制御系のアルゴリズムってどんなものが多いのでしょうか。
関数ですきっとかけないのもが多いとか.あるんですか?


326:デフォルトの名無しさん
06/01/28 13:05:17
マシン語っていわないとオジサンわかんないよ

327:ごめん
06/01/28 13:05:22
あ、I/Oや割り込みなどがハードウエア用の機能ってことか。


328:デフォルトの名無しさん
06/01/28 13:05:45
まず「ML」が何かを定義する必要があるとは思うが、
いずれにしても>>319とは仕事したくないな。

329:デフォルトの名無しさん
06/01/28 13:07:15
MLはI/Oの機能はあるけど、
ハードウエア割り込みの機能ってなんですか?
システムコールを発動させるプリミティブみたいなものですか?


330:デフォルトの名無しさん
06/01/28 13:08:19
MLは Meta LanguageのMLです。

331:デフォルトの名無しさん
06/01/28 13:09:17
>>328
確かにね。MLはMeta Languageの略だと思う。
SMLの仕様に乗っ取るのが正しいと思うけど、そこまで正確にする必要もないと思う。
何しろ、制御系なんだから。

332:デフォルトの名無しさん
06/01/28 13:11:36
>>319
>MLで書いた制御系のプログラムを教えて

(マイナーなプロセッサの)エミュレータとかなら、
腐るほどありそうだがな。


333:デフォルトの名無しさん
06/01/28 19:57:29
エミュレータというだけなら制御系じゃないだろ?

334:デフォルトの名無しさん
06/01/28 22:03:02
制御系の人にお願い!!
重力制御ユニットを作ってください!!!!!!!!!!!!!!
あと姿勢制御ユニットも

335:デフォルトの名無しさん
06/01/28 22:18:06
なんかエンジンの制御器とエンジン本体の区別がついてない奴がいるなw
っていうか、ここはウンモ星じゃないんだがw


336:デフォルトの名無しさん
06/01/30 01:19:21
割込みとシグナルってナニが違うんでっしょう?

337:デフォルトの名無しさん
06/01/30 01:31:22
>>336
シグナルはスケジューラが処理する
割り込みはマジで割り込む

ってのが建前だったと思う

338:デフォルトの名無しさん
06/01/30 04:28:15
割り込みだって何レベルもあって、優先度によるスケジューリングはされるから、
スケジューラに相当するものがハードかソフトか、って考えればいいんじゃない?

339:デフォルトの名無しさん
06/01/30 04:47:58
シグナルってUNIXのアレの話?

340:デフォルトの名無しさん
06/01/30 06:15:16
割り込みの優先度なんて
 割り込み中に別の割り込みを許可するかどうか程度
 CPUによっては単に割り込み禁止中に同時に割り込みがあった時にどっちを先に実行するか程度の事もあるし

 スケジュールというほどじゃないかもな

341:デフォルトの名無しさん
06/01/30 12:21:24
>>315
新設、っていつの話だと(ry
URLリンク(physics.nist.gov)
まあ、誰も使っちゃいないけどな。

342:デフォルトの名無しさん
06/01/31 15:48:50
>>315-318

1,000換算と1,024換算が混在するコンピュータの世界
URLリンク(pc.watch.impress.co.jp)

昔話ですが...


343:デフォルトの名無しさん
06/01/31 17:50:20
>>342
その記事書いた奴、昔はHDDもベンダによって
バラバラだったという事も知らないのか…
通信速度 [bps] も 10進数ベースだし
16進ベースなのはメモリと OS 上の表記だけだと言うのに。

344:デフォルトの名無しさん
06/02/01 04:46:06
ちょっと質問させてください

ノートパソコンでデータロガーのようなものを作って納めました。
RS232Cで機器を接続して監視を行います。
数秒間隔でポーリングして24時間監視しているのですが
この通信ログをHDDに落としています。
このHDDが、1年持たずにクラッシュします。
こういった、用途では市販のPCでは荷が重たいのでしょうかね?


345:デフォルトの名無しさん
06/02/01 06:21:48
設置環境が悪いんだろ。
夏場に灼熱地獄になったり、絶えず振動があったり、埃っぽかったり。

346:デフォルトの名無しさん
06/02/01 07:13:59
HDDの動作保障時間って、2.5インチで5000時間程度じゃなかったっけ?
PCやカーナビなんかだと、5000時間使い切る前に、買い替えるから、それでおkらしい。
で、もちろん、周囲の温度が高いと、どんどん耐久時間は減る。

普通のPC用の3.5インチHDDだと、1万時間以上は持つらしいけど、
(詳しい時間は忘れたので、HDDのメーカーのデータシート探してチェックしたほうがいいが)
それでも、連続動作で保障できるのは、1年とちょっとくらいじゃない?

347:デフォルトの名無しさん
06/02/01 08:26:17
え~(*o*)俺XPパソコン5年ぐらいつけっぱだったけど・・・こわ~
そういう使い方するなら、省電力モードになるときにHDDも止めるようにしたほうがいいですか?

348:デフォルトの名無しさん
06/02/01 08:38:49
電波の強さを言うのに、ワットとデシベルとを使うんですけど、どういう違いなんでしょう?

349:デフォルトの名無しさん
06/02/01 09:06:58
>>348
ワット(W)は電力の単位、デシベル(dB)は対数を表す無名単位。
従って、10デシベルの電力と言うのは意味がない表現。
恐らくdBmのことだと思うが、それならば1mW=0dBmだ。

350:デフォルトの名無しさん
06/02/01 09:10:35
現場はアセンブリばっか?

351:デフォルトの名無しさん
06/02/01 09:52:20
>>347
長年つけっぱなしで、ある日一度電源を落とすと、
次に電源を入れてもHDDは二度と目を覚ましませんでした、
という事もある。


352:デフォルトの名無しさん
06/02/01 09:54:02
>>344
すでに検討したのかもしれないが、
フラッシュメモリも考えてみたほうがよいのでは。


353:デフォルトの名無しさん
06/02/01 10:14:18
絶えず書き換えをするならフラッシュの寿命の方が注意が必要だね

354:デフォルトの名無しさん
06/02/01 10:55:37
>>344
HDDに落とす頻度を下げればいいんだよ
普段はHDD止めといて 数秒に1回だったのを
「美しき野獣」でグーグルして最初のページを
メモリにためて10分に1回にまとめれば
寿命は100倍アップだろ


355:デフォルトの名無しさん
06/02/01 11:00:04
>>350
最近はそうとも限らない。C言語がメジャーでしょう。

>>344
基本的にノートパソコンって24時間使いっぱなしは想定してない。
サーバとして設計した据え置き型を検討すべきと思う。

356:348
06/02/01 12:26:59
>>349 そうです、dBmでした。ということは、1mW~数百Wの電力を表現するのに、対数を
使えば3.0dBm=1ワット、4.0dBm=10ワット、みたいに表現するわけですね。
あ、基底は10でいいですか?

357:デフォルトの名無しさん
06/02/01 18:00:07
>>353
んだな。
通常のNAND型フラッシュの書き換え寿命が50万回
1分1回の書き込みだと、1年で525,600回
上書きは無理だし、追加書き込みでも、
FATやサイズなんかは更新されるだろうから、
1時間に1回まとめて書き出すとかにしないと辛いね

358:デフォルトの名無しさん
06/02/01 18:56:40
>>356
ググればわかると思うんだけど。。
この世界(に限らないけど)、問題解決能力のない人間そのものが「問題」だよ。

っていうか、>>349の説明が悪いと思うんだけど
電気の世界でデシベルっていったらエネルギーの次元の値の比の常用対数を10倍した
値のことだよ。

359:デフォルトの名無しさん
06/02/01 23:40:55
>>344
重たいです

>>348
つまり、こういうこと
 P[dBm]=10*log(E[mW]/1[mW])
電力を1mWに対する比で表現した値
底はTextでは書き辛いのでこの場合のlogは常用対数と思ってくれ

なので、1W=30dBm, 10W=40dBm
 でもdBmはmW単位の世界じゃないと便利でもないので
あまり使わんと思う



360:デフォルトの名無しさん
06/02/01 23:57:55
誤解を招かないように記述することが要求される一方で
誤解の無いように注意して理解することも要求される。

『両方』やらなくっちゃあならないってのが

361:348
06/02/02 06:13:02
>>359 ありがとうございます。パラボラのアッティネータに7bitでdBm単位で出すってのを
よくやるんですよね。短波のほうだとワットが多いんですけど。
球面状にまきちらすのと違って、指向性の装置だと小さな電力でいいんですね。

362:デフォルトの名無しさん
06/02/02 08:02:38
>>344
ノートパソコンで蓋をしめたまま運用していませんか?
自分の経験では、蓋をしめたままだと、
熱が篭ってHDDの寿命が短くなるようです。
蓋をあけてた状態だと、一年以上確実に持つようになりました。

363:デフォルトの名無しさん
06/02/02 23:22:14
フタを開けると負担が軽くなるんだな

364:デフォルトの名無しさん
06/02/03 08:19:33
放熱の問題だよ。

365:デフォルトの名無しさん
06/02/03 08:21:19
蓋を閉めた状態で、スクリーンセイバーが動いてたって落ちなら大笑い。

366:デフォルトの名無しさん
06/02/03 10:51:35
>>362
>ノートパソコンで蓋をしめたまま
それはいくらなんでも非常識というか、想像力が足りないというか…

367:デフォルトの名無しさん
06/02/03 11:57:15
>>366
常識的で想像力がある意見を聞かせて。
ぜひ!!

368:デフォルトの名無しさん
06/02/03 17:45:03
>>367
たこ焼き屋で10個入りパックを買ったんだ
家に帰って開けてみると9個しかない
よく見ると、1つ蓋にくっ付いていたんだ

次の日、家電屋でノートパソコンを買ったんだ
家に帰って開けてみると

369:367
06/02/03 18:02:53
>>368
まさか、キーボードのキーがいくつか無くなっていて、
よく見るとキーが蓋にくっ付いていたのか?

370:344
06/02/04 10:20:44
遅くなりました、ご回答ありがとうございます
>>345
クリーンルームです
>>346
50万時間とかそんなだったように思います
>>362
蓋が関係するのははじめて聞きました、ちょっと検討してみます。

371:デフォルトの名無しさん
06/02/04 15:15:27
ノーパソチョコ販売しました。

372:デフォルトの名無しさん
06/02/04 17:25:03
>>370
50万時間も持つわけ無いだろ
1年=8760時間だから、50年以上だぞw
フラッシュROMの書き換え回数50万回と勘違いしてないか?

373:デフォルトの名無しさん
06/02/04 22:25:11
MTBFはそれくらいあるHDDが多いよ。
統計的なものなので、理想的な環境なら、50台あったら1年に1つづつ
壊れていく、って意味の方が近いけど。

374:デフォルトの名無しさん
06/02/04 23:06:17
MTBFの意味しってるのかなw

375:デフォルトの名無しさん
06/02/06 00:39:50
マウンテン(MT)バイク(B)フォォォォォォォー!!(F)

376:デフォルトの名無しさん
06/02/06 01:51:37
よかった書かなくて

マジでまったく同じこと考えてたけど
こうして他人が書いたのを見ると
アホ丸出しだ

377:デフォルトの名無しさん
06/02/06 13:07:20
Mean Time to Brother Fucker

378:デフォルトの名無しさん
06/02/06 14:39:16
MTBF: Mean Time Between Fools

平均バカ間隔

このスレにバカが現れる平均間隔。
最後に現れたのは、2006/2/4 22:25:11 (>>373)

379:344
06/02/06 17:42:06
少なくとも24時間稼動は考えられていないということみたいですね
では、どう考えたらよいのでしょうね?

MTBFが120万時間のものもあるようですが、その動作条件みたいなものって
なにか、規格があるんでしょうかね?
そして、それを24時間稼動にした場合の計算方法など、
なにか参考になるものがありましたら教えてください


380:デフォルトの名無しさん
06/02/06 19:36:17
>>376
同じ事考えてた時点でアウトだろ(笑

381:デフォルトの名無しさん
06/02/06 19:38:41
いや、そこで踏みとどまれるか、書いてしまうかが、時に人生を大きく左右する事になるのさ。

382:デフォルトの名無しさん
06/02/06 20:33:28
>>379
よく知らないのに偉そうにレスしてみる。
それって統計の問題じゃないの?
ということは、平均値だけじゃ何もいえないと思う。
分散だかなんかの値がわからないとダメでしょう。

それらがわかれば、x時間以内に故障する確率はy%、ってのが計算できるんだったような。。

ゴメンやっぱり若いうちにちゃんと基礎的な学問習得しとかないとダメだなw

383:デフォルトの名無しさん
06/02/06 21:31:39
>>379
これを見ろ
URLリンク(sonic64.com)

384:デフォルトの名無しさん
06/02/06 21:34:03
>>379
あと、これもだ。
URLリンク(ema.fsr.jp)

385:デフォルトの名無しさん
06/02/07 05:27:30
>>379
それって単発もの?
だとしたら、故障確率で無難なところを見積もっておけばいいのか。
昔、俺がやってたのは量産物で、動作期間を保障しなきゃいけなかったから、
HDDメーカーが保障している5000時間てのを元にしていたんだが・・・。
消耗品として、通常の使用頻度で3年に1度は交換してくれってことにしていた。

386:デフォルトの名無しさん
06/02/08 09:04:53
心配ならRAIDにしとけ

387:デフォルトの名無しさん
06/02/08 11:52:28
今なら USB接続RAIDもあるねノートパソコン買える値段だけど

というか書込時に定期的に外付けUSBにコピーするようにしたら、まあ問題ないんじゃないの?

388:デフォルトの名無しさん
06/02/08 23:28:49
流れぶった切って悪いが、久しぶりに書店で資料漁ってたら
↓なのみつけた。 何号保つと思う?

URLリンク(www.gihyo.co.jp)

389:344
06/02/09 04:29:55
>>383, >>384
どうもありがとうございます
推定故障率3%とでました。

が、12台中3台が1年以内に壊れました
室温は25℃です。

この「故障率推定」には、稼働率のパラメータがないようですね。

>>386
RAIDなら壊れませんか?
逆に、HDDのユニットの故障率は上がるように思いますが。

390:デフォルトの名無しさん
06/02/09 04:40:38
>>389
室温≠使用温度
使用温度はHDDの周囲温度だから、もっと高いはず
ノートPCを5℃~40℃に置いたときのHDD周囲の温度を
熱電対でも突っ込んで測ってみるがよろし
長く使ってるとほこりなんかで、放熱効率が悪くなったりするかもよ

391:デフォルトの名無しさん
06/02/09 11:50:17
>>388
LEGO MindStorms買ってからそれ買った
H8で レゴが動くってのが楽しい
仕事してるようには見えないだろうな
MindStormsは秋に新型が出るらしい


392:デフォルトの名無しさん
06/02/09 11:56:02
>>389
RAID-1 複数のHDDでミラーリングして
HDDが故障してもシステムとしては機能するって仕組みです
ノート型PCでは難しいかもしれないけど

現場はHDDなしのシステムにしてネットワーク経由でデータベースに
投げてもいいじゃ?

393:344
06/02/09 13:08:07
>>390
クリーンルームで、室温は一定で、空気は常に循環されていますし
1年でたまるような埃はありません
それでも、HDD自体の温度は上がっているんでしょうね

>>392
もちろんわかります>RAID
確かにデータは壊れないでしょうが、HDDの故障率はあがりますよね
結局、メンテに手間がかかってしまうし、お客から「また壊れたのか」と言われること必至
ログ機能なので、ネットワーク経由にした場合、ネットワークに障害が発生したら、ログが残らないです

すくなくとも、何らかの方法で、HDDのアクセス頻度をさげるしかないようですね

394:デフォルトの名無しさん
06/02/09 13:36:53
>>393
HDDの故障率は変化ないだろうけど、故障件数は増えるね
でも、システムが停止しなければ客は満足だと思うけどなぁ

HDDなしにする場合、フラッシュメモリ等のストレージに
一週間分くらい保存しとけばいいと思う


395:344
06/02/09 15:22:24
>>394
そうですね、HDDの故障率ではなく、システムの故障率が上がる
メンテ頻度は増えるでしょうね
その度に、飛行機でサービスを行かせるのでは、まったく満足しないですねー
なにか、方法を考えてみます

396:デフォルトの名無しさん
06/02/09 16:40:27
>>395
納品先企業の地元で、メンテ要員雇うとか。
地元の高卒の兄ちゃんでも雇えば地元からも感謝されるよ。

つーか、CR内で安定なLANが使えないってどんな糞CRだよ。

397:デフォルトの名無しさん
06/02/09 23:56:11
>>393
結局は「また壊れたのか!、また余計な金がかかる!」
ってのが不満の原因なんだろ?

もう面倒くせーから、小型のデスクトップにして↓でも使っとけ
URLリンク(www.gigabyte.co.jp)

2台も使えば、OSと定期的なバックアップまでの
データ保持ぐらい出来るだろ

398:デフォルトの名無しさん
06/02/10 00:35:32
>>392
> ノート型PCでは難しいかもしれないけど

市販されてる(されてた?)
URLリンク(pr.fujitsu.com)

>>395
リザーブディクス 10個位つけとけばいいんじゃないか?

つーか、そこまで重要な機器なら定期点検は必須だろ。

「金はかけたくない、でも信頼性は必要だ。」なんて言うわが
ままに付き合ってたらきりないぞ。

399:デフォルトの名無しさん
06/02/14 18:54:58
8ビットマイコン使った簡単なシステムなんかだと、
一定時間ごとにステートマシンの処理ルーチンを呼び出すってことよくやりますよね?
(たとえばシリパラ変換の石にデータをシリアル転送するときなど。)

この場合、呼び出す側の呼称はタイムスライスとかディスパッチャーでいいと思うんですが、
ディスパッチされる側のルーチンってのは一般的な呼び方ってあるんでしょうか?

質問の背景としては、このディスパッチされる側のルーチンに
「それ」とわかるような命名をしたい、ということなんですが。

いまはWin32のWndProcからの連想で「~Proc」みたいな命名をしてるんですが
どうもやっぱりしっくりこない。

400:デフォルトの名無しさん
06/02/14 22:20:29
Handler?

401:デフォルトの名無しさん
06/02/14 23:27:53
>>399
おまいは関数の名前をいちいち掲示板で聞くのか?

402:デフォルトの名無しさん
06/02/14 23:43:06
クラス名・変数名に迷ったら書き込むスレ。Part6
スレリンク(tech板)

403:デフォルトの名無しさん
06/02/14 23:44:24
>>399
クラス名・変数名に迷ったら書き込むスレ。Part6
スレリンク(tech板)l50

ここで関数名も聞いてみたら?

404:デフォルトの名無しさん
06/02/14 23:49:51
>>403
そこは知っているし何度か回答もさせてもらってもいますが、
こういうジャンルのコーディングをしている人がそんなにいるとも思えない。

405:デフォルトの名無しさん
06/02/14 23:54:49
そんなことでいちいちつっかかることもないでしょ。
ビタミンCが足りてないんじゃない?




カルシウムだっけ?

406:デフォルトの名無しさん
06/02/15 00:09:24
なんのこっちゃ。
まあ俺は君と違って脳は足りてるよ。
まあ言っても無駄だろうけどガキが覗いて楽しいスレじゃないと思うよここは。

407:デフォルトの名無しさん
06/02/15 00:13:40
>>405
ビタミンCは、肌荒れとかにいいんじゃないかな。

カルシウムと言えば、なんとなく白い粉ってイメージだった
けど、所さんの目がテンで純粋なカルシウムをみたら、まん
ま金属だったので、マジで目がテンになっちまった。

408:デフォルトの名無しさん
06/02/15 01:24:55
>>407
当たり前じゃん。もしかして、ナトリウムも粉体を想像してる?

409:デフォルトの名無しさん
06/02/15 07:59:32
普通は炭酸カルシウムとか、塩化カルシウムだ
それはそうと、「白い粉」ってなんかヤバイ雰囲気がするw

410:デフォルトの名無しさん
06/02/15 17:32:21
ハッピーターンの白い粉ことか

411:デフォルトの名無しさん
06/02/15 18:21:24
パウダーポケットにつても言及すべし

412:デフォルトの名無しさん
06/02/15 18:50:27
>>407
中学・高校で何を勉強してきたんだ・・

413:デフォルトの名無しさん
06/02/15 20:53:27
>>412
中高じゃあハッピーターンは授業に出ねえぞ?
そりゃ授業中にも食ってたけど

414:デフォルトの名無しさん
06/02/16 01:23:50
ソジウムクロライドの取りすぎはよくない。
ポタシウムを多めに取るようにしよう。

415:デフォルトの名無しさん
06/02/21 09:31:54
簡単な自作mallocのサンプルコードってない?

416:デフォルトの名無しさん
06/02/21 10:36:16
薬じゃないけど、これを忘れているね。
つ炭素菌

417:デフォルトの名無しさん
06/02/25 04:58:55
長文失礼します。
最近新しいメーカーさんのとこに飛ばされて
RTOSでC言語なデジタル家電することになりますた。

そこで既存のコードを見たんですが(いわゆるアプリ~ミドル層)
まったくと言っていいほどallocが無いんですよ。
ユーザーがある操作をしなきゃ使うこともない領域とかも数k、数10k単位でぼこぼこ存在してる。

過去、いくつかのメーカーで携帯やらテレビやらナビやらHDDデッキやら作ったことあるんですが
100byte超える領域を使うときはallocateしないと殺す!とか
お前のタスク、なんでそんなにRAM使うんだよ、殺すぞ!みたいなノリだったんで
カルチャーショック受けてます。

聞いてみると、メモリの断続化や処理速度を考えるとallocなんてしてらんないよ、
って返ってきたんですが、私は過去にそんなことで問題になった経験がありません。。。
極力allocする or 極力しない
一般的にはどちらが正解なんでしょうか?

418:デフォルトの名無しさん
06/02/25 06:04:27
>>417
んなもん、状況による。メモリ優先か、処理速度優先か。移植・汎用性優先か。

ちょっと使いたくない立場から書いてみる。

シビアなリアルタイム系
(制御周期が1ms以下だったり、μs単位のディレイ・ジッタが気になるとか) なんかだと、
極力簡略化したブロック領域のヒープなら、タスク間通信のために仕方なく使うけど、
malloc, free は使いたくなって感じのところが多い。
さらに、通常 malloc, free は割り込み禁止区間を使うから、
割り込み周期がぶれたりする可能性もある。
デバッグ環境が充実してないシステム上だとバグ発生の元にもなる。
フットプリントの小さいRTOSでは、そもそも、mallocをサポートしてないものもある。

それに、メモリが余ってるなら、メモリを動的に確保する意味なんか全くない。
malloc, free で複数タスクが時分割でメモリを取り合うってのは、
メモリが足りないときの非常手段って感じだ。

携帯、テレビ、ナビなんかは、メモリ厳しいとはいえ、
リアルタイム設計という観点では、制御系というより、
アプリ系に近い考え方じゃないか?

419:デフォルトの名無しさん
06/02/25 06:54:11
>>417
テレビやナビは時々電源を切るから初期化されて、メモリの断片化が大きな問題にならないが
携帯だとマズイように思うなあ・・・・、だから時々電源切らないといかんのか・・・・・

電源入れっぱなしになる装置の場合、
 ・メモリサイズグループ毎に別のヒープ領域を割り当てる
 ・メモリをファイルシステムのように固定サイズのブロックとして割り当てて使ってもらう

のどっちかやらないと、長期的にはマズイよ

420:デフォルトの名無しさん
06/02/25 08:06:45
>>417
他のレスにもあるようにケースバイケースじゃないか?
RTOS自体が糞なメモリ管理しかしてない・
MMUが載っていなくてメモリ断続化の影響がでかい
なんかでいっそallocしないってのは考えられるし、
その手の物だと、同時動作するタスクの数や
所要メモリ量が確定できる代わりに、
メモリが必要になっていざallocしてみたら
メモリが足りずに処理できなかったってことが
許されない場合もある。

だから、こんな作りになってしまうことがままある
> ・メモリサイズグループ毎に別のヒープ領域を割り当てる
> ・メモリをファイルシステムのように固定サイズのブロックとして割り当てて使ってもらう

そもそも”携帯やらテレビやらナビやらHDDデッキ”も
ドライバあたりでは、特定の機能しか使わないメモリでも、
いざ動作する時に「allocに失敗したら待てない/致命傷になる」ってものは、
確保しっぱなしになってるだろ。


421:デフォルトの名無しさん
06/02/25 12:52:47
たぶん質問者はその程度のこと分かってると思う。。。

422:デフォルトの名無しさん
06/02/25 13:36:47
メモリーリーク対策用にID付きでヒープ管理出来るようにユーザー関数として別名で存在してるに一票

423:デフォルトの名無しさん
06/02/25 17:38:54
>>417
技術論は他の人が言ってるからいいとして、社会論としては、
古くから組み込みやってる人が多くて、
固定メモリの思想にどっぷり浸かってて変化していない人達、
という可能性もあるんじゃないかな。

# 「新しいメーカーさん」って、新しく行く職場って意味で、
# 新興メーカーじゃないよね?

古いシステムをそのままバージョン上げながら育ててるような場所だと、
実際の必要性以上に過去の要件をひきずってるところとかもあるから、
正しい正しくないはさておきて、「そういうところもあるんだ」
と思っておくくらいでいいと思う。


424:デフォルトの名無しさん
06/02/25 19:45:58
>417
RTOSの規模にもよりますが、もっとも小さいほうで言えば、
allocはしない方法で考えますね。
たとえば、ITRON TCP/IP仕様は、「動的なメモリ使用の回避」を
ひとつの目的としていますね。

425:417
06/02/26 03:16:10
色々ご意見ありがとうございます。

動的に確保するのが難しいケースや
デメリットが大きすぎる場合はallocateしてなくても納得できるんですが
システム全体の基本思想が「allocしない」なんですよね。
#ちなみに新興メーカーではないです

OSのメモリ管理なんて最初からアテにしてなく、
自前でメモリ管理はどこでも作ってるもんだと思ってました。
実際今回のとこでも>>419さんの言われるような対応はされてるんです。

過去にテレビやデッキなんかでは、連続運転試験を1ヶ月以上自動操作でテストなんてことも
普通にやってて断続化なんて見たことないです。
(メモリ管理のバグで断続化しちゃった、なんてことはありますが)

この業界、いかにハード原価を安く抑えるかというのが至上命題に近いものがありますし、
メモリも例外じゃないと思います。
個人的には>>423さんの意見が当てはまるのかなぁと思ったりしてます。


426:デフォルトの名無しさん
06/02/26 10:34:00
>>425
その話からすると>>423の推測が正解だろうね
でも理屈としては、ショボイCPUでガベージコレクションできない
状態でメモリの確保と解放を繰り返したらいずれ断片化するだろ?

allocしたら2度と解放しないんじゃ静的に確保しても同じだし
あとは作ってるシステム次第だね

 コスト見合いでSDRAMあたりを採用すると、
小さな組み込みシステムからすると馬鹿馬鹿しいほど
メモリがでかくなるし

427:デフォルトの名無しさん
06/02/26 11:45:56
>>426 >>419の対応をしてるなら、断片化はしないだろう
 同じサイズをブロックとして確保解放するなら理屈の上では断片化しない

ただ、そうするなら、最初から固定で取って、
メモリが不足するなら同じタイミングで絶対に使わない同士をペアにしてゆくという
もっと簡単な対応の方がより安全で確実という事になるだろう


428:デフォルトの名無しさん
06/02/26 11:48:41
家電よりちょっと高級な専用システムやってます。SH3ですが「可変allocはご法度」です。
何ヶ月も電源入れっぱあたりまえという製品で、しかも操作の最新状態は電源切っても残る、
という・・・これを20年使えるのかいな?というシステムです。NMIを作ってもらえなかったので
「操作のたびに記憶」しかないのですが、100回/日書込みなら3年でEEP/FROMアウトです。
ど~すりゃいいの?という感じです。

429:デフォルトの名無しさん
06/02/26 12:15:01
>>428
SHの内臓FLASHってそんなに書けたっけ?

 保存しなきゃいけないデータが小さいなら
追記してって、溢れるまで使うとかすれば
多少寿命も稼げるけど、システムの要件次第じゃあるまいか?
 それとも、要件からして既に破綻してるってこと?

だったら、こんなとこじゃなくて一刻も早く会社で騒げ。


430:デフォルトの名無しさん
06/02/26 12:19:31
別に君に相談してるんじゃねえのに何命令口調になってるのw
こういうオカシイ奴の割合がこの業界って多いよねえ

431:デフォルトの名無しさん
06/02/26 12:26:55
>>429
EE-PROMと書いてるからシリアルEE-PROMだと思うよ

で、EE-PROMなら、自分なら16くらいのブロックを順に使うようにして
寿命を16倍くらいに延ばせば丁度いい感じになるなと、そう使うけどね

432:デフォルトの名無しさん
06/02/26 14:01:12
TOPPERS上でファイルシステムってどんなのがある?
FATでもNFSでもftpでもファイル名を指定して読み書きだけ
できればいいし階層構造もいらない
後でWindowsでファイルを取り出したいだけなんだけど良い手が無い

433:428
06/02/26 14:56:29
>>431 キャッシュとEEPROMの使用領域とはほぼ1:1のサイズなの。内蔵じゃないです。

434:デフォルトの名無しさん
06/02/26 18:10:30
>>433
キャッシュ?

よーわからんけど、「ど~すりゃいいの?」っと言う感じ
なら>>429 の言う通り「上司に相談」して「その構成を
決めた奴の責任」にすべきだよ。

まあ、俺らにはどうでもいいことだが。

435:デフォルトの名無しさん
06/02/26 18:38:28
そうだな。
寿命について問題がある
対策としては EE-PROMの容量を増やしてもらいたいというのが普通だわな


436:デフォルトの名無しさん
06/02/26 18:44:47
10年保証する半導体はありません。

437:デフォルトの名無しさん
06/02/26 18:59:33
破綻だなw

438:デフォルトの名無しさん
06/02/26 19:11:16
ゆとり教育の弊害かどうかしらないけど(まあ俺はゆとり教育の理念が間違っているとは思わないけど)
読解力ない奴がここ数年増えたよね本当にw

文脈読めってw
寿命ってそう意味で言ってないだろうに。

キャッシュだってそう。
いちいちストレージ上の設定値読んでたらオーバヘッドやコードの冗長性が大きくなるので
初期化時にメモリにロードしといてそいつを設定値とみなして扱う、
そのメモリ上の設定値のことをキャッシュって言ってるに決まってるでしょ。

439:デフォルトの名無しさん
06/02/26 19:59:20
>>438
>>428が [ど~すりゃいいの?] と問題解決法が判らないと書いてるから、
上に相談してEE-PROMの容量増やして貰えよと解決方法を書いてるんじゃないか

こういう問題を放置するってのは、単に自分だけの問題でもないし、その会社だけの問題じゃないんだよ。
俺たち技術者全体の信頼に関する問題なんだからさ、 >>428はチャント対処しろよな



440:デフォルトの名無しさん
06/02/26 20:05:18
>>436
いや、ホント。 最近痛感するよ。
最近買う家電製品はホント、壊れやすい。
まあ、単にどんなものか見てみたいという興味だけで買うから
安いのを徹底的に探して買うからまあ当然の面もあるけどね。

441:デフォルトの名無しさん
06/02/26 22:15:15
>>438
> そのメモリ上の設定値のことをキャッシュって言って
> るに決まってるでしょ。

ヒント: 井の中の蛙

442:デフォルトの名無しさん
06/02/26 22:34:37
何がヒントだ。
正面から自分の考えを言うだけの自信がないことを誤魔化しているに過ぎんなw
他人はもちろん、おそらく自分自身も合わせてな。
自己分析ができない奴ってのは事程左様に恥ずかしいなw

443:デフォルトの名無しさん
06/02/26 23:33:22
イタタタ

444:デフォルトの名無しさん
06/02/27 00:00:16
>>442
失礼、>>438 を過大評価していたようだ。

ヒント: 水たまりのボウフラ。

445:デフォルトの名無しさん
06/02/27 04:21:35
キャッシュって意味が違うだろ
自分の表現力のなさと用語の誤用を棚上げして
文脈読めってエスパーじゃなきゃ無理

446:428
06/02/27 05:45:52
キャッシュはEEPと同じ情報を持つRAMの意味で使ってます。私が言うまでもなく受けたとき
チーフにあたる人が「NMIが無いと変更のたびに書込みとなって書込み過多になり寿命に
影響する」と申し出たらしいんですよ。でもなぜかハード屋さんはそれでいいと言ったらしい。
(今ざっと計算したら、確定1page/5mSのEEPなので256page=1.28秒、NMI入ってから
 それだけ電圧持たせるのはきつそうですね。だからかも)

10年保証云々は通電しっ放しで、ってことですよね?さすがにそこまで電源入れっぱはない
とおもいます。数ヶ月、最悪1年ぐらい連続ならありえる、ぐらいだったら20年持ちませんかね。
この製品は「装備品」なので、本体は20年持たせても、装備品は10年未満で交換、という
思想なのかもしれません。その辺今度聞いてみます。

447:デフォルトの名無しさん
06/02/27 07:29:02
>>446
それ、1ページ32バイト 24XX64のような8KのEE-PROMだと思うのだが
書込中に電源落ちたらどうするの? というかどうなるの?
8kByteを全部使うなら、最低 16KByteのEE-PROMが必要だよね

だったら、さらに32Kにすればさらに2倍に寿命を延ばせるよ

448:デフォルトの名無しさん
06/02/27 07:47:20
保証はメーカが無料で交換に応じることなので、10年前の製品があるわけない。

449:428
06/02/27 09:49:05
書き込み中に電源落ちたら、「最後の操作の記憶が」残らないだけで、それほどダメージは
ありません。いつもたくさんのpageを書くわけじゃなくて操作に対応したいろんな情報片を
書くものですから。操作の瞬間電源切って覚えているような使い方もしません。
でも、ケータイなんかその辺・・・あ、あれは操作そのものの記憶は残さないのかな?
発信しかけて電源切って、電源オンすぐリダイヤル、とかが似た状況ですね。

450:デフォルトの名無しさん
06/02/27 12:40:04
まあ未採用になったそうだけど、そういうのってNMI(Non Maskable Interruptのことだよね?)
でやるのって正攻法じゃない気がするなあ。

CPUに自分自身の電源制御を握らせるのが普通じゃないのかな。

451:デフォルトの名無しさん
06/02/27 20:38:27
つまり、項目毎に書き換えてるという事だよね?
なら頻繁に書き換える項目だけ分散書き換えにすれば、それで対応出来そうだね

452:デフォルトの名無しさん
06/02/27 22:03:21
>>446
ハード屋さんが責任持つって事だったらいいんじゃないか。

穿って考えれば、ROM 交換で儲けると言う政策もあるかも
知れないしな。(w

>>450
自分では電源制御件を持てない状況も少なくないよ。

流石に EEPROM に退避と言うのはやったことないけど、
NMI で RTC の C-MOS (もちバッテリバックアップつき)
に退避は 8bit 時代に何回か経験がある。

453:428
06/03/01 15:37:49
FROMですからもうROM交換はないです。道具というよりは設備の一部として使うような想定
なので、不用意に電源叩ききられる可能性は優先度低いのでしょうね。どの位の寿命を
期待しているのか今度ハード屋さんに聞いてみます。

454:デフォルトの名無しさん
06/03/01 22:44:50
> FROMですからもうROM交換はないです。

ん?
「書き込み過多になり寿命に影響」した場合の話じゃないのか?

自社設備なら、「保守用の基盤もってるから寿命がきたら即交
換でいいや」と考えてるのかもな。

455:デフォルトの名無しさん
06/03/02 00:49:33
通常メモリマップのデータを保存しているのはRAMですか?

456:デフォルトの名無しさん
06/03/02 04:04:15
メモリマップのデータとは?

457:デフォルトの名無しさん
06/03/02 05:02:23
>メモリマップのデータ
IA32 CPU とかのセグメント・ディスクリプタのことか?

458:428
06/03/02 05:38:58
FROMはコードを格納しますから、書込み過多になるほど入れ替えはしないと思います。
操作の記憶はEEPのほうでやるようです。

FROM上のテーブルのインデクスだけをRAMに保持するソフトなら書いたことあります。

459:デフォルトの名無しさん
06/03/02 06:47:40
>>432
当然それぞれ作ってるんだろうけど、タダでは公開してないのかもね
URLリンク(www.toppers.jp)
で聞いた方がいいんじゃないの?

460:デフォルトの名無しさん
06/03/02 14:16:24
RTX と Intime どったがいいのか迷ってます。
教えて。

RTXはwindowsよりな感じ。DLLなんかを呼び出したり出来るらしい。
RTXはバグで簡単にwindowsを葬るらしい。
RTXはデバッグはリモートで行う必要があるらしい。

Intimeはeindowsとは別のOSが動いているらしい。
Intimeはデバッグの環境が整っているらしい。
IntimeはwindowsのDLLを呼び出すのがめんどくさそう。

保守契約を含めた値段は大体同じくらい。
使ったとき在る人頼む。無い人でもいいけど。

461:デフォルトの名無しさん
06/03/03 18:43:27
460です。
おせーて。

462:デフォルトの名無しさん
06/03/03 22:35:47
INtimeメモリ保護機構がある。不正なメモリアクセスをやらかしても、
落ちるのはそのプロセスだけ。

開発にはVC++を使う。デバッグはINtime3.0移行ならVC++上で、
それ以前なら専用のデバッガで行う。1台のPC上で開発から
デバッグまで出来るが、場合によってはリモートデバッグ
した方が楽なときもある。

同一PC上で動作していると言っても、INtimeのメモリ空間と、
Windowsのメモリ空間は独立している。INtime用に作ったソフトと、
Windows用のソフトの間でのやり取りは専用のAPIを使う必要がある。

INtimeには体験版の無償ダウンロードがある。
とりあえず使ってみてから考えるのも吉。
URLリンク(www.tenasys.com)

463:デフォルトの名無しさん
06/03/04 08:10:31
460です。
RTXの方はあまり良くないっぽいですかね。
両社の営業と技術の話を聞いているとどうもIntimeの方が良く聞こえまして・・。
営業の腕の違いかそれとも製品自体Intimeのほうが良いのか・・・。
両方とも貸し出しがあるようなので試してみたいと思っていますが。

464:デフォルトの名無しさん
06/03/04 08:21:30
みなさん、NIの計測制御用のアレをつかったことはありますか?


465:デフォルトの名無しさん
06/03/04 14:14:38
話をぶった切って申し訳ないが

1チップマイコンの入出力ポートって
方向レジストと ポートの2つに別れているが、コレ使い難くないか?
入力専用、出力専用と方向レジスタの3つになっているべきじゃないかと思う。

出力専用レジスタを読み返すと、現在入力ポートに設定してるビットでも
出力ラッチがいつでも読めるべきだと思う

466:デフォルトの名無しさん
06/03/04 14:20:55
>1チップマイコン
たまたま自分の使ってるモノが世界の標準に違いない、
と思い込むのは頭の悪い証拠じゃないだろうか?
井の中の蛙大海を(

一口にマイコンつったっていろいろあるのよベイビー。

467:デフォルトの名無しさん
06/03/04 16:06:25
>>466 まあ確かに 4,8,16とDSPの15種類くらいしか触った事ないけど
その範囲じゃそうじゃないのを見た事ないもんで


468:デフォルトの名無しさん
06/03/04 16:27:06
Z80-PIOは出力モードの時には入力でラッチされた値を読めたと思う。
と言うことは、Z80ファミリを1チップ化した川鉄の1チップマイコンもその構成だったかと。
それ以外でも、モード設定で動作が変わるタイプは普通にラッチ読み込みできるんで内科医?

469:デフォルトの名無しさん
06/03/04 16:55:51
いや
 出力モードで出力ラッチが読めるタイプ
 出力モードでも入力ポートとなるタイプ
の2つがあるけど

そうじゃなくて、入力モードでも出力ラッチが読み書きしたいというか、そういうのが欲しいって事

たとえば入力に設定してる間に次の出力状態を設定しておきたいと
ビット操作系を使うと他の状態も変更されてしまうのが嫌だから

470:デフォルトの名無しさん
06/03/04 20:29:28
意味わからんなw
そんなに「ラッチ」がほしいなら自分でコードで実装すれば済むことじゃないか。

だいいち入力に設定してるポートの出力ラッチに意味があるとすれば
データバスみたいにR/Wを切り替えて使う場合だろうけど、そういう場合でも
自分が直前に出力した値が知りたいケースがそんなにあると思えない。

というより、そんなケースが思い浮かばん。
すくなくとも全く一般的なケースじゃないだろう。
なんでそんな一般的とも思えない要求を満たすようなCPUがなぜないか、
などとくだらないことを悩むんだろう。

471:デフォルトの名無しさん
06/03/04 20:57:04
たとえばさ
bit0で割り込みを使ってビープ音を出して
bit1には C-Rが接続された一種のDACだとするよ。制御は普段は入力にして 変化させる時に H/L出力で制御するのね、
bit2,bit3でI2CのEE-PROMを読み書きしたり とするよ

で、ビープ音を出す割り込みで、オンオフをビット操作すると他のポートのラッチ状態が変化してしまうから
ラッチ状態を覚えなくちゃいけない。
となるとアキュムレータ経由命令になって、スタックに保存が必要になって
割り込み処理が長くなっちゃって、他PWMーDAC処理の乱れが酷くなるとかさ、

そのポートのラッチ状態を他の処理では割り込み禁止状態で変化しなくちゃいけないから
割り込み禁止期間がアチコチ出来て、ビープ音が濁ってしまうとかさ

あるいは EE-PROMを読み書きする時に、このわずらわしい処理のせいで遅くなってしまうとかさ

で、面倒になって、原因は何かなと考えたら
ポートの出力ラッチが読めないせいかなと

472:デフォルトの名無しさん
06/03/04 21:05:12
なんかよく理解できないけどそんなら8051みたいにBit-Addressableな石を使えばいいのでは。


473:デフォルトの名無しさん
06/03/04 21:45:46
いや、だからビットアクセス命令があっても、たとえばM16とかのように
実際はバスを読んでから書くから困るって話をしてるわけで

・・・・しかし、そういや8051の頃はコレで悩まなかったな・・・なんでだろ?
単に入出力の切り替えを今程使わなかったからかな

474:デフォルトの名無しさん
06/03/04 21:51:55
ああ思い出した。 
8051は4ビット系と同じく、確か入出力といっても H/L/Zではなくて L/Z
つまりH=OPENだった筈。

475:デフォルトの名無しさん
06/03/04 22:32:38
うーんと8051はRead-Modify-Writeの場合、465のう出力バッファをReadするから
問題ないよ。
ビット単位のアクセスでもバイト単位でも。

オリジナルの8051もそうか知らないけど最近の派生チップはだいたいそうだったはず。

そもそも出力ってpush-pullなのかオープンドレインなのかどっちだろ。
つーか具体的に何の石よ?


476:デフォルトの名無しさん
06/03/04 22:41:49
熱いコテを握らされ 睡眠時間は削られて
制御系だというけれど なにを制御するのだろう

477:デフォルトの名無しさん
06/03/05 00:59:38
俺ハードやだけど、ソフト屋にとってポート制御レジスタはどういう構成が
理想なの?
>>465
のように3つ(入力・出力・入出力制御)になってるほうがいいの?
それとも2つ(入出力値・入出力制御)の方が使い勝手がいいのかな?

俺はとりあえず3つのレジスタ構成で設計してる。(2つだと情報量減るので。)
どちらでも手間は同じなので今後の参考に聞きたいな。

478:デフォルトの名無しさん
06/03/05 01:31:43
出力専用と、入力専用でポート分ければいいだけ。
で、ラッチなんかはメモリーのリードライトと同じ要領でやってくれれば何も考えなくて済む。

ただ、キャパシタの問題で、一定時間以上状態を維持しないとハッキリ入出力信号が安定しないとかなら、その旨を仕様に書けば良いよ。

479:デフォルトの名無しさん
06/03/05 02:06:35
>>477
開発後期に仕様を変えたりしなければ、或いは仕様に明記されてないノウハウが必要だったりしなければ、
どういう構成になっていてもあんまり困らんな。

480:デフォルトの名無しさん
06/03/05 05:35:28
>>476は、「新人哀歌」かな/「探し物は何ですか」かな、どっちだろ

たしかに、>>471みたいなのはハード屋さんがポートを分けてくれるよね。
ある程度はソフトの作りやすさも見通しつくから。

481:デフォルトの名無しさん
06/03/05 07:43:29
まあ、入出力を動的に切り替えるというのは普通はやらない
やるとすれば openドレイン的な使い方か

で open に設定してる間は ポートを読み返すと 1が読めるから
Read-Modify-Writeの時に出力ラッチではなく入力が読まれるタイプだと困るという事だろう

PICは入出力関係なく、常にポートを読む
 M16/H8/SH等は出力に設定してるポートはラッチを、入力に設定してる場合はポートを読む

ただ、最近の1チップはRISCが多いから、Read-Modify-Write命令が無いんじゃないかな


482:デフォルトの名無しさん
06/03/05 08:03:11
>>478
それは制御系なら可能だろうけど組込系だと 片面基板で なんて事もあるから
アートワーク優先のことも多いよ。 ソフト側の都合で好きな順には使えない。

483:デフォルトの名無しさん
06/03/05 08:20:17
>>431
たとえば
  I2Cの SCL/SDAの為に、出力ラッチはL にして 方向レジスタでオープンコレクタを実現するとするよ
 つまり BSET /BCLR で方向レジスタだけを トグルするわけ。

 これをメインループ側で処理してるとする
 この処理の最中に SCL=H つまり入力ポートにしてる最中に割り込みがかかる

で、割り込み処理で、同じポートの別の出力ポートをトグルさせようと BSET/BCLRのような Read-Modify-Writeでポートを操作すると
この SCLの出力ラッチがHになってしまう。

 で、メイン側で次に SCL=Lににしようと出力ポートにしたら、  
 出力ラッチがHなのでHが出力されてしまう

-------------
この2つだけなら、割り込み側でRead-Modify-Write命令ではなく
読んで ビット操作して、常にSCL/SDAは0にして書き出すという対策でいいけど
もう一つ条件が加わると、やっかいなわけよ


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