- 论坛徽章:
- 0
|
本帖最后由 hezhaoaqiang 于 2012-09-06 11:29 编辑
我从官网上下载了最新的bootloader,在lib_arm下的mmc_initialize()函数跳转到mmc.c中,函数如下
/*board.c*/
#ifdef CONFIG_GENERIC_MMC //配置文件中有定义
puts("MMC: hezhao test mmc init \n");
mmc_initialize (gd->bd); /* go init the MMC */
#endif
/*mmc.c*/
static int __def_mmc_init(bd_t *bis)
{
puts("def_mmc_init--board_mmc_init\n");
return -1;
}
int cpu_mmc_init(bd_t *bis) __attribute__((weak, alias("__def_mmc_init")));
int board_mmc_init(bd_t *bis) __attribute__((weak, alias("__def_mmc_init")));
int mmc_initialize(bd_t *bis)
{
int ret = 0; //我定义的一个测试变量
INIT_LIST_HEAD (&mmc_devices);
cur_dev_num = 0;
ret = board_mmc_init(bis);
printf("the test ret result is : %d\n", ret);
print_mmc_devices(',');
return 0;
}
同时执行到此调用 board_mmc_init()函数,
#ifdef CONFIG_DAVINCI_MMC
static struct davinci_mmc mmc_sd0 = {
.reg_base = (struct davinci_mmc_regs *)DAVINCI_MMC_SD0_BASE,
.input_clk = 121500000,
.host_caps = MMC_MODE_4BIT,
.voltages = MMC_VDD_32_33 | MMC_VDD_33_34,
.version = MMC_CTLR_VERSION_2,
};
int board_mmc_init(bd_t *bis)
{
int err;
/* Add slot-0 to mmc subsystem */
err = davinci_mmc_init(bis, &mmc_sd0);
if(err)
return err;
return err;
}
#endif
经过我的测试,此程序 board_mmc_init()一直是返回 -1,不能进入Davinci_mmc_init()程序,对我的am1808进行初始化。不知道什么原因造成的。寻求高手求解……先谢谢各位了~~
|
|