将main.c改为maon.cpp之后虽然类定义可以通过了,但是原来工作的中断函数不工作了,系统会挂起在.s文件中的死循环处。
解决办法:自定义中断函数放置在main.cpp中,当将其移到其它的文件中后故障消失。
挂起说明系统没有找到已经定义的中断函数,所以进入缺省状态挂起。猜测当移到其它文件中后由于显式地指明了编译方式,所以被识别。main.cpp文件应该是按c++编译,那么放置在这里的中断函数也按c++方式编译,但是该中断函数定义在.s中应该是按c编译,这会导致链接阶段对不上,而中断函数找不到是不会报错的,光看编译输出结果是看不出问题的。
出现这种c和cpp混编的方式可能将main中代码尽量移到其它文件中会更安全。