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 

8051 XDATA prepis v PIC arhitekturo

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



Pridružen-a: Pet 04 Nov 2005 9:00
Prispevkov: 17
Aktiv.: 0.07

PrispevekObjavljeno: Pon Feb 27, 2006 5:08 pm    Naslov sporočila:  8051 XDATA prepis v PIC arhitekturo Odgovori s citatom

Delam si en mali PIC Web server / Client in trenutno ravno predelujem kodo, ki je namenjena 8051 mikrokontrolerjem (C jezik) v C kodo, ki bi jo razumel PIC, uporabljam C18. Sedaj me pa zanima kako bi lahko prevedel v "PIC C18" jezik npr. tako kodo: char xdata * neka_spremenljivka?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Pon Feb 27, 2006 5:17 pm    Naslov sporočila:   Odgovori s citatom

8051 ima locen naslovni prostor za program (code) in za podatke (XDATA) ... pa se enega za notranji pomnilnik in registre Rolling Eyes in do razlicnih prostorov dotopa na razlicne nacine (z razlicnimi ukazi). Tisti XDATA tam zagotovo ne pomeni nic drugega, kot da je spremenljivka pac locirana v XDATA naslovnem prostoru, namesto v notranjem RAMu/registrih, kjer bi sicer bilo bolj logicno, da bi se nahajala (gre sicer za kazalec, a morda kaze na veliko strukturo, ki ne bi sla cela v notanji RAM).

Izpusti torej XDATA, pa bos imel cisto standardno C-jevsko deklaracijo.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
ql000
Član
Član



Pridružen-a: Pet 04 Nov 2005 9:00
Prispevkov: 17
Aktiv.: 0.07

PrispevekObjavljeno: Pon Feb 27, 2006 11:52 pm    Naslov sporočila:   Odgovori s citatom

Ja sej tako sem na koncu tudi naredil. Kako bi pa v PIC-u izvedel ta zapis oz. postavil pointer na neko strukturo, ki ne gre v RAM? Jaz imam idejo, da bi pisal v FLASH.

P.S.
Kako veš kdaj je koda tako velika, da ne gre več v PIC-a? CCS ima indikator toliko RAM-a je zafilanega pa toliko ROM-a. Kako bi pa v Mplabu C18 to preveril?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Sokrat
Član
Član



Pridružen-a: Čet 25 Avg 2005 11:00
Prispevkov: 5584
Aktiv.: 23.57

PrispevekObjavljeno: Tor Feb 28, 2006 12:11 am    Naslov sporočila:   Odgovori s citatom

Tvoje vprasanje je nejasno - kazalec je kazalec in mu je vseeno ali kaze samo na en element dolocenega tipa ali na milijon elementov tega tipa, postavljenih skupaj (v strukturo) in s tega vidika nimas kaj izvesti.

Ce podatkov ne mores spraviti v mikrokontroler in/ali zunanji pomnilnik, potem si izbral napacen mikrokontroler ali pa slabo napisal program.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
Proteus
Član
Član



Pridružen-a: Sre 15 Jun 2005 10:03
Prispevkov: 1943
Aktiv.: 8.20

PrispevekObjavljeno: Tor Feb 28, 2006 9:49 am    Naslov sporočila:   Odgovori s citatom

Citiram:
Kako bi pa v PIC-u izvedel ta zapis oz. postavil pointer na neko strukturo, ki ne gre v RAM? Jaz imam idejo, da bi pisal v FLASH.

Če zapisuješ na medij, ki zahteva posebno obdelavo, potem je jasno, da si moraš za tak vpisa izdelati funkcije za vpisovanje in branje, ki poleg samega vpisa poskrbijo še za ustrezne dodatne obdelave (pa čeprav je to samo zakasnitev pri vpisu).

Vprašanje pa je, kaj se bo zgodilo s funkcionalnostjo SW-ja. Na ta način ga namreč bogato upočasnjuješ.


Druga stvar, ki ni vezana neposredno na tvoje vprašanje pa je "vpetje" periferne opreme na mikrokontroler. Pri 8031 to lahko narediš preko portov P0, P1 itd... ali preko naslovnega prostora (tako kot se to dela pri klasičnih CPU-jih) tako kot je priključen zunanji ram/rom. V tem primeru do zunanje periferije dostopaš na dokaj podoben način, kot do zunanjega ram-a.
To pišem predvsem zaradi tega, če boš naletel na kakšno "čudno" deklaracijo spremenljivke "XDATA", potem je možno da gre tudi za dostop do periferije.

Tukaj imaš še en link (ne vem, če ga poznaš), mogoče ti bo kaj pomagal:
http://www.geocities.com/engink_projects/uip/uip.htm
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
ql000
Član
Član



Pridružen-a: Pet 04 Nov 2005 9:00
Prispevkov: 17
Aktiv.: 0.07

PrispevekObjavljeno: Tor Feb 28, 2006 10:07 am    Naslov sporočila:   Odgovori s citatom

Aha! Pol mi je že jasno, kje je problem! Placa mi je zmanjkalo na PIC-u (uporabljam 18F452). Moti me to, ker MPlab C18, ko prevede kodo nikjer ne pokaže koliko je čip zaseden.


Citiram:
Druga stvar, ki ni vezana neposredno na tvoje vprašanje pa je "vpetje" periferne opreme na mikrokontroler. Pri 8031 to lahko narediš preko portov P0, P1 itd... ali preko naslovnega prostora (tako kot se to dela pri klasičnih CPU-jih) tako kot je priključen zunanji ram/rom. V tem primeru do zunanje periferije dostopaš na dokaj podoben način, kot do zunanjega ram-a.

A ima PIC kaj podobnega?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
ql000
Član
Član



Pridružen-a: Pet 04 Nov 2005 9:00
Prispevkov: 17
Aktiv.: 0.07

PrispevekObjavljeno: Tor Feb 28, 2006 10:08 am    Naslov sporočila:   Odgovori s citatom

Aha! Pol mi je že jasno, kje je problem! Placa mi je zmanjkalo na PIC-u (uporabljam 18F452). Moti me to, ker MPlab C18, ko prevede kodo nikjer ne pokaže koliko je čip zaseden.


Citiram:
Druga stvar, ki ni vezana neposredno na tvoje vprašanje pa je "vpetje" periferne opreme na mikrokontroler. Pri 8031 to lahko narediš preko portov P0, P1 itd... ali preko naslovnega prostora (tako kot se to dela pri klasičnih CPU-jih) tako kot je priključen zunanji ram/rom. V tem primeru do zunanje periferije dostopaš na dokaj podoben način, kot do zunanjega ram-a.



A ima PIC kaj podobnega?
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Proteus
Član
Član



Pridružen-a: Sre 15 Jun 2005 10:03
Prispevkov: 1943
Aktiv.: 8.20

PrispevekObjavljeno: Tor Feb 28, 2006 10:17 am    Naslov sporočila:   Odgovori s citatom

Citiram:
A ima PIC kaj podobnega?

Sam PIC-a žal ne poznam, zato ne vem kakšne so njegove zmožnosti razširitve kapacitete.
Za HW to običajno ni problem, saj lahko preko par TTL-cev ali namenskih čipov (svoj čas je bil to n.pr. 8255) razširiš število portov.

Kako pa je z RAM-om pa ne vem. Možno je (tako kot pri družini 8031), da nekateri take razširitve omogočajo, drugi pa ne.
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo
ql000
Član
Član



Pridružen-a: Pet 04 Nov 2005 9:00
Prispevkov: 17
Aktiv.: 0.07

PrispevekObjavljeno: Tor Feb 28, 2006 10:39 am    Naslov sporočila:   Odgovori s citatom

Sem našel v čem je finta. Rešitev za 8051 uporablja zraven SRAM (32k). Očitno bom moral ubrat kar to pot! Ali pa večji čip, za katerega pa rabim nov programator!
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 -> Microchip PIC Č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: 492 dni


Powered by phpBB © 2001, 2005 phpBB Group