忍者ブログ
ちょっとは人のためになる事をしないとインターネットコミュニティーの皆様に申し訳がないかと思いながら、自分の備忘録ていどでしかなく、実際の所たいした情報も提供できないでいるブログ
[24] [23] [22] [21] [20] [19] [18] [17] [16] [15] [14]
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

暴走する~とおもったらリンク時 -mrelax を付けると相対ジャンプ(BNE等)のオフセットがずれることがあるようだ。原因不明だが-mrelaxを外して対処。

こういことがあるとソースから開発環境を作りたくなる。そういえばldで未解決の参照があってもエラーを出さないことがある。@付きでオペランドに指定した場合かな(条件未精査)。これは仕様かもしれないがこのへんも気に入らない。シンボル名のtypoがトレースかけるまで発見できないのはつらいわ。


オフセット異常の例

ソース

a:

; SDA => 0/1
shal.b r0l
bst #I2C_BIT_SDA, r1l
mov.b r1l, @_I2C_DR
_NOP_nSEC 1300 ; tLOW

; SCL 0 => 1
bset #I2C_BIT_SCL, r1l
mov.b r1l, @_I2C_DR
_NOP_nSEC 600 ; tHIGH

; SCL 1 => 0
bclr #I2C_BIT_SCL, r1l
mov.b r1l, @_I2C_DR

dec.b r2l
bne a


-mrelax なしでリンク。
最後のBNEの飛び先はFF28EのSHAL命令のアドレスになる=>OK


FF28E 1088 SHAL.B R0L
FF290 6729 BST #2:3,R1L
FF292 6AA9000FFFC6 MOV.B R1L,@H'FFFC6:24
FF298 0000 NOP
FF29A 0000 NOP

FF29C 0000 NOP
FF29E 0000 NOP
FF2A0 0000 NOP
FF2A2 0000 NOP
FF2A4 7039 BSET #3:3,R1L
FF2A6 6AA9000FFFC6 MOV.B R1L,@H'FFFC6:24
FF2AC 0000 NOP
FF2AE 0000 NOP
FF2B0 0000 NOP
FF2B2 7239 BCLR #3:3,R1L
FF2B4 6AA9000FFFC6 MOV.B R1L,@H'FFFC6:24
FF2BA 1A0A DEC.B R2L
FF2BC 46D0 BNE FF28E:8


-mrelax を付けたときの逆アセンブル。
最後のBNEの飛び先はFF286。MOV命令のオペランド内 => NG


FF280 1088 SHAL.B R0L
FF282 6729 BST #2:3,R1L
FF284 6AA9000FFFC6 MOV.B R1L,@H'FFFC6:24
FF28A 0000 NOP
FF28C 0000 NOP
FF28E 0000 NOP
FF290 0000 NOP
FF292 0000 NOP
FF294 0000 NOP
FF296 7039 BSET #3:3,R1L
FF298 6AA9000FFFC6 MOV.B R1L,@H'FFFC6:24
FF29E 0000 NOP
FF2A0 0000 NOP
FF2A2 0000 NOP
FF2A4 7239 BCLR #3:3,R1L
FF2A6 6AA9000FFFC6 MOV.B R1L,@H'FFFC6:24
FF2AC 1A0A DEC.B R2L
FF2AE 46D6 BNE FF286:8




GNU assembler 2.14
Copyright 2002 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License. This program has absolutely no warranty.
This assembler was configured for a target of `h8300-hms'.

GNU ld version 2.14 20030612
Copyright 2002 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License. This program has absolutely no warranty.

PR

コメント


コメントフォーム
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
  Vodafone絵文字 i-mode絵文字 Ezweb絵文字


トラックバック
この記事にトラックバックする:


忍者ブログ [PR]
カレンダー
09 2019/10 11
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
フリーエリア
最新CM
[02/07 @naoshi65536]
[02/07 忍]
[09/18 とおりすがり]
[06/26 ilmare]
[03/16 とおりすがり]
最新TB
プロフィール
HN:
naoshi
性別:
男性
職業:
ソフトウェア技術者
趣味:
料理
自己紹介:
@naoshi65536 で連絡がつくはずです。
バーコード
ブログ内検索
カウンター
アクセス解析
FX NEWS

-外国為替-