[elektro] C kérdés

Lajos Rancz lajos.rancz at gmail.com
Fri Dec 17 16:18:31 CET 2010


Hello!

Be tudnad dobni a headerbol azt ahol definialja ezt a struktot? Plusz az is
kene, ahol a pointert erre a struktra mutato pointerre castolja.

Udv

2010/12/17 hg12345 <hg12345 at freemail.hu>

> Hát éppen ez a probléma, hogy nem tudja értélmezni.
>
> Ez egy STM32F1xx kontroller (ARM) és ez a név mögött most éppen a
> TIM2->CCR2 bujik meg. (de hívhatnánk TIM2.CCR2 is)
> Mivel ez egy címre definiált (periféria leíró) STRUKTURA, ráadásúl CMSIS
> kompatibilis (ez az ARM ajánlott közös leíró header a CORTEX magokra) és
> minden strukturának van cim, maximum fordítási időben nem elérhető, de
> tipukusan ez egy olyan struktrura ami már fordítási időben is elérhető című.
> A struktura elemek cimét még a C forditó osztja ki. Vagyis egy
> Pointer+Offset müveletet kéne elvégezni a fordítónak és egy inicializált
> tömbben elhelyezni.
>
> Persze nem ez a lényeg, szükségem lenne egy cimforditó tömbre amit a C-ben
> tudok genrálni, a hordozhatóság miatt.
>
> ((( A C-nek uC környezetben ezek a legnagyobb problémái, ami asm csak egy
> sor és teljesen egyértelmű, azt eldugják a programozó elől, nehogy
> véletlenül hibát csináljon. Ennyi erővel akár a gázpedálnak is csak az első
> 10% kéne korlátozni ez elmozdulását, hogy kevesebb baleset legyen... ))
>
>
>
> potyo <potyo.ada at gmail.com> írta:
> >A TIMbase.Reg1 az micsoda? Nem lehet, hogy nem tudja rá értelmezni az>
> & műveletet?>
> >
> 2010/12/17 hg12345 <hg12345 at freemail.hu>:>
> > Hi>
> >>
> > hogyan kell egy címfordító pointer táblát generálni C-ben, lehetőleg a
> nem felejtő memóriába. (FLASH)>
> > A "C" keil alapokon van, és nagyon szimpatikus lenne, ha a definiciós
> strukturából venné a cimeket :-)>
> >>
> > #define  HwReg1   TIMbase.Reg3>
> > #define  HwReg2   TIMbase.Reg1>
> > #define  HwReg3   TIMbase.Reg2>
> >>
> > //a fenti sorok egy headerban találhatok, sok egyébb más dologgal
> együtt...>
> > //a forditónak mindegy hogy . vagy -> (elvileg az egyik forditáskori
> számítás, a másik meg futáskori cimszámítást generál...)>
> >>
> > const unsinged short* CrossAddr[] = {(unsigned short*) &HwReg1, (unsigned
> short*) &HwReg2, (unsigned short*) &HwReg3 };>
> >>
> > valami hasonló elképzelésem lenne, de ezt nem hajlandó lefordítani,
> persze ez még nem kerül csak a FLASH-ban tárolásra, mert induláskor
> bemásolja a RAM-ba.>
> >>
> > ((( Jó, ez a C-de a alap HW fejlesztésre nem teljesen 100% :-)))>
> >>
> > ----------------------------------------->
> >          elektro[-flame|-etc]>
> >>
> >
> ----------------------------------------->
>          elektro[-flame|-etc]
>
> -----------------------------------------
>          elektro[-flame|-etc]
>


More information about the Elektro mailing list