您好,我手头有一个AM3359 的ICE,现在参考starerware里的代码配置了GPIO,写了一个响应外部中断的程序,如果中断被触发,则用UART输出些信息。
现在已确认UART输出是好用的,但执行到下面的代码时,UART则输出不了。
GPIO1ModuleClkConfig(); //OK 运行到此处能输出
GPIO1Pin16PinMuxSetup(); //NG 运行到此处不能输出
看了GPIO1Pin16PinMuxSetup的代码,貌似是在EVMProfileGet函数里的某个While处理里无限循环了。
我想问下:为什么会陷入无限循环?有没有针对ICE板子GPIO配置的参考代码?
Yaoming Qin:
具体是哪个while循环,如果是写寄存器而用到循环,可以怀疑clock可能没配好
Ligang:
回复 Yaoming Qin:
还没确定是哪个循环,我大致做了一个关于此问题的文档,请您看下,帮忙定位下问题的所在 : )
PS:有没有这是EVM的代码,而我用的是ICE,导致出现这个问题的可能?
代码我都是从Starterware的例子直接拷贝的,代码本身应该不会有问题吧
Yaoming Qin:
回复 Ligang:
代码本身是针对evm或者beaglebone的,没有问题,我没有怎么看过ice,所以不知道是不是需要做porting
Ligang:
回复 Yaoming Qin:
您看我的附件,问题可能不是出在PIN配置上,而是相关Clock配置上。
我想知道问题的大致位置以及解决方法:)
Yaoming Qin:
回复 Ligang:
看看trm,prcm等部分说的很清楚的:)
Ligang:
回复 Yaoming Qin:
我把GPIO1Pin16PinMuxSetup中EVMProfileGet函数的调用给屏蔽掉了,实践证明,没什么影响。