Part Number: AM5728
Hello,
I've gotten the vps dss example displayDssBareMetal running on an IDK EVM. That example displays video frames, but I need to display basic graphics. I don't see any graphics primitives in the VPS / DSS libraries. I need something similar to "set pixel".
Using the displayDssBareMetal example, I can display a video frame. I can then access memory using the frame buffer (DISPC_GFX_BA_x) but the results are inconsistent at best. The graphic format is set to 24 bit color in 32 bits (DISPC_GFX_ATTRIBUTES format xRGB24-8888) This should mean every pixel uses a "uint32". I do see an xRGB format for pixels, but writing memory to set pixels doesn't always work. I'm trying simple horizontal lines (pixels are adjacent in memory) but the pixels appear to be interlaced. I've also tried vertical lines (pixels are apart by 1920 uint32) but the pixels aren't displayed.
With a kernel running, I can access that frame buffer and it works as expected. Pixels and be changes reliably. It doesn't work with just displayDssBareMetal. I've even tried copying the values from (almost) all of the DISPC registers (0x58001000...0x58001870) from the kernel values to the displayDssBareMetal environment. It doesn't work any better.
I've reviewed the TRM many times and there is no complete graphics initialization sequence, just multiple fragments and hints. (I'm using the displayDssBareMetal example to derive the register initialization sequence)
Are there any other documentation or code examples available for graphics initialization or "get or set pixel"?
Thanks,
Scott