完善资料让更多小伙伴认识你,还能领取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 如果我的回答解决了您的问题,请确认答案,谢谢!:) |
|
|
|
只有小组成员才能发言,加入小组>>
461 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
310 浏览 1 评论
907 浏览 0 评论
TMS320F28377D:新做了以377d为芯片的板子,上电后芯片复位引脚出现方波请问如何解决?
2081 浏览 0 评论
TPS55340通电后输入端保险丝烧断,芯片输入和GND之间短路
3824 浏览 4 评论
CC3100BOOST使用CC3200lunchXL进行烧录
865浏览 2评论
100浏览 2评论
136浏览 2评论
113浏览 2评论
136浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-2 04:19 , Processed in 0.807605 second(s), Total 84, Slave 67 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191