- 积分
- 4
贡献16
飞刀0 FD
注册时间2015-8-8
在线时间0 小时
扫一扫,手机访问本帖
|
我自己用了官方光盘中的demo进行烧写,是没有问题的,从串口也看到相关信息,整个过程都很顺利。
但我将文件系统换成了我另外编译的一款以后(Tizen,yaffs文件大约800多M),怎么都刷不进去,每次就在读文件系统的地方挂住,我也尝试过printf一些日志进行观察,目前跟踪到:
文件:./drivers/mmc/s3c_hsmmc.c
函数:s3c_hsmmc_send_command(struct mmc *mmc, struct mmc_cmd *cmd,
struct mmc_data *data
挂死位置:
if (data) {
while (!(mask & (SDHCI_INT_DATA_END | SDHCI_INT_ERROR | SDHCI_INT_DMA_END))) {
mask = readl(host->ioaddr + SDHCI_INT_STATUS);
}
writel(mask, host->ioaddr + SDHCI_INT_STATUS);
if (mask & SDHCI_INT_ERROR) {
printf("error during transfer: 0x%08x\n", mask);
return -1;
} else if (mask & SDHCI_INT_DMA_END) {
printf("SDHCI_INT_DMA_END\n");
} else {
dbg("r/w is done\n");
}
}
看代码没有想明白为什么,今天测试了一下午,挂死前while的循环次数还不一样,有前辈遇到过同样的情况吗?请赐教
|
|