[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
 
[an error occurred while processing this directive] [an error occurred while processing this directive]
Skåne Sjælland Linux User Group - http://www.sslug.dk Home   Subscribe   Mail Archive   Forum   Calendar   Search
MhonArc Date: [Date Prev] [Date Index] [Date Next]   Thread: [Date Prev] [Thread Index] [Date Next]   MhonArc
 

Re: [CPROG] Mem. mapped I/O



Mads Andresen wrote:
> 
> Hej C-liste,
> 
> Jeg har et CAN-bus modul til ISA-bussen, som jeg gerne vil kunne
> "snakke" med fra et c-program (under linux - naturligvis).
> 
> Der står følgende i manualen:
> ---------------
> The PCM-3680 is assigned with memory address, which allows direct
> acces to the CAN controller. This is the simplest and fastest way of
> programming any board in the PC because the board is regarded as
> standard RAM.
> ---------------
> 
> Desuden står der:
> Memory addres from C800H to EF00H
> (Man kan vælge mem-område med nogle switches)
> 
> Længere inde i manualen står der:
> ---------------
> Memory base address
> The Memory base address for the PCM-3680, which requires 4KB of
> address space, is made up of the memory segment and its associated
> offset. The address for the memory segment is set through
> SW1.......[en hel masse om DIP switch].
> ---------------
> 
> Jeg har ikke meget erfaring i I/O-programering på en INTEL - PC (har
> kun prøvet på Motorola). Så er der nogle der har tips til hvordan jeg
> får taget hul på bylden!!!
> 
> Jeg mener at der er tale om "memory mapped I/O". Og jeg mener selv at
> jeg skal have fat i noget der minder om MMAP (OBS - jeg skal ikke
> skrive en device driver, jeg skal bare have fat i hardwaren.) - er jeg
> inde på noget af det rigtige??

Hvorfor vil du ikke skrive en driver? Det er det mest naturlige når du
har med et stykke hardware at gøre at adskille dit program i en hardware
driver kernemodul, og et applikationsprogram. Ikke at forglemme den
varme og bløde følelse man får af kerne programmering ;-)

Desværre er kortet ISA. At programmere disse er som at få lavet
rodbehandling og rygmarvsbiopsi på samme tid :( Ihvertfald sammenlignet
med PCI.

Jeg kunne ikke helt se det af din beskrivelse, men hvis hukommelses
området ligger imellem 640kb-1MB området, ligesom fx. VGA textbufferen,
så er det ikke svært. 

Du skal blot benytte readb/writeb funktionerne til at tilgå hukommelsen
direkte. Det skyldes at dette område altid er reserveret, og ikke bruges
til alm. hukommelse,.
Jeg mener ikke du kan tilgå dette hukommelse direkte fra et
applikationsprogram. På den anden side, så er der X servere til skumle
gamle ISA kort, som burde bruge dette. Men koden er nok ikke sådan lige
at finde rundt i...

Hvis addressen ligger i området 14-16MB, så er du på numser, medmindre
du har mindre end 14MB ram i maskinen, eller laver skumle kerne-hacks.
Da kortet er et CAN bus kort, lyder det til at være af nyere dato, så
det bruger nok ikke dette område.

"Linux Device Drivers" af Allesandro Rubini er en rigtig god bog, omend
den mest omhandler 2.0.x kerner, så er der forklaring til hvad der er
anderledes i 2.1.43+

Mvh Morten


 
Home   Subscribe   Mail Archive   Index   Calendar   Search

 
 
Questions about the web-pages to <www_admin>. Last modified 2005-08-10, 20:07 CEST [an error occurred while processing this directive]
This page is maintained by [an error occurred while processing this directive]MHonArc [an error occurred while processing this directive] # [an error occurred while processing this directive] *