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 Interrupt Routine not getting called

Part Number: F28M35H52C
Other Parts Discussed in Thread: CONTROLSUITE

Hi,

   I'm using F28M35H52C device in our customized board. I'm using CAN for communication, I've tested CAN using the control suite example code(can_loopback) and it is working fine.

But when i integrate the same example code in my main  project, CAN interrupt routine is not called. But i've tested CAN communication using polling method in my project. But i need to run in interrupt.

Observations:

1. When debugging IntRegister(), i observed that variable "g_pfnRAMVectors" is showing 0xFFFFFFFF initially instead of 0x0. But in example code, initially this variable shows as 0x0.

2. And in IntRegister(), when copying the values of g_pfnVectors to g_pfnRAMVectors, the address in the g_pfnVectors are not copied into g_pfnRAMVectors and always shows 0xFFFFFFFF. But in example code the addresses are copied correctly.

3. When I compare the map file of both my main project and example project, i observed that INTVECS is not present under memory configuration of my project.

MEMORY CONFIGURATION of the example project

name origin length used unused attr fill
---------------------- -------- --------- -------- -------- ---- --------
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

MEMORY CONFIGURATION in my main project

name origin length used unused attr fill
---------------------- -------- --------- -------- -------- ---- --------
FLASH_BOOT 00220000 00000004 00000004 00000000 RW X
RESETVECS 00220040 000001b0 000001ac 00000004 RW X
FLASH 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

Do i need update my linker file. if so please suggest the changes. i can find linker file(linker.cmd) for my project inside Debug folder. But i'm not able to find linker file for the example project.

Please provide your valuable suggestion.

Thanks in advance.

Regards

Mohanraj

  • Mohanraj,

    Where did the linker.cmd file inside Debug come from? Is it one you created?

    You can find the linker file that the example uses by going to Project->Properties->ARM Linker->File Search Path and looking at the -l options. It's probably C:\ti\controlSUITE\device_support\f28m35x\v210\MWare\cmd\F28M35x_generic_M3_FLASH.cmd

    Let me know if adding it to your project helps.

    Whitney