Re[6]: Драйверы ядра Windows на ARM
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 07.11.21 13:37
Оценка:
Здравствуйте, Sergei I. Gorelkin, Вы писали:

SIG>ядро Cortex-M0 не допускает невыровненный доступ, а Cortex-M3 — имеет бит в одном из регистров, определяющий, допускать или нет.


Как я понимаю, из пользовательского приложения под виндой это не должно быть доступно, а глобально менять эти режимы из драйвера ядра должно быть запрещено соглашениями. Каковы свойства тех ARM'ов, на которых работает Win8/10/11? Нужно ли мне переделывать весь код на эти ограничения, или можно исходить из того, что на том железе их нет?

SIG>Так что лучше всего обеспечить выравнивание самостоятельно. Оно и на x86 будет работать быстрее.


Речь про выравнивание не полей структур, а потоков данных. Например, мой код работает со звуковыми потоками, которые могут быть одно-, двух-, трех- и четырехбайтовыми. На x86 чтение/запись двухбайтового слова по нечетному адресу всяко не медленнее, чем сборка/разборка по байтам, поэтому я использую указатели на WORD для 16-разрядных отсчетов, и комбинации WORD/BYTE — для 24-разрядных.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.