This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

AM5728: Setting an individual graphics pixel

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

  • Hi,

    You may create a 24-bit RGB video to replace display_gbr888_prog_packed_1920_1080.tigf. The video is allocated using DispApp_LoadBuf() function.

    Regards, Eric

  • Eric,

    There is nothing wrong with leaving a question unanswered. Perhaps someone who knows the answer will see the question and respond.

    I'm trying to display an image in u-boot. I want to avoid using the example displayDssBareMetal code and call the VSP / FDIV2 routines directly. However, there's basically no documentation for those routines. (Yes, I've read the pdk_am57xx_1_0_15/packages/ti/drv/vps/docs/doxygen/html/index.html, but they are brief overviews at best. There's not enough details to implement code) Anyone who reads the displayDssBareMetal code can see it's relatively easy to add their own video frames in a file. However, the displayDssBareMetal accesses an entire image. That is why I asked how to set individual pixels.

    Scott