<html><body>Protože to tak bylo implicitně nastaveno a teď vede změna k mnoha errorům.<br><br>PH<br><br>Od: Jaroslav Buchta <jaroslav.buchta@hascomp.cz><br><blockquote><div style="color: #000000; background-color: #FFFFFF">
<div>Proc vlastne pouzivate TI prekladac a
ne GCC? Jen se ptam, taky neco planuji s temito procesory a zatim
resim jen HW...<br>
Ja CCS studio kdysi pouzil pro nejake DSP a nejak jsem dosel k
nazoru, ze toto uz nikdy vice, ale je to uz par let.<br>
<br>
Dne 22. 1. 2015 v 20:34 Pavel Hudeček napsal(a):<br>
</div>
<blockquote>Odhad byl správný, jedná se o arm, konkrétně AM3358.<br>
Překladač Ti v5.1.1<br>
K výsledku to zatím nevede:<br>
<br>
.       asm(" .ref ble\n"<br>
.                " ldr r1,ble\n"<br>
.                " swi #458752\n"<br>
.                " mrc p15, #0, r0, c12, c0, #0\n"<br>
.                " str [r1], r0\n"<br>
.       );<br>
<br>
 [W0000]<br>
         Defined symbol 'ble' cannot have a .ref<br>
     .ref ble<br>
<br>
 [E0001]<br>
         Address must be defined in the current section<br>
     ldr r1,ble<br>
<br>
 [E0004]<br>
         Illegal operand<br>
     ldr r1,ble<br>
<br>
 [E0005]<br>
         Missing operand(s)<br>
     str [r1], r0<br>
<br>
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.<br>
<br>
PH<br>
<p><br>
</p>
<p>Od: Josef Štengl <a href="mailto:ok1ced@nagano.cz"><ok1ced@nagano.cz></a></p>
<blockquote>Správně se zeptat :-)<br>
1) Cílová platforma/procesor (lépe platforma, než označení čipu)<br>
2) Překladač který používáte - asm zápisy se různí.<br>
<br>
Pak si najít manuál k překladači. A je - li to Texas, tak popis
assembleru bude v jiném manuálu.<br>
<br>
Jinak je to věštění z křišťálové koule (bohužel nemám žádnou
funkční ;-).<br>
<br>
<br>
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 <br>
třeba pro C6000, což neznám (jen trochu C2000, mršku jednu
proradnou):<br>
<br>
.ref n<br>
ldr r1, n ; adresa do r1<br>
ldr r0, [r1] ; hodnota do r0<br>
<br>
opačně<br>
ldr r1, n ; adresa do r1<br>
str r0, [r1] ; hodnota z r0 do n<br>
<br>
ced<br>
<br>
<br>
<br>
<br>
Dne 22.1.2015 v 15:28 Pavel Hudeček napsal(a):<br>
> Dobrý den všem,<br>
> 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.<br>
><br>
> 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ý<br>
> překladač. (některé věci ze starterwaru mají dvě verze,
jednu v adresáři gcc, druhou v cgt. Pokud první obsahuje asm,
tak<br>
> mi obvykle nejde přeložit)<br>
><br>
> Jak to tedy správně dělat? / Jak se správně ptát?</blockquote></blockquote></div></blockquote></body></html>