ARM Linux verwaltet eine Liste von Alignment-Handlern Ausnahmen,
$ cat /proc/cpu/alignment
User: 0
System: 0
Skipped: 0
Half: 0
Word: 0
DWord: 0
Multi: 0
User faults: 0 (ignored)
Es ist nur mit procfs aktiv , aber ein System ohne procfs ist schwer vorstellbar . Der spezifische Code, der dies handhabt, befindet sich in align.c. Sie können echo 3 > /proc/cpu/alignment
verwenden um Linux reparieren zu lassen die Anweisung und geben Sie einige dmesg
an Ausgang. Im Allgemeinen ist die Handhabung nicht ausgerichteter Zugriffe durch Emulation sehr ineffizient. Es ist besser, den Code zu korrigieren. Das Signal Option mit angehängtem Debugger sollte einen Hinweis auf die Quelle der Ausnahme geben.
Lesen Sie das Handbuch.;-)
Linux kann die Fehlerbehebung für Sie übernehmen oder vor dem Zugriff warnen.
Sie können das Verhalten in /proc/cpu/alignment aktivieren, siehe http://www.mjmwired.net/kernel/Documentation/arm/mem_alignment für eine Erklärung der verschiedenen Werte.
0 - Do nothing (default behavior)
1 - Warning in kernel-log with PC and Memory-Address printed.
2 - Fixup error
3 - Warn and Fixup
4 - Send a SIGBUS to the process
5 - Send SIGBUS and output Warning