【发布时间】:2026-01-13 19:30:01
【问题描述】:
我是引导加载程序世界的新手,我有一个问题,当我们发送写入命令时,我们如何分配 数据源,这与函数参数 *src?我跟踪了源代码,但我找不到它在 c 代码中分配数据源的位置。
自己回答:我发现当我们执行 #mmc write 1 0x4 2 时,参数的意思是 dev # 1, block # 4, count 2 如下函数的参数 mmc->block_dev.block_write(curr_device, blk, cnt, addr);
但是,我还是想知道,是否可以直接分配一个外部数据源?
mmc 写入或 mmc 读取是否只能从内部存储器写入/读取?
是否可以分配外部数据源,例如来自 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;
【问题讨论】: