Profile

書いてる人:

たけ-ちーず
紹介文:
SkypeID:take-cheeze

Link

RSS Feed

Search

Calender

Latest Article

Category

Access Counter

Online Counter

Show All Article

どうでもいい独り言。 と、少しの開発日記。
  • 11 «
  • 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
  • » 01
スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
【--/--/-- --:--】 | スポンサー広告 |
変なエラーの原因が分かった。
変なエラーの原因が分かりました。

まず、そのエラメッセージは、大体

LW unaligned addr:アドレス pc:発生箇所のアドレス


こんな感じのものです。

意味は、『LW命令で指定されたアドレスが不正です』といった感じです。
それで、何が不正かというとアドレスが4の倍数じゃないことみたいです。

どうやら、4バイトの値を読み込む時、読込元のアドレスは4の倍数でなければいけないみたいです。
IA-32には、無い仕様でPSPのCPUにはある仕様っぽいです。
CPUの違いは、面倒です。

そして、このコトに気付いたのは、適当な場所で、メッセージ吐かせたみたときでした。
意外なことに、メッセージとエラーのタイミングをみれば、一目瞭然でした。
やっぱり、何事もヒントが必要ですね。

でまあ、そのエラーの発せ箇所は、sue445さん自前のメモリコピー関数でした。
その関数は、32bit(4バイト)ごとにコピーして、高速化していました。

でも、機種依存の××バイト境界なんてのは、流石に気にしてはいません。
関数は、4の倍数でないアドレスでも、ほいほい処理してしまうものでした。

とりあえず、そのメモリコピー関数を呼ばないようにしてmemcpyを代用しました。
関数を改造するという方法も考えましたが、オーバーヘッドが気になるのでやめました。
それに、ライブラリ関数というのは洗練されているものが多いですし。

そんなこんなで、コンパイルしてエミュレータで走らせたら見事、エラーは出なくなりました。

ふう。
やっと、付き合いの長いエラーとおさらばです。

それに、これで色んな問題が解消されると思います。

最近、遭遇した配列からデータが読み込めないこと。
PSPで画面真っ黒のまま終了すること。
Jpcspでコンパイラモードが使えなかったこと。

また一歩前へ。
【2009/08/26 19:00】 | 雑記 | トラックバック(0) | コメント(2) |
<<Jpcsp | HOME | メモを手書きで。>>
コメント
いつもありがとうございます。
【2009/08/26 22:19】 URL | 名無しさん #-[ 編集]
何か、こちらこそありがとうございます。
【2009/08/27 23:10】 URL | take-cheeze #-[ 編集]
コメントの投稿












管理者にだけ表示を許可する

トラックバック
トラックバックURL
http://takecheeze.blog47.fc2.com/tb.php/91-8683df7c
この記事にトラックバックする(FC2ブログユーザー)
ホーム
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。