我是引导加载程序世界的新手,我有一个问题,当我们发送写入命令时,我们如何分配数据源,这与函数参数*src相关?我跟踪了源代码,但我找不到它在 c 代码中分配数据源的位置。
我自己回答:我发现当我们执行#mmc write 1 0x4 2 时,参数表示dev #1,block #4,count 2,如下函数的参数 mmc->block_dev.block_write( curr_device, blk, cnt, addr );
但是,我仍然想知道,是否可以直接分配外部数据源?
mmc write 或 mmc read 是否只能从内部存储器写入/读取?
是否可以分配外部数据源,例如来自 USB 端口或 SD 卡?
最良好的问候。
static unsigned long mmc_bwrite(int dev_num, unsigned long start, lbaint_t blkcnt, const void *src){
int err;
struct mmc *mmc = find_mmc_device(dev_num);
if (!mmc) {
printf("MMC Device %d not found\n", dev_num);
return 0;
}
if (blkcnt > 1)
return mmc_bwrite_multi(mmc, start, blkcnt, src);
else if (blkcnt == 1)
return mmc_bwrite_single(mmc, start, src);
return 0;
}
我应该如何跟踪如下代码?
mmc->block_dev.block_write = mmc_bwrite;