アカウント名:
パスワード:
デバイスのエミュレーションはたしかに面倒くさいのだが、根気以外に必要なものもなさそうだエミュレーションホストのほうに著しい制限があるのか?
おっちょこちょいのために言っておくと、disっているわけではないので
その根気が、尋常じゃない根気だろうから、それだけでもすごいと思うけど、あとは、他コメントにあるけどメモリの問題で、それは直接制御で回避してるけど、それは制御するソフトウェア書いたって事だからそれはそれですごい。そのメモリもそうだけど、難しい点の一つが、リアルなハードウェアはリアルな時間の流れのなかで動作しているので、その時間制約をクリアする点で、今回はハードウェアが少ないから、まだましだったのかな。あとは、linux側もタイムアウトとかタイマ割り込みとかあると思うので、その辺の制約とか安定性確保とか、linuxのドライバ回りに精通していないとなかなか難しいのでは。それもすごい。
というかデバッグ環境どうしてたんだろう。最初はエミュレータの上でエミュレータの開発してたんだろうけど、最終的にはそういう実機でないと出ないバグあるから、2時間動かして止まっててRAMリフレッシュ止まってコア吐く前に消えてとか、考えただけで嫌になる。
趣味で好きだからこそできたんだろうな。
以前話題に上った「ラジコンのミニチュア重機で地下室を掘る」とか、http://idle.srad.jp/story/12/02/18/1921222/%E3%83%A9%E3%82%B8%E3%82%B3... [srad.jp]
技術書でも欧米人の書いたものに「厚さ」と「濃さ」に、その精力とか根気の強さを感じるものがあったり以前の上司は、それを体格と肉食のなせる技だと言いながら、肉ばかり食べて腹回りばかり立派にしていましたがでも、こういう根気強さが育まれ許される(これも一種の)文化の違いかなあと思います。何でも文化のせいにはしたくないけど、根気を保てる「環境」が必要なのでしょう。
まぁ世の中根気さえあれば何でも出来ますよね(棒#根気さえあれば著しい制限があるのか?とか疑問系で放置するバカなまねをしないでもすみますし
警告していたのにやっぱりおっちょこちょいというか馬鹿が沸いてきたね
イメージ的にマイクロプログラミングっぽいな
警告(笑)さえしとけば何言っても許されるとか思ってる馬鹿が何言ってるの
ここ最近、反論禁止の前置きをしつつ狭量な意見を投げる人が出没してますね。今の時期は学生さん暇なんでしょうけど、反論が嫌ならもう半年ROMってた方が…。
ほっときゃいいのにいちいち噛みつく人も出没してますね。
> エミュレーションホストのほうに著しい制限があるのか?あるんだよ。
外バスのないプロセッサで無理矢理GPIO経由でメモリアクセスしてるという状態が「著しい制限」でないと思ってるとしたら、相当の大馬鹿だ。
> 外バスのないプロセッサで無理矢理GPIO経由でメモリアクセスしてるという状態が
GPIOでアドレッシングするだけなら普通のテクニック。8bit時代の漢字ROMとか大容量RAMボードとか。結果として、エミュレーションというよりマイクロプログラム的になったのは確かに面白い。
わざわざDRAMをつけたりするところも趣味全開で面白いし、taka2氏の投稿によれば少ないメモリ(これは著しい制限だね)でよくやっていると思う。
「GPIOでアドレッシングするだけ」ではないので的外れ。
> 8bit時代の漢字ROMとか大容量RAMボードとか。GPIOだけでアクセスしている例はないですね。バンク切り替えの話をしているとしたら、全然違う。
> エミュレーションというよりマイクロプログラム的何度もこの言い回しをしているようだが意味不明。
> 何度もこの言い回しをしているようだが意味不明。
あなたがマイクロプログラムについてご存知ないからでしょう。
マイクロプログラムはCPU内部やメモリアクセスの信号をあらかた全部自分で作って出力するわけです。これと8bit時代の例をあげたテクニックと合わせてはじめて、私の「確かに面白い」という感想が理解できるようになります。「GPIOでアドレッシングするだけ」「GPIOでアドレッシングするだけ」というあなたの理解がいかに的外れかは明白です。大事なことなので何度もこの言い回しを繰り返しました。
「マイクロプログラム」と書けばが何か説明した気になっているというあたりが頭悪いです。
> マイクロプログラムはCPU内部やメモリアクセスの信号をあらかた全部自分で作って出力するわけです。という理解がすっとこどっこいです。
> 8bit時代の漢字ROMとか大容量RAMボードとかのどこに「マイクロプログラム」が絡んでますか?
GPIOでCSを設定してるだけ(バンク切り替え)なのと、GPIOだけでアドレス/データバス/CE/WRその他諸々全部制御してメモリリフレッシュまで行っているのが一緒と思える頭が気の毒です。
> GPIOでCSを設定してるだけ(バンク切り替え)なのと、
誰がバンク切り替えだと言いましたかね。バンク切り替えではコードを任意の場所に置けないので、8255などのポートにRAMを接続して制御するタイプのメモリボードが結構あったのです。自分の無知を他人に当てはめないでください。
> GPIOだけで
GPIOでCPU内部のラッチをエミュレートしているだけですね。
> アドレス/データバス/CE/WRその他諸々全部制御して
マイクロプログラムとはそういうものです。ご存知ないとはさすが無知の大王。
> メモリリフレッシュまで
前項とあわせてこのへんが今回の記事の面白みのあるところです。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
アレゲは一日にしてならず -- アレゲ見習い
わからん (スコア:0)
デバイスのエミュレーションはたしかに面倒くさいのだが、根気以外に必要なものもなさそうだ
エミュレーションホストのほうに著しい制限があるのか?
おっちょこちょいのために言っておくと、disっているわけではないので
Re:わからん (スコア:1)
その根気が、尋常じゃない根気だろうから、それだけでもすごいと思うけど、
あとは、他コメントにあるけどメモリの問題で、それは直接制御で回避してるけど、
それは制御するソフトウェア書いたって事だからそれはそれですごい。
そのメモリもそうだけど、難しい点の一つが、リアルなハードウェアはリアルな時間の流れのなかで動作しているので、
その時間制約をクリアする点で、今回はハードウェアが少ないから、まだましだったのかな。
あとは、linux側もタイムアウトとかタイマ割り込みとかあると思うので、その辺の制約とか安定性確保とか、
linuxのドライバ回りに精通していないとなかなか難しいのでは。それもすごい。
というかデバッグ環境どうしてたんだろう。
最初はエミュレータの上でエミュレータの開発してたんだろうけど、最終的にはそういう実機でないと出ないバグあるから、
2時間動かして止まっててRAMリフレッシュ止まってコア吐く前に消えてとか、考えただけで嫌になる。
趣味で好きだからこそできたんだろうな。
Re:わからん (スコア:2)
デバイスのステートだけを見て書いてるプログラムの場合は、ステートさえちゃんと反映しておけば、特に問題無いです。
ステート見ずに、他の手段でタイミングを計っている場合は、そのタイミングを計っているデバイスをちゃんと実装すればそんなに問題は無いです。
そのタイミングを計るデバイスがそれぞれバラバラの場合は、それぞれの動作タイミングを合わせないと全然動かない場合が多いです(これが一番厄介)
エミュレータが扱う時間も、仮想時間、実時間、がありますから、実→仮想時間へのマッピングや、仮想→実時間へのマッピングなんかが問題になる場合もあります。
今回のコレは、想像で書いて申し訳ないのですが、恐らくデバイスの制御はステートを見てコントロールしてるんじゃないかと思います。
個人的にはメモリ空間を表現するのが大変だっただろうなぁ・・・と。
DOSのEMSみたいにいったんばらばらにして、仮想的に大域を表現したのかなと。
Re:わからん (スコア:1)
以前話題に上った
「ラジコンのミニチュア重機で地下室を掘る」とか、
http://idle.srad.jp/story/12/02/18/1921222/%E3%83%A9%E3%82%B8%E3%82%B3... [srad.jp]
技術書でも欧米人の書いたものに「厚さ」と「濃さ」に、その精力とか根気の強さを感じるものがあったり
以前の上司は、それを体格と肉食のなせる技だと言いながら、肉ばかり食べて腹回りばかり立派にしていましたが
でも、こういう根気強さが育まれ許される(これも一種の)文化の違いかなあと思います。
何でも文化のせいにはしたくないけど、根気を保てる「環境」が必要なのでしょう。
Re: (スコア:0)
まぁ世の中根気さえあれば何でも出来ますよね(棒
#根気さえあれば著しい制限があるのか?とか疑問系で放置するバカなまねをしないでもすみますし
Re: (スコア:0)
警告していたのにやっぱりおっちょこちょいというか馬鹿が沸いてきたね
イメージ的にマイクロプログラミングっぽいな
Re: (スコア:0)
警告(笑)さえしとけば何言っても許されるとか思ってる馬鹿が何言ってるの
Re: (スコア:0)
ここ最近、反論禁止の前置きをしつつ狭量な意見を投げる人が出没してますね。
今の時期は学生さん暇なんでしょうけど、反論が嫌ならもう半年ROMってた方が…。
Re: (スコア:0)
ほっときゃいいのにいちいち噛みつく人も出没してますね。
Re: (スコア:0)
> エミュレーションホストのほうに著しい制限があるのか?
あるんだよ。
外バスのないプロセッサで無理矢理GPIO経由でメモリアクセスしてるという状態が「著しい制限」でないと思ってるとしたら、相当の大馬鹿だ。
Re: (スコア:0)
> 外バスのないプロセッサで無理矢理GPIO経由でメモリアクセスしてるという状態が
GPIOでアドレッシングするだけなら普通のテクニック。8bit時代の漢字ROMとか大容量RAMボードとか。
結果として、エミュレーションというよりマイクロプログラム的になったのは確かに面白い。
わざわざDRAMをつけたりするところも趣味全開で面白いし、taka2氏の投稿によれば少ないメモリ(これは著しい制限だね)でよくやっていると思う。
Re: (スコア:0)
「GPIOでアドレッシングするだけ」ではないので的外れ。
> 8bit時代の漢字ROMとか大容量RAMボードとか。
GPIOだけでアクセスしている例はないですね。
バンク切り替えの話をしているとしたら、全然違う。
> エミュレーションというよりマイクロプログラム的
何度もこの言い回しをしているようだが意味不明。
Re: (スコア:0)
> 何度もこの言い回しをしているようだが意味不明。
あなたがマイクロプログラムについてご存知ないからでしょう。
マイクロプログラムはCPU内部やメモリアクセスの信号をあらかた全部自分で作って出力するわけです。
これと8bit時代の例をあげたテクニックと合わせてはじめて、私の「確かに面白い」という感想が理解できるようになります。
「GPIOでアドレッシングするだけ」「GPIOでアドレッシングするだけ」というあなたの理解がいかに的外れかは明白です。
大事なことなので何度もこの言い回しを繰り返しました。
Re: (スコア:0)
「マイクロプログラム」と書けばが何か説明した気になっているというあたりが頭悪いです。
> マイクロプログラムはCPU内部やメモリアクセスの信号をあらかた全部自分で作って出力するわけです。
という理解がすっとこどっこいです。
> 8bit時代の漢字ROMとか大容量RAMボードとか
のどこに「マイクロプログラム」が絡んでますか?
GPIOでCSを設定してるだけ(バンク切り替え)なのと、GPIOだけでアドレス/データバス/CE/WRその他諸々全部制御してメモリリフレッシュまで行っているのが一緒と思える頭が気の毒です。
Re: (スコア:0)
> GPIOでCSを設定してるだけ(バンク切り替え)なのと、
誰がバンク切り替えだと言いましたかね。
バンク切り替えではコードを任意の場所に置けないので、8255などのポートにRAMを接続して制御するタイプのメモリボードが結構あったのです。
自分の無知を他人に当てはめないでください。
> GPIOだけで
GPIOでCPU内部のラッチをエミュレートしているだけですね。
> アドレス/データバス/CE/WRその他諸々全部制御して
マイクロプログラムとはそういうものです。ご存知ないとはさすが無知の大王。
> メモリリフレッシュまで
前項とあわせてこのへんが今回の記事の面白みのあるところです。