KEIL5的内部错误,求解

本人是个嵌入式小白,在做期末设计的时候,做了一个蜂鸣器发声音乐播放器。

本来一切都相安无事,好好学习。小设计也做完了,代码下载到对应的开发板上也完成了对应的功能。

但是今天给科任老师展示完以后回到寝室,下意识的重复重新编译代码(没有修改过)。

结果出现内部错误,错误信息以下:

然后我以为是展示的过程中产生了误触,然后我就找到了我的备份项目文件,也是出现了同样的问题。要知道我前一天才测试结束。成功编译并且将HEX文件下载到开发板上。

然后我就开始测试错误,结果在Main函数里如下:

我将while循环里的switch分支语句剪切暂时删掉,内部错误消失,成功编译。但是这样就不能实现我的功能了,我自然不安心。

我就又将同样的分支语句(剪切板里的)粘贴在while循序里。结果又成功编译,我尝试将生成的hex文件下载到开发板。

运行成功。

再次重复尝试相同的功能,发现有小几率成功编译,较大几率出现内部错误。

就想请教一下,这个内部错误..\OBJ\End.axf: Internal fault: [0xb3b91b:5060750]....是什么原因。在论坛里也没有找到相应的问题。

大佬们能够帮忙解释和解决一下吗?

传入分支的是全局变量

在exti.h里申明的extern int music;

经过反复测试,编译成功率百分之80,百分之20出现这个内部错误

是因为只声明了这个变量,但是又没有在main函数里定义这个变量的原因吗?

也尝试过,会出错

提示的错误是内部错误,而且只是小概率触发。错误信息一:内部错误+错误代码。错误信息二:请联系供应商。