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.

[参考译文] TIDEP0032:TIDEP0032

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

https://e2e.ti.com/support/tools/simulation-hardware-system-design-tools-group/sim-hw-system-design/f/simulation-hardware-system-design-tools-forum/1071695/tidep0032-tidep0032

部件号:TIDEP0032
“线程”中讨论的其它部件:TMDXICE3359

您好,

我正在调试模式下使用评估板“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”示例? 只是为了了解如何修改以创建我自己的引导加载程序...

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

    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 问题。

    此致,

     托马斯

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

    好的,非常感谢。 我已经提交了一个有关 e2e 的新问题

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

    您好,Andrea,

    我还从原演示者那里挖掘了一些旧的 bootloader 片段。 请注意,这是基于2015年以后的较旧的引导加载程序版本,因此您将在当天的引导加载程序中找不到相同的部分。 但是,它将为您提供一些有关我们添加到引导加载程序的机制的指导,以根据内存位置0x44E00F00的内容加载不同的映像。 我们添加的文本代码以绿色插入,但被调用的函数很可能在当前引导加载程序中不兼容1:1,您需要将其移植到当前环境中。

    我们在 SD 卡上放置了所有多协议软件映像,引导加载程序确实加载了相应的文件名。 “APP”图像是 TIDEP0032的“检测应用程序”。

    希望这对我们有更多帮助,

     托马斯

    这来自文件: bl_hsmmcsd.c

    枚举 app_selector

    Selector 应用程序= 0,
    EtherCAT =1,
    Profinet = 2,
    EtherNetIP =3,
    Powerlink = 4,
    SERCOS3 = 5
    };

    /**
    *\简介此功能通过读取将应用程序映像复制到 DDR
    *标题信息。\n
    *
    *\param -无。\n
    *
    *\返回 E_PASS -成功时,E_FAIL 失败时。\n
    *
    *
    内部 HSMMCSDImageCopy (void)

    FRESULT 结果;
    无符号短 usBytesRead =0;
    无符号字符*destAddr =(无符号字符*)DDR_START_ADDR;
    未签名字符 header_read =0;
    无符号字符 buer_indx =0;
    TI_HEADER temp_HEADER;
    字符*fname ="/app";

    /*开始:添加用于多协议演示。 基于中的值
    * RTC Scratch0,MMCSD 对应的二进制文件将是
    *已执行
    * Scratch0值- enum app_selector
    *
    无符号 int app_SEL = RTCSatchPadGet (SOC_RTC_0_regs,0);

    //if (app_SEL = selecter_app)
    // fname ="/sel_app";
    IF (app_SEL = EtherCAT)
    fname ="/ecat 应用程序";
    否则 IF (app_SEL = PROFINET)
    fname ="/pn_app";
    否则,如果(app_SEL == EtherNetIP)
    fname ="/eip_app";
    否则,如果(app_SEL == POWERLINK)
    fname ="/pl_app";
    否则,如果(app_SEL = SERCOS3)
    fname ="/s3_app";

    /*将 SCRATCH0值重置为默认值(selecter_app)*/
    RTCWriteProtectDisable (SOC_RTC_0_regs);
    RTCScratchPadSet (SOC_RTC_0_regs,0,0);

    /*
    **打开文件进行阅读。
    *
    fresult = f_open (&g_sFileObject,fname,fa_read);

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

    大家好,托马斯,

    非常感谢您的回答。

    我的问题是,在 TMDXICE3359评估板上我没有 SD 卡,所以我的问题如下:我想用这种评估做些什么是不是很好的? [启动引导加载程序并启动在 SOC_RTC_0_regs 寄存器中写入的 TIDEP0032应用程序或相对堆栈应用程序]

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

    您好,Andrea,

    我不确定我是否完全了解您的评估环境以及您希望准确评估的内容。

    您计划如何启动评估? 如果这只是通过 JTAG 进行,那么我认为您只能单独验证每个应用程序(又称“检测应用程序”,工业协议应用程序),以检查它们是否正常工作。

    此致,

     托马斯