今天上午本人使用CCS3.3自带的timer实例,实例中定义了一个c_int14中断服务程序,并在一个Vector.asm文件中把对应中断的服务程序指向c_int14函数地址;然后本人在这个基础上尝试修改,将c_int14改成了Int14,同时在Vector.asm文件中将将_c_int14改成了_Int14,经过测试发现Timer定时溢出后并不能跳转Int14函数中;之后本人又将c_int14改成了c_int15,发现可以跳转,由此觉得有些疑问:
1、定时器中断服务程序的命名是否有规定;
2、中断服务程序是不是只能是形如c_Intn,其中n为整数
请各位前辈指点迷津。
Shine:
中断服务程序的命名没有规定一定是C_intn,可以自己命名。
请问用的是timer0还是timer1? 默认timer0是映射到INT14, Timer1映射到INT15。
Table 6. TMS320C620x/C670x DSP Default Interrupt Mapping
www.ti.com/…/spru646a.pdf
Gangping Li:
回复 Shine:
使用的是timer0,我这边其他的设置都是对了的,将c_int14中断服务程序函数名改成Int14就不行。刚刚上午测试结果显示的
Gangping Li:
回复 Shine:
timer0中断映射使用默认的INT14
Gangping Li:
回复 Shine:
Shine,这会儿测试发现可以跳转Int14中断服务程序了,原因可能是我之前漏掉了一个参数没有配置。谢谢哈
Shine:
回复 Gangping Li:
中断子程序和vector.asm里的函数名一致就好了,如果是COFF格式,vector.asm里的函数名前面需要加下划线,如果是新的ELF格式,则不需要下划线,其他不记得有特殊的要求。