Hello
I was trying to write an assembly program to run an ISR during a timer period interrupt. I had configured all my timer control registers and peripheral clocks required for this. I had also populated the PIE vector table with ".sect directive". When an interrupt occurs, I can see the interrupt vector ID in the PIECTRL register but the service routine is not getting executed. I suspect it is not at all entering into the ISR. I had been trying this for so long. Kindly help me in this regard.
Regards
Sashank Mani
Shashank,
Detailed information on how to add user defined sections in linker command files is explained in compiler and assmebler reference guides. Below is for quick help.
edit your linker comand file to add hihglighted below line for PIE VECS memory region, in the memory {} section.
Memory
{
PAGE 0:
.....
PIEVECS : origin = 0xD00, length = 0x100
...
..
}
add below highlighted line to the SECTIONS{} directive in the linker command file.
SECTIONS
pievt: load = PIEVECS , PAGE = 0
note that 'pievt' is the exact name of the section in your assembler file where you define PIE ISR handlers.
Let us know if that helps.
Best Regards
Santosh
I am sorry but how do I edit my linker command file? Could you please elaborate?
Sashank,
it is the ".cmd" file in your project. Are you using CCS to compile and link your project? which version you are using?
you can edit the cmd file just like any other source file, in any source editor.
I am currently using CCS 3.1. I am using EzDSPRam.cmd, headersnonbios.cmd. Is this sufficient?
Sorry for my late reply. I tried your logic today and it worked succesfully. I made some changes in the headers linker file and it worked perfectly. I thank you once again :)
Regards\
Sashank
Thanks for confirming. Can you mark the relevant post as 'verified answer' - it makes life a lot easier for other comunity members to try the suggested solution when it is marked properly.
Best Regsards