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.

[参考译文] F28M35H52C:F28M35H52C 中断例程未被调用

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/595577/f28m35h52c-f28m35h52c-interrupt-routine-not-getting-called

器件型号:F28M35H52C
Thread 中讨论的其他器件: controlSUITE

您好!

  我将在我们的定制板中使用 F28M35H52C 器件。 我使用 CAN 进行通信、我已经使用控制套件示例代码(CAN_loopback)测试了 CAN、它运行正常。

但是、当我在主 项目中集成同一示例代码时、不会调用 CAN 中断例程。 但我已经在项目中使用轮询方法测试了 CAN 通信。 但我需要在中断中运行。

观察结果:

调试 IntRegister()时,我观察到变量"g_pfnRAMVectors "最初显示的是0xFFFFFFFF,而不是0x0。 但在示例代码中、该变量最初显示为0x0。

2.在 IntRegister()中,当将 g_pfnVectors 的值复制到 g_pfnRAMVectors 时, g_pfnVectors 中的地址不会复制到 g_pfnRAMVectors 中,并且始终显示0xFFFFFFFF。 但在示例代码中、地址被正确复制。

3.当我比较主项目和示例项目的映射文件时,我发现在我的项目的内存配置下,INTVECS 不存在。

示例工程的存储器配置

名称源长度使用未使用的属性填充
------------ ---- ------ ---- ---- --------
CSM_ECSL_Z1 00200000 00000024 00000000 00000024 RWIX
csm_RSVD_Z1 00200024 0000000c 00000000 0000000c RWIX
RESETISR 00200030 00000008 00000006 00000002 R X
INTVECS 00201000 000001b0 00000000 000001b0 R X
FLASHLOAD 00201200 00002e00 00000000 00002e00 R X
FLASH1 00204000 0001c000 00001ec0 0001a140 R X
FLASH2 00260000 0001ffd0 00000000 0001ffd0 R X
csm_RSVD_Z2 0027ffd0 0000000c 00000000 0000000c RWIX
CSM_ECSL_Z2 0027ffdc 00000024 00000000 00000024 RWIX
C0 20000000 00002000 000002b0 00001d50 RW X
C1 20002000 00002000 00000000 00002000 RW X
BOOT_RSVD 20004000 00000900 00000000 00000900 R X
C2 20004900 00001700 00000020 000016e0 RW X
C3 20006000 00002000 00000000 00002000 RW X
CTOMRAM 2007f000 00000800 00000000 00000800 R X
MTOCRAM 2007f800 00000800 00000000 00000800 RW X

主项目中的存储器配置

名称源长度使用未使用的属性填充
------------ ---- ------ ---- ---- --------
FLASH_boot 00220000 00000004 00000004 00000000 RW X
RESETVECS 00220040 000001b0 000001ac 00000004 RW X
闪存002201f0 0005fd10 00017be4 0004812c RW X
C03SRAM 20000000 00000800 00000800 00000000 RW X
C03SRAMHP 20000800 00007000 00007000 00000000 RW X
DMARAM 20007800 00000680 00000000 00000680 RW X
DMARAMDATA 20007e80 00000180 00000180 00000000 RW X
S01SHRAM 20008000 00004000 00000000 00004000 RW X
S23SHRAM 2000c000 00004000 00002538 00001ac8 RW X
S47SHRAM 20010000 00008000 00000000 00008000 RW X
CTOMMSGRAM 2007f000 000006c0 00000000 000006c0 R
shared_DEF 2007f6c0 00000040 00000000 00000040 R
MTOCMSGRAM 2007f800 00000700 00000000 00000700 RW
LWIP_STAT 2007ff00 000000f8 00000014 000000e4 rw
MacID 2007fff8 00000008 00000008 00000000 RW

我是否需要更新链接器文件。 如果是、请建议进行更改。 我可以在 Debug 文件夹中找到工程的链接器文件(linker.cmd)。 但我无法找到示例项目的链接器文件。

请提供您宝贵的建议。

提前感谢。

此致

Mohanraj

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

    Debug 中的 linker.cmd 文件来自哪里? 是您创建的吗?

    您可以通过转到 Project->Properties->ARM Linker->File Search Path 并查看-l 选项来找到示例使用的链接器文件。 它可能是 C:\ti\controlSUITE\device_support\f28m35x\V210\Mware\cm\F28M35x_general_m3_flash.cmd

    请告诉我将其添加到您的项目是否有帮助。

    惠特尼