• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:sil_rew_memのメモリアクセスについて)

sil_rew_memのメモリアクセスについて

このQ&Aのポイント
  • toppers/JSPにて組込みファームウェアの開発を行っております。toppers/jspのメモリ空間アクセス関数でuint32_t sil_rew_mem(void* mem)にて、メモリアクセスを行うと、memによるメモリアドレス指定が、4の倍数の場合は正常にデータが読込めますが、4の倍数以外の2の倍数の場合は、繰り下げられた4の倍数の値が読込まれます。
  • この関数は、このような仕様なのでしょうか?
  • どなたかご存知の方は、ご回答をよろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • pyonmae
  • ベストアンサー率64% (40/62)
回答No.2

こんにちは。 仕様と言いますか、jsp/include/sil.hあたりにズバリ定義されていないでしょうか。 何のプロセッサを使っているかはわかりませんが、ロングワードアクセスを行う場合は、4の倍数以外のアドレスにアクセスできないという事は、きょうび普通です。 sil_rew_memで避けられているという事は、お使いのプロセッサにも、この禁忌があるという事ですので、ご希望の事をなさりたい場合は、0x0002と、0x0004から、2回に分けてsil_reh_memする必要があります。

ak_yama_001
質問者

お礼

pyonmaeさん どうもありがとうございます。 まだまだ、知識足らずです。 今後ともよろしくお願いいたします

その他の回答 (1)

  • php504
  • ベストアンサー率42% (926/2160)
回答No.1

32ビット単位の読み書きなのでアドレスも32ビット境界なんだろうなと理解します memの下位2ビットが無視されるのでしょう そういう仕様のCPUも多いです

ak_yama_001
質問者

お礼

php504さん。 回答ありがとうございました。 まだまだ、知識足らずです。 今後ともよろしくお願いいたします

関連するQ&A