- 論壇徽章:
- 0
|
本帖最后由 hezhaoaqiang 于 2012-09-06 11:29 編輯
我從官網(wǎng)上下載了最新的bootloader,在lib_arm下的mmc_initialize()函數(shù)跳轉(zhuǎn)到mmc.c中,函數(shù)如下
/*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;
}
同時執(zhí)行到此調(diào)用 board_mmc_init()函數(shù),
#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
經(jīng)過我的測試,此程序 board_mmc_init()一直是返回 -1,不能進入Davinci_mmc_init()程序,對我的am1808進行初始化。不知道什么原因造成的。尋求高手求解……先謝謝各位了~~
|
|