[elektro] C kérdés
hg12345
hg12345 at freemail.hu
Thu Nov 21 08:25:42 CET 2019
A ha nagyon kell akkor akkor RAM "end" címekre teszek egy olvasási rutin, plusz R4...R8 regiszterekben "magic number" és várom memória kicímzési hibát, természetesen ha nincs "magic number" akkor valódi hiba, ha van akkor itt a vége és kész.
Nekem egyszerűbb az élet, beszerzésileg a nagyobb kapacitású uC az olcsóbb, RAM-ban nagy a különbség, FLASH-ben már nem annyira, ill. a FLASH méret kiolvasható. A régi kompatibilítás miatt nem tudok több több ramot használni, de a későbbiekben elképzelhető hogy kellhet, erre lenne jó egy egyszerű megoldás ami futás közben kezelhető.
Arra már rájöttem, hogy stack pointer init RESET vektor utáni első cím értéke, adja a program által használt maximális ram értékét, ha nincs külön memória terület erre definálva.
Elsőre a system init fut le normál esetben, ennek a végén még korrekten megoldható a pointer áthelyezése, első bekezdésben említett dinamikus módon.
Persze ez után már nem lehet közvetlen memória foglalással dolgozni, mindenképpen a HEAP-re kell a buffereket mozgatni.
Üdv
-------- Eredeti levél --------
Feladó: uprogc < uprogc at gmail.com (Link -> mailto:uprogc at gmail.com) >
Dátum: 2019 november 20 17:00:06
Tárgy: Re: [elektro] C kérdés
Címzett: elektro at centralnet.hu (Link -> mailto:elektro at centralnet.hu)
Szia,
De bele kell nyulni, en pl sajatot irtam, a kulonbozo tipusu RAM teruletek
miatt pl. es a flash-be tarolando tartalom miatt.
Udv.
Szabi
On Tue, Nov 19, 2019 at 8:24 PM hg12345 <hg12345 at freemail.hu> wrote:
> KEIL automatikusan generálja a linker scripted, ehhez nem szeretnék hozzá
> nyúlni, ha kell írni akkor ezt megtehetem egy include file-ben is. :-)
>
> -------- Eredeti levél --------
> Feladó: Lajos Rancz < lajos.rancz at gmail.com (Link -> mailto:
> lajos.rancz at gmail.com) >
> Dátum: 2019 november 19 15:42:04
> Tárgy: Re: [elektro] C kérdés
> Címzett: elektro at centralnet.hu (Link -> mailto:elektro at centralnet.hu)
> Helló!
> A linker scriptbe kell beleírnod, innentől nem compiler független a
> megoldás. Egy gyors guglizassal ezt talaltam:
>
> https://mcuoneclipse.com/2016/11/01/getting-the-memory-range-of-sections-with-gnu-linker-files/
> Üdv
> hg12345 <hg12345 at freemail.hu> ezt írta (időpont: 2019. nov. 19., K, 9:40):
> > Hi,
> >
> > hogyan lehet hivatkozni a fordítási időben a C programban a linker által
> > generált címekre szegmensekre?
> >
> > A program 3 különböző uC fordul (STM32F variánsok) ezek memória
> > (FLASH/RAM) kezdő és végcíme vagy mérete kéne. GNU vagy KEIL C vagy
> bármely
> > fordító esetén, hátha él ezen is.
> >
> > Tudom egy egyszerű feltételes fordítással is megadhatók mint konstansok,
> > de a "dinamikus" kezelés valós fordítási elhelyezés alapján jobb lenne.
> >
> > Üdv
> >
> >
> > -----------------------------------------
> > elektro[-flame|-etc]
> -----------------------------------------
> elektro[-flame|-etc]
> -----------------------------------------
> elektro[-flame|-etc]
-----------------------------------------
elektro[-flame|-etc]
More information about the Elektro
mailing list