主题中讨论的其他器件:AM3352
我们将在第2轮使用 AM3352制作定制板。 我们还没有它们、但在平均时间内、我们将 Beagle Bone Black 开发板用作开发板、以解决我们无法用最后一个硬件解决的一些问题。 一些详细信息:
是的、我正在使用 Beagle Bone Black GEL 文件
这是一个 RTOS 项目、而不是 Linux、我们不是在运行 Linux。
但是、该代码都在 main 中运行、因此我们尚未命中 RTOS、因此实际上不应与 RTOS 进行任何交互
我们使用的初始化代码主要是自定义的。
我将 JTAG 接头焊接到 BBB 板上、我可以在 CCS v6.2中进行连接和仿真、一切正常
是的、我知道为了查看寄存器、您必须使所有时钟启动并运行。
是的、我已经看到了时钟树工具、我正在使用它
问题。 我在其中一个 SDK 示例中找到了启用时钟的代码、因此我的代码就是基于该代码。 代码如下:
enableModule (CM_PER_LCDC_CLKCTRL、
CM_PER_LCDC_CLKSTCTRL、
CM_PER_LCDC_CLKSTCTRL_CLKACTIVITY_LCDC_L3_OCP_GCLK);
其中 enableModule 定义为:
void enableModule (volatile U32 * clkCtrlReg、volatile U32 * clkStCtrlReg、U32 clkActMask)
{
/*启用模块*/
*clkCtrlReg = PRCM_MODULEMODE_ENABLE;
/*检查模块启用状态*/
while (PRCM_MODULEMODE_ENABLE!=(* clkCtrlReg & PRCM_MODULEMODE_MASK));
/*检查时钟活动-已取消*/
while (clkActMask!=(* clkStCtrlReg & clkActMask));
/*检查空闲状态值-应该处于功能状态*/
while (((PRCM_MODULE_IDLEST_FUNC << PRCM_IDLE_ST_SHIFT)!=(* clkCtrlReg & PRCM_IDLE_ST_MASK));
}
在我运行此操作后、我无法控制 LCDC 寄存器。 它们都显示为???????? 和"Registers"窗口中的"Error: Unable to Read"
当我开始计时时、我看到 CLKACTIVITY_LCDC_L4_OCP_GCLK 处于非活动状态、但该模块被视为已启用、另一个时钟被视为活动。 当我尝试找到哪个时钟时,我会遇到一个障碍,因为技术手册(spruh731.pdf)中没有任何所谓的。 当我转到 spruh731.pdf 的 LCDC 部分时、我看到有3个时钟需要处理、OCP 时钟是 L3、因此这意味着功能时钟是 L4时钟、即使未激活的时钟在寄存器窗口中称为 OCP。 由于没有任何意义、我尝试使用时钟树工具。 当我转到时钟树工具并尝试确定在我启用模块后禁用哪个时钟时、我发现它是像素时钟。 当我尝试启用像素时钟时、我在状态在 CM_DIV_M5_DPLL_CORE 读取的栅极上捕获、保持"门控"的栅极为 ST_HSDIVIDER_CLKOUT2_GATE _CTRL。 栅极设置为自动。 我认为、自动意味着、如果启用了使用该时钟源的功能、它将自动启用、但我似乎无法为解锁该时钟执行任何操作。 当然、我认为像素时钟可能不会阻止我访问寄存器、但我可能会错。
因此、我有点迷路了。 我不知道启用 LCD 寄存器需要什么寄存器和什么时钟设置。 我不能真正责怪硬件、因为 BBB 板已经知道可以正常工作、所以很明显、我没有启用或多路复用或其他功能。
我查看了 LCD_APP_Raster 项目、但我实际上看不到我需要根据该项目执行的不同操作
