- ベストアンサー
※ 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の倍数の値が読込まれます。
- この関数は、このような仕様なのでしょうか?
- どなたかご存知の方は、ご回答をよろしくお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 仕様と言いますか、jsp/include/sil.hあたりにズバリ定義されていないでしょうか。 何のプロセッサを使っているかはわかりませんが、ロングワードアクセスを行う場合は、4の倍数以外のアドレスにアクセスできないという事は、きょうび普通です。 sil_rew_memで避けられているという事は、お使いのプロセッサにも、この禁忌があるという事ですので、ご希望の事をなさりたい場合は、0x0002と、0x0004から、2回に分けてsil_reh_memする必要があります。
その他の回答 (1)
- php504
- ベストアンサー率42% (926/2160)
回答No.1
32ビット単位の読み書きなのでアドレスも32ビット境界なんだろうなと理解します memの下位2ビットが無視されるのでしょう そういう仕様のCPUも多いです
質問者
お礼
php504さん。 回答ありがとうございました。 まだまだ、知識足らずです。 今後ともよろしくお願いいたします
お礼
pyonmaeさん どうもありがとうございます。 まだまだ、知識足らずです。 今後ともよろしくお願いいたします