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.

[参考译文] TMS320F28388D:有时、在运行 EtherCAT 和以太网大约10分钟后、PC 会指向引导 ROM 区域

Guru**** 2583395 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1281566/tms320f28388d-sometimes-pc-pointed-to-boot-rom-region-after-running-ethercat-and-ethernet-about-10-minutes

器件型号:TMS320F28388D

电路板和项目:客户自制

他们已经实现了 EtherCAT 和以太网通信。 但有时在调试项目时、 PC 在运行大约10分钟后会指向引导 ROM 区域("0x162e"或"0x162c")。

这是映射文件:

MEMORY CONFIGURATION

         name            origin    length      used     unused   attr    fill
----------------------  --------  ---------  --------  --------  ----  --------
  CMBANK0_RESETISR      00200000   00000008  00000006  00000002  RWIX
  CMBANK0_SECTOR0       00200008   00003ff8  00001138  00002ec0  RWIX
  CMBANK0_SECTOR1       00204000   00004000  00000000  00004000  RWIX
  CMBANK0_SECTOR2       00208000   00004000  00000000  00004000  RWIX
  CMBANK0_SECTOR3       0020c000   00004000  00000000  00004000  RWIX
  CMBANK0_SECTOR4       00210000   00010000  0000c788  00003878  RWIX
  CMBANK0_SECTOR5       00220000   00010000  00000000  00010000  RWIX
  CMBANK0_SECTOR6       00230000   00010000  00000000  00010000  RWIX
  CMBANK0_SECTOR7       00240000   00010000  00000000  00010000  RWIX
  CMBANK0_SECTOR8       00250000   00010000  00000000  00010000  RWIX
  CMBANK0_SECTOR9       00260000   00010000  00000000  00010000  RWIX
  CMBANK0_SECTOR10      00270000   00004000  00000000  00004000  RWIX
  CMBANK0_SECTOR11      00274000   00004000  00000000  00004000  RWIX
  CMBANK0_SECTOR12      00278000   00004000  00000000  00004000  RWIX
  CMBANK0_SECTOR13      0027c000   00004000  00000000  00004000  RWIX
  C1RAM                 1fffc000   00002000  000013f8  00000c08  RWIX
  C0RAM                 1fffe000   00002000  00000158  00001ea8  RWIX
  BOOT_RSVD             20000000   00000800  00000000  00000800  RWIX
  S0RAM                 20000800   00003800  00002140  000016c0  RWIX
  S123RAM               20004000   0000aa00  0000991a  000010e6  RWIX
  S3RAM_PARA            2000ea00   00001600  000015e0  00000020  RWIX
  E0RAM                 20010000   00004000  00000000  00004000  RWIX
  CPU1TOCMMSGRAM0       20080000   00000800  00000110  000006f0  RWIX
  CPU1TOCMMSGRAM1       20080800   00000800  00000000  00000800  RWIX
  CMTOCPU1MSGRAM0       20082000   00000800  00000624  000001dc  RWIX
  CMTOCPU1MSGRAM1       20082800   00000800  00000000  00000800  RWIX
  CPU2TOCMMSGRAM0       20084000   00000800  00000110  000006f0  RWIX
  CPU2TOCMMSGRAM1       20084800   00000800  00000000  00000800  RWIX
  CMTOCPU2MSGRAM0       20086000   00000800  00000110  000006f0  RWIX
  CMTOCPU2MSGRAM1       20086800   00000800  00000000  00000800  RWIX


SEGMENT ALLOCATION MAP

run origin  load origin   length   init length attrs members
----------  ----------- ---------- ----------- ----- -------
00200000    00200000    00000006   00000006    r-x
  00200000    00200000    00000006   00000006    r-x .resetisr
00200160    00200160    000002a0   000002a0    r--
  00200160    00200160    000002a0   000002a0    r-- .const.1
00200400    00200400    00000d40   00000d40    r--
  00200400    00200400    00000140   00000140    r-- .vftable
  00200540    00200540    00000848   00000848    r-- .const.2
  00200d88    00200d88    000003b8   000003b8    r-- .cinit
00210000    00210000    0000c788   0000c788    r-x
  00210000    00210000    0000c788   0000c788    r-x .text
1fffc000    1fffc000    000013f8   00000000    rw-
  1fffc000    1fffc000    00000a00   00000000    rw- .stack
  1fffca00    1fffca00    000009f8   00000000    rw- .data
1fffe000    00200008    00000158   00000158    r-x
  1fffe000    00200008    00000158   00000158    r-x .TI.ramfunc
20000800    20000800    00002140   00000000    rw-
  20000800    20000800    00002000   00000000    rw- .sysmem
  20002800    20002800    00000140   00000000    rw- .vtable
20004000    20004000    0000991a   00000000    rw-
  20004000    20004000    0000991a   00000000    rw- .bss
2000ea00    2000ea00    000015e0   00000000    rw-
  2000ea00    2000ea00    000015e0   00000000    rw- LOCALRAMS3_PARA
20080000    20080000    00000110   00000000    rw-
  20080000    20080000    00000110   00000000    rw- MSGRAM_CPU1_TO_CM
20082000    20082000    00000624   00000624    rw-
  20082000    20082000    00000624   00000624    rw- MSGRAM_CM_TO_CPU1
20084000    20084000    00000110   00000000    rw-
  20084000    20084000    00000110   00000000    rw- MSGRAM_CPU2_TO_CM
20086000    20086000    00000110   00000000    rw-
  20086000    20086000    00000110   00000000    rw- MSGRAM_CM_TO_CPU2
  
  .stack     0    1fffc000    00000a00     UNINITIALIZED
                  1fffc000    00000004     rtsv7M4_T_le_eabi.lib : boot_cortex_m.c.obj (.stack)
                  1fffc004    000009fc     --HOLE--

.vtable    0    20002800    00000140     UNINITIALIZED
                  20002800    00000140     driverlib_cm.lib : interrupt.obj (.vtable)

.sysmem    0    20000800    00002000     UNINITIALIZED
                  20000800    00000010     rtsv7M4_T_le_eabi.lib : memory.c.obj (.sysmem)
                  20000810    00001ff0     --HOLE--

--

谢谢、此致

耶鲁

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

    耶鲁大学  

    您能提供更多关于正在运行哪个程序的详细信息吗? 无法根据可用的信息诊断问题。  

    谢谢。  

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

    大家好、Sahil:

    EtherCAT 使用 cia402。  PDI 中断和 SYNC0中断在 CM 内核中用于数据传输。  SYNC0中断会触发从 CM 到 CPU1的 IPC0中断、并将 EtherCAT 数据传输到 CPU1的 IPC0中断中的 CPU1。  在该 IPC0中断中、从 CPU1至 CM 的 IPC0中断被触发、CPU1数据被传输到 CM、然后通过 PDI 中断发送到主站。

    以太网通信使用 UDP 协议例程、并打开了两个端口号。 在这两个端口号的接收中断回调函数中、IPC1和 IPC2分别用于向 CPU1传输数据。  在使用以太网通信的过程中、两个接收中断周期分别为500ms 和62.5us。

    在 CCS 的 Debug 模式下、三个内核开始全速运行。   客户板通过以太网并通过网络电缆与计算机的调试接口进行通信。 此时、代码运行正常。  然后、通过网络电缆与 TwinCAT 通信时、CM 消失。 目前、以太网和 EtherCAT 均无法正常工作。

    --

    谢谢、此致

    耶鲁

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

    耶鲁大学  

    我们正在研究该计划、请预计在星期五之前收到答复。  

    谢谢。

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

    谢谢。

    我们想知道 CCS 是否具有相关工具或方法来定位 CM 代码跳转到地址0x162e 的位置。

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

    大家好、Sahil:

    客户的最新回复:

    在最新的测试中、我发现即使我不使用 ECAT 和 ENET 通信、而是在 CM 的 while 循环上执行 ESC 寄存器读写操作、当我注释掉它时、程序也不会失控、并且会随机发生。 我想知道这是不是由于堆栈空间不足造成的。

    查看手册后发现可以使用-entry_hook 来检查堆栈空间是否溢出、但我不知道该怎么做。 您能否给我一些指导、说明如何检查堆栈空间是否溢出?

    --

    谢谢、此致

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

    好吧,耶鲁,我们会研究一下。  

    但是、由于下周可能会放假、请预计在11月20日星期一之前收到答复。

    谢谢。