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にして書き出すという対策でいいけど
もう一つ条件が加わると、やっかいなわけよ
484:デフォルトの名無しさん
06/03/05 12:52:27
>>480
467は「ちっちゃな頃からちっちゃ」かった彼が歌ってた奴でしょう
485:デフォルトの名無しさん
06/03/05 15:42:20
盗んだコードが走り出す
行く先も分からぬまま
486:デフォルトの名無しさん
06/03/06 03:56:36
GPLの夜
487:デフォルトの名無しさん
06/03/06 14:48:28
>>465
ATMELのARMコアMPUで AT91SAM7S というのがあるが
そのポート制御レジスタはそんな感じ、というかもっと複雑。
なんでこんなややこしいレジスタ構成にしてるの? と思ったが
465さんの書込でそういう要求があることを知りました。
488:デフォルトの名無しさん
06/03/08 19:25:23
質問です。
モータの応答周波数は速くても数百ヘルツなのに
なんでインバータ制御などには高速なマイコンが使われるのでしょうか?
相当負荷のかかる計算をしているのですか?
489:デフォルトの名無しさん
06/03/08 19:49:45
あたりまえだ。
490:デフォルトの名無しさん
06/03/08 19:51:02
のクラッカー
491:デフォルトの名無しさん
06/03/08 19:54:06
モータの応答周波数って何ズラ?w
つーか「なんで?」って理由はさまざまでしょそりゃ。
492:デフォルトの名無しさん
06/03/08 20:09:36
役に立たない奴らだな。
暇潰しにゴミレスばら撒かれても迷惑なんで
答えられないなら黙っとけよ。
493:デフォルトの名無しさん
06/03/08 20:24:46
答えでてるじゃん。
494:デフォルトの名無しさん
06/03/09 14:05:35
>>490
キャプチュー度
495:デフォルトの名無しさん
06/03/09 19:20:03
ベクトル制御だろ
496:デフォルトの名無しさん
06/03/09 20:20:59
普通のマイコンがどれだけ遅いか知らないんだろう。
パソコンの処理速度が1000としたら、普通のマイコンは1もないんだよ
497:デフォルトの名無しさん
06/03/09 20:36:35
それは言いすぎだ
498:デフォルトの名無しさん
06/03/09 21:07:15
動作周波数だけで比べても750倍だな。別に言いすぎでもないんとちゃう。
3GHz<->4MHz
499:デフォルトの名無しさん
06/03/09 21:13:40
動作周波数だけで比べるな
500:デフォルトの名無しさん
06/03/09 21:19:35
各命令の所要クロックも一々挙げて比べなあかんの?
殺す気か。
501:デフォルトの名無しさん
06/03/09 22:08:30
4MHzって時代錯誤も甚だしいな。
オッサンの頭の中は25年前で止まってるのかねw
502:デフォルトの名無しさん
06/03/09 22:11:22
普通モータ制御に使うCPUは
V850とかSH-4とかの32bitRISCで
動作クロックは20~40Mくらい
503:デフォルトの名無しさん
06/03/09 22:23:08
>>502
モータ回すのにSH4が出てくるとわ…
えらい豪華な機械だな。
504:デフォルトの名無しさん
06/03/09 22:23:52
普通って何がやねんw
だからモーター制御つったっていろいろあるっての。
つーか今時CPUが直接制御するのがそんなに「普通」とも思えんが。
505:デフォルトの名無しさん
06/03/10 01:54:51
なるほど・・・時計の中にはV850やSH-4が入っているのか・・・
506:デフォルトの名無しさん
06/03/10 01:58:15
ハァ?なにいってんだこいつ
507:デフォルトの名無しさん
06/03/10 03:37:44
時計にモーターなんざ入ってないっつーのな
508:デフォルトの名無しさん
06/03/10 04:59:05
ACサーボモータのサーボアンプなんかの中じゃ、
SH4クラスのCPUつかってるよ。
それくらいの速度じゃないと間に合わんだろ。
転流の制御とか、電流ループの制御周期は100マイクロ秒くらいじゃなかったっけ?
最近は、エンコーダ解像度もかなり高くなってきてるし、
そのほか通信タスクやデータ取得用タスクなんかも走らせなきゃならんだろうし。
数年前見た安川のサーボアンプの中がたしかSH4だたような・・・
509:デフォルトの名無しさん
06/03/10 05:45:05
3MHzの8085まだ使ってます。 615KHzの8bitの製品も今作ってます。
>性能比:命令ごとのクロック数まで見なくても、基本クロックとバス幅と
パイプラインとの積ぐらいの比率じゃないでしょうか?
510:デフォルトの名無しさん
06/03/10 07:44:37
パソコンのCPUは1クロックで数命令実行する能力がる
またバスは64ビットあり、1ワードは32ビットもある。32bitの加算が1命令で出来る 掛算も1命令で出来る
普通のマイコンがそこらの家電装置の中のマイコンだとすると
バスは8とか4bit ワードサイズもそれに同じ、加算するだけで4とか8サイクルかかる。 掛け算はソフトで実現だから100サイクル近くかかる
クロックが同じとしたって50倍近い処理能力差がある
511:デフォルトの名無しさん
06/03/10 07:52:21
価格差1000倍なら納得。
512:デフォルトの名無しさん
06/03/10 07:54:39
で SH-4 とか DSP は1命令1サイクルに近づけている
SHは命令サイズをバス幅より小さくする事
DSPは命令とデータX,Yでバスを別ける事で
それを実現しようとしている。 もちろん命令キャッシュも採用される事が多い
さらに掛算を少ない命令サイクルで実現する機能も付いている。
ただし、パソコンのように、掛算が使い易いわけじゃない。
少なくともレイテンシがかかる場合が多い
その間に他の命令を実行させる等の工夫が必要になる
それでも普通のパソコンのCPUと比べると1~2桁は処理速度が落ちるのが現状だね
513:デフォルトの名無しさん
06/03/10 08:00:14
>>511
今の手に入る8bitマイコンの代表のPICなんかは 200円程度で手にはいる
200*1000=20万円・・・・パソコン一式買っておつりがくる値段だね
PICと性能比べたら1万倍以上の性能差があるわけで
例:
PIC RAM 512 パソコン512M
PIC 4MHz パソコン 2G Hz
514:デフォルトの名無しさん
06/03/10 10:45:10
>>508
電流ループの制御もマイコン制御でやっているのかい?
シングルプロセッサで通信タスクとかも走らせていたらけっこう難しそう
515:デフォルトの名無しさん
06/03/10 10:50:25
もうマイコンなんて使わないですべてペンティアム4いっぱい貼り付けてやればいいじゃないか
適材適所だの値段だの考えるな
516:デフォルトの名無しさん
06/03/10 10:53:02
>>508
> 数年前見た安川のサーボアンプの中がたしかSH4だたような・・・
手元にある安川のサーボアンプの中身を今見てみたら
V853 uPD70F3025A-33
だった
安川と言えばSHだと思っていたのでちょっと意外
517:デフォルトの名無しさん
06/03/10 11:00:06
>>507
針が回転してるだろ
モーターが入って無くてどうやって回るんだよ しねよ
518:デフォルトの名無しさん
06/03/10 11:21:54
まあモータと言えばモータか、ステッピングモータの一種だな
でもどっちかいうと単なるソレノイドだが
519:デフォルトの名無しさん
06/03/10 12:37:57
「モーター+ラック&ピニオンでリニアモーターだ」
くらい強引な飢餓す。
520:デフォルトの名無しさん
06/03/10 12:38:53
おいおい、ステッピングモータはモーターそのものだろ。
~といえば、どころじゃないよ。
馬鹿じゃねえのw
521:デフォルトの名無しさん
06/03/10 12:39:44
ベクトル制御みたいな高速演算が要求されるものは
ハードでやればいいのに
マイコンで演算させるメリットって何?
522:デフォルトの名無しさん
06/03/10 12:40:46
モーターのスペルはmotorであってrotatorじゃないよw
523:デフォルトの名無しさん
06/03/10 14:02:03
>>521
柔軟性、コスト
524:名無し募集中。。。
06/03/10 14:48:59
メレックのmcc05にコマンド送るだけでモーターが回るけど?
525:デフォルトの名無しさん
06/03/10 14:56:39
メレックのmcc05ってなに?
526:デフォルトの名無しさん
06/03/10 16:03:06
>>515
Pentiumは演算は早いだろうが、
割り込みのディレイやジッタが大きかったり、
キャッシュが効いたときと効かなかったときの実行サイクルの差がでかかったり、
チップセット使わないと、外部バスにデバイスつなげるのが困難だたり、
致命的なのは発熱だな。
とマジレスしてみる。
527:デフォルトの名無しさん
06/03/10 16:45:36
でも 32bitで内部クロック1GHz 内蔵RAM64K 内蔵フラッシュ 640kbyte で
16pin-DIPソケットなマイコンが100円ショップで売ってたらいいな
528:デフォルトの名無しさん
06/03/10 19:45:51
>>526
相対評価と絶対評価の区別がついてないなw
それともWindowsだけがx86のネイティブな姿だと激しく勘違いしているか。
>>527
なにが「でも」なのか意味わからんなw
529:デフォルトの名無しさん
06/03/10 20:14:11
パッケージの背中が32x128dotの液晶表示器になってて、
32798水晶振動子内蔵で
USB2インターフェイス内蔵で簡単にパソコンに繋げて
530:デフォルトの名無しさん
06/03/10 20:28:09
うーん。15万ぐらいかな
531:デフォルトの名無しさん
06/03/10 20:32:55
>>529
>32798水晶振動子内蔵で
そんなもの要らない。
532:デフォルトの名無しさん
06/03/10 20:40:19
スマン32768だったよ。
533:デフォルトの名無しさん
06/03/10 20:50:37
32768個のクリスタル?
534:デフォルトの名無しさん
06/03/10 20:57:33
いや、Hz タイムベースに使うのと背中の液晶表示機の駆動クロックに使う
消費電流は 32K水晶だけなら単3電池駆動で5年くらいのが欲しい。
そしてPLLで任意倍率のクロックが作れるといいなあ
535:デフォルトの名無しさん
06/03/10 22:14:50
1チップMSX2+でおk
536:デフォルトの名無しさん
06/03/10 22:25:36
じゃ背中に 320x240dotのパネルを積んだ PLCC パッケージの MSX2+ で USB マスタでPCから書き込み出来るというのをお願い
537:デフォルトの名無しさん
06/03/10 22:56:40
ピッ
538:デフォルトの名無しさん
06/03/10 23:44:35
Interface 6月号を買おうよ
なんかついてくるらしいよ
539:デフォルトの名無しさん
06/03/11 01:24:49
>>524
> メレックのmcc05にコマンド送るだけでモーターが回るけど?
何かと思ったけどこれか
URLリンク(www.melec-inc.com)
1軸のパルスジェネレータか
しょぼいな
540:名無し募集中。。。
06/03/11 01:45:25
パルスジェネレーターにしては高性能だと思うけど?
541:デフォルトの名無しさん
06/03/11 02:40:18
>>540
1軸だから当たり前と言えば当たり前だけど直線補間もないし
このクラスのパルスジェネレータはどれも似たり寄ったり
差があるとしたら原点復帰モードが充実してることと絶対値指定ができることだけど
これはどちらもソフトで簡単に対処できること
FPGAで自分で作ってもどうにかなってしまう
差のつけようのない枯れた分野だね
542:デフォルトの名無しさん
06/03/11 04:40:26
>>527みたいなマイコンを\100ショップで売っててもハード屋さんは怖くて誰も使わないと思う。
秋葉で8085買い漁るのに疲れたらしく、MB91F36なる32bit使えるかい?とお客に聞かれた。
その辺に転がってるボードパクってuart端子だけつなげたいらしい。そりゃ使えますともさ。
あまりにもオーバースペックで笑ってしまうけど。トロンOS積まなくちゃ使えないんだよ。
高々4.8KのシリアルI/Oやるのに10倍の規模のソフトになっちゃうし。
543:デフォルトの名無しさん
06/03/11 04:50:48
>トロンOS積まなくちゃ使えないんだよ
んなこたぁない。
あと、トロンOSって、具体的に言ってくれよ、B-TRONか?w
544:デフォルトの名無しさん
06/03/11 05:01:30
ITRONですがな、もちろん。私以外にも早起きの方がいらっしゃいますね。
いや、もちろん裸でも使えるのは知ってますけど、たいていコンパイラと一緒に押し付けられる。
545:デフォルトの名無しさん
06/03/11 06:59:37
この前 ダイソーの100円ショップで ヤニ入りハンダ コテと ハンダ吸取器を見た。 100円じゃなかったけどね
546:名無し募集中。。。
06/03/11 15:46:25
>>541
よく知らないんだなってことは判った
547:デフォルトの名無しさん
06/03/11 16:29:26
>>546
で、何を知ってるの?
チミは
548:デフォルトの名無しさん
06/03/11 19:22:02
ハンダ吸い取り器が\100はすごいな。・・あ、\100じゃなかったみたいね。でも安そう。
549:デフォルトの名無しさん
06/03/11 19:22:46
100円なら超欲しいな! ・・・でも100円じゃないならちょっとなぁ・・・
550:デフォルトの名無しさん
06/03/11 19:26:53
210円だそうだ
URLリンク(k-tai.impress.co.jp)
551:デフォルトの名無しさん
06/03/16 07:21:57
210円ハンダ吸取器は結構使える ポンプ式のも持ってるがすぐ詰まるし吸取り力が今一つ、
さらにヒータが暖まるまでの時間がロスだったので、最近コレばっかり使ってる
552:デフォルトの名無しさん
06/03/17 01:39:43
突然すみません。質問なのですが、
よくメモリデバイスの仕様に書かれている、16ビットデバイスとか32ビットデバイス
というのはどういう意味なのでしょうか?
16ビットデバイス=16ビット単位でしかアクセスできないデバイス
のことだと思っていたのですが、実はバイトでもアクセスできたりして
いまいち意味がわかりません。
もしかしてバス幅のこと?
553:デフォルトの名無しさん
06/03/17 03:27:20
バス幅でいいとおもう。たいていの奴は16/32ならバイトアクセスも可能だけど、
たまに16/32オンリーというのもあるね。そのかわり速いとか。
554:552
06/03/17 18:11:03
>>553
レスありがとうございます。
容量4MビットのSRAMのデータシートを読んでみたところ、
2Mワードx16bitと書いてあるものの、データバス幅が16bitになっていることと、
256kx8bitのSRAMではデータバス幅が8bitであることを確認しました。
バス幅で間違いないようですね。
ところで普通、
2Mワードx16bit(容量4Mビット)のデバイスが使用するアドレスの幅(制御ソフトから見えるアドレス空間)は
a) 4M(1番地につき1バイト)
b) 2M(1番地につき)
のどちらなのでしょう?
なぜこんなことが疑問なのかというと、
16ビットデバイスに対して奇数番地をアドレスバスで指定したら、
メモリはどう振舞うのかを考えたところ、もしかしたら16ビットデバイスというのは
アドレス1番地につき2バイトのデータを保持できるのではないか、と思ったからです。
考え方めちゃくちゃですかね?
555:デフォルトの名無しさん
06/03/17 18:29:58
>>554
どっちになるかはプロセッサによる。
DSPのようにワード単位にアドレスが割られるものと
汎用CPUのように、アドレスは1byte単位でバイトアクセスフラグが付くタイプがある
556:デフォルトの名無しさん
06/03/18 21:14:15 BE:164012235-
すみません。三菱のシーケンサーでフレーミングエラーって出ます。
フレーミングエラーって何のことですか?
どうすれば先に進めますか?教えてください。
557:http://www.vector.co.jp/soft/win95/util/se072729.html
06/03/18 21:39:25
TextSS のWindowsXP(Professional)64bit化おながいします
もしくは64bitにネイティブ対応したテキスト置換ソフトありますか?
そういや64bitにネイティブ対応している2chブラウザてありましたっけ?
558:デフォルトの名無しさん
06/03/18 21:41:57
>>556
そんなの業者に聞いてくれよ。 RS232CならボーレートかSTOPが合ってないんじゃないの?
559:デフォルトの名無しさん
06/03/18 22:10:25
>>558
それが休みなんでつ。
このままでは帰れません。
どうしたらいいですか?
560:デフォルトの名無しさん
06/03/18 22:17:12
>フレーミングエラーとは調歩同期(ASYNC)において、ストップビットのあるべき位置に
>ストップビットがなかった(論理0だった)場合に表示されます。フレーミングエラーが
>頻繁に表示される場合は、データ長、パリティビットの有無などの設定が間違っている可能性があります。
ボーレート、データ長、パリティ、ストップビット長の設定を確認すること
561:デフォルトの名無しさん
06/03/19 13:25:14
>>558
シーケンサの型名も書いてない時点で「ネタ / どあほ」のいずれかだろ。
無視しろ。
562:デフォルトの名無しさん
06/03/19 13:50:32
俺的には>>561のように何も生産的な発言をしない(まあむしろできないと思われるが)
くせに口調だけ尊大な奴こそ無視したいけどなw
だいいち、(まあググればわかるようなことではあるが)>>556の質問内容からすれば
具体的な機種名が必要とはちょっと思えないんだが。
563:オレモナ~
06/03/19 14:08:28
> 無視したいけどなw
無視しとけばいいじゃん。
できないのは、厨房だからですか?
564:552
06/03/19 18:50:19
>>555
私の意図したのは汎用プロセッサのことなので、
a) 4M(1番地につき1バイト)
という認識であっていたのですね。
具体的には(プロセッサがビッグエンディアンの場合)
*(unsigned long*)0x8000 = 0xaabbccdd;
としたあと、
unsigned char tmp;
tmp = *(unsigned char*)0x8001;
とするとtmpの中身は0xbbということなんですね。
今まで、メモリが2Mワードx16ビットの場合は、もしかしたら
tmpの中身は0xccになるのではないか、と疑っていました。
(1アドレスにつき2バイト保持できるRAMだと思っていた)
自分の理解が正しかったと安心できました(^^)
ありがとうございます。
565:デフォルトの名無しさん
06/03/19 19:04:13
>>564
なんかこう、実メモリアドレス空間とバス幅とメモリ配置について思いっきり勘違いしている悪寒。
1ビット幅のメモリを使う場合、通常バス幅のメモリを並べる。
8ビット幅のメモリを使う場合、通常バス幅の1/8のメモリを並べる。
以下同様に。
16ビット幅のメモリを使う場合と32ビット幅のメモリを使う場合も同様なので、
仮に0番地のメモリにアクセスしたときにはメモリの最初のワードにアクセスする。
しかし、2番地のメモリにアクセスしたときには前者は2番目のワード、後者は最初のワードにアクセスする点が異なる。
ちなみに、1ビット幅のメモリを使い、0番地にアクセスすると8個のメモリの最初のワードにアクセスすることになるわけだ。
#だからこそDRAMカードはメモリチップがずらっと並ぶわけで。
566:オレモナ~
06/03/19 23:01:33
>>565
> しかし、2番地のメモリにアクセスしたときには前者は
> 2番目のワード、後者は最初のワードにアクセスする点
> が異なる。
はぁ?
32bitメモリとか書いてるから、プロセサも最低 32bit
幅だと思うが、2番地のアクセスだと前者 (=16bit メモ
リ) でも、(0番地アクセスとは違うメモリチップだけど)
最初のワードがアクセスされると思うけど。
32bit ⇒ 16bit のバスサイジングでもやってるのか?
567:デフォルトの名無しさん
06/03/19 23:18:36
>>566
その通り。別のチップの最初のワードだね。
568:556と559
06/03/19 23:31:38 BE:699782988-
>>556
>>559 です。
すみませんでした。昨日は急いでいて説明が不足してましたが、
実は私の弟が制御の仕事していて現場にネットがないので
フレーミングエラーって何か調べて、と珍しく電話がありました.
自分なりにあれこれ検索を続け、ヒットした内容をそれぞれ伝えましたが、
それが役立つ情報かどうか、読んでいる私にはさっぱりわかりませんでした。
検索中、ヒットしたここに辿り着き、皆様に頼らせていただきました.
時々、2ちゃんねらーでしたが、こんなスレがあることもはじめて知りました。
こんな難しいことを話し合っている皆様すごいです。
今、弟に昨日の確認をしたところ、
一応エラーの表示はでるものの、動作しているそうです。
いつも深夜まで残業漬けの弟を、一人暮らしの部屋だけど
早く帰宅させたかった、制御素人の姉でした。
お騒がせし、そして大変お世話になりまして、皆様ありがとうございました。^o^
569:デフォルトの名無しさん
06/03/19 23:35:54
まったく解決になってないわけだが。
570:デフォルトの名無しさん
06/03/19 23:54:41
>>562
> 何も生産的な発言をしない
まさに、>>562 の発言がそうなわけだが w
571:デフォルトの名無しさん
06/03/20 00:17:52
ハードはつくらないの?
572:552
06/03/20 01:10:48
>>565
>>566
>>567
私、まだわかってないみたいですね・・・
皆さんのアドバイスを元に私なりに整理してみました。
添削していただけると幸いです。
前提条件(簡単化のため)
プロセッサがサポートするバイトオーダー: ビッグエンディアン
プロセッサが使用可能なデータバス幅 : 16bit
プロセッサに接続しているメモリのデータバス幅 : 16bit
メモリのスペック:2Mワードx16bit (容量4Mbit)
このシステムで使用したいメモリの総容量: 4Mbit
この前提条件の場合、プロセッサには1個のメモリが接続される構成となる。(メモリとプロセッサのデータバス幅が同じなので)
また、
このメモリの0番地からプロセッサが16bitリードすると、メモリの最初のワードが読み込まれる。
2番地からプロセッサが16bitリードすると、2番目のワードが読み込まれる。
1番地からプロセッサが16bitリードすると、最初の下位ハーフワードと2番目の上位ハーフワードが読み込まれる。
(プロセッサが奇数番地からのワード読み込みをサポートしていたならばの話)
さらに
unsigned char tmp;
*(unsigned long*)0x0000 = 0xaabbccdd;
tmp = *(unsigned char*)0x0001;
をするとtmpの中身は0xbbということになる。(メモリの最初のワードから読み出される)
そして、
この場合、プロセッサが使用可能な物理メモリ空間の大きさは512k(4M / 8)
どんなもんでしょうか?
573:デフォルトの名無しさん
06/03/20 01:15:28
どうみてもめちゃくちゃです。
本当に(ry
574:552
06/03/20 01:26:07
そうですか・・・まだぜんぜんだめですか・・・
どの辺がとくにだめでしょう・・・?
(`・ω・´)
575:デフォルトの名無しさん
06/03/20 01:46:19
いや、こういっちゃ何だが偉そうに回答している人間の方もよく分かってないと思われるw
もっとシンプルに考えればいいんだよ。
プログラマは普通ハードウェアがどんな実装をされているか、まで考える必要はない。
そのための抽象化でしょ。
1つのメモリアドレスにには1バイトのデータが割り当てられる。
データバスが何ビットだろうと、バイト単位のアクセスがRead-Write-Modifyで
実現されていようが、バスの8本だけを使う方法で実現されていようが、そんなことは無関係に。
ただそれだけのことでしょ。