ARM Linux udržuje seznam obslužných nástrojů pro zarovnání výjimky,
$ cat /proc/cpu/alignment
User: 0
System: 0
Skipped: 0
Half: 0
Word: 0
DWord: 0
Multi: 0
User faults: 0 (ignored)
Je aktivní pouze s procfs , ale je těžké si představit systém bez procfs . Konkrétní kód, který to řeší, je v alignment.c. Můžete použít echo 3 > /proc/cpu/alignment
mít Linux opravu instrukci a poskytnout nějaké dmesg
výstup. Obecně je manipulace s nezarovnanými přístupy prostřednictvím emulace velmi neefektivní. Je lepší kód opravit. signál možnost s připojeným debuggerem by měla poskytnout určité vodítko, pokud jde o zdroj výjimky.
Přečtěte si manuál.;-)
Linux může provést opravu za vás nebo upozornit na přístup.
Toto chování můžete povolit v /proc/cpu/alignment, viz http://www.mjmwired.net/kernel/Documentation/arm/mem_alignment pro vysvětlení různých hodnot.
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