at91_sdcard源码分析(1)

程序结构中有mci.h/c和sdmmc_mci.h,这两个文件操作类型C++中父类和子类的操作,由于sdmmc_mci属于mci,所在前者是父类,后者是子类。

typedef struct {

    /// Pointer to a MCI peripheral.
	AT91S_MCI *pMciHw;
    /// MCI peripheral identifier.
    unsigned char mciId;
    /// Pointer to currently executing command.
	MciCmd *pCommand;
	/// Mutex.
	volatile char semaphore;

} Mci;

typedef struct {

    /// Pointer to a SPI peripheral.
    AT91S_MCI *pSdHw;
    /// SPI peripheral identifier.
    unsigned char spiId;
    /// Pointer to currently executing command.
    SdCmd *pCommand;
    /// Mutex.
    volatile char semaphore;

} SdDriver;

这两个结构很相似,其实在代码内部它们通过强制类型转换成需要的类型。设计的意图是SdDriver从mci继承。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值