制御系なら俺に聞いて ..
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個位つけとけばいいんじゃないか?
つーか、そこまで重要な機器なら定期点検は必須だろ。
「金はかけたくない、でも信頼性は必要だ。」なんて言うわが
ままに付き合ってたらきりないぞ。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4900日前に更新/253 KB
担当:undef