当前位置: 首页 > news >正文

医疗网站建设行情重庆seo杨洋

医疗网站建设行情,重庆seo杨洋,中国建设局网站招聘,偷拍小情侣酒店做爰网站STM32 Hal库SDIO在FATFS使用下的函数调用关系 本文并不将FATFS的相关接口操作,而是将HAL在使用FATFS通过SDIO外设管理SD卡时,内部函数的调用逻辑,有助于当我们使用CUBEMX生成FATFS读取SD卡的代码时无法运行时Debug。本文也会说明一些可能出现…

STM32 Hal库SDIO在FATFS使用下的函数调用关系

本文并不将FATFS的相关接口操作,而是将HAL在使用FATFS通过SDIO外设管理SD卡时,内部函数的调用逻辑,有助于当我们使用CUBEMX生成FATFS读取SD卡的代码时无法运行时Debug。本文也会说明一些可能出现的bug用于参考。

主要对象和变量的说明

接口文件 sd_diskio.c

  • 文件sd_diskio.c 是CUBEMX自动生成的FATFS操作SD卡的接口函数文件,如果没有CubeMX生成的话,一般这个文件是需要我们自己写的。
  • 这个文件中有一个全局变量 SD_driver 这个全局变量是底层操作接口的函数集合,Diskio_drvTypeDef 类型。包含的操作函数接口有 SD_initializeSD_statesSD_reead SD_write SD_read SD_ioctl
  • 上面提到的接口函数都调用了BSP_ 开头的函数,这是CubeMX生成的底层直接操作SDIO的函数。

驱动器数组

  • 驱动器类型是 Disk_drvTypeDefff_gen_drv.c 文件中有这个类的一个全局变量 disk

  • typedef struct
    { uint8_t                 is_initialized[_VOLUMES];Diskio_drvTypeDef       *drv[_VOLUMES];uint8_t                 lun[_VOLUMES];__IO uint8_t            nbr;}Disk_drvTypeDef;
    
  • 这个驱动集合中用多个数组来存放各个驱动器操作函数接口集合drv和对应的卷号lun。而在CubeMX中生成的MX_FATFS_Init 中就将 SD_Driver 这个SD卡的接口函数集合变量和卷号0绑定在一起。

函数调用关系图

函数调用关系图

上面的关系图很清楚的说明各个函数间的调用关系。有些需要注意的地方在下面说明:

  • MX_SDIO_SD_Init 只是对 hsd 这个结构体的部分成员作初始化,真正初始化SDIO的动作不在这儿。

    • 而且这里赋值的hsd.Init.BusWide 只是中间阶段测试读取一个块大小时参数,并不是最终的参数。所以,这里,这个参数一定要求是SDIO_BUS_WIDE_1B
    • 如果我们硬件最终设计的是1B/4B/8B的卡的话,直接在CubeMX设置就可以,它会在BSP_SD_init 最后使用HAL_SD_ConfigWideBusOperation设置对应运行的SDIO的数据位宽。
    • 这里赋值的hsd.Init.ClockDiv 是 最终运行时SDIO的运行速率。
  • 真正对SDIO进行初始化的地方是f_mount 函数调用时,通过数组索引到SD卡驱动接口函数集合 SD_Driver 再调用其中的 SD_initialize 实现SDIO底层硬件的初始化。

    所以需要注意,如果我们有任何对SD卡直接的操作,需要放在 f_mount 之后,因为在f_mount 之前,SDIO外设根本还没有开始初始化。

  • 由于SD卡在初始化的时候一开始需要以1B位宽低速进行读取和设置,所以 BSP_SD_Init 中使用了三次SDIO外设的初始化SDIO_Init,具体看上面的关系图即可。

http://www.dt0577.cn/news/15158.html

相关文章:

  • 建网站如何添加会员模式东莞做网站公司电话
  • 浏阳网页设计快速seo关键词优化技巧
  • 做搜狗pc网站排名搜索引擎营销的英文缩写
  • 视频模板网站网络推广优化平台
  • 网站开发需要掌握技术保定百度推广联系电话
  • 武汉企业做网站找哪家好谷歌搜索引擎363入口
  • 手机美女图片网站模板卢镇seo网站优化排名
  • 做窗帘店的网站关键词有哪些
  • 定制网站开发平台线下推广怎么做
  • 小说网站的阅读界面怎么做的接推广怎么收费
  • 江苏省建设厅网站职称评审系统上海已经开始二次感染了
  • 今科云平台网站建设技术互联网营销平台有哪些
  • 京东那个做快消的网站莆田seo推广公司
  • 模板施工视频seo网站关键词优化哪家好
  • 济南浩辰网站建设公司怎么样百度关键词排名优化
  • 上海模板建站平台百度关键词排名联系
  • wordpress编辑器上传图片衡阳seo外包
  • 网站建设空间选择的重要性人民日报新闻
  • 扬州市建设厅网站百度收录申请入口
  • 达濠网红景点保定百度推广优化排名
  • 个人博客网站开发的意义日本樱花免m38vcom费vps
  • 百度做的网站和其他网站的区别优秀网站设计案例
  • 网站开发项目说明书少儿培训
  • 网站建设服务承诺百度问答入口
  • 什么网站可以做公共基础知识免费二级域名平台
  • 开发区实验小学seo网站整站优化
  • 购物网站设计流程图东莞网站seo公司
  • 江阴哪家做网站便宜高质量外链代发
  • 一个平台怎么推广广州百度seo排名优化
  • 挑号网站后台怎么更新举例说明什么是seo