现在我想将uart1的4个管脚作为gpio口使用终端接的继电器,在board-am335xevm.c中已经将uart1的初始化去掉,将4个管脚出事成io口如下
{"uart1_rxd.gpio0_14", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, /* 空闲 */
{"uart1_txd.gpio0_15", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, /* 空闲*/
{"uart1_ctsn.gpio0_12", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, /* 空闲 */
{"uart1_rtsn.gpio0_13", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, /* 空闲*/
也查找了在内核中也再无uart1的四个管脚的初始化操作,但是在内核启动期间,这四个口外界的蜂鸣器不停的间断响,知道再操作这几个端口时才能停止,不知道还有哪里对这几个端口进行了操作?请指教
Jian Zhou:
U-boot代码中也需要将这些pin脚初始化成GPIO,同事设置好上下拉
liqin xiao:
回复 Jian Zhou:
这个已经做了,并且i/O口乱响的时候是在内核启动后期,从内核在控制台打印的结果看,应该是在打印下面这些个地方开始的,一致到内核启动完后,我的i/o应该起作用时才停止乱响的
[ 2.521306] cpsw: Detected MACID = d0:5f:b8:e3:29:75[ 2.528151] rtc-s35390a 1-0030: setting system clock to 2013-07-07 17:19:02 UTC (1373217542)[ 3.583222] UBIFS: static UBI volume – read-only mode
Jian Zhou:
回复 liqin xiao:
那有可能是你设置的pinmux起作用之前,这些pin脚被别的功能模块初始化过。
你检查下整个系统的pinmux设置,看看能否把你的设置提前。
liqin xiao:
回复 Jian Zhou:
乱响是在我设置成gpio口之后,从控制台打印信息中能看到我设置成功了,但后期不知道被谁改掉了能看到的源码中检查过都没有
liqin xiao:
回复 Jian Zhou:
内核中有一段看不到源码的am335x-pm-firmware.bin加载,不知道这里面有没有对uart1管脚的初始化
Jian Zhou:
回复 liqin xiao:
am335x-pm-firmware.bin这个理论上应该对你的UART1没什么影响。
你可以把怀疑的部分暂时裁剪掉,定位下问题出在什么地方。有的时候光分析代码定位不出来问题所在,可以逆向分析下。
leo chen:
回复 Jian Zhou:
这个问题确实很奇怪,但直观的想法,还是管脚的配置模式被改变了,代码里面应该是有体现的
你可以看看你的代码是从哪个版本中该出来的,然后参照他们的原理图找一找
或许会有所收获