Я пытаюсь вызвать процедуру asm_uart_string (), написанную в asm из кода C.Proc asm_uart_string () принимает только один параметр из регистра r0, и это адрес строки для печати.Я пытаюсь передать адрес переменной "txt", который должен быть напечатан:
char txt[]="eeeeeeeeeeeeeeeee\r\n";
asm("ldr r0, %0" :: "m" (txt));
asm("bl asm_uart_string");
однако я не получаю то, что хотел, потому что objdump возвращает следующий код:
7b4: e59f3058 ldr r3, [pc, #88] ; 814 <main+0x3d0>
7b8: e5930000 ldr r0, [r3]
7bc: eb0000bb bl ab0 <asm_uart_string>
У меня нет большого опыта встраивания asm в C-код, и в настоящее время я не знаю, как правильно передать адрес "txt" в r0.Есть предложения?