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 

LPC2148 iap

 
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
Wrecker
Član
Član



Pridružen-a: Pet 11 Feb 2011 22:43
Prispevkov: 254
Aktiv.: 1.45

PrispevekObjavljeno: Tor Mar 20, 2012 9:37 pm    Naslov sporočila:  LPC2148 iap Odgovori s citatom

Zdravo

Uporabljam LPC2148 in Keilov uVision4. V flash bi želel shranjevati niz tipa short z 256 elementi, tako da bi bil ta niz ob naslednjem zagonu procesorja dosegljiv.

Našel sem tiste njihove funkcije v primeru za iap, vendar ne morem ugotoviti kako se najde naslov do koder segajo podatki-koda v flashu. Tako tako ne vem v kateri sektor naj začnem pisati, da ne bom popisal kode.

Prosim, če kdo lahko opiše postopek shranjevanja in branja podatkov iz flasha na lpc 2148. V kodi vidim da ustavljajo pll, a kdo lahko pojasni zakaj to?

Hvala.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Umnik
Član
Član



Pridružen-a: Čet 16 Sep 2004 17:52
Prispevkov: 958
Aktiv.: 4.03
Kraj: Novo mesto

PrispevekObjavljeno: Tor Mar 20, 2012 10:29 pm    Naslov sporočila:  Re: LPC2148 iap Odgovori s citatom

Wrecker je napisal/a:
Uporabljam LPC2148 in Keilov uVision4. V flash bi želel shranjevati niz tipa short z 256 elementi, tako da bi bil ta niz ob naslednjem zagonu procesorja dosegljiv.

Našel sem tiste njihove funkcije v primeru za iap, vendar ne morem ugotoviti kako se najde naslov do koder segajo podatki-koda v flashu. Tako tako ne vem v kateri sektor naj začnem pisati, da ne bom popisal kode.

Prosim, če kdo lahko opiše postopek shranjevanja in branja podatkov iz flasha na lpc 2148. V kodi vidim da ustavljajo pll, a kdo lahko pojasni zakaj to?

Funkcije imaš, torej je na vrsti njihova uporaba. Verjetno si jih našel v mapi MCB2100\IAP, kjer se nahaja tudi datoteka Abstract.txt, v kateri piše, da se PLL ustavlja zaradi napake čipa. Tebi torej PLLja ni potrebno ustavljati, le pravilno frekvenco CPUja boš moral podati.

Priporočam učenje branja user manuala za izbrani mikrokontroler.
Sam imam user manual Rev. 3, 4 Oktober 2010. V njem je poglavje 21: LPC214x Flash Memory. To poglavje ima tabelo 288, v podpoglavju 21.5 Sector numbers, kjer izveš velikosti in številke flash sektorjev in njihove memorijske lokacije.
Kadar te zanimajo podobne reči, po user manualu išči po ključnih besedicah "Memory map".

V podpoglavju 21.9 IAP Commands so v tabeli 310 detaljno opisane vse komande, ki se uporabljajo za programiranje flasha, med njimi najdeš tudi komando Blank check sector, s katero lahko preveriš, če se v sektorju nahaja programska koda ali ne.

Kako se IAP komande uporabljajo, pa je nazorno prikazano v datoteki IAP.c iz mape MCB2100\IAP
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Wrecker
Član
Član



Pridružen-a: Pet 11 Feb 2011 22:43
Prispevkov: 254
Aktiv.: 1.45

PrispevekObjavljeno: Pon Mar 26, 2012 10:31 pm    Naslov sporočila:   Odgovori s citatom

Hvala za odgovor

User manual sem pričel študirati, naslove v sektorjih sem prilagodil za LPC2148 in končno uspešno pišem in berem iz flasha. Imam pa še nekaj začetniških vprašanj, ker imam tole bolj za hobi. Žal imam tudi bolj zahtevno uporabo struktur in kazalcev v C-ju težave:

1.Funkcija za zapis v flash sprejme podatek tipa unsigned char. A če zelim zapisati podatek tipa int moram napisati funkcijo, ki int razdeli v 4 podatke tipa char in nato vsak 8 bitni podatek posebej zapisati v flash? Pri branju pa jih spet združiti v int? A je kakšna bolj inteligentna ideja?

2. Navajen sem komunicirati z Lpc2148 preko registrov. Tu pa gre preko nekih komand, ni mi jasno po kateri poti poteka tu komunikacija s procesorjem (in kaj je to iap entry point). Zelo bom hvaležen, če mi nekdo lahko to pojasni.

Sory, upam da se tem vprašanjem ne boste smejali in hvala za odgovor!?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
vester
Neznanec
Neznanec



Pridružen-a: Pet 27 Jul 2007 23:48
Prispevkov: 7
Aktiv.: 0.03
Kraj: Šoštanj

PrispevekObjavljeno: Tor Mar 27, 2012 11:43 am    Naslov sporočila:   Odgovori s citatom

Živijo

Kolikor jaz vem se v flash piše samo 8 bitov na enkrat in zato je potrebno int spremenit v char. Jaz to naredim s shift funkcijo in potem to zapišem v buffer.
In potem pri branju naredim enako samo da tam še uporabim shift plus "ali" funkcijo.
Upam, da sem ti kaj pomagal Smile , ker tudi sam nisem nek profi.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
bostjang
Član
Član



Pridružen-a: Tor 03 Jan 2006 15:29
Prispevkov: 3473
Aktiv.: 14.63
Kraj: Postojna

PrispevekObjavljeno: Sre Mar 28, 2012 9:30 am    Naslov sporočila:   Odgovori s citatom

Prostor, kamor boš pisal, rezerviraj v prevajalniku. V Keil RV ima lastnost at, s katero lahko daš spremenljivko na določeno mesto. Prevajalnik bo ostalo kodo postavil okrog te. Da pa ostane koda nespremenjena, priporočam konec FLASHa. Npr.:
Koda:
const int RS485_ADDR_FS[8192] __attribute__((at(0x00038000)))={53};

Za spremenljivko rezerviraj celotno stran FLASHa, ker lahko edino tako brišeš FLASH. Zgoraj sem potreboval samo 1 byte.

Funkciji za pisanje po FLASHu pa podaš kazalec od kje boš jemal podatke, ne pa spremenljivk. Zapisane podatke na začetku programa najlažje bereš preko konstante, ki si jo definiral na začetku.
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