05/09/06 17:13:46
まったり逝きましょう。
ハード寄りの話も大歓迎です。
道具話も楽しくやれるならやってくらさい。
この世界は処理系依存はあたりまえだから、処理系明記するのを忘れないでね!
過去ログ
制御系なら俺に聞いてもいいぜ(7)
スレリンク(tech板)
制御系なら俺に聞いてもいいぜ(6)
URLリンク(fun.kz) (新タイプミラー)
制御系なら俺に聞いてもいいぜ(5)
URLリンク(fun.kz) (新タイプミラー)
制御系なら俺に聞いてもいいぞ(4)
スレリンク(tech板) (行方不明)
制御系なら俺に聞いてもいいぞ(3)
URLリンク(pc2.2ch.net)
制御系なら俺に聞いてもいいぞ(2)
URLリンク(pc2.2ch.net)
制御系なら、俺に聞け!
URLリンク(pc3.2ch.net)
関連過去ログ
●●●くみこの組み込み相談室●●●
URLリンク(pc3.2ch.net)
2:デフォルトの名無しさん
05/09/06 17:39:17
没スレ乙
3:デフォルトの名無しさん
05/09/06 17:42:03
制御系とはなんですか?
4:デフォルトの名無しさん
05/09/07 06:41:07
のっけから凄い質問が(^o^)・・・ 一応釣られてあげると、機器の制御専用に使われるマイコン
をプログラムする仕事です。 Winなんかと違って、昔のプログラム習慣が生き残っていたり、
いまだにASMオンリーだったり。パソコンより低脳の石が主流。ある程度ハードの知識も要ります。
5:デフォルトの名無しさん
05/09/07 07:42:55
と、組み込み系しか制御系じゃないと思い込んでる>4が回答しております。
6:デフォルトの名無しさん
05/09/07 08:35:43
俺は産業用パソコンで組んだことがあるな。
石なんだったかな~?
Pentiumの何か。
でも、普通、組み込み系を想像するよね。
7:デフォルトの名無しさん
05/09/07 09:14:27
まーこのスレは何でもアリでしょう
みんなの所の仕事も色々やらされてない?
8:4
05/09/07 16:51:37
あ~、すいません、俺はたしかにクミコ系ばっかり。パソコンで産業用機器の制御指令を
出すような分野も含むのね。でも過去の話題もクミコ系が多かったですね。
9:デフォルトの名無しさん
05/09/07 20:30:10
>>5
ならてめーが回答するときは、
すべてのケースを想定してんのかよ
うぜーんだよぼけ
くそ
10:デフォルトの名無しさん
05/09/07 20:43:13
携帯関係は制御系ですか?
11:デフォルトの名無しさん
05/09/07 21:04:56
冷蔵庫関係は制御系ですか?
12:デフォルトの名無しさん
05/09/07 22:12:05
本屋で組み込み入門みたいな雑誌が置いてたよ。
Cマガジンあたりの隣に
13:デフォルトの名無しさん
05/09/07 22:59:05
組込みプレス Startup Issue
URLリンク(www.gihyo.co.jp)
創刊準備号
14:デフォルトの名無しさん
05/09/08 00:10:43
眠たいときは制御系が朝鮮系に見える
15:デフォルトの名無しさん
05/09/08 20:57:39
>>13
あーこれこれ。
16:デフォルトの名無しさん
05/09/09 04:04:31
凄いな、プレス機も組み込みなのか
17:デフォルトの名無しさん
05/09/09 04:54:05
>>16
つ URLリンク(www.mcm-tech.co.jp)
18:デフォルトの名無しさん
05/09/13 23:31:08
T-Engineのやりかたおしえて
19:デフォルトの名無しさん
05/09/13 23:40:18
>>18
まず、完成形を決める
20:デフォルトの名無しさん
05/09/14 00:22:51
>>18
名大大学院 情報科学研究科に進学する
21:デフォルトの名無しさん
05/09/15 02:29:31
T-Kernelの仕様書とかいうのを買ったんだけど
これをコーディングすればあっというまに
T-Kernelのできあがりなの?
22:デフォルトの名無しさん
05/09/15 02:32:21
そうだ
23:デフォルトの名無しさん
05/09/15 06:12:35
あっというまに は言い過ぎだな。さんざんアホな馬具を出しまくった後に。
24:デフォルトの名無しさん
05/09/15 09:00:04
>>21
ソースはここで申し込めばダウンロードできる。
URLリンク(www.t-engine.org)
25:デフォルトの名無しさん
05/09/15 19:45:03
>>24
個人情報の入力がうざいので1から作ることにしました。
26:デフォルトの名無しさん
05/09/16 16:06:09
質問なのですが
仕事でunixでCでソケットを使うプログラムをつくってるひとっておられますか?
unixプログラミングのスレのひとは学生しかいないみたいなんですけど、、。
27:デフォルトの名無しさん
05/09/16 16:07:01
作ってましたが何か。
28:デフォルトの名無しさん
05/09/16 16:30:13
>>27
さすが
レス有難うございます。
やはり、デバイスドライバとかも書けないと私は使い物にならないのでしょうか?
29:デフォルトの名無しさん
05/09/16 17:09:27
頭が痛くなってきた
30:27
05/09/16 18:35:48
私はデバイスドライバなど書いたことはない!
書けるかと聞かれたら、当然「書けるように努力する」と答えるのみ(ぉぃ
31:デフォルトの名無しさん
05/09/17 22:14:43
デバドラって名前が何か格好いい
32:デフォルトの名無しさん
05/09/17 22:45:43
連ドラと似たようなもんだと思うが。
33:デフォルトの名無しさん
05/09/18 16:07:27
OSは使わない
ほとんど静的に周辺機器や変数のサイズが決まってしまう
こんな環境でオブジェクト指向風に組む価値はあるのでしょうか?
34:デフォルトの名無しさん
05/09/18 16:12:38
>>33
それだけではなんともいえない。つーか、オブジェクト指向は周辺機器やOSによって左右されるわけではない。
35:デフォルトの名無しさん
05/09/18 19:11:00
>>33 あんまり徹底的にやらず、妥協したほうがいい。 でも、その考え方を知っていると
「情報隔離」の考え方をできるので、モジュール分けのときに「デバイス対応」の分け方をできる。
俺はその原則+多少の妥協をこんなふうにやった。格納=ライトルーチン(そのルーチンはドライバを使い
実際のデバイスに書き込む) 参照=ライトルーチン内のキャッシュに残ってる情報を返す、実際のデバイス
ドライバにはアクセスしない。 非対称ではあるけれど、アクセス速度・デバイスの書き込み制限、
などからこうするのがベターだった。
36:デフォルトの名無しさん
05/09/18 21:53:34
>>35
意味わかんないよ。悪いけど。
37:デフォルトの名無しさん
05/09/18 22:08:53
デバイス - ドライバ - ルーチン - 格納
キャッシュ - 参照
データ構造
キャッシュ
手続き
なんとかルーチン::格納() {
ドライバがうんたらかんたら
キャッシュになんかする?
}
なんとかルーチン::参照() {
キャッシュの情報?
}
俺もよくわからん
38:デフォルトの名無しさん
05/09/18 22:57:51
こういう人がプロジェクトにいると困るよね
一人プロジェクトを任せるときには便利だけと
チームものは無理だな
39:35
05/09/19 05:05:57
うん、俺は小物専門だから常に一人。内部摩擦係数ゼロでお気楽。
40:33
05/09/20 07:05:14
ちょっと抽象的すぎてわかりにくかったと思います。
もう少し書くと、動的にオブジェクトを生成したりすることなく
すべて静的に決まってしまう用途という意味です。
41:デフォルトの名無しさん
05/09/20 07:52:11
>>40
>>34
まして、動的かどうかとも直接関係がない。
42:デフォルトの名無しさん
05/09/20 08:00:22
まあCでOOやるなら FILE 方式。
つまり、
1、openで何かの初期化した構造体へのポインタを返すと同時にハードを初期化して
その構造体の中身を教えないという手もある。
つまり、void * で渡してしまう。
2、アクセス関数の最初の引数は その構造体へのポインタ
実際の関数は、その構造体中に関数ポインタが埋められていて、そっちが処理する。
⇒利用者はそういう構造を知らない
⇒同じアクセス関数が、openの仕方によ変化する が操作方法は当然同じ
だろうな
43:デフォルトの名無しさん
05/09/20 09:51:47
>>40
意味はある。 ハードは性的にキマってるとしても
ソフト、とくに何らかの通信プロトコルのようなものや
単純な状態遷移を実装するときはC++便利だよ。
何も考えなくてもいいからな。newは当然使用禁止な。
44:デフォルトの名無しさん
05/09/20 22:03:55
>>40
静的に決まるなら配列でやればよい
何もmallocだfreeだとかnewだとかdeleteだとかにこだわらなくてもよい
45:デフォルトの名無しさん
05/09/20 23:54:02
つまり、>40は動的オブジェクトこそがOOだと思っているということか?
まぁ、>42も似たようなもんか。
46:デフォルトの名無しさん
05/09/21 00:02:36
そんな一方的にイワンでも・・
47:42
05/09/21 06:43:52
>>45
おいおい、ポインタを返すから動的って決め付けはどうかな
48:デフォルトの名無しさん
05/09/21 07:40:34
いや、「ポインタを返す」からじゃなくて「実装方法に拘泥している」から。
49:42
05/09/21 07:47:48
ああそういう事か。 そこらへんはセンスだから、お好きなように。
といっても、作り手と利用者をしっかり分けられるこういうスタイルになると思うけどね
50:デフォルトの名無しさん
05/09/21 10:19:25
実装方法に拘泥したコーディング
なんちゃってゲハハ
51:デフォルトの名無しさん
05/09/21 19:12:22
どこで笑えばいいの?
52:デフォルトの名無しさん
05/09/25 13:42:48
多分「拘泥」と「「コーディ」ング」をかけたところが本人的に
すばらしく知的でハイセンスなギャグだと感じて
この感動を2chの皆様にも披露したくなったんではないでしょうか
53:デフォルトの名無しさん
05/09/25 15:13:28
最近見かける、会社の入り口に置いてある電話番号案内も制御系か?
ああ言うの作る仕事に転職したいんだが
54:デフォルトの名無しさん
05/09/25 16:56:37
いや、あれは単に交換機の仕様からメモし直して貼ってあるだけかと。電話番号案内を
作るみたいな仕事は制御系とは違うぞ。 交換機のほうを作るのは制御系だが。
55:デフォルトの名無しさん
05/10/05 20:10:14
uartのringバッファの管理について、こんなことを考えました。
ライトポインタ・リードポインタ・バッファ内滞留数をuintで考えます。
バッファ内滞留数はタスク側・割り込み側両方で++/--するので、タスク側でdi/eiが必用。
ライトポインタは書き込み側のみが、リードポインタは読み込み側のみがそれぞれ変更します。
「バッファ内に有効バイトがあるかどうか」だけなら「滞留バイト数」の情報は不要で、
(書き込みポインタ != 読み込みポインタ) の判定でできます。今は滞留バイト数を参照して
例えばバッファのサイズを超えて書き込むなどを避けているのですが、
「ライトポインタとリードポインタ(どちらも2のn乗のバッファサイズのモジュロで循環している)だけから
滞留バイト数を計算する」 ことは可能でしょうか?
それが可能なら「滞留バイト数」の情報を削ることができて(゚Д゚)ウマーなのですが。
56:デフォルトの名無しさん
05/10/05 20:30:58
□1、理屈の上ではこの手のFIFO処理で割り込み禁止する必要はない。
たとえば、シリアル受信の場合
割り込みでwp
メインでrp を更新するが
メインでrpを更新してから、実際に書き込む実装、つまり
1、 wrp :=rp;
2、 rp := ( rp+1) mod BufSize;
3、 with wrp^ do begin メンバの設定 ;end
とすれば、どこで割り込まれても困りはしない
□2、
で、バッファにあるデータのサイズは
Size = ( (wp-BufTop) - (rp-BufTop) +BufSize) % BufSize;
Size = ( wp - rp +BufSize) % BufSize;
57:55
05/10/06 06:35:52
□1は知ってます。di/eiは滞留数の更新時だけやってます。
□2:ありがとうございます。幾つか数値を入れてやってみたらうまくいきますね。
ラップアラウンド中どうなるかが判らなかったので質問したのですが、ヤッホー(^o^)
58:デフォルトの名無しさん
05/10/06 07:15:37
2のべき乗のサイズならmodの部分は and か bclr で 書ける
59:55
05/10/06 09:02:26
□2について、「滞留数」情報の有るときと1点だけ違いが見つかりました。
滞留数情報があれば、wp==rp で、滞留数==BufSizeという、極端な滞留が許されるのですが、
滞留数情報が無いと、滞留数は (BufSize-1) までになりますね。
でも、ふつうはそこまで溜めないうちにガードがかかるようにシステム/アプリを作るはずだから
問題にはならないとおもいます。
>>58 そうですね。遅い石なのでその辺も使ってます。sizeof 配列 が2**nなら
%演算を書いても cが and を出してくれるかどうか試してみようとおもってます。
60:デフォルトの名無しさん
05/10/06 09:28:01
wp=rpを使うとなると、メイン側で、バッファの値を読むところまで 割り込み禁止しないといけない
そうすると、禁止されてる間に処理しなければいけないデータが来たときに厄介だよ
61:55
05/10/06 10:05:12
なので、受信側は滞留数情報を残しました。送信側についてだけ、wp、rpのみでやります。
すると、wpとrpが同じか判断するところは割り込み側にだけあるようにできます。
LSIC-80の8085機能でやってみたら、%演算書いても cが and にしてくれました。
演算量は8085なのであまり減りませんでしたね。wordの比較を8bitACCでやるから。
H8あたりだとウマーなのですが。 でもcコードは簡潔になったから(・∀・)イイ!。
受信側は、「受信滞留あり?」をメインループで判定する構造にしてるので、滞留数情報を
残しました。wpとrpを比較するコードより滞留数intがゼロかどうか見るコードのほうが軽いから。
ちなみにwp^rpと書くと16bitのXORをインライン展開して、wp!=rpと書くと call word比較が出ました。
62:デフォルトの名無しさん
05/10/07 23:13:25
ていうか受信にリングバッファなんて必要?
どうせマイコンでやるようなシリアル通信なら相手から来るコマンドなり何なりは
デリミタ付きなりパケットにデータ長が含まれてるなりするわけでしょ?
つまり、ある1バイトを受信したとき、その時点でそこが一区切りの情報かどうか
はっきりするわけだ。
だったらその時点で受信バッファの内容を「コマンドバッファ」にコピーしたらいいじゃん。
そうすりゃ受信をリングバッファにする必要なんてないよ。
もちろんこの方式でも、コマンドバッファの内容が未処理のうちに
次のコマンドの受信が完了してしまったらどうするのかって問題はあるが。
63:デフォルトの名無しさん
05/10/08 01:12:17
>>62
寝言は寝てからにしてくださいね
64:デフォルトの名無しさん
05/10/08 01:40:45
>>63
幼稚な奴。
どうせ反論するなら、なぜ受信バッファはベタな配列ではなく
キューにする必要があるのか根拠を言えばいいのに。
まあそんな能力はないのに口だけ出したいんだろうけど。
今日日こういうレスする奴が40面下げたオッサンだったりするんだよなあw
65:デフォルトの名無しさん
05/10/08 01:48:59
>>62
(><)ノ お答えしまっす!
確かに電文が短いうちはそれでいいと思うけど
なが~い電文を逐次処理する羽目になったときに
リングバッファがいるかな~ という感じです!
66:デフォルトの名無しさん
05/10/08 02:18:43
データの長さは関係ないと思うけど。
っていうか、普通は(逐次処理できるのなら)逐次処理できるからこそ
リングバッファなんてイラネってなるはずだと思うけど。
例えばWinのメッセジーキューはPOSTされたメッセージを逐次処理できないんで
キューになってるわけね。
マイコンでやるようなシリアル通信なんてたいていはデリミタか指定バイト数分受信したら
受信バッファの内容を全部パーサーに投げればいいような処理でしょ。
こんなのリングバッファでやる必要なんて全くないじゃん。
67:デフォルトの名無しさん
05/10/08 02:44:13
>>66
(><)ノ 補足しまっす!
リングバッファのもうひとつの利点は
シリアル受信を割り込み屋さんにお任せすることにより
キューを処理中にもガスガスとデータ受信できることで、
これがただのベタ配列だと あー キューを2本用意すれば
いけると思ったあなた! 鋭いですが そのキューの処理は
>>62でご自身も書いてますように いろいろある感じです!
68:名無し募集中。。。
05/10/08 02:45:44
リングバッファが複雑すぎて作れないって人は無理に作らなくて良いよ
69:デフォルトの名無しさん
05/10/08 02:49:08
複雑すぎるという言葉自体に驚いた
70:デフォルトの名無しさん
05/10/08 02:59:09
(><)ノ データ受信とメイン処理を一緒にするのはお勧めしません!
>>66のようにコードを書くと、データの受信のあとに
処理が終わるまで次のデータは受信できない? ということに
なりかねないコードになります。 相手は問答無用でデータを
押し付けてくる機械マンのケースが多いので、つらいDEATH。
じゃあデータの処理を別スレッドに飛ばそうか? とかいうと
つまんない受信処理が本スレ、メインの処理は別スレ、と
なんだかコードの視認性が悪くなってしまいますのです。
71:デフォルトの名無しさん
05/10/08 03:07:35
(><)ノ ですが、限定された条件下でなら確かにリングバッファは不要です!
短かめのデータ受信→なんか処理→ACK/NAK返送
という流れが確定し、今後30年はその仕様に変化がないと
クライアント様にハンコを突かせたなら、もうそれは>>66さんの
コードで必要十分なわけです。これはこれで見やすくなります。
72:デフォルトの名無しさん
05/10/08 03:12:03
>>67>>70
わかってないな。
>>62に書いた「問題」ってのはリングバッファでリングが一週回ってしまった
場合の問題とほとんど等価だよ。
つまりどちらにしろ問題は起こりうるわけで、それはリングバッファを採用する
理由にはなりにくい。
>>>66のようにコードを書くと、データの受信のあとに
>処理が終わるまで次のデータは受信できない? ということに
なりません。今日的な常識でいって普通はね。
前のコマンドの受信完了から次のコマンドの受信完了までの時間はまあ
短くてもmSecのオーダーといっていいだろう。
パーサーがコールされるまでにmSecオーダーレイテンシがありうるシステムなんて
今時ありえんでしょ。
仮にあるとすれば、リングバッファにしようがどんなデータ構造を採用しようが
同じこと。いずれ地獄は来ることになる。
73:55
05/10/08 03:18:44
私の製品の実装例では、4.8Kで受信、数十バイト可変長のASCIIフレームが揃ったらその中から
数値情報を抽出するなんてことをやります。1文字の受信間隔は2mS、CPUは3MHzの8bitで
乗除算命令が無いので、sscanfの整数変換相当の機能を実行するのに数十mSオーダーで
時間かかります。ですからあるフレームの処理中に普通に次のフレームの頭何バイトかは受信が
あるわけで、>>62や>>66みたいなわけには行かないのです。
74:55
05/10/08 03:24:48
すげ~な、こんな時間に起きてる人が少なくとも2人・・・ 私は早起きのほうですが。
リングバッファのサイズは、受信では重い処理が何十ミリかかるか、送信では一度にどの位
の情報を書くかを見つくろって決めます。全部で8KBしかないメモリを、制御用変数とスタックと
リングでやりくりします。
75:デフォルトの名無しさん
05/10/08 03:32:10
>>74
(><)ノ バトンタッチします!
逃げるついでに今から仮眠取ってきます!
76:デフォルトの名無しさん
05/10/08 06:54:06
せっかくFIFO式(リングバッファ)にしているのに、最後に
コマンドバッファド式にコピーして使ってるせいで台無しになってるコードをメインテナンスした所だ。
コマンドバッファ式だと、受信して処理して結果を返すというサイクルで回ってる間は問題ない。
でも、通信路の速度を最大にしようとすると、
コマンドを処理している間に次の受信をさせる事になる。
受けと取って処理して返信だと、処理時間がゼロでも2倍以上かかる。
USBーシリアルなんて使うと、さらにディレイが入る事になる。
PCやマイコンは高性能になっても、通信路(ボーレート)は物理的な制限で上げられないし
USB-シリアルの遅延なんてのはボーレートを上げても改善しない。
だから、コマンドを結果を待たずに、FIFOがある限りどんどん送りつけて(フロー制御して)
という方向になってるわけよ
77:デフォルトの名無しさん
05/10/08 07:15:39
>もちろんこの方式でも、コマンドバッファの内容が未処理のうちに
>次のコマンドの受信が完了してしまったらどうするのかって問題はあるが。
この対策がフロー制御です。 FIFO(リングバッファ)を持っていると
メイン: 返信用FIFOが一杯(に近づいていれば) コマンド処理をしない
受信: 受信FIFOが一杯に近づいて来たら、(ちょっと待ってね)状態にする。
という決まったスタイルで安全に対応出来ます。
(ちょっと待ってね)状態にしても何バイトか送りつけられる事が殆どなので、それを考慮するとか、
コマンド処理が分散して処理されて時間がかかる場合は、それを考慮するとか
そういう事も、決まったスタイルには含まれています。
コマンドバッファ方式だと、コマンドを受け取って即座に(ちょっと待ってね)状態にしないといけないでしょ?
そうすると、一般的に通信速度が上がらないわけで、そっから、「対策しる!」と言われたら、
あちこち対策入れて、だんだん訳が判らない状態になるわけです。
そんなわけで、PICのようによほど小さい規模のマイコンで無い限りは、シリアル通信ではFIFOを
入れるというのが一般的です
78:デフォルトの名無しさん
05/10/09 15:22:21
ハードにFIFOを持っているが、ハードのFIFO自身にフロー制御機構を持たない場合、停止要求してから
何バイトもダダ漏れになるから(一昔前のPCの大部分に載ってたNS16550Aとか)、フロー制御を下手に
過信するのは危険だし、それなりの対策は打っておくのが普通。
79:デフォルトの名無しさん
05/10/15 11:43:23
保守あげ
80:デフォルトの名無しさん
05/10/15 13:52:09
>>78
そのハード、アラート信号線とか無いの?
81:デフォルトの名無しさん
05/10/15 13:55:23
>>80
>ハードのFIFO自身にフロー制御機構を持たない場合
82:デフォルトの名無しさん
05/10/15 13:59:32
>>81
あ、そうかw
3本線で工場内を繋いでるのかw
83:デフォルトの名無しさん
05/10/15 14:02:05
>>82
飛躍しすぎ
84:デフォルトの名無しさん
05/10/15 14:08:16
まあ、FIFO内のコードを全部解読してから実際のコマンドを発行する仕組みにすれば良いのではないか?
そうそう途切れる事無くコードが送られて来る事も無いだろうに。
85:デフォルトの名無しさん
05/10/15 14:20:23
おまいらのにプロセッサボードにはシリアルポートしか付いてないのか?
86:デフォルトの名無しさん
05/10/15 14:22:45
>>85
つうより、ハード屋さんがそれしか繋げてくれなかったって場合の話らしいよ。
87:デフォルトの名無しさん
05/10/15 14:22:51
>>85
エーテルネットやらUSBやら無線やらうらやましいです
88:デフォルトの名無しさん
05/10/15 20:50:50
>>85
たまに3ポート内蔵とかだとウキウキしちゃうよね。
LEDでモールスはもう面倒になってきました。
89:デフォルトの名無しさん
05/10/27 00:37:34
スレ違いかもしれないですが、
WindowsでUSB接続のデバイスを扱うプロクラムを
作りました。
そのデバイスドライバをインストール
させるのに、Windowsのコマンドか何か(API)からインストール
させる方法をご教示ください。
プログラムのインストーラまでは作ったのですが、
そのデバイスドライバも一緒にそのインストーラで
インストールさせたいです。
infファイルとsysファイル、関連dllはあります。
今は、USBを接続させ、ウィンドウズの自動認識による
ドライバインストールのウィザードからインストール
させるようにしています。
90:デフォルトの名無しさん
05/10/27 03:50:52
>>89
昔のWin DDKにinfファイルからドライバインストールするサンプルコードが付いてたな
俺はそれをDLLにして、InstallShieldから呼び出して使ったよ。
最近はその辺触ってないし、DDKもDLできなくなっちゃったからわからんけど、
Win関係のスレで聞いたほうがいいかもね
91:デフォルトの名無しさん
05/10/27 09:54:07
>>90
そうです、まさしくそれをしたいです。
「デバイス ドライバ インストール」等で
ぐぐったりしましたが、なかなか見つかりませんでした。
Win関連板、スレの場合、多分OSの基本的な
話題ばかりかと思い、実践している方が多そうな
このスレで聞いてみました。
92:デフォルトの名無しさん
05/10/27 11:42:26
>>91
寧ろこのスレはインストーラーなんて興味ないって香具師が多い希ガス。
現にうちのプロジェクトなら、「ドライバをインストールしてください」の一言で終わる。
93:デフォルトの名無しさん
05/10/27 11:47:06
過疎ってるけど、WDMスレのが近いかな
94:デフォルトの名無しさん
05/10/29 07:15:04
教えてください。
URLリンク(mbm.livewiredev.com)
[INFORMATION]で[SHARED MEMORY]の項目を選び、[C CODE]の中の
C++Class Wrapper can be downloaded here, thanks to Raoul
を選んでダウンロードし解凍(するとcmbm.cpp とccmbm.h)してVB6.0でDLLを作成した。その際、
,(即興的っつーかテスト用に)、関数を追加した。そしてvb6.0から関数をコールしたら、
ReadValues()は、connect()から(内部で)参照されたときはエラーになってないようなのですが、
getSensorType()から(内部で)参照されたときには↓のところでエラーになるのです。何故でしょうか。
bool CMBM::ReadValues(); // connect()とgetSensorType();から参照されている
{
data = (TSharedData *)MapViewOfFile(hMapFile, FILE_MAP_READ, 0, 0, 0); <―でエラー
if (data == NULL)
{
Connected = false;
return Connected;
}
return true;
}
95:デフォルトの名無しさん
05/10/29 07:17:03
テスト用に便宜的に追加した関数とは↓です。
int CMBM::getNbSensorvbType(int n_sensor)
{
int is;
is= n_sensor;
TsensorType tt;
tt = getSensorType(is);
is = getNbSensor(tt);
return is;
}
追加した理由は、getSensorTypeでは戻値、getNbSensor()では引数として使われている
TsensorTypeに対応するパラメータの型を、vb6.0では俺にはできなかったから。
96:デフォルトの名無しさん
05/10/29 12:20:12
回答者はそれをダウンロードして試した上で俺様に答えるべき、とでも思ってるのかな。
まあ問題の性質上しょうがないのかも知れないが、
それでもせめてエラーの内容ぐらい書けばいいのに。
っていうか、スレ違いのような気がする。
まあマルチがはわわ~、なんだろうけどさ。
97:デフォルトの名無しさん
05/10/29 16:42:02
vb6のデバッグモードでの実行時のエラーメッセージ
以下の[ ]や( )の文は説明のためであって、表示されたものではない。
(ダイアログメッセージボックス)
VB6.EXE-アプリケーションエラー
“0×038644bd”の命令が”0×03861036”のメモリを参照しましたが、メモリが”written”になることは
できませんでした。プログラムを終了するには・・・・・・
プログラムをデバッグするには キャンセル をクリックしてください。
↓[キャンセルボタン]
(ダイアログメッセージボックス)
Microsoft VisuaI C++
ハンドルされてない例外は、VB6.EXE(CMBPRJ.DLL)にあります。:0×C0000005: Access Violation
↓[OK ボタン]
(cmbm.cpp)
bool CMBM::ReadValues()
{
⇒ data = (TSharedData *)MapViewOfFile(hMapFile, FILE_MAP_READ, 0, 0, 0);
・・・・・・・・
98:デフォルトの名無しさん
05/10/29 17:05:16
Public Declare Function Connect Lib "cmbmprj" () As Double
Public Declare Function isConnected Lib "cmbmprj" () As Boolean
Public Declare Sub DisConnect Lib "cmbmprj" ()
Public Declare Function getNbSensorvbType Lib "cmbmprj" (ByVal n_sensor As Integer) As Integer
以下はTsensortypeの型定義の仕方が不明だから、標準モジュールで止めたファンクション定義
'Public Declare Function getNbSensor Lib "cmbmprj" (Tsensortype As SensorType) As Integer
'Public Declare Function getSensorType Lib "cmbmprj" (n_sensor As integer) As Tsensortype
以下のboolean Bcnctは ローカルウィンドウで、"True"に表示される。
cmbmprj.dllの,bool CMBM::isConnected()のリターンコードがTrueで戻ってくるというのは
既に、dllが参照された時点で、CMBM::CMBM()とdouble CMBM::Connect()が参照され、それによって
bool CMBM::ReadValues()も参照されていると判断される。
Dim iret As Integer
Dim wcnct As Double
Dim Bcnct As Boolean
Bcnct = isConnected() '戻り値は Trueが確認されている
If Bcnct = False Then
wcnct = Connect()
If wcnct = -1 Then
・・・・・
ElseIf wcnct = -2 Then
・・・・
Else
・・・・
End If
Else
iret = getNbSensorvbType(1) 'vb 側としてはここでエラー発生
Form1.List1.AddItem "温度センサーの登録数:" & Str(iret) & " " & TTIME
End If
99:デフォルトの名無しさん
05/10/29 17:11:19
CMBM::CMBM()
{
data = NULL;
Connected = false;
Connect();
}
//---------------------------------------------------------------------------
CMBM::~CMBM()
{
DisConnect();
}
//---------------------------------------------------------------------------
bool CMBM::ReadValues()
{
data = (TSharedData *)MapViewOfFile(hMapFile, FILE_MAP_READ, 0, 0, 0);
if (data == NULL)
{
Connected = false;
return Connected;
}
return true;
}
100:デフォルトの名無しさん
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のアクセス頻度をさげるしかないようですね