У меня есть простой узел, который генерировал следующее сообщение об ошибкеОшибка рукоятки A1174E: смещение передачи данных 0x00002000 вне диапазона. Допустимые значения 0xFFFFF001 для 0x00000FFF
Assembly
LDR r14,[r12,#0x00002000]
Ошибка
testspeed.s(23): error: A1174E: Data transfer offset 0x00002000 out of range. Permitted values are 0xFFFFFF01 to 0x00000FFF
Глядя на ARM guide я вижу причину ошибки
A1174E: Data transfer offset 0x<val> out of range. Permitted values are 0x<mini> to 0x<maxi>
Кто-нибудь знает, что это такое 0x<mini>
и 0x<maxi>
? И где он установлен? Могу ли я это контролировать.
Они являются заполнителями для действительных значений, замененных в сообщении об ошибке. В вашем случае '0x' заменяется на '0xFFFFFF01', а' 0x 'заменяется на' 0x00000FFF'. Вы можете изменить эти значения, это ограничение архитектуры ARM. Вам нужно будет переписать инструкцию сборки. –
@RossRidge Где я могу установить их в своей программе? Есть ли какая-либо документация об этом. Кажется, я не могу найти ничего полезного. – rockstar
Извините, я хотел сказать, что вы не можете их изменить. –