完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本帖最后由 一只耳朵怪 于 2018-6-21 11:06 编辑
使用starterware函数HSMMCSDBusWidthSet(SOC_MMCHS_1_REGS,HS_MMCSD_BUS_WIDTH_8BIT);//8位宽度 当第一个参数为SOC_MMCHS_0_REGS时能够执行函数,当为SOC_MMCHS_1_REGS,出现 No source available for "0x4030fc10" 请问这是什么原因?emmc是用MMC1管脚。 |
|
相关推荐
9个回答
|
|
SOC_MMCHS_1_REGS的地址是0x481D8000,不能对这个寄存器进行访问,这是什么原因?
|
|
|
|
在前面的配置中,有使能MMC1相关的时钟域吗? |
|
|
|
GPMCClkConfig(); //PinMux Configuration //MMC1_D0~D7 pull_up mode2 HWREG(SOC_CONTROL_REGS + CONTROL_CONF_GPMC_AD(8)) =0x00000012; HWREG(SOC_CONTROL_REGS + CONTROL_CONF_GPMC_AD(9)) =0x00000012; HWREG(SOC_CONTROL_REGS + CONTROL_CONF_GPMC_AD(10)) =0x00000012; HWREG(SOC_CONTROL_REGS + CONTROL_CONF_GPMC_AD(11)) =0x00000012; HWREG(SOC_CONTROL_REGS + CONTROL_CONF_GPMC_AD(12)) =0x00000012; HWREG(SOC_CONTROL_REGS + CONTROL_CONF_GPMC_AD(13)) =0x00000012; HWREG(SOC_CONTROL_REGS + CONTROL_CONF_GPMC_AD(14)) =0x00000012; HWREG(SOC_CONTROL_REGS + CONTROL_CONF_GPMC_AD(15)) =0x00000012; //MMC1_CLK no_pull mode2 HWREG(SOC_CONTROL_REGS + CONTROL_CONF_GPMC_CSN(1)) =0x0000000A; //MMC1_CMD pull_up mode2 HWREG(SOC_CONTROL_REGS + CONTROL_CONF_GPMC_CSN(2)) =0x00000012; HSMMCSDModuleClkConfig(); HSMMCSDBusPower(SOC_MMCHS_1_REGS, HS_MMCSD_BUS_POWER_ON);//emmc power on HSMMCSDBusVoltSet(SOC_MMCHS_1_REGS,HS_MMCSD_BUS_VOLT_3P3);//power 3.3v //clock 400kHZ or less HSMMCSDIntClock(SOC_MMCHS_1_REGS, HS_MMCSD_INTCLOCK_ON); SysDelayTimerSetup();//系统延时时钟开启,定时器7 Sysdelay(1);//delay 1ms for (i=0; i<74; i++);//wait for 74 more clock cycles HSMMCSDCommandSend(SOC_MMCHS_1_REGS, HS_MMCSD_CMD(MMCHS_CMD_INDX_CMD0, HS_MMCSD_CMD_TYPE_NORMAL, HS_MMCSD_NO_RESPONSE, HS_MMCSD_CMD_DIR_WRITE) ,0x00000000,NULL,MMCHS_BLK_BLEN_SHIFT,0);//send CMD0 ->IDLE State Sysdelay(10);//延时 HSMMCSDCommandSend(SOC_MMCHS_1_REGS, HS_MMCSD_CMD(MMCHS_CMD_INDX_CMD1, HS_MMCSD_CMD_TYPE_NORMAL, HS_MMCSD_48BITS_BUSY_RESPONSE, HS_MMCSD_CMD_DIR_WRITE) ,0x00FF8000,NULL,MMCHS_BLK_BLEN_SHIFT,0);//send CMD1 Idle State->Ready State HSMMCSDResponseGet(SOC_MMCHS_1_REGS,Response);//Receive R3 正确返回: 0x80FF8080和0x80FF8000 两种情况 while (Response[0]>>31 != 0x1)//busy [ Emmc_Cmd1Send(); ] |
|
|
|
MMC1相关的时钟域是用哪个函数打开的?是需要在boot启动的时候进行操作吗? |
|
|
|
chexiaohuo 发表于 2018-6-21 00:46 你不是在调试MMC1的APP么,看截图的状态有些问题,截图里的指针是停在了内部的internal ram地址中? 你load完.out的程序后,指针能够停止在main函数处吗?可以单步跟踪debug吗? MMC1clock的使能在CM_PER中,偏移量为0xF4h. |
|
|
|
hwjj940056201 发表于 2018-6-21 01:09 我在调试MMC1读写emmc的程序。可以进入main()函数进行单步调试,但是在访问函数 HSMMCSDBusPower(SOC_MMCHS_1_REGS, HS_MMCSD_BUS_POWER_ON);//emmc power on的时候,进入函数内部,到 HWREG(baseAddr + MMCHS_HCTL) = (HWREG(baseAddr + MMCHS_HCTL) & ~MMCHS_HCTL_SDBP) | pwr; 这一个语句后,出现截图状态。 下面是单步调试的图 最后停在了这里 |
|
|
|
hwjj940056201 发表于 2018-6-21 01:09 HWREG(0x44E00000 + 0xF4) = 0x00000002; 打开时钟后,可以对MMC1进行访问和操作。多谢Steven帮忙 |
|
|
|
hwjj940056201 发表于 2018-6-21 01:09 HWREG(0x44E00000 + 0xF4) = 0x00000002; 打开mmc1时钟后。可以对MMC1进行访问和函数操作。多谢Steven帮忙 |
|
|
|
chexiaohuo 发表于 2018-6-21 01:54 你好,请问你用starterware调好了你的MMC了么?我现在也在做这块,能不能请教几个问题呢?能不能给个联系方式 |
|
|
|
只有小组成员才能发言,加入小组>>
461 浏览 0 评论
普中科技F28335开发板每次上电复位后数码管都会显示,如何熄灭它?
310 浏览 1 评论
907 浏览 0 评论
TMS320F28377D:新做了以377d为芯片的板子,上电后芯片复位引脚出现方波请问如何解决?
2081 浏览 0 评论
TPS55340通电后输入端保险丝烧断,芯片输入和GND之间短路
3824 浏览 4 评论
CC3100BOOST使用CC3200lunchXL进行烧录
865浏览 2评论
100浏览 2评论
137浏览 2评论
114浏览 2评论
137浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-2 10:12 , Processed in 0.917654 second(s), Total 92, Slave 75 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191