在调试状态下,csr、IER寄存器使能相应中断,且IFR中中断置位(中断产生)之后,ISTP的HPEINT没有置位(调试状态下,HPEINT会置位吗?),接下来继续跑程序就会跑飞,请问这是什么状况?我怀疑是cpu处理中断,但是不能正确的找到ISFP地址,所以导致跑飞。
还有就是TMS320C66x DSP CPU and Instruction Set文档中,IST的描述有一段是这样的:
一个ISFP可以包含8到14条指令。这个ISFP包含多少条指令需要在什么地方配置吗?如果超过8条指令的话,32字节的ISFP就存不下这么多指令吧?
8 32-bit instructions in a nonheader-based fetch packet和14structions in a compact header-based fetch packet是什么意思?
我现在写的每个ISFP包含8条指令。
Thomas Yang1:
XIANGZHONG KONG
您好!
1) HPEINT中显示的是当前已经使能了的且pending中断中的最高优先级对应的中断号
程序跑飞情况由很多种,你可以在中断向量表处打个断点,以此验证PC是否跑到了中断向量表处
2)如果超过32byte,此时ISFP中会插入一个B LOOP指令,会跳转到另外一个存储地址继续执行
3)Fetch packet包在C66中有2种格式,如下,具体你可以参考指令手册的3.10节
Thomas Yang1:
回复 xiangzhong kong:
XIANG ZHONG KONG
好的
谢谢 分享!