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.
工具与软件:
您好!
我无法从 mcu_plus_sdk_am273x_09_02_00_52启动 enet_cpsw_udpdclient 示例。
它被编译但甚至达不到"appMain (NULL);"。
是否 有人已经遇到了这个 问题?
尊敬的 Sergii:
我能够 从 mcu_plus_sdk_am273x_09_02_00_52运行 enet_cpsw_udpdclient 。 下面是来自 UART 输出的屏幕截图。 我将使用 QSPI 引导模式在 AM273x EVM 上运行示例:
您的引导模式是什么? 如何初始化 AM273x EVM?
您可能需要检查以下 URL 以进行 AM273x 初始化: AM273x MCU+ SDK:刷写 Hello World 示例(TI.com)
此致、
Ming
您好、Ming。
非常感谢您的答复。
我先尝试把它闪存起来。
您是否尝试过在调试模式下运行该示例? 我需要在我的工程中使用此功能、但之后很快会出现 Hwip_data_abort_handler_c。
尊敬的 Sergii:
我假设您是要在程序中设置断点。 这取决于您设置断点的位置。 在大多数情况下、它应该可以正常工作、但 ISR 等某些地方在中断点内部输入断点时可能会导致问题。
请详细说明在调试模式下运行该示例的含义。
此致、
Ming
您好、Ming。
我在 ISR 中不使用断点。 我之前讲过、它甚至没有到达 main.c 文件中的 appMain (NULL)函数调用。
一般来说、我会在数据传输方面遇到问题。 我的实现基于此示例、但在调试模式下数据报会丢失。
我已经通过您建议的 Flash 发布版本启动了它、它确实运行良好。 但我需要使用调试模式来完成项目。
你有什么想法吗?
非常感谢您的帮助。
尊敬的 Sergii:
好的、您的意思是使用调试构建进行测试。 是的、我的测试使用的是调试构建。 工作正常。
我猜是您初始化 AM273x EVM 的方式导致了这个问题。 请将 SBL_NULL 刷写到 QSPI 闪存中、然后将 EVM 设置为"QSPI 引导"模式。 这样、SBL_NULL 会将所有内核从复位状态释放出来、并将所有内核置于"Wait for Interrupt mode (WFI)"中。 然后、您可以启动 CCS 并连接至目标(任何内核)、加载并运行您的应用程序。
完成调试后、可以将 SBL_QSPI 与已完成的应用一起刷写到 QSPI 闪存中。
请使用 C:\ti\mcu_plus_sdk_am273x_09_02_00_52\tools\boot\sbl_prebuild\am273x-evm\default_sbl_null.cfg 、而不是 C:\ti\mcu_plus_sdk_am273x_09_02_00_52\tools\boot\sbl_prebuild\am273x-evm\default_sbl_qspi.cfg 将 SBL_NULL 刷写到 QSPI 闪存中。
此致、
Ming
您好、Ming。
谢谢你。
我想,我不能接受,我不能接受。"
1.我将 EVM 切换为 UART 引导模式
2.用 default_sbl_qspi.cfg 刷写
3.然后切换到"无引导"模式(因为我在 QSPI 模式下无法连接 R5_0)
但我得到了相同的结果-它在版本编译中工作、但在调试编译中很快会崩溃。
尊敬的 Sergii:
1.将 EVM 切换为 UART 引导模式
2.用 default_sbl_null.cfg 刷写
3.然后切换到"QSPI boot"模式
4.连接 r5f0_0、加载并运行应用程序的调试构建。
此致、
Ming
您好、Ming。
当我尝试在 EVM 的 QSPI 模式下连接内核时出现此错误。
谢谢你。
尊敬的 Sergii:
当您从 QSPI 闪存引导时、可以连接 UART 吗? 您应该在 UART 上看到相同内容:
此致、
Ming
您好、Ming。
是的、我做到了。
此致。
尊敬的 Sergii:
您需要更改目标配置文件以从 CS_DAP_0中删除 GEL 文件、因为 SOC 初始化已通过 SBL_NULL 完成:
此致、
Ming
您好、Ming。
是的、非常感谢、我现在可以启动它。
但是、您能解释一下为什么通过 UART_uniflash 应用程序刷写闪存可以正常工作、但如果我尝试直接从 CSS (NOBOOT 模式)启动它、那么为什么不工作?
我的意思是:
我可以通过 CSS 启动我的项目(NOBOOT 模式),但它不能正常工作。 它会丢失数据报。
另一方面、我无法在 QSPI 引导模式下启动项目-我收到一个错误:
因此、我无法比较它们。
此致、
Sergii
尊敬的 Sergii:
它与初始化 SOC 的方式以及各个内核(R5F 或 C66)的当前状态密切相关。
1.使用无引导模式时、SOC 由 GEL 文件初始化。 内核可能未处于复位产生或已准备好连接(WFI)的状态
2.当您使用 QSPI 引导模式并且 SBL_NULL 位于闪存地址0x0时、ROM 引导加载程序将加载 SBL_NULL。 SBL_NULL 会使所有内核脱离复位状态、并将所有内核置于 WFI 下、因此目标配置可以轻松连接到任何内核。
3. 使用 QSPI 引导模式时、SBL_QSPI 位于闪存地址0x0、应用程序代码(如 Hello_World)位于闪存0x80000、ROM 引导加载程序将加载 SBL_QSPI。 SBL_QSPI 会使所有内核脱离复位状态、并在 R5F0_0内核上加载/运行应用程序、具体取决于应用程序、目标配置文件可能无法连接到 R5F0_0内核。
开发和调试应用程序的理想方法是在闪存和 QSPI 引导模式下使用 SBL_NULL、然后使用目标配置文件连接到目标内核、在调试下加载并运行该程序。 应用程序代码准备好释放后、将 SBL_QSPI 和应用程序代码刷写到闪存中(分别为0x0和0x80000)、然后使用 QSPI 引导模式。
此致、
Ming
您好、Ming
感谢您的详细回答。
我可以按照您建议的方式调试我的项目、但在刷写版本后、我仍然收到错误消息"正在启动 QSPI 引导加载程序...一些测试已归档!!" (正如我之前向您展示的)。
在刷写之前、我是否应该对项目执行一些额外的步骤以避免这种情况?
此致、
Sergii
尊敬的 Sergii:
您可以在 C:\ti\mcu_plus_sdk_am273x_09_02_00_52\examples\drivers\boot\sbl_qspi\am273x-evm\r5fss0-0_nortos\main.c 的 main ()中添加 DebugP_log ()、以便知道错误发生的位置。 如果没有这些详细信息、就很难知道 SBL_QSPI 在哪里出了问题。
此致、
Ming
您好、Ming
您好、我在 QSPI 模式项目编译方面有一些问题。 我无法编译 SBL_QSPI 示例。 存在一些编译错误。
我想我必须解决这个问题才能继续解决 UDP 协议问题。
我理解了由"makefile_css_bootimage_gen"构建的引导映像、因此它应该是自动生成的。 我的项目中根本没有该项目。 我有什么办法去使它发生生殖器化呢?
udpclient 示例工程和 SBL_QSPI 工程中此文件的内容也存在很大不同。 还可以吗?
谢谢你。
此致、
Sergii
尊敬的 Sergii:
您是对的。 引导映像由 makefile_css_bootimage_gen (在编译后步骤中调用:
每个 CCS 工程的 makefile_css_bootimage_gen 会存在一些差异、例如工程名称和启动映像名称、但它的主要部分是相同的。
每个 CCS 工程的 makefile_css_bootimage_gen 与 example.projectspec 位于同一文件夹中。 例如、sbl_qspi 位于 C:\ti\mcu_plus_sdk_am273x_09_02_00_52\examples\drivers\boot\sbl_qspi\am273x-evm\r5fss0-0_nortos\ti-arm-clang 中
此致、
Ming