一、ENV使能SDIO
1.1.在kconfig增加配置
因为ART-PI的SDIO2连接的是wifi,所以这里我们使用SDIO1。
![SDIO](https://img-blog.csdnimg.cn/9f43498ebcbe4f56b3ee79f07c1a56aa.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16)
1.2.ENV中使能SDIO
![SDIO](https://img-blog.csdnimg.cn/8e0242cd13f240ae9036c67bb0946cdb.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16)
1.3.使能文件系统
![filesystem](https://img-blog.csdnimg.cn/27370aaf85444568832cd34f18d5f23e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16)
1.4.使用SD设备
![SD](https://img-blog.csdnimg.cn/0c6480a329bf4ba086d6cfca8d00212e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16)
最后使用命令 scons --target=mdk5 生成工程
二、修改配置文件,适配ART-PI
因为ART-PI的drv_sdio.c程序和主分支的有些差异,所以我们需要修改一下配置文件来适配ART-PI
2.1.修改Kconfig文件
![kconfig](https://img-blog.csdnimg.cn/5e997551bf7c4b4e964b72f18130419d.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16)
2.2.在SConscript添加配置文件
![文件](https://img-blog.csdnimg.cn/6e2269a387244d4abf4e5607eb645542.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16)
![SConscript](https://img-blog.csdnimg.cn/efc72a1465d2416288944f99d31e6e2e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16)
做好了上述步骤,我们还需要在 env 中使用 scons --target=mdk5 命令重新生成一下工程,让刚才的文件加入 mdk 工程目录中
三、MDK配置SDIO遇到的坑
综上的步骤我们做好了以后进行编译,会报以下错误
Undefined symbol DelayBlock_Enable (referred from stm32h7xx_hal_sd.o)
进行全局搜索发现是叫做 stm32h7xx_hal_conf.c 的文件。这里除了定义包含哪些库文件,还有其他的一些定义。
![stm32h7xx_hal_conf.c](https://img-blog.csdnimg.cn/0126d54eb721448f92ebaaa03a686523.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16)
当把这个宏改成了 0u 编译就通过了。
四、编译运行
可以看到,系统已经识别到了我们的SD卡容量,并且将SD卡挂载到了/sdcard下了。
![msh](https://img-blog.csdnimg.cn/aeb5b8d70fdf4a80a39ff048761d4628.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16)
同样我们可以 ls 一下查看我们SD卡中的内容。
![在这里插入图片描述](https://img-blog.csdnimg.cn/d3b322b8f9f94dffb5b56efaef76bf5e.png?x-oss-process=image/watermark,type_ZHJvaWRzYW5zZmFsbGJhY2s,shadow_50,text_Q1NETiBAUmLoj4w=,size_20,color_FFFFFF,t_70,g_se,x_16)
至此关于 ART-PI 在 MDK 中使用 SDIO 设备已经完成
|