| 
 
贡献16 
飞刀0 FD
注册时间2015-8-8
在线时间0 小时积分4 
 
 扫一扫,手机访问本帖  | 
 
| 我自己用了官方光盘中的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的循环次数还不一样,有前辈遇到过同样的情况吗?请赐教
 
 | 
 |