パスワードを忘れた? アカウント作成
452611 journal

Endowsの日記: Endows の へっぽこプログラマ日誌 第17回

日記 by Endows

SH のプログラミングの話。

Flash ROM の書き換えをしたいのだけれど、プログラム自身が Flash 上に乗っていて、書き換え中は Flash にアクセスできないので一旦関数をまるごと SRAM 上にコピーして SRAM 上で実行する、ということをしたいのだけれど、どうも途中で止まってしまう。

で、止まる箇所を調べたところ、どうも普通に見て問題があるとは思えないようなところ。で、 C のソースとアセンブラ出力を比較しながら調べたところ、原因発見。

ビットシフトを行おうとして、 JSR 命令で Flash 上へ飛んでました。

なんとなくそんな気はしていたけど、まさかこんな理由で引っかかっていたとは。 C のソースレベルで見ると関数呼び出しとかをしているわけではないので、なかなか気づきにくいところだと思う。以前、割算が命令数にしてどのくらいになるのか調べてみようと思ったときに、割算も同じようにサブルーチンに飛んでいるのを見ていたから気づいたようなもの。半日とかからずに気づいたのは運が良かった。ハマってたら今ごろは…。

う~む、プログラミングも奥が深い。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

クラックを法規制強化で止められると思ってる奴は頭がおかしい -- あるアレゲ人

読み込み中...