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.

[参考译文] CCS/F28M35H52C:以太网启动不起作用

Guru**** 2539500 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/619665/ccs-f28m35h52c-ethernet-boot-doesn-t-work

部件号:F28M35H52C

工具/软件:Code Composer Studio

您好,

我使用RAM配置为m3内核生成了代码。 该程序在调试模式下工作正常。 当我加载使用LMFlash生成的.bin文件时,它不起作用。 但我可以看到,C2000内核启动是因为我在闪存中放入了一个代码,当我通过以太网端口加载程序时,它会闪烁。 就像某些模块或配置在m3的以太网引导模式下不起作用一样。 我正在使用DMA,以太网端口与UIP和UART通信。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Zmeira,
    使用EMAC引导时应用程序的入口点要求与其他方案不同。 请查看文档并根据需要更新链接程序命令文件。

    下面的论坛帖子也讨论了这一点

    e2e.ti.com/.../51.1134万

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

    感谢您的快速响应。 我已经这样做了。 这是我的cmd文件。 我认为我的矢量表有问题,因为是我的代码中断的地方。 我在代码的许多地方都放了一个IPC命令,但当我在这个命令之后放了它时,它就停止运行了:

    //启用并注册以太网中断。
    IntEnable (INT_ETH);
    IntRegister (INT_ETH,EthernetIntHandler);

    这是我的cmd文件:

    内存

    C0 (rwx) :原点= 0x2000万,长度= 0x2000
    C1 (rwx) :原点= 0x2000.2万,长度= 0x2000
    BOOT_RSVD (RX):原点= 0x2000.4万,长度= 0x1000
    RESETISR (rwx):原点= 0x2000.5万,长度= 0x0008
    C2 :原点= 0x2000.5008万,长度= 0x0FF8
    INTVECS (rwx):原点= 0x2000.6万,长度= 0x01B0
    C3 (rwx) :原点= 0x20.0061万B0,长度= 0x1E50
    S0 (rwx) :原点= 0x2000.8万,长度= 0x0400
    S1 (rwx) :原点= 0x2000.84万,长度= 0x3C00
    S2 (rwx) :原点= 0x2000C000,长度= 0x2000
    S3 (rwx) :原点= 0x2000E000,长度= 0x2000
    S4 (rwx) :原点= 0x2001万,长度= 0x2000
    S5 (rwx) :原点= 0x2001.2万,长度= 0x2000
    S6 (rwx) :原点= 0x2001.4万,长度= 0x2000
    S7 (rwx) :原点= 0x2001.6万,长度= 0x2000
    CTOMRAM (RX) :原点= 0x2007F000,长度= 0x0800
    MTOCRAM (rwx):原点= 0x2007F800,长度= 0x0800
    }

    /*内存中的部分分配*/

    章节

    intvecs:> INTVECS
    .RESETISR:> RESETISR

    text :>> C3 | C2 | S1 | S2
    const :> C3 | C2 | S1 | S2.
    .cinit :> C3 | C2 | S1 | S2
    Pinit ::> C3 | C2

    .vtable:> S0
    data :>> C3 | C2 | S1 | S2
    bss:>> C3 | C2 | S1 | S2
    sysmem :>> C3 | C2 | S1 | S2
    堆栈:> C3 | C2 | S1 | S2
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,

    我不知道为什么,但我必须对此进行评论才能使我的代码正常工作:

    在主程序中:
    InitPieVectorTable();

    AT InitAdc1()函数:
    DELAY_US (ADC_USDELAY); //转换ADC1通道前的延迟

    现在我可以生成一个正确执行的bin文件。