[elektro] C asm("NOP") makró
Bali Zoltán
eltexto at freemail.hu
Thu Nov 27 10:51:04 CET 2014
EWARM. De, jó ötlet, az intrinsicet még nem néztem.
Köszi
Üdv. Zoli
----- Original Message -----
From: "Miko, Imre" <imre.miko at siemens.com>
To: <elektro at tesla.hu>
Sent: Thursday, November 27, 2014 10:40 AM
Subject: Re: [elektro] C asm("NOP") makró
> Sziasztok,
>
> A forditot azert jo lett volna megtudnunk, mert mindenhol mas megoldas
> van.
>
> AVR-GCC:
> __builtin_avr_delay_cycles(cycles)
>
> AVR-I*R:
> __delay_cycles(cycles)
>
> PIC24/dsPIC GCC:
> // delay constant number of cycles (cycles = 2...16385)
> #define delay_cycles(cycles) ASM("repeat #%0 \n nop" :: "i"
> ((cycles)-2));
>
> Udv,
> Imre
>
> -----Original Message-----
> From: elektro-bounces at tesla.hu [mailto:elektro-bounces at tesla.hu] On Behalf
> Of Bali Zoltan
> Sent: 26 November 2014 13:04
> To: elektro at tesla.hu
> Subject: Re: [elektro] C asm("NOP") makró
>
> Akkor a hab már megvan, a tortát meg még farigcsálom hozzá :) .
>
> Hálás köszönet.
>
> Üdv. Zoli
>
> Ui. egyébként most próbáltam a korábbiakat.
> csak ez működik (asm lst-ben ellenőrízve):
>
> #define _NOPx2 {asm("NOP");} {asm("NOP");}
>
>
>
>
> 2014.11.26. 12:38 keltezéssel, Andras Nagy írta:
>> Szia,
>>
>> GCC-ben meg lehet csinálni
>>
>> legyen egy header fileod ami kb így néz ki:
>>
>> //====================================================================
>> ======== // $Id: nopasmmacro.h 2014-06-17 23:32:08 andy $
>> //====================================================================
>> ========
>>
>> #ifndef _VARIABLE_NOP_ASM_MACRO_H_
>> #define _VARIABLE_NOP_ASM_MACRO_H_
>>
>> #define __sx2(x) #x
>> #define __sx1(x) __sx2(x)
>>
>> #define _NOP_N( x ) ({ asm("__VARIABLE_NOPS " __sx1(x) "\n"); })
>>
>> void __variable_nop_asm_macro(void)
>> {
>> asm(".macro __VARIABLE_NOPS, count, iter=1\n nop\n .if
>> \\count-\\iter\n __VARIABLE_NOPS \\count,\"(\\iter+1)\"\n .endif\n
>> .endm\n"); }
>>
>> #endif // _VARIABLE_NOP_ASM_MACRO_H_
>>
>>
>>
>> ahol bárhol akarod használni include-old be a forrás file elején
>>
>> és
>>
>> _NOP_N( 20 );
>>
>> vagy akár definiált konstansokkal is működik pl:
>>
>> #define NOPOK_SZAMA 8
>>
>> _NOP_N( NOPOK_SZAMA );
>>
>>
>> Üdv,
>> Andy
>>
>>
>> Sent: Wednesday, November 26, 2014 at 10:24 AM
>> From: "Bali Zoltán" <eltexto at freemail.hu>
>> To: elektro at tesla.hu
>> Subject: Re: [elektro] C asm("NOP") makró Ebből indultam ki én is, de
>> a pontosvesszőre figyeltem, meg cifráztam is. Makródefben kihagytam,
>> utásítás után raktam. Utána fordítva. De, majd mégegyszer megpróbálom,
>> hátha megint benéztem valamit.
>>
>> Köszi
>>
>> Üdv. Zoli
>>
>> ----- Original Message -----
>> From: "Lajos Rancz" <lajos.rancz at gmail.com>
>> To: <elektro at tesla.hu>
>> Sent: Wednesday, November 26, 2014 9:44 AM
>> Subject: Re: [elektro] C asm("NOP") makró
>>
>>
>>> Helló!
>>>
>>> Ha az asm("NOP"); működik akkor a makrónak is működnie kell. Nem
>>> lehet, hogy nem tetted ki a ';' jelet?
>>>
>>> Üdv
>>>
>>> 2014. november 26. 7:40 Bali Zoltán írta, <eltexto at freemail.hu>:
>>>
>>>> Hali!
>>>>
>>>> Általában kerülöm a bonyolultabb makrókat, de most kellene ilyesmi,
>>>> hogy NOPx10, ami 10 asm("NOP) utasításból állna.
>>>> Gondoltam ez nem lehet bonyolult, de nem megy.
>>>>
>>>> Azt hittem legalább ez működik
>>>> #define _NOP (asm("NOP"))
>>>> Lehet a string zavarja, próbáltam
>>>> függvény szerű makróval, de azzal sem jutottam eredményre.
>>>>
>>>> Van valakinek netán ötlete?
>>>>
>>>> Köszi
>>>>
>>>> Üdv. Zoli
>>>> -----------------------------------------
>>>> elektro[-flame|-etc]
>>>>
>>> -----------------------------------------
>>> elektro[-flame|-etc]
>> -----------------------------------------
>> elektro[-flame|-etc]
>> -----------------------------------------
>> elektro[-flame|-etc]
>
> -----------------------------------------
> elektro[-flame|-etc]
> -----------------------------------------
> elektro[-flame|-etc]
More information about the Elektro
mailing list