/**************************************************************************** * I.MX6 uSDHC SD card register * 声明: * 本文主要是记录SD card注册的相关流程及遇到的一些问题。 * * 2015-12-20 深圳 南山平山村 曾剑锋 ***************************************************************************/ \\\\\\\\\\\\\-*- 目录 -*-///////////// | 一、参考文章: | 二、引脚配置: | 三、板级文件配置: | 四、开启SDHCI驱动: | 五、解决ExExplorer无法删除文件 ------------------------------------- 一、参考文章: Android 4.4.2 SD卡权限修复器1.2中文版 http://www.sonyue.com/bbs/forum.php?mod=viewthread&tid=93351 二、引脚配置: cat arch/arm/mach-mx6/board-mx6dl_sabresd.h ...... static iomux_v3_cfg_t mx6dl_sabresd_pads[] = { ...... /* USDHC3 */ MX6DL_PAD_SD3_CLK__USDHC3_CLK_50MHZ, MX6DL_PAD_SD3_CMD__USDHC3_CMD_50MHZ, MX6DL_PAD_SD3_DAT0__USDHC3_DAT0_50MHZ, MX6DL_PAD_SD3_DAT1__USDHC3_DAT1_50MHZ, MX6DL_PAD_SD3_DAT2__USDHC3_DAT2_50MHZ, MX6DL_PAD_SD3_DAT3__USDHC3_DAT3_50MHZ, /* SD3_CD */ MX6DL_PAD_KEY_COL2__GPIO_4_10, /* SD3_WP 未使用*/ MX6DL_PAD_SD3_RST__GPIO_7_8, ...... } ..... 三、板级文件配置: cat arch/arm/mach-mx6/board-mx6q_sabresd.c ...... #define SABRESD_SD3_CD IMX_GPIO_NR(4, 10) ...... static const struct esdhc_platform_data mx6q_sabresd_sd3_data __initconst = { .cd_gpio = SABRESD_SD3_CD, //没有接,所以不用,另一个原因是我们使用的是TF卡,没有写保护的问题 //.wp_gpio = SABRESD_SD3_WP, .keep_power_at_suspend = 1, .support_8bit = 1, .delay_line = 0, .cd_type = ESDHC_CD_CONTROLLER, .runtime_pm = 1, }; ...... /** * Board specific initialization. */ static void __init mx6_sabresd_board_init(void) { ...... //当前我们的SD卡挂载在这个上面 imx6q_add_sdhci_usdhc_imx(2, &mx6q_sabresd_sd3_data); ...... } ..... 四、开启SDHCI驱动: 打开下列红线框出的驱动: ────────────────────────────────────────────────────────────────────────────── ┌───────────────────────── MMC/SD/SDIO card support ─────────────────────────┐ │ Arrow keys navigate the menu. <Enter> selects submenus --->. │ │ Highlighted letters are hotkeys. Pressing <Y> includes, <N> excludes, │ │ <M> modularizes features. Press <Esc><Esc> to exit, <?> for Help, </> │ │ for Search. Legend: [*] built-in [ ] excluded <M> module < > module │ │ ┌────^(-)────────────────────────────────────────────────────────────────┐ │ │ │ [*] Deferr MMC layer resume until I/O is requested │ │ │ │ < > SDIO UART/GPS class support │ │ │ │ <*> MMC host test driver │ │ │ │ *** MMC/SD/SDIO Host Controller Drivers *** │ │ │ │ < > ARM AMBA Multimedia Card Interface support │ │ │ │ <*> Secure Digital Host Controller Interface support │ │ │ │ < > SDHCI support on PCI bus │ │ │ │ <*> SDHCI support on the platform specific bus │ │ │ │ [*] SDHCI platform support for the Freescale eSDHC i.MX controll│ │ │ │ < > TI Flash Media MMC/SD Interface support (EXPERIMENTAL) │ │ │ │ < > ENE CB710 MMC/SD Interface support │ │ │ │ < > VIA SD/MMC Card Reader Driver │ │ │ └────v(+)────────────────────────────────────────────────────────────────┘ │ ├────────────────────────────────────────────────────────────────────────────┤ │ <Select> < Exit > < Help > │ └────────────────────────────────────────────────────────────────────────────┘ 五、解决ExExplorer无法删除文件 1. 从Android 4.4.2开始,谷歌系统禁用了外置存储卡的第三方程序写入权限,于是大容量的SD卡无用武之地。 2. 搜索网络,我们可以找到解决的办法,但太复杂,而且容易搞错。 3. 添加外置卡的写入权限 4. RE管理器, 用文本编辑器打开/system/etc/permissions目录下的“"platform.xml”文件(挂载读写),在 <permission name="android.permission.WRITE_EXTERNAL_STORAGE" > < group gid="sdcard_rw" /> 下面添一行 <group gid="media_rw" /> (注意段首对齐,"media_rw"和/>之间有空格) 保存并退出,重启系统即可.