Хочу инициализировать на голом железе кору А-15 NEON cp. После выполнения директив ARM Я написал эту последовательность в конце последовательности инициализации моей платформы:
MOV r0, #0x00F00000
MRC p15, 0, r0, c1, c1, 2
ORR r0, r0, #0x0C00
BIC r0, r0, #0xC000
MCR p15, 0, r0, c1, c1, 2
ISB
MRC p15, 4, r0, c1, c1, 2
BIC r0, r0, #0x0C00
BIC r0, r0, #(3<<14)
MCR p15, 4, r0, c1, c1, 2
ISB
MOV r3, #0x40000000
VMSR FPEXC, r3
Я получаю эту ошибку:
Error: operand 0 must be FPSCR -- `vmsr FPEXC,r3'
Я использую arm-eabi-as --version
:
GNU assembler (GNU Binutils) 2.21
Copyright 2010 Free Software Foundation, Inc.
This program is free software; you may redistribute it under the terms of
the GNU General Public License version 3 or later.
This program has absolutely no warranty.
This assembler was configured for a target of `arm-eabi'.
Если я изменю FPEXC
на FPSCR
, программа скомпилируется и возникнет исключение обработчика повышения уровня:
MRC p15, 4, r0, c1, c1, 2
MRC p15, 4, r0, c1, c1, 2
вызывает исключение и меняет режим наUndefined
в Регистрация CPSR? Я запускаю приведенный выше код сборки какSupervisor
. - person 0x90   schedule 07.10.2013MRC p15, 0, r0, c1, c1, 2
; нет4
. Это число важно. Вы прочитали Использование Advanced SIMD и VFP в режиме Hyp; Вы не используете расширения виртуализации? Кроме того, я не думаю, что вам это нужно, если вы не используете TrustZone. - person artless noise   schedule 08.10.2013eee8Ra10
, гдеR
— регистр. - person 0x90   schedule 08.10.2013