完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我们的板子上使用mmc0做系统boot使用,同时想使用mmc2做文件存储。但是目前mmc2功能在Uboot中无法使用。
我在mux.c中添加了引脚初始化 static struct module_pin_mux mmc2_pin_mux_sk_evm[] = [ [OFFSET(gpmc_be1n), (MODE(3) | RXACTIVE | PULLUP_EN)], /* MMC2_DAT3 */ [OFFSET(gpmc_a3), (MODE(3) | RXACTIVE | PULLUP_EN)], /* MMC2_DAT2 */ [OFFSET(gpmc_a2), (MODE(3) | RXACTIVE | PULLUP_EN)], /* MMC2_DAT1 */ [OFFSET(gpmc_a1), (MODE(3) | RXACTIVE | PULLUP_EN)], /* MMC2_DAT0 */ [OFFSET(gpmc_clk), (MODE(3) | RXACTIVE | PULLUP_EN)], /* MMC2_CLK */ [OFFSET(gpmc_csn3), (MODE(3) | RXACTIVE | PULLUP_EN)], /* MMC2_CMD */ [OFFSET(mcasp0_axr0), (MODE(4) | RXACTIVE | PULLUP_EN)], /* MMC2_CD */ [-1], ]; 同时在。omap_hsmmc.c #define OMAP_HSMMC1_BASE 0x48060100 #define OMAP_HSMMC2_BASE 0x481D8100 #define OMAP_HSMMC3_BASE 0x47810100 也在代码初始化中调用了omap_mmc_init(2)。但是在Uboot中还是无法读取MMC2的信息。 经过代码追踪,发现在mmc模块复位时读取寄存器异常。只要读取sd_sysconfig就引起死机。 后来在uboot中直接读取内存地址,也是直接死机。 U-Boot# md.w 48060110 48060110: 2015 0000 0001 0000 0000 0000 0000 0000 . .............. 48060120: 0000 0000 0000 0000 0000 0000 0600 0000 ................ 48060130: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 48060140: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 48060150: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 48060160: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 48060170: 0000 0000 0000 0000 0000 0000 0000 0000 ................ 48060180: 0000 0000 0000 0000 0000 0000 0000 0000 ................ U-Boot# md.w 47810110 47810110: 无论是读取mmc1(未使用),mmc2均直接死机。 请问,如果要使用MMC2还需要特别设置什么东西吗?我使用的是sdk 6.0。 |
|
相关推荐
4个回答
|
|
|
|
|
|
您可以查查 Table 8-23. Bus Interface Clocks 中,可以看到MMC 2是挂在L3总线上的,所以可以看看CM_PER_L3S_CLKSTCTRL这个时钟是否打开,如果没有打开,我的理解应该会导致读写相应寄存器出错。
如果我的回答解决了您的问题,请确认答案,谢谢!:) |
|
|
|
jvwueurw 发表于 2018-5-15 10:19 我打开CONFIG_MMC_TRACE功能时,可以使用fatls功能查看mmc中的文件。但是把CONFIG_MMC_TRACE去掉时,就开始报错。报错信息如下: U-Boot# fatls mmc 1 mmc_send_cmd : timeout: No status update Card did not respond to voltage select! ** Bad device mmc 1 ** 估计应该是时间引起的,在有打印信息时的了某种延时。去了调试信息时,时间不够造成的问题,我尝试把hsmmc.c文件中的延时加一倍后,仍然报错 /* If we fail after 1 second wait, something is really bad */ #define MAX_RETRY_MS 1000 改成2000也无效。请问在这种情况下,还有其它地方的延时可以增加吗? |
|
|
|
hgjhgd 发表于 2018-5-15 10:27 您看看在uboot中,用下面的命令看看 setenv mmcdev 2 mmc rescan 2 如果我的回答解决了您的问题,请确认答案,谢谢!:) |
|
|
|
只有小组成员才能发言,加入小组>>
358 浏览 1 评论
551 浏览 2 评论
NA555DR VCC最低电压需要在5V供电,为什么用3.3V供电搭了个单稳态触发器也使用正常?
797 浏览 3 评论
MSP430F249TPMR出现高温存储后失效了的情况,怎么解决?
667 浏览 1 评论
对于多级放大电路板,在PCB布局中,电源摆放的位置应该注意什么?
1142 浏览 1 评论
AT32F407在USART2 DMA发送数据时,接包接到了要发送的数据,程序还是处于等待传输完成的标识判断中,为什么?
95浏览 29评论
381浏览 23评论
请问下tpa3220实际测试引脚功能和官方资料不符,哪位大佬可以帮忙解答下
268浏览 20评论
请教下关于TAS5825PEVM评估模块原理图中不太明白的地方,寻求答疑
217浏览 14评论
两个TMP117传感器一个可以正常读取温度值,一个读取的值一直是0,为什么?
74浏览 13评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-31 01:17 , Processed in 1.284290 second(s), Total 85, Slave 69 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号