私はブートローダーの世界に不慣れです。関数引数 *src に関連するデータ ソースを割り当てる方法について、書き込みコマンドを送信するタイミングについて質問があります。ソース コードをトレースしましたが、C コードでデータ ソースが割り当てられている場所が見つかりません。
自分で答えます: #mmc write 1 0x4 2を実行 すると、引数はdev # 1、ブロック # 4、カウント 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;