I want to write a frame buffer driver for one or our projects running
uClinux/Nano-X on an embeded platform.
I have read information on the subject from various web sites but I still
have some basic architecture questions unanswered.
First here are the specs for the target platform: 32 bit Xilinx Microblaze
processor core running on a
Xilinx FPGA. This processor runs uClinux, Nano-X and our fltk based
application. Video output consists of a logic circuit we designed on the
same FPGA to drive a standard NTSC video monitor in monochrome mode. This
video logic circuit reads pixel data from a video RAM block shared with the
Microblaze processor. The video logic circuit is independent of the
Microblaze processor and generates all timing and data signals to drive the
Video specs we are using: 256x230 monochrome pixels, standard NTSC fixed
rates: 60 HZ vertical, 15.7 KHZ horizontal
I have the NTSC driving circuitry workingfine , outputting video data from
the video RAM to the monitor. The microblaze processor also has write
access to this video ram. But I am totally new to writing Linux drivers and
the concept of linux frame buffer. I have some basic questions:
1) Am I correct in assuming that an application like Nano-X obtains an
address for video ram from the fb driver and then proceeds to write pixel
data directly to it as needed by screen updates required by the end user
2) Is there any synchronization required/expected between the pixel write
operations to this RAM and the refresh rates of the video circuitry. In othe
words, doesn the fb driver care when video pixel data is actually transfered
from video ram to the monitor. If he doesn't, what part of the systems
syncronizes the application writes VS video data output to avoid flicker?
3) What functionality must the fb driver provide in this context. Does it
only provide an address for
video pixel ram and all graphic computations are the responsability of the X
4) Is there docomentation for a beginner writing a fb driver? Like step by
step for a simple fixed frequency fb driver. I looked at the vfb.c code but
it is not obvious to me what functionality I need to provide in there.
5) I assume I also need to become familiar with the basics of writing a
linux character based driver: structure, compilation, etc . Is there a good
reference for that?
Thanks in advance for any help
Tired of spam? Get advanced junk mail protection with MSN Premium