以下是我的一部分代码,原理较简单,首先进行指定GPIO清零,改变GPIO方向,在把GPIO拉高。但是在把GPIO拉高的语句后,66AK2H14的板EVMK2H上就会停止工作,CCS提示“Power Failure on Target CPU”,开发板上显示一下图片。
GPIO_test()
{
...............
*(volatile Uint32 *)( CSL_GPIO_CFG_REGS + CLR_DATA ) = 0xffff0ff0;//清零GPIO[16:31]和GPIO[4:11]
*(volatile Uint32 *)( CSL_GPIO_CFG_REGS + DIR ) = 0xffff0001;//设置GPIO[16:31]和GPIO0为输入,其他为输出
//ReadGPIO_Flag = (regnum << Address_shift); //address
*(volatile Uint32 *)( CSL_GPIO_CFG_REGS + SET_DATA ) = 0xf0;//拉高GPIO[4:7]
.......................
}
使用xds560v2仿真器跟踪,发现到了*(volatile Uint32 *)( CSL_GPIO_CFG_REGS + SET_DATA ) = 0xf0;这句执行后,系统就停止了。出现了下图所示:
CCS7.3 显示以下
仿真器也连不上,整个系统好像断电一样。需从新上电才可以。
不知道问题出现在哪里?我只是拉高GPIO[4:7],这几个GPIO会不会有冲突?请问各位有什么建议,帮助我排除问题?