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.

[参考译文] OMAP-L137:从定制板上的 SPI 闪存引导

Guru**** 2576215 points
Other Parts Discussed in Thread: OMAP-L137

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/630513/omap-l137-booting-from-spi-flash-on-a-custom-board

器件型号:OMAP-L137

您好!

我正在为使用 OMAP-L137的定制电路板开发软件。 我们计划使用 SPI 闪存进行引导。 我们还有一个定制的分接调试板、我们可以直接连接到闪存的 SPI 总线、并且我可以使用通用的第三方 SPI 闪存编程器连接到芯片(W25Q32)并成功擦除/读取/写入芯片(W25Q32)。

此时我不想使用任何类型的操作系统。 我现在要做的就是让 DSP 运行代码以使 LED 闪烁、这在该器件上是非常困难的。 我的问题有两个:我不能通过 CCS 调试会话运行代码、也不能让代码从外部存储器简单引导运行。 我主要是在寻找有关后者的答案。 我将介绍我到目前为止所做的工作:

我已经验证了电源/复位排序、CCS 的 JTAG 自检(xds100v2)通过、并且我可以扫描 JTAG 链并从 OMAP 读取正确的器件 ID。  

CCS:

我可以通过 CCS 中的 JTAG 连接到器件的两个内核。 如前所述、此时我只关心 DSP。 当我连接到 DSP 时、它说它被暂停、这是可以预料的、因为最初没有要运行的代码。 我可以运行 wiki 上提供的 debug_gel 文件、并且可以读取存储器中的相关值(bootcfg、bootrom ID 等)、它们看起来都很好。 但是、当我尝试加载".out"文件时(通过执行 Run -> Load -> Load Program)、我收到数据验证错误:"C674x_0:File Loader:Verification Failed:Values at address 0x80010800 do not match Please verify target memory and memory map"。 0x80010800是存储器的.text 段的开头。 从读取其他论坛帖子来看、此错误似乎与 GEL 文件设置的存储器映射有关。 OMAP-L137的默认.cmd 文件似乎将所有内容放置在共享存储器中(即0x8000000000-0x8001FFFF)、并且给定的 GEL 文件似乎没有映射存储器的那个部分。 我已经尝试添加它、它没有什么不同。 此外、似乎没有太多有关 GEL 文件实际需要执行哪些操作来启动和运行芯片的信息(某种检查清单)。 应该将代码放入共享存储器中、还有其他地方可以放置它吗?

引导:

当然、由于 CCS 行为错误、我尝试创建一个映像来放入闪存、并在加电时启动芯片。 现在、我使用 CCS 编译了基本代码、以将一些输出引脚(LED)设置为高电平(即将方向位设置为0、写入 SET_DATA 寄存器、然后置于 while (1)循环中)。 我已经通过 AISgen 工具运行了它、并且已经在 AIS 中正确配置了 PLL、PSC 和 Pinmux (因此我不需要在我的代码中执行它)。 我将 AIS .bin 文件写入 SPI 闪存芯片(从地址0开始)、断开所有调试/探头板的连接、然后重启电源。 引脚不会与其各自的上拉/下拉值发生变化、因此代码似乎没有运行。 引导模式已正确锁存、引脚多路复用值符合我的预期、我可以在 SPI 总线上进行探测、并可以看到从闪存中读取的数据。 因此、AIS 部分似乎已经运行、但当它跳转到应用程序代码时、有些东西已经拧紧。 我是否将 AIS bin 文件写入闪存中的正确位置? "jump & close"命令似乎跳转到 _c_int00 -这是正确的吗? 是否有有关 DSP 引导加载程序的详细文档(准确描述它的工作原理-我已经阅读过"使用 OMAP-L1x7引导加载程序")?

我已经阅读了 OMAP 的每个 wiki 页面、并多次在 e2e 论坛中进行搜索、因此请勿使用 wiki/thread 链接进行响应、否则无任何响应。 一个多星期以来、我一直在用头打击这种行为、但没有去任何地方。 它看起来不像是硬件故障、因为我可以与芯片通信、所有诊断信息看起来都很好。

谢谢、

Dave