Hi,
This is not really a real-time question, but if someone could help I'd
appreciate it. Eventually a real-time task will update my video monitor at
30 Hz.
I have kernel 2.0.36 with RTLv1.1. I am currently trying to get a
Imagenation ISA video frame grabber (model CX100-30) with overlay memory up
and running. Alessandro Rubini has created a very limited device driver for
it which does not support video overlay memory. My task is quite simple, I
simply need to update some text fields of the video overlay memory. So, I
figured that I would do it in user space first to create all the static text
and see how I need to update the dynamic text in non-real time, then worry
about real-time and a device driver.
The card has I/O register that I can control. The overlay memory (or ram
memory - they share the same addresses and you select which you want to
write to via an i/o register) take up 64K (0xFFFF) of address space from
0x80000 to 0xF0000. I have set the card up to be at address 0xA0000 because
when I used Rubini's device driver there was a routine to check to see where
there was free space and 0xA0000 and 0xB0000 came up as free. (I did notice
in the companies DOS routines that this was also shared with the vga card
and they turn the vga card off to write to the frame grabber. But, I have
e-mailed Rubini and he never mentioned that I needed to do anything like
that and there was nothing that I could see in his device driver source)
In order to get to that address I'm using the mmap routine.
My mmap is as follows:
unsigned char * address;
int fd;
address = (unsigned char *) mmap( (void *)0xA0000, 0xFFFF, PROT_READ |
PROT_WRITE, MAP_FILE | MAP_PRIVATE | MAP_FIXED, fd, 0 );
This returns successfully and address = 0xA0000.
But, if I assign values to this address space 0xA0000 - 0xAFFFF it is as if
I am not accessing the cards memory at all. I simply use *address =
(unsigned char)0xff which should make the overlay pixel a white dot.
So, am I using mmap wrong ? Is there something else I need to do to utilize
this card via Linux ? Am I doing something stupid and someone out there can
set me straight ? Is there a better way to do this ? HELP !!!!!
Thanks in advance ---
Janet Estabridis
Electrical Engineer
NAWC Code 473E00D
Building 31440 Room 1017
China Lake, CA 93555
[EMAIL PROTECTED]
(760) 939-2896 FAX (760) 939 -3075
--- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
----
For more information on Real-Time Linux see:
http://www.rtlinux.org/~rtlinux/