制御系なら俺に聞いてもいいぜ(8)at TECH
制御系なら俺に聞いてもいいぜ(8) - 暇つぶし2ch403:デフォルトの名無しさん
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本だけを使う方法で実現されていようが、そんなことは無関係に。
ただそれだけのことでしょ。

576:デフォルトの名無しさん
06/03/20 02:01:35
>>575
よくわかってないだろお前

577:デフォルトの名無しさん
06/03/20 07:34:41
>>572

SRAMにはバイト単位のアクセス許可(16ビットの上位8bitだけ下位8bitだけを有効にする)
が付いてる事が多いから、そうだとすると
>1番地からプロセッサが16bitリードすると、最初の下位ハーフワードと2番目の上位ハーフワードが読み込まれる。
>(プロセッサが奇数番地からのワード読み込みをサポートしていたならばの話)
は可能だけど、 そうじゃない場合には無理だね。


> メモリのスペック:2Mワードx16bit (容量4Mbit)
 は 容量が32Mbitか 4Mbyteかの間違いか
  256Kワードx16bit (容量4Mbit)

>この場合、プロセッサが使用可能な物理メモリ空間の大きさは512k(4M / 8)
 を成立させるには
  256Kワードx16bit (容量4Mbit)
が正解なのだろう

578:デフォルトの名無しさん
06/03/20 08:21:08
マンドクセから、チップとコントローラの仕様によって変わってくる、ってことにしようぜ

579:552
06/03/20 20:37:59
>>575
そうですよね。
ソフトから見た場合、1アドレスには1バイト割り当てられるという理解で良いんですね。
(ハード屋さんがアドレスバスの接続を間違えたりしなければ)


>>577
>SRAMにはバイト単位のアクセス許可(16ビットの上位8bitだけ下位8bitだけを有効にする)
>が付いてる事が多いから、そうだとすると
私がデータシートを読んだSRAMも、確かにLowerByteとUpperByteを区別してデータを取り出せる仕様になってました。

>>1番地からプロセッサが16bitリードすると、最初の下位ハーフワードと2番目の上位ハーフワードが読み込まれる。
>>(プロセッサが奇数番地からのワード読み込みをサポートしていたならばの話)
>は可能だけど、 そうじゃない場合には無理だね。
自分で書いておいてナンなんですけど、これって2回のバストランザクションが発生しますね。
(アドレスバスには0番地しか出ていないから、1番地の上位ハーフワードを同時には取り出せない)
こういうのはコンパイラ&アセンブラがうまいこと2回のバイトリードに振り分けるんでしょうね。

>256Kワードx16bit (容量4Mbit) が正解なのだろう
そうです。間違えてました。すみません。(めちゃくちゃってこのことか・・・)


いやー、おかげさまですっきりしました。
何度もありがとうございました(^^)

580:デフォルトの名無しさん
06/03/20 21:19:28
アラインされてないメモリアクセスを、2回に分割するのはCPUだろ。
アクセスするアドレスがアラインされているかいないかをコンパイラ・
アセンブラ・リンカが知ることの出来ないケースがあるから。
 CPUがサポートしてなかったら、バスエラー。

581:デフォルトの名無しさん
06/03/20 21:30:36
>>580
> アラインされてないメモリアクセスを、2回に分割するのはCPUだろ。
そうなの?

> アクセスするアドレスがアラインされているかいないかをコンパイラ・
> アセンブラ・リンカが知ることの出来ないケースがあるから。
具体的にはどんなケースでしょ?

582:デフォルトの名無しさん
06/03/20 21:43:52
a.c: int *foo(){ return (int*)0x12345; }
b.c: int bar(){ return *foo(); }

583:デフォルトの名無しさん
06/03/20 21:44:29
x86系のCPUは奇数番地からのワードread/writeを2つのバイトアクセスにCPUが別けてくれる
他の多くのCPUは奇数番地からのワードアクセスでは例外を出すだけ
どうしてもそれでアクセスしたいなら自分で例外内でバイト2つに別けるとかするのだろうが
そんな仕掛けをわざわざ入れてる奴はみた事がない。

コンパイラが自動的に奇数番地からのワードアクセスを
バイトアクセスにしてくれるのも見た事がない。

584:デフォルトの名無しさん
06/03/20 22:09:45
このスレのレベルだと、>>582>>581 の答えとわ
かってない奴が多そうな予感。

585:デフォルトの名無しさん
06/03/20 22:10:37
>>583
OSレベルでなんとかしてくれることもある。
URLリンク(www.linux.or.jp)
>不整列アクセス(Unaligned access):
>    他の RISC CPU と同様に、Alpha でもメモリのアクセスに際しては 自然境界に整列している必要があります。
>例えば、メモリから 4 バイトの整数を読み込む場合には、先頭のアドレスが 4 の倍数となっている必要があります。
>同様に、8 バイトの整数を読み込む場合には、8 の倍数のアドレスから読み込む必要があります。
>もし、CPU が正常に整列していないワードをアクセスする場合には、 CPU はカーネルにトラップをかけて警告を出力します。
>そしてカーネルは、不整列アクセスをエミュレートし、何事もなかったかのようにユーザプロセスを実行します
>(ただし実行速度は大幅に落ちます)。

586:デフォルトの名無しさん
06/03/25 16:14:39
>>584
もっと人間を信じろ。そこまでアホばかりではない。

587:デフォルトの名無しさん
06/03/25 17:04:45
>>586
だが、信じすぎてはいけない。そんなに賢い人間はそうはいない。

588:デフォルトの名無しさん
06/03/30 01:32:26
GCCで、特定のメモリ範囲だけを使わないメモリマップを作りたいのだがどうしたらいい?
その領域に、ダミーの変数なり関数を配置しておけばOKだと思うのだけど・・・。


589:デフォルトの名無しさん
06/03/30 01:45:59
>>588
つLDスクリプト

590:デフォルトの名無しさん
06/03/30 04:11:11
変数ならアクセスしなきゃいいだけだが、関数だとその番地にロードされるコードができるね。
「ロードすらしてはいけない」なら関数はだめだな。
俺もCPUのバグレポートで「この番地は使ってはいけない」所には使わない変数を配置した。

591:デフォルトの名無しさん
06/03/30 22:09:01
なんで入出力って非同期転送にならないんでしょうか?ウエイト入れるくらいならキューにしちゃえばいいのに。
なんでウエイト入れなきゃなんないんですか?

592:デフォルトの名無しさん
06/03/31 00:49:53
>>591
ヒント:キャパシタ

593:デフォルトの名無しさん
06/03/31 06:04:12
>>591 巨視的な世界での電圧の変化って、ピュー太の内部CLKと比べると充分に遅いから、
っていう理解じゃだめ?

594:デフォルトの名無しさん
06/03/31 13:31:53
>>591
相手が遅いから

制御系レベルの入出力とデバイスドライバレベルの入出力がごっちゃになってるんじゃないかという前提で、
相手が早いのか遅いのか、同期で読まなくちゃならないのかバッファリングして読んでもいいのかが決まってない世界が制御系。

595:デフォルトの名無しさん
06/03/31 20:07:49
なんか凄いな。いつから皆さんエスパーになったのよ?w

俺には>>591は説明不足の舌足らずな質問にしか見えんが。
端的にいって意味不明ですけど。

596:デフォルトの名無しさん
06/03/31 20:30:48
それは君の経験不足に起因していると思うよ
しなくていい経験というのもあるから、不足というと語弊があるかもしれんが

597:デフォルトの名無しさん
06/03/31 20:44:34
いや凄いってのは当然皮肉なんですがw
仮に591読んで「意味が分かる」とすればそれこそ経験不足でしょ。

自分の妄想や思い込みを抑えて、謙抑的に書いてあることを書いてあるままに
読み取る訓練ができてないんだよそりゃ、悪いけどw

598:デフォルトの名無しさん
06/03/31 20:58:22
ゆとり教育の想像力低下を危惧すべきだな。

599:デフォルトの名無しさん
06/03/31 21:23:18
想像と妄想とは違うよw

確かに、591の文章の意味を想像することはできる。
しかし、入出力、非同期、キュー、ウェイト、などという一般的過ぎることばだけでは、
何についてのどのレイヤーの話をしているのか全く分からない。
可能性は無限に「想像」可能、といっていい。

それを勝手に「ああそのことね…」なんて早とちりして回答するのは
妄想以外のなんでもないよ。

600:デフォルトの名無しさん
06/03/31 21:36:52
確かに君は経験豊富なようだ。
ただし煽られる側のな。

601:デフォルトの名無しさん
06/03/32 00:05:18
もっと書いてくれれば答えガイがある質問かもしれん。
ぱっと見では勘違い電波質問にしか見えんが。

俺の受けた電波は、タイミングチャートを見たことも無い
間違って組み込みやらされてるPGから発信されたものだといっている

602:デフォルトの名無しさん
06/03/32 00:05:29
まとめると、入出力は非同期転送にできるし、キューを使いたければ使えば
いいってことだな。

603:デフォルトの名無しさん
06/03/32 01:09:12
つーか3/32に見えるな、エイプリールフールってことかいね。

604:デフォルトの名無しさん
06/03/32 01:17:49
でスレ呼んでみたが・・・
確かにひどいなこれは。聞いたことある名詞を適当に並べて、
とりあえず接続詞を入れてみましたってな文章だな。

605:デフォルトの名無しさん
06/03/32 01:32:23
>>597
何も分かってないか只の釣りだということが読み取れるから
基礎を講釈してるんだろ

606:デフォルトの名無しさん
06/03/32 01:37:34
I/Oは、CPUの動作している高速なサイクルじゃ、バスにぶら下がってる外部入出力装置が認識できる電位まで立ち上がる事が出来ないんだよ。
だから十分にWAITを入れて電位がHigh(Low)に達するまで待たなきゃならんの。

たとえキューを使おうが、非同期にしようが、I/Oで保持する信号の変化を待つ為にWAIT入れなきゃ行けない。


607:デフォルトの名無しさん
06/03/32 01:39:55
超高速な世界から見たら、配線コードそのものがコンデンサーみたいな物だからなぁ・・・。

608:デフォルトの名無しさん
06/03/32 01:46:49
>>606
答えになってないなw
仮に591の質問の意図が君の思っているとおりであるとしても。

I/Oで保持する信号の変化を待つ為にWAIT入れなきゃ行けない。
それはその通り。
「だから」CPUとI/Oの間にキューが入れば、非同期でできるのになんで、と聞いているのに。

609:デフォルトの名無しさん
06/03/32 01:52:57
PCIeの立ち上がりは100psだっけ?
とてもじゃないが、そんな信号の遣り取りなんか面倒見たくないね。

610:デフォルトの名無しさん
06/03/32 02:05:27
>>608
キューに送る信号の安定待つのにWAIT入れないといけないんだけど?

つか、外部メモリーのアクセスにだってハード的にWAIT入れてるってえのに・・・

611:デフォルトの名無しさん
06/03/32 02:16:14
>>608
つーか、お前が本ネタか?
だったら、お前が考える同期/非同期転送の違い、ウェイト、キュー
FIFO、メモリ、レジスタを定義してくれ

意図が読み取れなくて非常に気持ちが悪い

>>608
ソフトで面倒見られるのはH/Wより”遅い”場合だけだよ
H/Wが逆さに振ってもおっつかないもんは、どうしようもない

612:デフォルトの名無しさん
06/03/32 09:06:26
608ではないが(595=597=599=608か? 言っていることは分かるつもり)

同期転送の例
1) データの変化がクロックに対して決まっていること
2) 転送元クロックと受信側クロックがあっていて、乗り換えの必要がないこと
2') 転送元からクロックが送られてきて、データがそれに同期していること
3) トランザクション終了がデータ転送終了となるもの
非同期転送の例
1) データの有効期間をストローブなどで知らせるバス
2) バスクロックと受信側クロックが合ってなくて、乗り換える回路がある
3) データ転送がoutstandingに実行される

599がレイヤーが違うといっているのは3)とそれ以外かな?

電圧だのキャパシタだの言っている奴はどういう意味のつもりなんだ?同期・
非同期とどう関係するのか全然わからん。メタステーブルにならないところで
読むのは当り前で、1-3で言うところの同期か非同期かは関係ない。

613:デフォルトの名無しさん
06/03/32 09:35:50
>>612
いや、俺は605=611
あんな時間は当然のように仕事してた

正確に言えばキャパシタンスと言いたかったんだろうな
(厳密にはインダクタンスも絡むけど)

その影響で
>>3) トランザクション終了がデータ転送終了となるもの
こうならないと言いたかったんだろう

理由がなんだろうが、ぶっちゃけて言っちまえば
高速な信号の保持機構を端折ったH/Wの尻拭い、ってだけだけどな


614:デフォルトの名無しさん
06/04/24 06:28:01
保守

615:デフォルトの名無しさん
06/04/24 11:03:46
H8/300HシリーズでμITRONを考えています。
・・・が,対応製品が
・ThreadX-μITRON(4.0仕様。グレープシステム)
・NORTi/H83(2.0仕様。ミスポ)
ぐらいしか見当たりません。(TOPPERSは取りあえず除く)

昔は,HI8-3H(2.0仕様)というものが日立純正であったようなのですが,現在利用できるのかが分かりません。

どなたか,HI8-3Hがどうなったのかと,H8/300Hシリーズで使用できるμITRON製品を教えてください。

616:デフォルトの名無しさん
06/04/24 14:00:16
μITRONをH8/300hで使いたいってのは、既に動いてる資産を利用したいからって事かい?


617:デフォルトの名無しさん
06/04/24 17:20:42
SuperHファミリ用リアルタイムOS [HI7750/4]
URLリンク(japan.renesas.com)
>HI7750/4は、μITRON4.0 仕様に準拠したSuperHファミリマイコン用の
>リアルタイム・マルチタスク OS です。

H8用はないっぽい

618:デフォルトの名無しさん
06/04/26 06:22:25
トロンのカーネルはいちおう8bitまで考慮して書いてはあるけど、300Hじゃ動いても重い
でしょうね。ふだんOSレスで書いてる私から見れば、オーバーヘッドすぎるからやめとき、
が最初に出ますね。タイマひとつ張るのに識別子付けて記述言語情報付けて関数アドレス
付けてなんて、「標準化」ってのはそういうことなんだけど、チビの石には負担でしょ。
大事なのは割り込みとタスクレベルと両方から触る変数はタスク側でdi()/ei()かますこと。
セマフォだって根底はこれだけだよ。

619:デフォルトの名無しさん
06/04/26 06:54:59
タスクの切り替えは、単にスタック領域をタスク毎に用意して、スタックポインタを切り替えるだけ
もっともH8はレジスタが多いから重くなるね

620:デフォルトの名無しさん
06/04/26 07:21:46
タスク切り替えごとに割り込みマスクされると....

621:デフォルトの名無しさん
06/04/26 07:30:54
具体的には、 taskA,taskB というポインタを用意しておいて

A->Bタスク切り替え:
 1、全レジスタをスタックに保存
 2、taskA := SP
 3、SP := taskB
 4、全レジスタをスタックから復帰
 5、return

つまり、Cで書く割り込み処理に SP切り替えを追加しただけのコストでタスク切り替えは実装出来る

622:デフォルトの名無しさん
06/04/26 07:32:30
ただ、スタック領域がタスクの数だけ必要になるので、H8/300の1チップで
このスタック領域を確保するのは厳しいだろうな

623:デフォルトの名無しさん
06/04/26 07:43:15
なるほど
でも、SPを切り替える時のコードが思いつかない。

624:デフォルトの名無しさん
06/04/26 07:57:06
SP=ER7だから、普通に mov でメモリに書いて読めばいいだけだよ

625:デフォルトの名無しさん
06/04/26 08:02:44
え、Cじゃ無理なの?

626:デフォルトの名無しさん
06/04/26 08:17:47
h8用のCならインラインアセンブラを埋め込むのは可能だろう

汎用的にやるなら #include <setjmp.h>
setjmpしてlongjmp

627:デフォルトの名無しさん
06/04/26 15:16:50
H8/300HくらいならμITRONサブセットのSmalightOSくらいでいいんじゃね?
トラ技のバックナンバーに載ってる。

628:デフォルトの名無しさん
06/04/30 17:37:55
普通のLinux入れたいです。

629:デフォルトの名無しさん
06/05/02 12:14:22
>>626
625じゃないけど・・・
setjmpとlongjmpでSP切り替えできるんだ・・・

というか、使ったことないのでした・・・setjmp

630:デフォルトの名無しさん
06/05/02 12:32:50
でもアセンブラ使わないとなると、スタートアップ時にmainで巨大な配列をローカル変数に取るとかいう格好になるんで
ちょっと格好悪い


631:デフォルトの名無しさん
06/05/02 13:34:19
setjmpとlongjmpはSPを記憶、戻すというイメージでは?
やっぱり、アセンブラか。個人的には意味ない感じ....

632:デフォルトの名無しさん
06/05/02 14:36:23
630の内容は taskA から taskBを起動する時に
1、taskAのsetjmp
2、大量にローカル変数を取ったtaskBのスタートアップルーチンを呼ぶ
3、taskBで setjmp⇒taskAにlongjmp

2で取ったローカル変数のサイズだけtaskAのスタック領域が確保されるという仕掛け

633:デフォルトの名無しさん
06/05/02 16:02:59
なんか、勘違いしてない?

634:デフォルトの名無しさん
06/05/03 19:33:49
俺もそう思う

uITRON載せるのは16ビット以上ないとつらそうだ。8ビットなら昔は自作のOSもどきのタスクチェンジャ作ってのせてたな

635:デフォルトの名無しさん
06/05/03 20:00:03
uClinuxは?

636:デフォルトの名無しさん
06/05/03 20:22:24
OSのせるとある程度CPUパワーがいるからね。タイミングが厳しいのは....

637:デフォルトの名無しさん
06/05/03 22:19:45
8ビットものはタスクスイッチとセマフォとタイマあればいいや

638:デフォルトの名無しさん
06/05/04 00:14:59
>>635 あれは仮想メモリないCPUでも動くがだいぶ違うと聞いた

639:デフォルトの名無しさん
06/05/04 10:17:59
ぬるい仕事しかしたことないんで、どうも「タスク」とやらの必要性がわからない。
8bitや16bitのCPUでやるような組み込みなんか、
割り込み + 回るコマドリ でいいじゃん。

「コンテキストの保存」というオーバーヘッドは
いったいなんのためのコストなんだろう。

640:デフォルトの名無しさん
06/05/04 10:28:22
「コンテキストの保存・切替」というオーバーヘッドは  割り込みで全レジスタを保存するのと同じですよ。

つまりc言語で割り込み記述するのと同じコストですよ

641:デフォルトの名無しさん
06/05/04 12:22:17
切り替えに時間がかからないのはわかったんですが、
スケジューリング?にかかる時間の計算はどうすればいいの?

642:デフォルトの名無しさん
06/05/04 12:40:49
回るコマドリ というのが、例えば

void progRobin1(void){
 static RobinNo=0;
 switch(RobinNo){
  ・・・・・
 }
}

みたいにしてmainで割り込み待ちした後、各コマドリを呼び出すという方法だとしたら

それをコンテキスト切り替えにしてRoundRobin方式で回したり
入力タスクを出力タスクにつないだりするのと、時間的なコストは変らないのでは?

ただ、スタック=メモリ消費が大きいのが問題だと思うけどなあ

643:デフォルトの名無しさん
06/05/04 12:50:42
その方法はよくわかるんですが、
リアルタイムOSでは、時間計算とかどうしてるのか気になるんですよ。

644:デフォルトの名無しさん
06/05/04 16:07:15
誰が駒鳥さんを殺したの
誰が殺したクックロビン

645:639
06/05/04 16:49:24
>>640
えーっと、だから数代前のMacOSみたいな設計(ノンプリエンプティブ、だったっけ?)
なら、つまり一定時間で強制的にタスクを切り替える、なんてことをしないで
全部ラウンドロビン方式でやれば、コンテキストの保存なんて作業の必要性は
発生しないわけですよねえ。

それじゃまずいタイムクリティカルな部分だけ割り込み使えば、
マイコンでやるような小規模なシステムなら必要十分だと思うんですが。

646:デフォルトの名無しさん
06/05/04 18:31:35
例えば、可変長ブロックの通信処理。 
圧縮が入っていてけっこう厄介なものだとする。
会社Aに通信仕様だわ渡して頼んだら、GetByteみたいな関数呼び出して実装して持ってきちゃった。

でも全体のシステムを設計してた会社Bは
通信部は割り込みで受信する事を考えていたという事があるとするよ。

どっちも自分がマスターで、相手をスレーブと考えていたという場合だ。

このGetByteでコンテキスト保存して会社Bのメインタスクに戻り、
受信割り込みでコンテキスト切り替えしてGetByte に戻してやる。

そうすると、会社Aのコードも会社Bのコードも両方が動くと。


647:デフォルトの名無しさん
06/05/04 18:46:40
まあ上の例だと、FIFOに書いては、ある程度溜まる都度 会社Aのコードを呼び出せるように
変更するという対策もまだ選択可能かもな。


でもさらに、

会社Aが アチコチにあるGetByteで読んで
圧縮されたデータを復元した結果を アチコチでPutByteしてたとするよ。

会社Bも 圧縮された結果をあちこちでGetUnpacByteして動くように作ってデバッグまで終わらせてしまってた。
で、納期は迫ってちゅうような状況だとしたらどう?

こういう状況だと、Aのコード、Bのコードをタスク化してつないでしまわんとしょうがないでしょ?


648:デフォルトの名無しさん
06/05/04 21:07:23
つうか、会社Aも会社Bも、お互いにきっちりコミュニケーションとって下さい。

649:デフォルトの名無しさん
06/05/05 00:08:54
コミュニケーションとった場合でも、マルチタスクを導入しなければ
片方がスレーブ的なコードを書かなければならなくなるわけで
この手のコードはマスター側で書くのは楽だが、スレーブとして書くのは大変でしょ?


650:デフォルトの名無しさん
06/05/05 00:46:28
大変っていうか、とりまとめてる会社がみんな悪いなw

651:デフォルトの名無しさん
06/05/05 16:23:28
どの会社が何を作るなんて決めの問題だろ。
で、決めたらそれを作るだけじゃん。

何が不満なんだ?

652:デフォルトの名無しさん
06/05/07 07:59:59
>643
スケジューラの時間が書いているよ。
URLリンク(documentation.renesas.com)
このITRONの実装では、こうなるということで、実装によって
算出方法は変わりますが


653:デフォルトの名無しさん
06/05/07 08:18:54
ありがと
でも、割り込み禁止時間が...............

654:デフォルトの名無しさん
06/05/07 23:00:44
関係ないけど、可変長と委員長って 似てるよね

655:デフォルトの名無しさん
06/05/07 23:40:05
むしろ月亭可朝

656:デフォルトの名無しさん
06/05/07 23:57:52
委員長かわいいよ委員長

657:デフォルトの名無しさん
06/05/11 15:23:18
かっぱ寿司(回転寿司)にいって、
カウンター席ーー>可変長メモリプール、
テーブル席 ー>固定長メモリプール
と思ったりしませんか? 優先度待ちにできんものかと、
勝手なことを考えたりします。


658:デフォルトの名無しさん
06/05/11 15:59:11
>>657
kwsk

659:デフォルトの名無しさん
06/05/11 21:38:52
うちの子供はテーブル席でも走って行って欲しいもん注文して帰ってくるぞ。


660:デフォルトの名無しさん
06/05/11 22:32:44
よくわからんのだが、かっぱ寿司はカウンター席とテーブル席に格差があるのか?

661:657
06/05/12 09:54:55
>660
優先度待ちで、優先度が高ければ、最後にノートに書いても、
次に呼ばれるということです。なんのひねりもなくてすまん。

ところで、テーブル席(可変長メモリプール)の場合に、
ITRONの仕様より、かっぱ寿司のアルゴリズムのほうが優秀です。
いわゆるフラグメンテーションについてです。というより、ITRONの
仕様が実装をやさしくしたのだと思います。
スレ違いですまんです。


662:デフォルトの名無しさん
06/05/12 10:57:26
中四国で制御系の仕事やらしてくれる会社をおしえてください。

663:デフォルトの名無しさん
06/05/12 11:39:49
教えてあげたいが会社ばれするので断る

664:660
06/05/12 12:43:29
>>661
つまりあれだ、回転寿司かどうかに全く関係なく、ファミレスなんかの着席待ち行列の話だな?
空き席の状況と喫煙席の可否に応じて割り当て順序を変えるのが一般的じゃないのか?
漏れの行くような辺りだと「カウンター席のお客様を先にご案内します」とか、
「禁煙席の空きがありませんのでもう少しお待ちいただけますか」なんてのはよく見る光景だが。

それとあれだ、回転寿司に引き摺られて>659は注文待ち行列とミスリードしたわけだな。
そこで>659に質問だが。
かっぱ寿司ではカウンター席とテーブル席では注文の通し方に格差があるのか?

665:デフォルトの名無しさん
06/05/12 13:06:30
中四国ってそんなに少ないんかい

666:デフォルトの名無しさん
06/05/12 16:55:38
2重振子の振り上げのプログラム書かないとダメだけど全然わかんない…
どうすりゃいいの??

667:デフォルトの名無しさん
06/05/12 17:10:31
>>666
スレリンク(tech板:131番)
タイミングからして、初めからマルチする気満満だな。

668:デフォルトの名無しさん
06/05/12 22:08:27
URLリンク(www.ics.esys.tsukuba.ac.jp)

669:デフォルトの名無しさん
06/05/14 01:27:30
>>662
うちの取引先に岡山のがあるなあ。
前の職場の検査装置が広島だった。

探せば意外にあちこちあるはずだけど
一度中に入らないとそういう情報見えてこないんだよねえ。

670:デフォルトの名無しさん
06/05/14 18:44:30
8人様ご案内のとき、4人席を2つ並んで確保するときもあれば
バラバラにされるときもある
だいたいは予約ノートに書くときに客が指定するけど
ファミレスの運営形態にもよるが、大抵はその8人が
すぐ近くにいたいのか離れてもいいのかで
確保の仕方が異なるんだよ

671:デフォルトの名無しさん
06/05/14 20:36:31
回転寿司でテーブル席だと回転寿司の醍醐味が味わえない。

672:デフォルトの名無しさん
06/05/14 22:13:10
>>671
テーブル席沿いにレールがあっても?

673:デフォルトの名無しさん
06/05/15 00:31:11
>>672
4人がけだと、レールから離れてる方がつらい
取ろうとして手がぶつかってしょうゆこぼすし

674:デフォルトの名無しさん
06/05/15 12:47:31
あー、バスインターフェースがボード上に散らばっている状態か。

675:デフォルトの名無しさん
06/05/15 23:16:55
>672
テーブル席沿いにレールがあるとこってあるの?
ないと思うけど、あったら流行るかな?
これって特許になりませんか?

676:デフォルトの名無しさん
06/05/15 23:24:31
>>675
あるよ。チェーン店でも全商品100円のなんたら寿司はそうだった記憶がある。
つーか、テーブルを縫うようにレールが走っているともいえるね。最早回転じゃない。
このタイプの店は、目の前に職人がいて直接オーダーするタイプの店とは明らかに違う。
店によっても違うのだろうが、機械握りだったりするわけだ。
魚屋チェーンの某魚○が経営していた回転寿司屋もレールが九十九折になっていたが、
休日夜でさえ一部レーンをショートカットするような状態が続いた挙句に終に潰れたよ。

677:デフォルトの名無しさん
06/05/15 23:40:52
神奈川にいた時は元禄すしがおいしかったな。
こっちだとくらがおいしいかな。

678:デフォルトの名無しさん
06/05/16 08:06:17
お前らはアセンブラプログラムだ。皿に乗ったデータが目の前に来ると変なことするだろう。

679:デフォルトの名無しさん
06/05/16 15:34:46
>677
昔、千日前の元禄寿司でバイトしてたことがあるよ。
元禄は、一応職人がにぎってたよ。ちょっとおいしいの
かもね。バイトの大半はエビの作業でした。



680:デフォルトの名無しさん
06/05/16 16:15:43
>>679
元禄寿司ってこっちにもあるんだ。
こっちだと、くらとかかっぱばかり見るからないんだと思ってた。

681:デフォルトの名無しさん
06/05/16 16:21:11
>>680
こっちってどっちだよw

鮪で有名な御崎港には職人が握る回転寿司屋があるが、
レーンは殆ど機能していない。
なんせ客は殆ど職人に注文してしまうので、レーンを流れるのは山葵とかデザートだとか……

682:デフォルトの名無しさん
06/05/16 23:35:38
回転寿司スレはここですか?
回転寿司の寿司をデータと考えたアルゴリズムが思い浮かんで
実装した記憶があるが、どんなのだったか忘れた
この時間でも空いてる店ってこっちだとどこかな

683:デフォルトの名無しさん
06/05/16 23:46:53
大学の時、ゼミの後輩に、プログラミングの勉強のためってことで、
回転寿司シミュレータってのを作らせた覚えがある。

684:デフォルトの名無しさん
06/05/17 17:25:44
HALは一般的にはどのレベルの抽象化ですか?
レジスタアクセスの抽象化か、
ドライバ層全体を指すのか、
俺的には前者のイメージなんですが。

685:デフォルトの名無しさん
06/05/18 11:07:23
>684
一般用語というより、マイクロソフトで使われている言葉じゃないかな。
URLリンク(it.e-otsuka.com)
問いの答えは、後者っぽいけど、アークテキチャに依存しないドライバー部分が
あるようですので、どちらでもないように思います。

このスレっぽい話をすると
TOPPERS/JSPの中の、jsp/config以下に相当するんじゃないかな。


686:デフォルトの名無しさん
06/05/18 22:04:53
>>684
WindowsのHALの話なら、基本的なアーキテクチャの差異
(電源管理、割り込み、マルチプロセッサ対応など)を吸収するレイヤ。
レジスタとかオペコードよりは上、ドライバよりは下の階層。

たとえばx86版の場合だと、割り込みの違い(PICとAPIC)、
電源管理の違い(APMとACPI)、マルチプロセッサ対応の違い
なんかで違うHALが提供されてる(インストール時に自動選択)。

ただまあ、一般化するほど一般的な用語じゃあないかな。

687:684
06/05/24 00:54:38
>>685, 686
こんばんわ

ecosのHAL層とか見てみたんですが、toppersのconfigと同等っぽいですね。
特定のデバイスの抽象化というよりはosを
実装する上でのターゲット依存部(cpu, intc, timerなど)を切り分けたのを
HALと呼んでるっぽいですね。board support packageと同義かな?


688:684
06/05/24 00:59:43
ところで全然話は変わるんですが、
ITRONは要するにマルチスレッドの実行環境である、という認識であってるんでしょうか?
組み込みlinuxやwindows、symbianとかでITRONのタスクのような並行処理の単位となるのは
スレッドになるんでしょうか?

689:デフォルトの名無しさん
06/05/24 01:06:58
>>688
並行処理なんて、やってないからw

690:684
06/05/24 01:25:08
並行は擬似並列という意味で書きました。

691:デフォルトの名無しさん
06/05/24 01:28:16
現役のCPUで、本当の意味での並列処理を実装していたら、プログラマの何パーセントが生き残れるんだろうな・・・

692:デフォルトの名無しさん
06/05/24 21:31:42
>>688どっちかと言うとuItronのタスクはプロセスよりスレッドに似ている。

693:デフォルトの名無しさん
06/05/24 22:41:49
uITRON等で言うタスクは、WindowsとかLinuxのプロセスとほぼ同義。
タスク(プロセス)同士は異なった資源空間に属する。
(もちろん共有できる資源もある)

スレッドはプロセスとかタスクの中で資源空間を共有しつつ
並列に走る処理単位を指す。

マルチスレッドといった場合、プロセス(タスク)の中で
1~複数のスレッドが走ってるモデルを指す。
その場合でも、「プログラム」と言ったら普通は
プロセス(タスク)単位の空間を指す。

スレッドが単体で存在することは普通はない。
あっても特殊な用途向け(割り込みスレッドとか)。

694:デフォルトの名無しさん
06/05/24 23:28:33
>>689, >>691
デュアルコア CPU

695:デフォルトの名無しさん
06/05/24 23:44:23
>>694
使い切れてないだろw

696:デフォルトの名無しさん
06/05/25 08:40:12
タスクの切り替えってメモリ空間の切り替えで、
スレッドってスタックの切り替え(スタックレジスタの書き換え?)なの?

697:デフォルトの名無しさん
06/05/25 09:48:15
>>693
いや、uITRONのタスクは基本的にメモリ保護なかったと思ったが? どちらかというとスレッドでしょう?
もともとMMUの無い環境を想定していると理解している。 最近になって拡張機能としてメモリ保護を
加えたらしい。

μITRON4.0仕様 保護機能拡張(μITRON4.0/PX仕様)
URLリンク(www.ertl.jp)


698:デフォルトの名無しさん
06/05/25 10:40:43
本当の意味での並列処理を実装されてたら
並列処理されていることにすら気付かない

699:デフォルトの名無しさん
06/05/25 22:18:25
何を言いたいのか意味わからん。

700:デフォルトの名無しさん
06/05/25 23:04:59
メッセージ交換なんて端折ってダイレクトにアドレス渡しでやり取りしてるから、無理。
つうか、プロセス間通信のメッセージ内容がポインタって何じゃそれ。の、世界だから、永久に無理。

701:デフォルトの名無しさん
06/05/26 00:20:40
ますますわからん。
まずおまえの言う「並行処理」とやらを定義してくれ。

702:デフォルトの名無しさん
06/05/26 00:28:43
不特定多数の人間に対して「おまえ」とか二人称で言ってる奴の方がワケわからんよw

703:デフォルトの名無しさん
06/05/26 00:31:13
>>701
誰に言ってんの?

704:デフォルトの名無しさん
06/05/26 01:26:38
こういうイチャモンつけるやつには、ホント閉口するわ

なんちゃってゲハハ

705:デフォルトの名無しさん
06/05/26 11:39:23
>>701
人に考えを伝える能力に欠けているやつに
何度訊いたって無駄じゃないかな。

706:デフォルトの名無しさん
06/05/26 11:53:30
推理が楽しいんじゃないか

707:デフォルトの名無しさん
06/05/26 17:34:44 BE:108696487-#
エスパー能力を訓練するスレはここですか?

708:デフォルトの名無しさん
06/05/26 17:42:45
ええ、常に2チャンネルで訓練していますよ。
これはフリーでやってゆくのに、最も必要な能力ですからね。

709:デフォルトの名無しさん
06/05/27 03:28:10
悩んでいるやつの後ろを通りかかったときに
ちらっと後ろから覗いて 間違いを見つけた。
そいつがオレに質問しようと口を開いた瞬間に

ポートが読めない原因を探しているのなら
あんたの担当のサブボードにゃあ ないぜ!
メインボードに(入れちゃいけない)ジャンパがはいっている!

とか言ったらピシガシグッグッをやられた

710:デフォルトの名無しさん
06/05/27 07:56:17
結局間違いは何だったの?


711:デフォルトの名無しさん
06/05/27 08:18:07
1、1つのCPUでスタック領域を時分割で切り替えたりコルーチン構造にする
2、 1つのCPUが複数のレジスタセットを持ち、これを時分割で切り替える
3、 2を命令サイクル毎に自動的に行うもの
4、CPUを時分割で使い、仮想記憶の仕掛でまるで複数のCPUがあるかのように見る
5、CPUが複数存在する

712:デフォルトの名無しさん
06/05/27 12:33:12
FPGAをCで書くために拡張された部分には(真の)並列処理の記法があったな

713:デフォルトの名無しさん
06/05/27 13:15:08
あのさあ、「OSI参照モデル」じゃないけど、どのレイヤーの話をしているのか明確にしないと
ただの揚げ足の取り合いになると思うよ。

プログラマの相手にする対象の範囲内では、
並列処理が物理学的に真に並列かどうかなんて全くどうでもいいことでしょ。

揮発的に見える共有資源があるかどうか、
それだけが問題なのであって。

714:デフォルトの名無しさん
06/05/27 14:04:08
制御系の場合はそうでもないよ。
昔、松下電子の4ビットマイコンで 命令サイクル毎の時分割が出来るのがあったが
こういうのは、命令数数えてシリアル転送するとか、そういうのにはとても便利

715:デフォルトの名無しさん
06/05/27 16:41:52
>>712
System Cとかかな。
まあチップ内処理はほんとに並列実行されるしね。

716:デフォルトの名無しさん
06/05/27 17:09:21
組込み系でUMLとかオブジェクト指向設計とかやってる所ある?
特に開発言語がCな所で。

717:デフォルトの名無しさん
06/05/27 18:26:08
各制御単位において、それぞれの部分全体をオブジェクトと見なす。

718:デフォルトの名無しさん
06/05/27 18:52:59
>>715
真の並列実行などあるはずがない。

719:デフォルトの名無しさん
06/05/27 18:58:48
>>718素人は黙ってろ
世の中にはお前の知らないことも多い

720:デフォルトの名無しさん
06/05/27 19:04:36
>>717各デバイス、U/I、コントロールをクラスにすればOK?
UML使ってみたいがクラスの分類がわからん。

721:デフォルトの名無しさん
06/05/27 22:42:14
>>717みたいのは単なる「仮想化」であって、それなら何十年も前から
そのようにやってるじゃん。

確かにオブジェクト指向の肝でもあるけど。

722:デフォルトの名無しさん
06/05/29 00:59:28
とはいっても、実際、そういう手法を取ってるところ多いからね。

723:デフォルトの名無しさん
06/05/31 01:26:44
オブジェクト指向「風」 なら、その言葉が誕生する前から
やってる人は多いよね

言語レベルで出来るってのは確かに魅力だけど
それだって結局使う人しだいだしね

まーどうだろうね実際

724:デフォルトの名無しさん
06/05/31 01:29:30
オブジェクト指向技法なら、ゲームの世界では20も年前からやってた事だな。

725:デフォルトの名無しさん
06/06/06 23:29:12
組込み開発においてCUnitなどのユニットテストツールを
ばりばり使っている人っています?

ぜひ話を聞いてみたい


726:デフォルトの名無しさん
06/06/07 15:30:54
げ! コード組んでデバッグ初めて気付いた。
H8-Tinyの方向レジスタは読み返しが出来ないのか・・・・

727:デフォルトの名無しさん
06/06/08 16:57:49
>>724
オブジェクト指向は、処理系がそうでなければ、
ただのオブジェクト指向風構造化プログラムなだけだと思うが


728:デフォルトの名無しさん
06/06/08 17:21:13
そんなふうに考えている時期が俺にもありました

729:デフォルトの名無しさん
06/06/08 23:16:30
俺もそうだった

オブジェクト指向言語を使ってるだけで、
オブジェクト指向使ってると思ってるのと一緒


730:デフォルトの名無しさん
06/06/08 23:30:35
バグで人間をぶち殺した人いますか?

731:デフォルトの名無しさん
06/06/08 23:41:05
>>730
人的被害こそなかったが、使用されるモータのパワーと当たり所によっては指くらい切断しかねないバグを出した香具師なら知っている。

732:デフォルトの名無しさん
06/06/08 23:55:32
>>727
オブジェクト指向っていうのは考え方。
言語は何だっていいんだよー。

733:724
06/06/09 03:41:49
>>727
勘違い乙
俺はハナからオブジェクト指向技法と言っている。
アセンブラでポリモフィズムとか出来ないのは言語仕様だからしょうがないw


734:デフォルトの名無しさん
06/06/10 08:08:23
できるよ

735:デフォルトの名無しさん
06/06/10 23:02:34
質問です、近々Web系から制御系に転職するんですが
転職前に前知識として知っておいた方が良い事とか
読んどいた方が良いものってありますか?

736:デフォルトの名無しさん
06/06/10 23:15:24
ごく一部をのぞいてそんなとんがった技術が要求される業界じゃないから
必要な知識はOJT式にやりながら覚えていけるでしょ。

737:デフォルトの名無しさん
06/06/10 23:33:56
>>735
知っておいたほうがいいこと
 ・部品マニュアルの和訳は無い
 ・部品マニュアルは必ずしも正しくない

738:デフォルトの名無しさん
06/06/10 23:43:24
>>736 >>737
おぉ!ありがとうございます
周りに経験者がいないので結構びびってました
英語力は必要だとは聞いていたのでマニュアル見れるようにがんばります

739:デフォルトの名無しさん
06/06/10 23:52:22
割り込みハンドラでやってはいけない処理って
どういうのがあるのでしょうか?

740:デフォルトの名無しさん
06/06/11 00:00:28
>>739 時間を取る処理をすること。割り込み中は他の処理を止めているため割り込み中で時間をとると他の処理がタイムアウトや失敗することがある
割り込み以外とリソースを共有すること
変数などを共に書き換えているときは割り込み以外は割り込み禁止にしてかき変えないと競合する

741:724
06/06/11 00:45:54
>>740
変数書き換えごときで割り込み禁止にするなよ。
つか、割り込みの外と中で同じ変数に書くな。
中で書く変数は外では読み専用。
外で書く変数は中では読み専用。

742:デフォルトの名無しさん
06/06/11 01:22:13
>>741
おいおいなんだか痛い人だなあ。

例えばさあ、その「中で書く変数」とやらを「書く」操作が
アトミックじゃなかったとしたらどうなるんだよ。

っていうか>>739はマ板でも同じ質問してるんだよね。
そっちでも書いたけど、そもそもそれが分かってない奴が
割り込みつかっちゃいけないよ

743:デフォルトの名無しさん
06/06/11 01:22:52
>>740

セマフォなどのリソースの獲得も問題なのでしょうか?

744:デフォルトの名無しさん
06/06/11 01:43:33
割り込み禁止なんて事は、どうしようもなかった時の方便で使うにトドメレッてことだろ。
つか、そもそも割り込み内でリソース扱うなw システムコールもするなw

745:デフォルトの名無しさん
06/06/11 03:22:53
セマフォの「獲得」は初期化時にやっとくのがふつうだね。
セマフォを使った排他制御自体は(長く止めないことが判ってれば)割り込み中でも可。

>>741 uart使うときの、リングバッファ中の滞留バイト数みたいな情報は割り込みの中と外
両方から更新する必要があるでしょ。これを割り込みの外から更新するときには割込み禁止
にする必要がある。LD、add、ST、の3命令だけの短時間だけ。

746:ビル・ジョブス
06/06/11 03:45:43
割り込み処理で使えるリソースは自分自身が管理しているデバイスとメモリ、
システムコールは許可されている物のみ。
割り込み禁止にする・しないは、割り込みレベルを抜きに語れないでしょ?
通常はより優先度の高い割り込みは入れるものかと。

リングバッファについては割り込み側はputのみアプリ側はgetのみにすれば
割り込み禁止にする必要もないかと、getが遅くてputできない状態は取りこぼすが、
そればリングバッファを増やすなど設計・運用で対応するのがベター。
putPtrとgetPtrを用意してポインタで管理すればアプリは何バイト読めるか計算で
求められるのでバイト数をカウントする必要は無いよ。もしもその瞬間割り込まれたとしても、
putPtrが1マシンサイクルで更新される、つまり1インストラクションで更新されるCPUならば、
割り込み処理側が優先されるので不具合にはならないはず。
SHはOKでH8-300シリーズもOK、H8-500シリーズは割り込まれると怪しい処理になるかもね。
よって厳密にはケースバイケースが正しいのでは。

747:デフォルトの名無しさん
06/06/11 04:15:31
送信側のringバッファは以前このスレで聞いてポインタだけに直せました。

受信側は、「受信したバイトがあるかどうか?」を見るのに滞留数を使ってるので、滞留数を
廃止できなかったのですよね。滞留数をputptrとgetptrから計算する手法はここで聞いて理解
したのですが、取り出し側で滞留数を判定するときに毎回その計算するよりは、
受信時滞留数++、取り出し時滞留数--、滞留数がゼロでなければ「受信バイト有り」のほうが
オーバーヘッドが少なそうだったので。3MHzの8085での話です。

10MHzオーバーのH8ならそんなオーバーヘッドは気にしないでよさそうですね。
H8/500シリーズは、メモリ++が1命令でできるのでだいじょうぶです。

748:デフォルトの名無しさん
06/06/11 05:14:11
少なくとも >>735>>739 には

エレベータ制御はやらせてはいけない


749:デフォルトの名無しさん
06/06/11 07:23:20
@itで組み込みベンダーの半分は海外に外注って書いてあったけど本当?

750:デフォルトの名無しさん
06/06/11 11:30:49
質問者は「割り込みハンドラのなかで~」と抽象的なことしか言ってないのに
特定の環境に引き寄せて回答してる奴ってのは頭おかしいのかね
自分のやってることが世界の全てだとでも思ってるのだろうかw

抽象的な質問には抽象的に答えるしかないだろうに。
具体的を出すなら「例えば」と前置きしろよ。
ま、具体的すぎる「些細な話」が一般的に万人にとって役立つとはとても思えないが。

751:デフォルトの名無しさん
06/06/11 11:33:26
OS使えよ。バカなんだから。

752:デフォルトの名無しさん
06/06/11 11:53:22
>>749
多分、本当。
でもって、仕様通りじゃないとか、糞過ぎて使えねえとか、その辺の経験を一通りクリアしたくらいの時期。

753:デフォルトの名無しさん
06/06/11 11:56:07
>>450必死だなw
素人は黙ってろ
組み込み系は専門知識が重要だから無知なやつが書いたらすぐ判るぞ

754:デフォルトの名無しさん
06/06/11 11:59:15
いつの話を蒸し返してるんだよお前わ

755:デフォルトの名無しさん
06/06/11 12:00:39
そのくらい粘着じゃないと、BUG取りはできないよな。

756:デフォルトの名無しさん
06/06/11 12:05:16
>>752 thx うちの会社は遅れてるのかな。
国内の外注は良くやるが海外の外注はないな。
実装がアウトソーシングされるとSEとQAしか会社に残らんのとちゃう?

757:デフォルトの名無しさん
06/06/11 12:08:59
>>756
固有デバイスに特化した知識なんていらないだろ?

758:デフォルトの名無しさん
06/06/11 13:13:18
>>575 特定デバイスに特化した知識がないとオープン系と変わらんぞ
組み込みlinuxなどのオープン系のOSが普通になると組み込み系の技術者はハードとソフトの両方の知識が入るドライバー周りだけしか残らないかもな
実際ソフト規模が増えて組み込み技術者不足らしいがオープン系から流入して来るんだろうな

759:デフォルトの名無しさん
06/06/11 13:20:32
>>758
おまい、わかってないな。
特定デバイスは特定デバイス専門でやてくれる所に投げればいいんだよ。
その方が、安いし速いし安全。

システム全体の寿命と、そのデバイスを採用し続ける寿命、どっちが長いと思ってんだ?

760:デフォルトの名無しさん
06/06/11 13:26:41
>>759話が噛み合わないな
ドメインが違う?
普段何開発してんだ?

761:デフォルトの名無しさん
06/06/11 19:58:37
今FPGA開発している。
ソフトと違うんで色々苦労するけど、興味深いものはあるな。

海外に外注というか、系列ソフト会社に外注して、その孫外注が在日の中国人で
日本語でコメント入れてくれてたんだけど、てにをはが壊れている以上だった。
今はインドとか開発依頼している。
日本に来てもらったりした時は、ベジタリアンとかだと食事の世話に困るんだよなあ。

762:デフォルトの名無しさん
06/06/12 18:41:56
普通に英語でコメントを書いてくれればいいんだけど、
現地語でかかれてなんじゃこりゃ?って経験はある。

763:デフォルトの名無しさん
06/06/13 07:34:08
香具師らも日本語のコメント見て
現地語でかかれてなんじゃこりゃ?って思ってるだろうな

764:727
06/06/13 12:48:47
>>732,>>733
ま、議論し尽くされたネタだし、版違いなんだろうが
オレ的には、どこまでいっても、オブジェクト指向と構造化プログラムは似て非なるものという認識なのだが
とくにCの場合は、旧処理を許しているから混同しがちだが
旧処理系でどんなにオブジェクト指向"風"にやってもそれはあくまで高度な構造化
それを広義に"オブジェクト指向技法"といってよいものかどうかは、現在の理論でどう解釈されているかはわからん
実際どーなのよ

765:デフォルトの名無しさん
06/06/13 19:08:05
NeXTSTEPとかみたいに、それ前提のシステムがあるが、
オブジェクト指向前提の言語でやらなきゃ真なるオブジェクト指向にはなり得ないという考えなのかな。

766:デフォルトの名無しさん
06/06/13 22:07:41
Cだろうとアセンブリ言語だろうとオブジェクト指向でコードは書ける。
単にオブジェクト指向言語は、非オブジェクト指向言語で、
オブジェクト指向を書くときに、明示的に書く処理を書かずに済むだけ。

767:デフォルトの名無しさん
06/06/13 22:55:57
>>766
でもそもそも「オブジェクト指向」の定義があいまいだからね。

構造体とメンバを操作する関数を一塊にして仮想的な「装置」と看做すこと
こそオブジェクト指向の本質だ、っていう見解の人もいれば(俺はこっちの立場)、
継承だの多態だのといった瑣末(だと俺は思うんだけど)な技術こそ本質だって人もいるから。


768:デフォルトの名無しさん
06/06/13 22:58:36
本当のオブジェクト指向なら、ポインタなんて使わねえだろうなぁ

769:デフォルトの名無しさん
06/06/13 23:54:26
そうだよ。「対象を目的地に移動させます」と書いておけば移動媒体のファームウェアが出来あがる。
こんな楽な事はない。


770:デフォルトの名無しさん
06/06/14 00:12:43
大体だな、オブジェクトというのは貧乏人が使うクロージャなんだってばよ。


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