Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Inline assembler в IAR
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Hexxx
Пытаюсь юзать inline ассемблер. Пишут вот такой код:
Код
void InitUart(int hPort)
{
  asm ("MOV     R1, #0x20");
  asm ("LDR     R1, [R1]");
  asm ("BX      R1");
}


IAR считает, что строка asm ("MOV R1, #0x20");:
Error[Og006]: Syntax error in inline assembly: "Error[401]: Operand syntax error"
Что я пишу не так?
rezident
Форма представления числа ему не нравится. Попробуйте записать как
Код
asm ("MOV R1, #020h");
KRS
Цитата(Hexxx @ Sep 19 2007, 18:33) *
IAR считает, что строка asm ("MOV R1, #0x20");:
Error[Og006]: Syntax error in inline assembly: "Error[401]: Operand syntax error"
Что я пишу не так?


У вас наверняка режим THUMB, а там эта команда работает с установкой флагов - надо писать MOVS - тогда ошибок не будет! или объявить функцию как __arm
Hexxx
Цитата(KRS @ Sep 19 2007, 18:32) *
У вас наверняка режим THUMB, а там эта команда работает с установкой флагов - надо писать MOVS - тогда ошибок не будет! или объявить функцию как __arm

Да! Так и есть. Спасибо!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.