Re: PCI Programming Tutorial

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



Thanks, Tim. I don't know how I could have left those details out. I'm
assuming an Intel Architecture 32-bit or 64-bit (less likely), and a
PCI controller on the SBC. I'll also assume a controller or bridge
(don't know exactly, because I'm still unfamiliar with the details) on
the peripheral boards, if that helps.

I am considering Windows XP Embedded or Linux for the OS. Greenhills
Integrity or VxWorks are also possible, but less likely.

If I could have a better understanding from the XP OS point of view,
that would probably be a good start to my understanding. I'm not a
driver developer, so I'm out of my depth here (I'm just trying to steer
the system design and make sure everyone on the team is considering all
choices carefully), but I thought I needed a driver in XP to access
real memory, to maintain protected address spaces. So even transparent
memory mapping probably needs a driver to permit that access. I'm not
sure how that looks in software (assuming code is written in C, C++, or
C# (if I'm using XP)).

Also, I recently read that PCI only supports 64KB of I/O space, which
is direct memory mapped. There is supposed to be 4GB of address space
that is accessible, but it's not memory mapped I/O. I'll have to
understand how that works, too.

For the type of peripheral boards I would have, much of what I need to
do can probably be accompoished with I/O space. I'll be reading/writing
configuration registers and moving blocks of memory. Maybe reflashing
ROMs on those boards.

So I still have some homework to do. I found something that looks
promising at http://www.fpga4fun.com/PCI.html and I still have to go
through it.

.



Relevant Pages