I try to write my first QNX neutrino device driver. I use the free
version of neutrino.
I know the base address of my device is 0xd000. This address is given
to me by the PCI configuration space of the device.
Now I want to write to a register of the device.
#define MCSR_RESET 0x0F000000
BaseAddr = 0xd000;
MCSR = 0x3c;
out32((BaseAddr + MCSR), MCSR_RESET);
I got a “segmentation fault” on my out32 statement. This is odd
was able to write to this address with Linux and Windows 2000. From
my reading and understanding of the Rob Krten book, the above program
should allow me to write to a physical address. Could soneone guide
me to the right direction? Is there a sample on read/write to IO
I have one more question.
QNX drivers run as processes in User Space and each process has its
own virtual memory adress. When a process needs to write to a
physical adress, how the Process Manager knows the address that the
process is written to
is a physical adress?
Thanks in advance