programing:arm-programing:arm-unaligned-access
差分
このページの2つのバージョン間の差分を表示します。
| 次のリビジョン | 前のリビジョン | ||
| programing:arm-programing:arm-unaligned-access [2018/04/26 03:36] – 作成 yoko | programing:arm-programing:arm-unaligned-access [2018/04/26 04:30] (現在) – yoko | ||
|---|---|---|---|
| 行 16: | 行 16: | ||
| Abitは、デフォルトで「0」となっており、非境界アドレスのアクセスも可能となっているが、システム起動初期化時 A=1 として非境界アクセスをチェックし、安定して起動したら A=0 とするような使い方もできる。 | Abitは、デフォルトで「0」となっており、非境界アドレスのアクセスも可能となっているが、システム起動初期化時 A=1 として非境界アクセスをチェックし、安定して起動したら A=0 とするような使い方もできる。 | ||
| - | ``` | + | <code c> |
| asm(" | asm(" | ||
| asm(" | asm(" | ||
| asm(" | asm(" | ||
| - | ``` | + | </ |
| GCCコンパイラの動作 | GCCコンパイラの動作 | ||
| ------------------ | ------------------ | ||
| GCCは、デフォルトで `-munaligned-access` が有効となっているらしく、データアクセスが境界調整されている場合、コマンドラインオプション `-mno_unaligned_access` を使って非境界整列アクセスをサポートするライブラリ関数へのリンクを避けることもできる。 | GCCは、デフォルトで `-munaligned-access` が有効となっているらしく、データアクセスが境界調整されている場合、コマンドラインオプション `-mno_unaligned_access` を使って非境界整列アクセスをサポートするライブラリ関数へのリンクを避けることもできる。 | ||
| + | |||
| + | 補足 | ||
| + | ---- | ||
| + | |||
| + | - 非境界アクセスが発生すると、実際のメモリバス上は複数回のバスアクセスとなり、多少アクセス時間がかかる。 | ||
| 参考 | 参考 | ||
programing/arm-programing/arm-unaligned-access.1524713786.txt.gz · 最終更新: by yoko
