“线程”中讨论的其它部件:TMDXICE3359,
您好,
我正在调试模式下使用评估板“TMDXICE3359”上的 TIDEP0032应用程序。
主应用程序识别到正确的协议后,执行指令“HWREG (0x44E00F00)= 0x2;”[在使用重新寻号“协议 ID”写入 RTC_SCRATCH0_REG 寄存器后]。
执行此操作时,调试会话将过期,应用程序将重新启动。 如何在重新启动时下载已识别的堆栈?
此致
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.
您好,
我正在调试模式下使用评估板“TMDXICE3359”上的 TIDEP0032应用程序。
主应用程序识别到正确的协议后,执行指令“HWREG (0x44E00F00)= 0x2;”[在使用重新寻号“协议 ID”写入 RTC_SCRATCH0_REG 寄存器后]。
执行此操作时,调试会话将过期,应用程序将重新启动。 如何在重新启动时下载已识别的堆栈?
此致
您好,Andrea,
感谢您提出问题。
请参阅设计指南 中的第4.3节-多协议工业以太网检测-功能序列:https://www.ti.com/lit/pdf/tidua28
您需要创建一个“引导加载程序”应用 程序,该应用程序读取寄存器0x44E00F00并解释其值。 基于此寄存器值,引导加载程序可以加载“协议特定应用程序”或“检测应用程序”。 在 Bootloader 跳到加载的应用程序之前,它需要清除寄存器 0x44E00F00中的值。
其他一些注意事项:
1.在 ARM 发出冷启动(重置)后,寄存器0x44E00F00将保留其内容。 因此,此寄存器用于将数据字节从“检测应用程序”交换到“引导加载程序”。 这意味着“检测应用程序”可以告诉引导加载程序检测到了哪种协议。 有关其他引导加载程序编程,请参见要点3。
预期 JTAG 调试会话会断开连接,因为发出冷启动(重置)正在重新启动 ARM。 如果需要调试任何内容,您可以在 JTAG 中使用 HW 断点,在特定的指令位置停止。 或者让系统运行,以便引导加载程序可以按编程方式工作。
3.修改后的引导加载程序不是 TIDEP0032的一部分。 您需要根据您的引导加载程序示例自行对此进行编程。 原则上,修改后的引导加载程序需要在寄存器 0x44E00F00中读取,确定其要加载的应用程序软件的值(IE 协议应用程序之一或“检测应用程序”),将应用程序加载到内存中,清除寄存器 0x44E00F00,然后跳到内存位置以执行应用程序。
如果您还有其他问题,请告诉我。
此致,
托马斯
bootloader 随处理器 SDK RTOS 一起提供。 通常,它是预编译的图像,我认为对于 AM335x,它在放入 SD 卡时称为 MLO。 您可以识别名称 MLO。
在 RTOS 文档中,引导加载程序称为辅助引导加载程序 :https://software-dl.ti.com/processor-sdk-rtos/esd/docs/06_03_00_106/AM335X/rtos/index_faq.html#secondary-bootloader
在我的设置中(我可能没有最新版本),SBL 引导加载程序位于: C:\ti\PDK_AM335x_1_0_17\packages \ti\startware\bootloader
这是您需要将自定义设置添加到的 C 源代码文件。 如果您需要有关如何构建 bootloader 的其他指导,请在处理器论坛中提交一个新的 e2e 问题。
此致,
托马斯