以下是我的一部分代码,原理较简单,首先进行指定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会不会有冲突?请问各位有什么建议,帮助我排除问题?
JackyXiaodong:
LCD也会出现以下图片
EVMK2H开发板上的D4和D6两个LED灯熄灭
Shine:
回复 JackyXiaodong:
先单独只拉高一个管脚,看是哪个管脚引起的?
JackyXiaodong:
回复 Shine:
单独拉高,都没有问题。但是只拉高GPIO06和GPIO07也会出现这种情况。测量了一下EVMK2H 开发板上的电压,TP50测试点上本应该是1.8V。但是执行程序后,只有0.5V.
JackyXiaodong:
这里附上测试代码,希望有人指点,谢谢。
使用的EVMK2H 的是Rev 4.0。
GPIO_test.7z