【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】
说是sd卡,其实是micro sd卡,或者称之为tf卡更合适。一般的soc都支持从tf卡启动,所以用tf卡来学习soc、驱动和linux,对新人来说是比较合适的。前面我们已经用sd卡构建了一个类似于最小软件框架的系统,使得linux可以顺利在f1c200s上面运行起来。这说明了两个问题,第一,uboot包含了sd卡驱动代码,不然无法加载kernel和dtb;第二,linux kernel也是可以驱动sd卡的,不然它也无法加载根文件系统,无法处理shell的各种命令请求。
那么问题来了,既然sd卡驱动都已经包含在最小软件框架里面了,为什么还要来学习sd卡驱动呢?主要还是为了了解这一框架和架构,有利于加深自己的印象,方便以后应用。
1、原理图
sd卡的原理不复杂,除了clk和cmd之外,剩下来就是4根数据线,分别是d0-d3,其他的就是vcc和gnd。4根数据线,每一个都接47k上拉电阻。clk直接连接f1c200s,而cmd也同样需要连接47k上拉电阻。
2、设备树
f1c200s的设备树比较简单,主要就两个文件。一个文件是suniv-f1c100s.dtsi,另外一个是<