OSDev Wiki
Advertisement

Пространство управления системой (SCS, system control space) занимает 4 Кбайта адресного пространства. Если процессор не поддерживает расширение безопаcности (таковыми, в частности, являются все реализации архитектур ARMv6-M и ARMv7-M), у него имеется единственное SCS с диапазоном адресов E000E000–E000EFFF. Если расширение безопасности поддерживается, то имеются два SCS: с диапазонами адресов E000E000–E000EFFF и E002E000–E002EFFF. Первое из них доступно для любого кода, второе – только для кода, работающего в небезопасном режиме (код безопасного режима будет считывать из этой области нули, а попытки записи игнорируются).

В SCS находятся регистры управления следующими техническими средствами:

Байты регистров SCS всегда располагаются в порядке «младший–старший» независимо от порядка следования байтов в остальной памяти. Доступ к большинству регистров SCS осуществляется только полными словами и возможен только для привилегированного кода; исключения из этого правила оговариваются явным образом в описаниях соответствующих регистров. Обращения байтами или полусловами в тех случаях, когда они не разрешены, приводят к непредсказуемым результатам; недопустимые непривилегированные обращения всегда приводят к возникновению прерывания BusFault (если оно не поддерживается – HardFault).

Наличие стандартного SCS, являющегося частью адресного пространства памяти, является одним из кардинальных отличий M-профиля от других разновидностей архитектуры ARM, у которых аналогичные функции выполняются главным образом через регистры сопроцессоров управления системой CP15 и отладки CP14, а также рядом не всегда стандартизированных регистров, доступных как ячейки памяти.

Advertisement