MTK平台SD热插拔相关设置以及问题解决
来源:互联网 发布:fastboot刷zip软件 编辑:程序博客网 时间:2024/06/16 15:47
MTK6735/53平台项目添加SD卡的热插拔功能
测试报出的bug是SD卡无法进行热插拔,只能在通过重启之后才能读取到SD卡的信息。
根据读取相应的平台手册,找到了一些相应的设置方法,在根据文档设定完dws文件的设置之后,发现仍然不能进行热插拔的动作,之后开始分析情况。
首先,考虑到SD卡能够在重启之后进行读取,则排除了SD卡无法读取方面的相关问题。分析得出是没有生成中断,造成无法识别到SD卡。在查看相应驱动函数,也就是函数中的处理中断和申请中断的函数后,发现中断已经生成,并且中断处理函数也在执行之中。
之后,在对检测口的GPIO进行手动赋值,在设置为低电平有效的情况,向GPIO79口写入低电平的时候,SD卡能够在系统中进行识别,但是仍然无法进行热插拔检测。同时,在检测GPIO79口的状态的时候,看到开机之后保持的是低电平状态,无法通过插拔SD卡进行改变,这说明了中断正常,但是GPIO口有异常,怀疑是GPIO口的设置有问题或者是硬件设计时,gpio79口本身是不支持中断。
*MTK平台SD卡相关设置1.dws文件中,首先需要去设置对应的GPIO口,需要将对应的GPIO口设定成中断口,同时在中断设定的界面中,需要需要设置中断的名称,去抖动时间,还有触发的方式。2.针对MTK平台对于SD卡热插拔,在MTK说明文档中,设定了一个热插拔的标志位,这个标志位是MSDC_CD_PIN_EN和MSDC_REMOVABLE,这两个标志位的设置是在myandroid/CB04/kernel-3.10/drivers/misc/mediatek/mach/mt6735/cb04_6753/core/board.c中的struct msdc_hw msdc1_hw这个结构体。***MTK平台SD驱动相关函数分析**static irqreturn_t msdc1_eint_handler(void)这个函数的作用是用在热插拔的时候,对于中断的处理函数,其中主要是用来检测SD的状态,同时设置相应的电平触发方式。static void msdc_enable_cd_irq(struct msdc_host *host, int enable)这个函数的作用是用来使能中断。通过读取dws文件来读取中断GPIO号和去抖动的延迟时间,同时来设置触发中断的方式,并且申请中断request_irq
关于ADAS项目中SD卡热插拔问题所出现的电平相反的问题
通过硬件分析,得出的结果是在项目中的SD卡的卡槽与其他项目的不同,是在插入SD卡的时候,电平由低电平变成高电平。也就是中断触发的方式是高电平触发,但是在程序中,还是以低电平触发方式,因此,需要对程序中的电平触发方式进行修改。
在项目所在的dws文件中,需要对中断中触发的电平进行设置,要将低电平触发改成高电平触发。
后在进行编译调试之后,发现仍然无法对卡进行识别,因此通过log对代码的执行情况进行调查。发现在程序中设置的电平中断的触发方式的设置仍然是低电平触发,但是没有在当前程序中找到设置电平触发的参数。
之后找到函数初始化函数进行查找,根据追踪的信息,找到了设置电平触发的结构体,进行了相应的修改,之后项目板则可以进行相应的热插拔工作。
**相关文件以及函数说明:
1.ADAS项目的dws文件
kernel-3.10\drivers\misc\mediatek\mach\mt6735\(项目名称)\dct\dct\codegen.dws
2.函数数据结构体文件,在其中修改热插拔的相关文件,以及中断的电平触发方式
kernel-3.10/drivers/misc/mediatek/mach/mt6735/cb04_6753/core/board.c**
- MTK平台SD热插拔相关设置以及问题解决
- mtk平台如何屏蔽modem,蓝牙以及sd卡
- mtk平台,相关问题总结
- mtk平台,相关问题总结
- MTK手机平台及相关
- MTK平台手机相关指令
- MTK平台相关功能支持
- android 通讯相关,MTK平台
- MTK平台 电池驱动相关
- mtk平台dsi clock设置
- MTK平台编译环境设置
- mtk平台dsi clock设置
- Androidstudio-framwork开发MTK平台,导入关联源码及AS一些相关设置
- MTK平台修改默认时间,以及恢复出厂设置后的默认时间显示
- LINUX系统以及ANDROID 平台log信息输出级别设置 [MTK]
- LINUX系统以及ANDROID 平台log信息输出级别设置 [MTK]
- ALSPS原理以及mtk平台代码走读
- CocoaPods安装以及相关问题解决
- iOS自定义控件教程(二)关于响应链的那些事
- 南阳理工oj-5 Binary String Matching
- 大数据挖掘的本质和意义
- hdu 2896 病毒入侵 AC自动机
- 值栈
- MTK平台SD热插拔相关设置以及问题解决
- iOS自定义控件教程(三)UIView动画入门
- 23种设计模式之工厂方法模式
- linux多文件,多目录的嵌套编译
- iOS自定义控件教程(四)UIControl - 幕后的英雄
- 数据库中TIMESTAMP , DATE 和 DATETIME
- LeetCode_91、120两题(动态规划)
- 人工智能中医
- cocos2dx-2.x的eclipse打包apk