Dobrý den.
Začal jsem zkoušet programovat STM32VL kit a mám problém s vložením části asm kodu do programu v C.
[code]
/* WAIT = 24*41,67ns = 1us */
//#define WAIT __nop();__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();__nop();__nop();__nop();
__nop();__nop();__nop();__nop();__nop()
#define WAIT __asm(“mov r8,r8\n\tmov r8,r8\n\tmov r8,r8\n\tmov r8,r8\n\t”
“mov r8,r8\n\tmov r8,r8\n\tmov r8,r8\n\tmov r8,r8\n\t”
“mov r8,r8\n\tmov r8,r8\n\tmov r8,r8\n\tmov r8,r8\n\t”
“mov r8,r8\n\tmov r8,r8\n\tmov r8,r8\n\tmov r8,r8\n\t”
“mov r8,r8\n\tmov r8,r8\n\tmov r8,r8\n\tmov r8,r8\n\t”
“mov r8,r8\n\tmov r8,r8\n\tmov r8,r8\n\tmov r8,r8\n\t”)
/* fce mov r8,r8 se provede za 1 cyklus, pri 24Mhz za 41,66 ns
- celkem je zde 24 instrukci, tj. doba provadeni je 1us! */
void _delay_us(vu16 time)
{
if(time>0)
{
for(;time != 0;time–)WAIT;
}
}[/code]
Pokud použiju WAIT __nop()…, tak se program se překompiluje v pořádku, ale při WAIT __asm(…) to hlásí chybu:
error : #1113 : Inline assembler not permitted when generating Thumb code
Děkuji Standa
administrator: příspěvek byl upraven