www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

ARM branje konstante iz programskega pomnilnika

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Tjazi
Član
Član



Pridružen-a: Tor 05 Dec 2006 0:10
Prispevkov: 26
Aktiv.: 0.11

PrispevekObjavljeno: Pet Avg 29, 2008 1:14 am    Naslov sporočila:  ARM branje konstante iz programskega pomnilnika Odgovori s citatom

Pozdravljeni,

imam sledečo težavo:

v ROM bi rad naložil dolgo tabelo, ki bi jo potem bral. Pri AVR arhitekturi in Gcc prevajalniku poznam, kako se to reši, nikjer pa še nisem zasledil, kako se to izvede na ARM/gcc kombinaciji.

Problem je v tem, da deklaracija konstante le-to vseeno skopira v RAM ob resetu (vsaj pri avr-ju je tako, ker ima ločena pomnilnika RAM in ROM).

Kako je s temu pri ARM/GCC?

LP
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
NeoTO
Član
Član



Pridružen-a: Pon 28 Mar 2005 19:19
Prispevkov: 2752
Aktiv.: 11.59
Kraj: Trzic

PrispevekObjavljeno: Pet Avg 29, 2008 11:16 am    Naslov sporočila:   Odgovori s citatom

Npr. takole bereš:

Koda:

unsigned int vrednost = *(unsigned int *)(0x0004000)


glede zapisovanja tabele v ROM pa imaš več možnosti. Glede tega ti ne bi znal zdajle takoj direktno pomagat.

_________________
Lp,
Matevž
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo MSN Messenger - naslov
alessio
Član
Član



Pridružen-a: Pon 04 Dec 2006 8:39
Prispevkov: 363
Aktiv.: 1.60
Kraj: Ljubljana

PrispevekObjavljeno: Pet Avg 29, 2008 11:37 am    Naslov sporočila:   Odgovori s citatom

Koda:


#define DATA_TABLE_SIZE (1000)
const int __attribute__ ((section (".text"))) data[DATA_TABLE_SIZE] = {4, 1, 34, 54, 44}

/*branje iz tabele*/
int i;
i = data[3];  /*spremenljivki i prirediš vrednost 54*/


Če si za primer vzameš kak winarm project, je sekcija .text definira v linker scripti, *.ld
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Tjazi
Član
Član



Pridružen-a: Tor 05 Dec 2006 0:10
Prispevkov: 26
Aktiv.: 0.11

PrispevekObjavljeno: Pet Avg 29, 2008 11:38 am    Naslov sporočila:   Odgovori s citatom

Odlično (hvala!), se mi je sicer dozdevalo, da bi lahko preko pointerja dostopal, kajti pri armu je samo en (linearen) prostor.

Glede tabele... recimo, da bi bila naložena že med prevajanjem (v ROM). Pač neka tabela konstant v .h ali .c datoteki.

_________________
LP Matjaž
------------------------------------
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Tjazi
Član
Član



Pridružen-a: Tor 05 Dec 2006 0:10
Prispevkov: 26
Aktiv.: 0.11

PrispevekObjavljeno: Pet Avg 29, 2008 11:40 am    Naslov sporočila:   Odgovori s citatom

Odlično, bom preizkusil čez vikend! Hvala!
_________________
LP Matjaž
------------------------------------
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
alessio
Član
Član



Pridružen-a: Pon 04 Dec 2006 8:39
Prispevkov: 363
Aktiv.: 1.60
Kraj: Ljubljana

PrispevekObjavljeno: Pet Avg 29, 2008 12:06 pm    Naslov sporočila:   Odgovori s citatom

Tjazi je napisal/a:
Odlično (hvala!), se mi je sicer dozdevalo, da bi lahko preko pointerja dostopal, kajti pri armu je samo en (linearen) prostor.

Preveč posplošuješ. ARM9 ima recimo Harvard arhitekturo in ločen instruction in data bus.

Citiram:

Glede tabele... recimo, da bi bila naložena že med prevajanjem (v ROM). Pač neka tabela konstant v .h ali .c datoteki.

A je to vprašanje ali kaj?
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Tjazi
Član
Član



Pridružen-a: Tor 05 Dec 2006 0:10
Prispevkov: 26
Aktiv.: 0.11

PrispevekObjavljeno: Pet Avg 29, 2008 12:16 pm    Naslov sporočila:   Odgovori s citatom

Mislil sem predvsem ARM7 arhitekturo Smile

Da, nekako je še dodatno pojasnilo k prvemu vprašanju.

_________________
LP Matjaž
------------------------------------
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Tjazi
Član
Član



Pridružen-a: Tor 05 Dec 2006 0:10
Prispevkov: 26
Aktiv.: 0.11

PrispevekObjavljeno: Tor Sep 16, 2008 10:16 am    Naslov sporočila:   Odgovori s citatom

Živjo,
sem rešil problem. Ker imam zadosti RAM-a je šla tabela kar v RAM. Je bistveno hitrejši dostop Smile

LP

_________________
LP Matjaž
------------------------------------
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> ARM arhitektura Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 6 dni


Powered by phpBB © 2001, 2005 phpBB Group