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.

[参考译文] Starterware:Raster LCD 出现问题

Guru**** 2595220 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/583601/starterware-problems-with-raster-lcd

工具/软件:Starterware

大家好、

我正在尝试让 Beagle Bord 黑色上的光栅显示正常工作(显示为 4DCAPE-43)。 我在 grlib_demo 中设置了所有内容,并从 lcd.c 中包含了 LCDPinMuxSetup()和 LCDModuleClkConfig()。 现在、在 clk config 和引脚复用之后、调试器仅显示 LCD 寄存器的前4个寄存器可读。 当我开始使用 RasterClocksEnable (LCDC_Instance)访问寄存器时,其他所有内容都无法读取;我会收到一个侦听(程序计数器跳转到0x80015010 /结束在_exit()中)。

我想我配置了所有时钟、就像在 grlib_demo 中配置的那样、我还缺少其他一些在使用 AM335x 的 LCD 控制器时至关重要的东西吗?


此致、提前感谢您、

Christian

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、我获得了一些有关我的问题的其他信息。 它似乎与调试器的寄存器访问有关。
    我更改了 LCD.xml、以便调试器不读取 LCD 寄存器。
    现在来看看奇怪的部分:当我说调试时、一旦我尝试写入 LCD-寄存器、我的程序就会立即崩溃。 但是、当我首次单击"Restart"时、我可以写入 LCD-寄存器、而不会出现任何问题。
    这可能是一个很好的变通办法,但我也想使用 TI-RTOS,一旦我创建任务或执行 BIOS_start(),这就会崩溃; (但仅当我在启动程序之前按下"Restart"时-当启动时进行调试正常、TI RTOS 有效、但 LCD 配置当然不起作用)

    是否有人知道重新启动按钮到底会做什么?为什么这对我的程序执行有如此大的影响?

    此致、
    Christian
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    没有人知道我的控制器在处理 LCD_Controller 寄存器时为什么总是崩溃?
    在调试窗口中按下"Restart"后、所有操作都可以正常显示。 此外、在按下"Restart"(C.A. 500MIPS)之前、控制器的性能比按下"Restart"(C.A. 10MIPS)之后要好得多。 我检查了与时钟生成相关的每个寄存器、但 PLL 毫微控制器已正确设置为500MHz 内核频率。 我还降低了.gel 文件中的所有时钟、但在"重新启动"之前访问 LCD 寄存器时、仍然收到错误。
    在调试会话开始之前、是否有调试器读取所有寄存器的内容、甚至是我从 LCD.xml 中删除的寄存器? (如果调试器将这些寄存器红色、即使在重新启动后、我也始终会得到该错误)

    非常感谢、此致、

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

    您可能希望查看此主题 e2e.ti.com/.../1390701 、它听起来与您遇到的问题非常相似。 有些寄存器不应被触摸、因此您看到所观察到的问题的原因。 希望这对您有所帮助。

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

    我解决了这个问题。
    它与 MMU 设置有关。 在典型示例中,LCD 寄存器不是.cfg 文件中的存储器映射。

    我将标准条目更改为

    VAR 外设 Attrs ={
    键入:MMU.FirstLevelDesc_section,//段描述符
    可缓冲:false, //可缓冲
    可高速缓冲:false, //可缓存
    可共享:false, //可共享
    NoExecute:true, //不可执行
    };

    //为地址范围中的每个条目设置描述符
    对于(var i=0x44000000;i < 0x8000000000;i = i + 0x00100000){
    //每个“描述符”条目跨越1MB 地址范围
    Mmu.setFirstLevelDescMeta(i、i、peripheralAttrs);

    现在、LCD 寄存器也映射为外设。

    重新启动的原因是、重新启动会关闭 MMU、因此没有任何 LCD 寄存器被缓冲(现在性能受到严重影响、因为其他所有寄存器也没有被缓冲)。

    此外、调试器一定不能猜到 LCD 寄存器。 我是通过从 LCD.xml 中删除他们的条目来实现这一点的