HOW to TRACE:  Illegal stack type -- PC = 0X41FC2708 ERROR

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

HOW to TRACE:  Illegal stack type -- PC = 0X41FC2708 ERROR

2,397 次查看
osanz
Contributor I
Hi;
 
I'm WORKING with CodeWarrior 6.4 and MFC52233DEMO BOARD. Sometimes i have via UART mesages like :
 
 Illegal stack type -- PC = 0X41FC2708     User Defined Vector #0
 
I need to know if there is any method to trace this kind of error in order to avoid it, because these problem seems to be totally RANDOM...
 
Thank's to all.
 
Oscar.
标签 (1)
标记 (1)
0 项奖励
2 回复数

454 次查看
osanz
Contributor I
Hi;
 
I have found the problem source, in my case is the RTC interrupt ( Controller 0 interrupt 63 ).
I don't know why is this interrupt working but, the problem is here.
 
I have used a Simon Marsden Tip posted in this forum, about how to "decode" the PC data when the faliure happens. This is fully explained on the CHAPTER 11 of the " Programmers reference manual" pages 11-4 to 11-5 ( on Rev.3 ).
 
Anyway, does anyone have an idea about why this interrupt is working if i explicity have dissabled it???
 
Thanks.
Oscar.
0 项奖励

454 次查看
mccPaul
Contributor I
It sounds like a default ISR is being called - many stacks set up the exception vectors to point to a catch all ISR. In this case it sounds like the ISR is returning with RTS not RTE which is why you end up with the stack error. This could be you haven't specified that the ISR is an exception handler or because your compiler doesn't understand the pragmas that are being used to specify an exception handler.
 
As to why the ISR is being called - perhaps something has re-enabled it, or you aren't disabling it properly?
 
Which stack or OS are you using?
 
Paul.
 
 
 
 
0 项奖励