Predavani hodnot mezi asm a C v CCS 550

Tom Meinlschmidt hw na meinlschmidt.org
Čtvrtek Leden 22 20:57:52 CET 2015


tipnul bych

.global ble\n
adr r1, ble\n
...

tm

> On Jan 22, 2015, at 20:34 , Pavel Hudeček <edizon na seznam.cz> wrote:
> 
> Odhad byl správný, jedná se o arm, konkrétně AM3358.
> Překladač Ti v5.1.1
> K výsledku to zatím nevede:
> 
> .       asm(" .ref ble\n"
> .                " ldr r1,ble\n"
> .                " swi #458752\n"
> .                " mrc p15, #0, r0, c12, c0, #0\n"
> .                " str [r1], r0\n"
> .       );
> 
>  [W0000]
>          Defined symbol 'ble' cannot have a .ref
>      .ref ble
> 
>  [E0001]
>          Address must be defined in the current section
>      ldr r1,ble
> 
>  [E0004]
>          Illegal operand
>      ldr r1,ble
> 
>  [E0005]
>          Missing operand(s)
>      str [r1], r0
> 
> ble je globální proměnná typu uint32_t. Když jsem ji ještě navíc udělal static, zmizel první warning, ale zbytek zůstal. Lokální static i nestatic též jen s errory.
> 
> PH
> 
> 
> Od: Josef Štengl <ok1ced na nagano.cz>
> 
> Správně se zeptat :-)
> 1) Cílová platforma/procesor (lépe platforma, než označení čipu)
> 2) Překladač který používáte - asm zápisy se různí.
> 
> Pak si najít manuál k překladači. A je - li to Texas, tak popis assembleru bude v jiném manuálu.
> 
> Jinak je to věštění z křišťálové koule (bohužel nemám žádnou funkční ;-).
> 
> 
> Z hlavy střelím jen možnost pro ARM a ti překladač. Ale vzhledem k tomu, že pojem ctg mi nic neříká, tak to můžete být 
> třeba pro C6000, což neznám (jen trochu C2000, mršku jednu proradnou):
> 
> .ref n
> ldr r1, n	; adresa do r1
> ldr r0, [r1] ; hodnota do r0
> 
> opačně
> ldr r1, n	; adresa do r1
> str r0, [r1]	; hodnota z r0 do n
> 
> ced
> 
> 
> 
> 
> Dne 22.1.2015 v 15:28 Pavel Hudeček napsal(a):
> > Dobrý den všem,
> > mám proměnnou n, která obsahuje 32b unsigned int a chtěl bych ji dostat do registru r0. Jindy zas potřebuji opačný přenos.
> >
> > Při gůglení jsem našel, že by to v gcc mělo jít takto: mov r0,n. Jenže tak to nejde, takže se tu asi používá jiný
> > překladač. (některé věci ze starterwaru mají dvě verze, jednu v adresáři gcc, druhou v cgt. Pokud první obsahuje asm, tak
> > mi obvykle nejde přeložit)
> >
> > Jak to tedy správně dělat? / Jak se správně ptát?
> >
> > Děkuji,
> > PH
> >
> >
> > _______________________________________________
> > HW-list mailing list - sponsored by www.HW.cz
> > Hw-list na list.hw.cz
> > http://list.hw.cz/mailman/listinfo/hw-list
> >
> _______________________________________________
> HW-list mailing list - sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list

-- 
===============================================================================
Tomas Meinlschmidt, MS {MCT, MCP+I, MCSE, AER}, NetApp Filer/NetCache

www.meinlschmidt.com  www.maxwellrender.cz 
===============================================================================



Další informace o konferenci Hw-list