トップページ⇒tech
984コメント343KB

制御系なら俺に聞いてもいいぞ(2)

レス数が950を超えています。1000を超えると書き込みができなくなります。
00011NGNG
俺は俺であり、それはお前の事だ。
前スレで出たのは
PIC H8 SH M16 ARM 6502 x86 Z80 TMP47
こんな所だ。
後、メーカ名は出せないがDSPの話も出来るぞ。
ハード寄りの話も大歓迎だ。
道具話も楽しくやれるならやってくれ。


過去ログ
制御系なら、俺に聞け!
http://pc3.2ch.net/test/read.cgi/tech/1002176627/

関連過去ログ
●●●くみこの組み込み相談室●●●
http://pc3.2ch.net/test/read.cgi/tech/988084737/
0934デフォルトの名無しさんNGNG
ハードに依っては、プログラマ的発想?では駄目な場合があるのが制御系。
就職したてだそうだが、そこらへんはちゃんと考えてみたかい?
0935デフォルトの名無しさんNGNG
「さっきの打ち合わせで、全ポートプルアップやめてプルダウンにしたから」

なんだよそれ
0936デフォルトの名無しさんNGNG
>>935
うわ。。。。。いっそ論理逆転させられた方が楽かも。

つーか、俺なら「だったら論理逆転させろやこら(怒)」と言う。

で、IN/OUTさせるところで反転いれて主要ロジックに変更なしでウマー
ってのは良くやったな。

H/W屋からすると、バッファの種類を変えるだけだったり、
PLD内のラッチの出力を引っ張りだす場所を変えるだけだったり
意外と受け入れられ易かったりする。
0937デフォルトの名無しさんNGNG
>>936
結局、ファーム屋っつーポジションは
ソフトもハードも押さえなきゃならんってことだね
0938デフォルトの名無しさんNGNG
>>937
リリースの遅れや動作不良はうかうかしてるとソフト屋側に被せられかねない
ハードのチェックぐらいできないとやられてしまう
0939デフォルトの名無しさんNGNG
余っているポート使って(無ければ無理矢理こじ開けて)ログ確認用の
printfの自作ぐらいできないと勤まらないのがこの業界だからな。
少なくともどんな構成でハードが動いているかぐらい判らなければ
つとまらんよ。
0940919NGNG
>>920 最初の1,2個それやってから(´∀`)、
セクタ毎のハードプロテクトかけるようにしました。
0941デフォルトの名無しさんNGNG
>>920
デバッグ用の基板って、ROMが外付けでソケットになってたりしないの?

>>939
俺、printfは作れません。。。
0942920NGNG
>>941
1〜2時間で終わる位の修正だったので、その辺に置いてあった基板を使っていたのですよ。
で、しばらく触っていなかったので、手順を間違えたことに気が付かないで…

片手間で終わらせるつもりが、大仕事になってしまいました(w
0943デフォルトの名無しさんNGNG
>>941
printfは7行スレに簡易的な奴が落ちてたよ。
基本的にデバッグ用としてなら必要十分だったから
使わせてもらってるよ
0944デフォルトの名無しさんNGNG
◎無修正画像をご覧下さい◎2日間無料です◎
★http://yahooo.s2.x-beat.com/linkvp/linkvp.html★
0945デフォルトの名無しさんNGNG
ソフト(マイコンプログラミング)とハード(HDLによるRTL)もやっている人はいないの?
0946デフォルトの名無しさんNGNG
俺はstdio.hもincludeしないが、なにか?
0947デフォルトの名無しさんNGNG
>>936
基本的に入出力は独立させとくのは、もはや常識だと思うが。
別に、制御系に限ったことじゃないと思うし。

>>946
この世界じゃ、別に珍しいことじゃないと思うけど。

この世界じゃなくても、Windows プログラムなら stdio.h なんかインクルードしてないのが普通だし。
0948デフォルトの名無しさんNGNG
>>947
何も考えずにメモリマップ度I/Oをそのままビット演算しちゃうなんて
初心者にはよくあることです。
おかげで申告できない残業が増えるんですよ。

なに、泣いてんの? 笑ってんの?

りょーほー
0949デフォルトの名無しさんNGNG
stdrom.hなら。
SHのHEW使いから、LSIC-86使いに戻りますた・・

>>945
それなりにいそうだが。
折れは、趣味ではHDLいじってる電子工作好きのソフト屋でつ。
でも、仕事じゃなぁ〜。いまはASIC起こすことがほとんどなくなったし・・・
0950デフォルトの名無しさんNGNG
>>947-948
メモリマップドI/Oをそのままビット演算するのがいけなくて、
入出力は独立させておくのが常識というのがよくわからないのですが。

書き込み専用のI/O(出力)を、リードしてしまうとか、その辺のことですか?
0951デフォルトの名無しさんNGNG
>>950
メモリマップドI/Oを彼方此方で読む
 →処理中にI/Oの状態が変化した場合、ヤバイことになること多し

 H/Wとのインタフェースは余程特殊な場合を除いて、
独立したモジュールで一括処理するのが無難

 腐ったH/WでReadしながらタイミング見計らって
叩いてやらなきゃいかんような場合は例外
0952デフォルトの名無しさんNGNG
>>951
> メモリマップドI/Oを彼方此方で読む
>  →処理中にI/Oの状態が変化した場合、ヤバイことになること多し

なんか話がずれてるような気が...、ハードウェアアクセスの所ってハードの都合で変更されたりすることがあるから、一箇所にまとめておけば修正が楽って言う話じゃないの ?

処理途中で値が変化するとか言うのはまた別な話だと思うが。
0953デフォルトの名無しさんNGNG
>>951
> メモリマップドI/Oを彼方此方で読む
>  →処理中にI/Oの状態が変化した場合、ヤバイことになること多し

これは、タイミング的な話しで、ダイレクトにI/Oを読んでいると、
処理の途中で、I/Oの状態が変化すると、処理に一貫性がなくなるので、
処理の中では、読むところを一カ所に固定して、その値を内部のレジスタに取り込んで、
そのレジスタ値を処理の対象にせよ、ということだね。

>>952
>ハードウェアアクセスの所ってハードの都合で変更されたりすることがあるから、
>一箇所にまとめておけば修正が楽って言う話じゃないの ?

これは、プログラムの構造の話しで、あちこちにI/Oアクセスを散らばらせるのではなく、
一カ所に関数(一種のデバイスドライバ)化しておいておけば、その関数を修正すれば済むので、
柔軟に対応ができる、ということだね。
0954山崎 渉NGNG

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0955デフォルトの名無しさんNGNG
波形やタイミングによっては、チャタリング防止とか入れるし、
1モジュールにした方がその後は修正しやすいし。
0956デフォルトの名無しさんNGNG
板の動作チェックも兼ねてるからI/Oルーチンから出来上がるw
0957山崎 渉NGNG

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄
0958デフォルトの名無しさんNGNG
>>956
漏れもそうだな。
テストプログラムが発展して本番プログラムのI/Oモジュールになる。

こういうのも他に流用出来るといいんだけどなーと思いつつ、毎回作ってるが。
0959デフォルトの名無しさんNGNG
そろそろ次スレを誰か立てて・・・
0960デフォルトの名無しさんNGNG
すみません、教えて下さい。

機器でSRAMカード(ATAじゃなくて、ただのSRAMカード)をメモリとして使ってます。
WindowsでSRAMカードの内容を読みたいのですが、どうすれば良いのでしょうか?
0961デフォルトの名無しさんNGNG
>>960
げろ。
まるち野郎なんかに答えてやるんじゃなかった。
0962デフォルトの名無しさんNGNG
>>961
こことマルチしたくなるようなスレあったか?

>>959
このペースならもっとギリギリ(980位?)でもいいんじゃない?
2,3日レスつかないこともしょっちゅうだし
0963デフォルトの名無しさんNGNG
JEIDAから規格書買え
0964デフォルトの名無しさんNGNG
>>963
旧JEIDAと旧EIAJ(社団法人 日本電子機械工業会)は
2000年11月1日付けで統合され、
JEITA(社団法人 電子情報技術産業協会)となりました。
0965デフォルトの名無しさんNGNG
すまん。うちにある仕様書がJEIDAのものだった為……
0966デフォルトの名無しさんNGNG
組込み制御分野でオブジェクト指向(C++)で開発した人いますか?
何か良いことありました?
0967デフォルトの名無しさんNGNG
>>966
Javaでならあるけど。
PC上で組んだコードがそのまま使える
ので開発はめちゃ楽。
メモリ制限めちゃ厳しいけど。
0968デフォルトの名無しさんNGNG
>>966
C言語にC++を足す形にしたので、
C言語用に関数インターフェースをプラスする羽目になった。
が、計算クラスみたいなのを用意しとくだけでパラメタの保持から計算まで1クラス=1ファイルに収まったので開発が破綻から免れた。
C言語部分は改変という形で、完成はしてるけど、
巨大なスイッチ文で破綻したコードのような気がする。
0969デフォルトの名無しさんNGNG
すんません、質問です。
SH4(SH7750)でSCIFの信号を読みたいんですが、どのレジスタを読んだらいいですか?
TxD/RxD/CTS/RTSは普通に読めるけど、それ以外はどうすれば……
0970デフォルトの名無しさんNGNG
>>969
ハードウェアマニュアルを見れ。FIFO付きシリアルインターフェースの項じゃ。
0971デフォルトの名無しさんNGNG
>>966
データを操作している人がわかりやすい
多態によって似たようなスイッチ文がへらせる。
0972デフォルトの名無しさんNGNG
>>967
めちゃくちゃ言うな。
J2SE用のコードがそのままうごくわけ無いだろ。
0973デフォルトの名無しさんNGNG
組込み系でオブジェクト指向(C++)で開発した場合、
生成されるオブジェクトはどこに割り当てられるの?
スタックですか?
0974デフォルトの名無しさんNGNG
>>972
動くんだよそれが
0975デフォルトの名無しさんNGNG
>>974
972じゃないけど、MIPS32 4KSdのJava Card対応っていうのは
本当にバイトコードが動くってことなの?
それとも、違う石なのかな?
0976デフォルトの名無しさんNGNG
>>973
構造体と同じ。
newした場合は普通ヒープ。
0977デフォルトの名無しさんNGNG
>>976
ヒープにとられるとなると、あまりオブジェクトを作って消してを繰り返せば、
ヒープが虫食いだらけになるね。
なんかC++は使いにくそう。
0978デフォルトの名無しさんNGNG
組み込みでC++使うのにnewの多用はまずいだろ
0979デフォルトの名無しさんNGNG
>>977
そんなのはガベージコレクションが有れば無問題。
ガベージコレクションのオーバーヘッドが問題になるようなら使えないが、
そういうときはヒープを使わないプログラミングをする破目になるかもな。
ま、べつに動的に生成/消滅しなきゃオブジェクト志向でないってわけでもあるまい。
0980976NGNG
>>977
newをオーバーライドして自前でアロケーションすればOK。
めんどくさいけどね。
ガベコレよりはこっちが主流じゃないかな。

でも、めんどくさいのとバグが入りやすいので
基本的には978氏に賛成。
0981デフォルトの名無しさんNGNG
可愛い娘たちが貴方を癒します・・・☆
http://yahooo.s2.x-beat.com/linkvp2/linkvp2.html
0982デフォルトの名無しさんNGNG
>>972
java.longのSystemやStringなどなど、基本的なものもない。
ガベージコレクタも実装されてない。

>>975
簡単な命令は動く。複雑な命令はソフトで実行。
速度を出すためにスタック操作をハードウェアで。

「まるごと図解最新組み込みJAVAがわかる」読んでみてください。
0983975NGNG
>>982
その本のJava Cardの部分を今日立ち読みしたんだけど、
いくつかのチップで動くみたいですね。

「インターフェース3月号ICカード特集」では
ファイル変換するようなことが書かれていたので、
実際に動くかどうかは、まだ半信半疑ですが(^^;

近いうちに現物が見れそうなので期待してます。
0984デフォルトの名無しさんNGNG
invokevirtualとかは当然ソフトウェア命令に展開されるんだろうな・・
結構遅そう

でもgcがないってことはメモリ管理はどうするんだろ
レス数が950を超えています。1000を超えると書き込みができなくなります。