这块TMDSSK3358板子是在咸鱼上买的二手的,上面CPU实际是AM3359,我手头另外还有个在官网买的ICEAM3359,在CCS9中建了一个以ICEAM3359为平台的裸机工程,加载的是ICEAM3359的gel文件,该工程跑的是个裸机环境下的定时器2中断,目前遇到的具体问题是:
1 该定时器中断在ICEAM3359中只能进入大概两三次中断服务函数,之后就再也不进中断了
2 不改变gel文件,工程不做任何更改,直接使用TMDSSK3358板子,结果每次进定时器中断都是跑到中断函数结尾处的花括号那个位置,根本不是从中断函
数的头部开始执行的,而且不像上面问题1中那样进两三次就不在进入中断函数,是一直进入中断函数,只是每次都是定时中断到了PC指针就直接跳到末尾
的 花括号那里了。开始怀疑是不是TMDSSK3358应该加载这块板子自己的gel文件,因为ICEAM3359就有自己独立的gel文件,但在CCS所在的文件夹里并未
找 到专门针对TMDSSK3358板子的gel文件
针对问题1,我在ICEAM3359中关闭定时器中断,然后开启eCAP的辅助PWM的比较中断,结果该中断运行良好,该中断在TMDSSK3358中仍然遇到和问
题2一样的情况。
补充一下,我在工程中采用的是超级监控模式,该模式是最高权限吧,这种模式有可能导致上面两种问题的出现吗
以下是我的C工程中为获取超级监控模式而加入的汇编语句
; \file super_startup.asm
;
; \brief Firmware startup for supervisor mode
;
; @author mansoor.ahamed@ti.com
.sect ".text"
.state32
.global mystartup
.global _c_int00
mystartup:
ldr pc, RTS_JUMP ;Jump to rtslib _c_int00 but skip 4 instructions
;which puts cpu in user mode
RTS_JUMP .long (_c_int00 + 0x10)
.end