09/10/13 13:39:00
じゃ、参照される前にエラーフラグをどっかでクリアしてるのでは?
901:890
09/10/13 17:41:43
それがいちばん疑われるのですが、それをgrepで見つけられないのがグヤジイんですよね
902:デフォルトの名無しさん
09/10/13 21:44:33
>>901
> それをgrepで見つけられない
あのな、そうゆうのはおおむね grep では見つからない
バッファ御バーフローとか
スタック使いすぎとか
見つけること可能か、grep で?
903:デフォルトの名無しさん
09/10/14 01:11:56
エラーフラグは参照したけど、速攻でエラー状態が消えてるとか
904:890
09/10/14 03:12:16
愚痴聞いてくれてありがと。見つかりました。マ板よりこっちのが親切な人多いですね。
char wk[64]に sprintfしてて、ちょっとだけ長くなったその後ろがER6のpush場所でした。
もっと長くなると復帰アドレス飛ばして暴走リセットまで行くところでした。
grepの経過にそれらを見てるログが残ってたのに、スタックのサイズを気にしただけで
スタックの中身の並びまで思考が深入りせず流してました。
そこのchar[64]は、もともと%c,・・・みたいに固定だったのを、後から%sを含む編集を
付け足したデグレでした。皆さまお騒がせしました。
905:デフォルトの名無しさん
09/10/15 00:46:02
ちょっとバグ取り手伝ってもらおうと思って聞きに行ったときに
ここでこの変数にこれが入って~ で、そのあとこのif文にくるでしょ~
ここがなんでか正になるんだけど~ それは このif文の前に~
この処理が入ってるのが原因じゃん! わかった!ありがと!
みたいな感じで説明途中で自己解決して帰るパターンとか多いよな。
906:デフォルトの名無しさん
09/10/15 01:30:25
人に説明するとその種の問題は見つかりやすいね。
まあ、コードレビューってのは半ばそれが目的なのかもしれないが。
907:デフォルトの名無しさん
09/10/15 02:28:15
>>905
あるあるw
908:890
09/10/15 03:50:01
まさにそれを念頭に置いてここに書きに来ました。
お客さんのほうが頭の回転が速くて先に見つけてくれちゃいましたが。
909:デフォルトの名無しさん
09/10/15 04:15:38
>>908
>お客さんのほうが頭の回転が速くて先に見つけてくれちゃいましたが。
あなたと話をすることで、レビューになったんだよ
役に立ってないようで、実はすごく役に立ったんだと思うよ
たぶん、お客さんは感謝してると思う。
910:デフォルトの名無しさん
09/10/15 04:21:06
>>904
オレは、「文字列」、「文字配列」、「文字値」、「文字」を違うものとして考えてるよ
911:デフォルトの名無しさん
09/10/15 22:35:46
シュリーマンが外国語を勉強していたときも、その辺の浮浪者を捕まえて
ただひたすらベシャリを聞かせていたというし
カーニハンもデバッグの一番の方法として、その辺のテディベアを捕まえて
ただひたすらコードの説明を聞かせていたというし
昔からある確立された手法であることは間違いない
912:デフォルトの名無しさん
09/10/15 23:31:13
>>911
参考になった。今度サボテンに向かってしゃべってみるわ。
しかし、シュリーマンの相手してた浮浪者はいい迷惑だなww
913:デフォルトの名無しさん
09/10/16 10:00:20
アメリカのとある大学の計算機センターでは、センター職員に話をする前に、
まずこれに向かって説明をしなさい、というテディベアが置いてあったとか。
914:デフォルトの名無しさん
09/10/16 10:04:43
と、「プログラミング作法」に書いてあった
915:デフォルトの名無しさん
09/10/16 17:28:00
HEW
って、
構造体のアラインメントっていうか、
構造体のパッキングオフにしたり
できまつか?
916:デフォルトの名無しさん
09/10/16 17:46:07
ビルド-H8...Standard Toolchain-CPU タグの下に、メンバの境界調整数を1とする、ってのが
あるから、それじゃないか? ビットフィールド割付けを上/下からの選択もここにあるし。
917:デフォルトの名無しさん
09/10/16 18:33:14
アドレスエラーにならないように気をつけた方がいい
918:デフォルトの名無しさん
09/10/19 10:11:02
㌧>>916 >>917
その内容からすると、どうもHEWってアラインメントを弄らないのが、ふつーみたいですね。
ダミーメンバー入れて構造体のパッキングをいじればおkですか?
919:デフォルトの名無しさん
09/10/19 10:59:23
>>918
やってみて確認したら?
mapファイルもでるわけだし。
920:デフォルトの名無しさん
09/10/19 12:20:00
struct hoge
{
char int8;
short int16;
};
struct fuga
{
short int16;
char int8;
};
構造体のint16のアドレスが奇数番地になってたら、h8/shだと実行時におかしくなるかも?
921:デフォルトの名無しさん
09/10/19 19:57:34
offsetofマクロでメンバの相対位置を確かめてみたら。
922:デフォルトの名無しさん
09/10/19 20:59:59
なんでここはH8の話ばっかりなの?
923:デフォルトの名無しさん
09/10/19 21:03:35
何か問題でも?
924:デフォルトの名無しさん
09/10/19 21:59:52
H8を使っている無能がよく質問に来るだけという話
925:デフォルトの名無しさん
09/10/19 22:23:52
日本はH8人口が一番多いから
926:918
09/10/20 09:34:34
㌧ & ゴメソ >>919 >>920 >>921
ごめんなさい、社内の別のプロジェクトの人との会話中に出てきた話で、
自分SHの基板持ってないのでテストできません。。。
H8じゃなくてSH2でつ。
927:デフォルトの名無しさん
09/10/20 12:19:48
>>926
だから、ビルドして、mapファイルみたらわかるんじゃね?
928:デフォルトの名無しさん
09/10/22 00:52:37
コンパイラ パッケージ 9.01 のマニュアルによるとコンパイラ オプションと
#pragma pack で1か4(デフォルト)を指定できるみたいね。
境界をまたぐアクセスをした場合、バス サイクルを分割しないだろうから
BUSERR か、バイト順が入れ替わってしまうかのどちらかだろうね。
って、ハードウェア マニュアル嫁って話だな・・・
H8/SH で packed record は漢かも。
929:デフォルトの名無しさん
09/10/23 04:40:25
H8 H8S で、メモリのBSET/BCLRがありますね。あれってASMレベルで1命令でアクセス
してますから、割込とタスク両方のレベルから触っても割禁不要と理解していいですか?
ex):タスクレベルから、@ER4=flagのアドレスで、BCLR 6,@ER4
割込レベルから、@ER1=flagのアドレスで、BSET 6,@ER1
MOV マスク MOVのアーキテクチャだとBCLRの前後で割り込み禁止/解除が必要でした。
マイクロコードが実はMOV マスク MOVでやってたとかの心配はしなくていいですよね?
930:デフォルトの名無しさん
09/10/23 09:40:56
BCLR/BSETの命令実行中に割り込みが入ったら、どこに戻ってくるの?
931:929
09/10/23 16:47:10
その命令の次、ですよね。 >命令実行中に 「割込要因が起きる」ことはあるでしょうが、
「割り込みが入る」というのが 「割り込みベクタのアドレスに飛ぶ」 ことなら、命令実行後
のはずですよね。1命令の実行中に割り込みを受け付けるのは EEPMOV のような
くり返し系の命令だけ、と理解しています。
932:デフォルトの名無しさん
09/10/23 18:00:37
>>931
パイプライン
933:929
09/10/24 05:10:00
H8にはなかった。H8Sは23xxシリーズ使ってますが、パイプライン機能は無かったような。
パイプライン機能があったとしたら、割り込みを受け付けるタイミングに制約があるのですか?
1命令の実行中というのはあり得ない、割り込みベクタのアドレスに飛ぶのは命令実行後、
パイプライン機能が先の番地の命令を先取りしていたとしても、分岐が起きた時点で
その実行結果は破棄されると理解していましたが、どこか間違っていますか?
934:デフォルトの名無しさん
09/10/24 08:00:30
ちゃんとわかってるじゃん
935:デフォルトの名無しさん
09/10/24 16:19:21
シリアルポートはどういうところで使われているのでしょうか
936:デフォルトの名無しさん
09/10/24 16:50:28
USBが無かった時代はシリアルで繋いでたという程度のモノだよ
制御も比較的ラクだしね
937:デフォルトの名無しさん
09/10/24 17:44:19
>>936
ありがとうございます
シリアルポートを操作するようなプログラムをアセンブリとC言語にて組もうと考えているんですが、
まずは何から学べばよいでしょうか?
938:デフォルトの名無しさん
09/10/24 17:45:08
通信だけならCで20行ほどで組める
939:デフォルトの名無しさん
09/10/24 18:00:15
>>938
実はlinuxのカーネル内で組んであるシリアルポートへの通信プログラムでして、
これを勉強しようと思っているのですが、カーネルレベルということなので
何から学べばよいのかわからなくて
940:デフォルトの名無しさん
09/10/24 18:27:42
情報の小出しはイラっとくるな
941:デフォルトの名無しさん
09/10/24 18:33:34
>>940
linux0.01です。
942:デフォルトの名無しさん
09/10/24 20:45:28
なるほど
回り道をして、力尽きて、死にたいと申すか
まずはlinuxから離れよ
943:デフォルトの名無しさん
09/10/25 02:15:54
シリアルの送信だけするところから始めたら
944:デフォルトの名無しさん
09/10/25 14:33:50
>>939
その書き方なら、それはカーネルレベルの話ではない。
945:デフォルトの名無しさん
09/10/25 15:10:27
>>939
マニュアルを読むのと、ネットで探すと参考になるプログラムがある
H8もSHもほとんど同じ
送信も受信も基本はレジスタを読み書きする。
回線アナライザがあると楽だけど、パソコンのターミナルソフトで見てもいい
オレは、tty.exeっていう簡単なターミナルソフトをよく使う。
946:デフォルトの名無しさん
09/10/25 17:36:15
なるほど、昨日書店に行きまして組み込み系の書籍をざっと見てきたので、近々わかりやすい書籍を二冊ほど買ってこようと思います。
947:デフォルトの名無しさん
09/10/25 19:11:50
とりあえずH8は色々試せるからこれがいいんじゃないかね。
URLリンク(akizukidenshi.com)
完成品で5VのACアダプタとPCにRS232C(かUSBシリアル変換)
があるならすぐ使える。シリアル2ポートやethernetなどが付いてるし、
メモリ増設すれば格安でuCLinuxも動く。遅いけど。
メモリとか不要なら1チップのPICやAVRの方が単純でいい。
ただし書き込み環境が必要。
あくまでlinuxからシリアル使いたいだけならlinux板で聞いた方がいい。
948:デフォルトの名無しさん
09/10/25 22:15:32
termiosの特殊制御文字でわからない特殊文字が幾つかあるのですが、
VSWTC 7
VREPRINT 12
VDISCARD 13
VWERASE 14
VLNEXT 15
VEOL2 16
これらについて載っているサイト等ありましたら教えて頂けないでしょうか?
949:デフォルトの名無しさん
09/10/25 22:32:35
URLリンク(www.google.co.jp)
950:デフォルトの名無しさん
09/10/25 22:33:18
えーと、海外のサイト渡り歩いていたら見つけました。お手数かけました。
951:デフォルトの名無しさん
09/10/26 02:48:21
沖電気の80C85のデータシートは見ましたが、フラグの立ち方が明記されていません。
H8系はMOVでフラグが設定されますが、8085はADD/SUB、AND/OR/XOR など、
A-regに対する演算を実行した後だけ、ZやCやMなどのフラグが設定される。
MOVやpush/popでは、(POP PSWを除き) フラグは変化しない。
16bit演算(HL対象の)を実行しても、フラグは変化しない。 この理解で合っていますか?
952:デフォルトの名無しさん
09/10/26 03:16:21
もう一度質問を読み返せ
さっぱりわからん
953:デフォルトの名無しさん
09/10/26 08:26:09
z80だけど、参考にしてみたら
URLリンク(www.systemax.jp)
954:デフォルトの名無しさん
09/10/26 09:34:12
8085の資料がどっかにないの?
CP/M関係の海外サイトとか。
955:デフォルトの名無しさん
09/10/26 10:34:10
"8085 instruction set" でぐぐってみるぐらいのことは
956:デフォルトの名無しさん
09/10/27 10:09:02
8085? 海外では、もっとも使われているマイクロコントローラーじゃんか?
セカンドソースは数え切れないほど。
狭いが、組み込み業界では、ほぼ世界標準のMCUだろ?
資料の集め方から修行をやり直せ!
957:デフォルトの名無しさん
09/10/27 12:00:27
それは8051でないかい。
958:デフォルトの名無しさん
09/10/27 12:20:32
>>951
大体合っているよ。手元に8085のインストラクションセットがないなら、8080のインストラクションセットでもほぼ一緒。
ハードウェア周りと8085で追加されたインストラクション二つとクロック数程度しか違わない。
959:951
09/10/28 14:35:51
>>958 ありがとうございます。
大昔(1988年頃)には、雑誌に載ったチップの説明の青焼きを頼りにやってたのですが、
さすがにそれらも残ってなくて、うろ覚えになってたので、助かりました。
>>955 英語ばっかり引っかかるのイヤん。先頭の奴ざっと見たら沖のとほぼ同じでした。
960:955
09/10/28 14:41:44
>>959
え?最初のリンクで、ちゃんとフラグの変化まで表に出てるじゃん
961:デフォルトの名無しさん
09/10/28 16:00:21
フラグがどうなると変わるか知りたいとか?
962:デフォルトの名無しさん
09/10/28 18:06:32
1990年代にttyはどのような使われ方をしていたのでしょうか?
963:デフォルトの名無しさん
09/10/28 18:26:19
またお前か
964:デフォルトの名無しさん
09/10/28 18:26:46
テレタイプ(ライタ)は、90年代にはほとんど動く化石だろ。
テレックス網は先日まで生きてたけど。
965:デフォルトの名無しさん
09/10/28 18:28:36
>>962
いまでも使ってるよ
ただのキャラクタベースの端末
966:デフォルトの名無しさん
09/10/30 13:46:56
マイコンの勉強するなら、どっちのボードが良い?
AKI-H8/3069FフラッシュマイコンLANボード
URLリンク(akizukidenshi.com)
AKI-H8/3052LAN開発キット
URLリンク(akizukidenshi.com)
ネットワーク使ったプログラム動かしたり、
Linux動かしたりしてみたい。
3069はuClinuxを走らせてみた、というようなページが
いくつか見つかったが、3052は見当たらなかった。
入門本では3052と似た?3048がよく使われてるそうなので、
初心者はこっちの方が良い?
967:デフォルトの名無しさん
09/10/30 17:04:55
H8にLinuxは荷が重いな
968:デフォルトの名無しさん
09/10/31 01:28:22
3048 は止めといた方が良かったと思う
3069 で桶