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:显示缓冲器旋转90度

Guru**** 2585725 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/607437/am5728-display-buffer-rotated-by-90-degrees

器件型号:AM5728

我们有一个以纵向为导向的1024×768显示屏,因此内存中的位图为768×1024。 我假设我们需要提供正常的1024*768 HDMI 信号,但像素必须由平铺机以某种方式获取,这将导致图像旋转。 目前、我们使用 xRGB24格式和 GFX 流水线。

VPS 驱动程序没有任何涉及旋转的示例、或者至少我没有找到任何示例。

我已经在处理器的 TRM (spruhz6i.pdf)中阅读了11.2.4.7 DISPC 旋转和镜像、但我无法理解要做什么。

似乎我必须在 DISPC_GFX_attributes 中设置字段 BURSTTYPE 和 Rotation、但这还不够。

第2691页。
PBA 的旋转由以下因素决定:
•PBA90 = PBA |(模式<< 27)|(方向<< 29)|(1<<32)
他们告诉我正常定义我的缓冲区地址、然后通过模式和方向覆盖最高5位。 它不会破坏地址吗? 只要最高位是位31、什么(1 << 32)意味着?

第2692页。
如果每像素32位:
–ROW90 = 16384:存储器中视频图片的宽度(以字节为单位)+ 1

似乎我必须将 ROW90设置为4*768+1。 那么什么是16384?

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    软件团队已收到通知。 他们将在这里作出回应。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您也可以参考此主题 :e2e.ti.com/.../602770
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    请参阅 e2e.ti.com/.../602770
    这可能会有所帮助
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    我们正在编写定制操作系统、并使用裸机。 我们需要能够执行缓冲器旋转、这是 VPS 驱动程序不支持的。

    我在 rotation_patches.zip 中没有找到任何较低级别的操作、它似乎主要是接口部分。

    听起来好像有人在 Linux 上实施了显示轮换;如果我能了解一下在较低层面上是如何实现的、那就更好了。

    或者、您能否在 spruhz6i.pdf 中阐明文档? 这似乎令人困惑(如果不是错误的话)。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这没有帮助,我仍然希望得到我的问题的答案。