一.问题描述在一个使用FreeRTOS的工程中,只做了SD卡的驱动,由于RTOS使用了Systick,故非系统延时函数使用的是 DWT中的时钟周期(CYCCNT)计数功能,但是在SD卡驱动中使用了这个非系统延时导致,烧写程序后板子工作正常,而下电再上电后板子无反应,分析排查去掉了这个非系统延时后工作正常. 二.使用环境1)开发环境使用的是MDK5.20,下载器为JLINK:2)软件工程是V6的FreeRTOS模板工程,SD卡驱动也是V6的,非系统延时函数所在文件为V6的 bsp_dwt.c:3)…
点击打开链接 内容来自以下博客: http://blog.csdn.net/qianjin0703/article/details/5918041 Linux设备驱动子系统第二弹 - SD卡 (有介绍SD卡硬件)http://blog.csdn.net/wavemcu/article/details/7366852     linux2.6内核SD Card Driver详细解析之一http://blog.chinaunix.net/uid-147915-id-3063162.html     …
三.下面分析一下高通的android2.3的代码中SD卡驱动的流程. 在kernel中,SD卡是作为平台设备加入到内核中去的,在/kernel/arch/arm/mach-msm/devices-msm7627a.c中: [cpp] view plaincopy static void __init msm7x2x_init(void) -> static void __init msm7x27a_init_mmc(void) -> msm_add_sdcc(1, &sdc1_plat…
Android下的SD卡驱动与标准LINUX下的SD卡驱动好像没有太大的区别,这里就以高通的ANDROID 2.3以代表,来简要分析一下LINUX下SD卡驱动的写法.由于小弟的技术有限,分析的有错的地方,请大家指正,可以共同学习. 一.最先来理清一下SD.MMC与SDIO的一些基本概念: (1)  MMC:(Multi Media Card)是较早的一种记忆卡标准,目前已经被 SD 标准所取代. (2)  SD:(Secure Digital Memory Card) 是一种 flash mem…
开发环境:win10 64位 + VMware12 + Ubuntu14.04 32位 工具链:linaro提供的gcc-linaro-6.1.1-2016.08-x86_64_arm-linux-gnueabi 要移植的u-boot版本:u-boot-2016-11 Tiny4412开发板硬件版本为:   底板:  Tiny4412SDK 1312B   核心板:Tiny4412 - 1306 --------------------------------------------------…
1.根据硬件原理图,找到对应控制sd卡电源的gpio引脚,并在sd卡驱动文件中定义操作改该引脚的宏 2.在sd卡检测函数中,使用glib增加开sd卡电源的操作,如此当sd卡每次被检测到时,驱动中就会自动打开sd卡电源.从而解决sd卡低电压的问题…
前面对SD卡控制器有了一个主要的介绍.事实上SD控制器层更过的意义是为core层提供一种操作SD卡硬件的一种方法.当然不同的控制器对硬件控制的方法不尽同样,可是他们终于都能像core层提交一个统一的封装有操作方法的数据结构,那便是即将闪亮登场的struct mmc_host_ops....相应的host文件为s3cmci.c. 接下来就来揭开与之相应的struct mmc_host_ops结构的神奇面纱.... static struct mmc_host_ops s3cmci_ops = {…
作者信息 作者: 彭东林 邮箱:pengdonglin137@163.com QQ:405728433 平台简介 开发板:tiny4412ADK + S700 + 4GB Flash 要移植的内核版本:Linux-4.4.0 (支持device tree) u-boot版本:友善之臂自带的 U-Boot 2010.12 (为支持uImage启动,做了少许改动) busybox版本:busybox 1.25 SD卡:Kingston SDHC 4GB 交叉编译工具链: arm-none-linux…
init_timer(&timer1); timer1.function = test_time; timer1.data = ; timer1.expires = jiffies + msecs_to_jiffies(); add_timer(&timer1); sd_test(mmc); printk("count = %d \n",count); sd_test()函数写在probe函数中,但要等待sd初始化完毕才行,需要在上电时就插入SD卡,而不要等待系统起来之…
一.sd卡烧写系统的基本思路: (1)把uboot.bin烧写到sd卡 (2)把image整个文件夹复制到sd卡 (3)开发板从sd卡启动,就开始自动烧写到nandflash中了. 二.烧写uboot.bin到sd卡 (1)sd卡分区和格式化(烧写第一步) <1>把卡插入pc,windows下格式化 <2>点vm右下链接sd卡到linux,然后在终端输入: #dmesg|tail //查看挂载点 #df—h  //查看sd卡文件挂载位置 #umount /media/      /…
一.制作SD启动卡(安装Linux)步骤: 烧写原理:superboot-6410.bin(bootloader)+内核镜像文件+根文件系统 1.将SD卡插入USB接口的读卡器,并插在PC的USB口 2.在SD卡目录下新建“images”目录 3.复制“superboot-6410.bin”到“images”目录下 4.在“images”目录下新建“Linux”子目录 5.分别复制内核镜像文件和跟文件系统镜像文件到“Linux”子目录 内核:zlmage 根文件系统 MLC:rootfs_qto…
https://blog.csdn.net/zqixiao_09/article/category/6163492 sd 协议解析: https://blog.csdn.net/g_salamander/article/details/14167055 已经看到 2.Response:应答是卡片发回数据的令牌 SDIO总线协议:https://blog.csdn.net/u012041204/article/details/72597806…
显卡驱动 该发行版依旧内置了Nouveau 开源驱动,这是导致频繁死机的直接原因.接下来要做的三件事情是: 禁用Nouveau 内核模块 安装Intel HD 530 驱动(二选一) 安装NVIDIA 闭源驱动(二选一) 禁用Nouveau 内核模块 首先添加一个blacklist: # vi /etc/modprobe.d/blacklist-nouveau.conf 在这个文件中写入以下内容: 1 2 3 4 5 blacklist nouveau blacklist lbm-nouveau…
了解STM32F103ZET是高容量多管脚的芯片 了解SD读写线路图 了解SD的基地址 阅读STM32F10xx英文参考 SDIO那章,我们编写代码边看文档解析 建工程,打开包含所有包括外设库函数的样本工程,然后留下如下的外设 官方给的E:\2018-9-3\stm32-奋斗者\STM32 官方库3.5版本\stm32f10x_stdperiph_lib35\STM32F10x_StdPeriph_Lib_V3.5.0\Utilities\STM32_EVAL\Common下的文件只是用于他们的…
S3C2416裸机开发系列十六 sd卡驱动实现 象棋小子    1048272975 SD卡(Secure Digital Memory Card)具有体积小.容量大.传输数据快.可插拔.安全性好等长处.被广泛应用于便携式设备上.比如作为数码相机的存储卡,作为手机.平板多媒体扩展卡用的TF卡(micro sd).笔者此处就s3c2416 sd卡驱动的实现作一个简单的介绍. 1. sd卡概述 sd卡技术是在MMC卡的基础上发展起来的,其尺寸与MMC卡一样,仅仅是比MMC卡厚了0.7mm,因此sd设…
第36章     SDIO—SD卡读写测试 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资料:<STM32F4xx参考手册>.<STM32F4xx规格书>.库帮助文档<stm32f4xx_dsp_stdperiph_lib_um.chm>以及SD简易规格文件<Physical Layer Simplified Specificatio…
转自:http://www.cnblogs.com/cslunatic/p/3678045.html 一.SD/MMC/SDIO概念区分 SD(SecureDigital)与 MMC(MultimediaCard) SD 是一种 flash memory card 的标准,也就是一般常见的 SD 记忆卡,而 MMC 则是较早的一种记忆卡标准,目前已经被 SD 标准所取代.在维基百科上有相当详细的 SD/MMC 规格说明:[http://zh.wikipedia.org/wiki/Secure_D…
第36章     SDIO—SD卡读写测试 全套200集视频教程和1000页PDF教程请到秉火论坛下载:www.firebbs.cn 野火视频教程优酷观看网址:http://i.youku.com/firege 本章参考资料:<STM32F4xx参考手册>.<STM32F4xx规格书>.库帮助文档<stm32f4xx_dsp_stdperiph_lib_um.chm>以及SD简易规格文件<Physical Layer Simplified Specificatio…
(1)SD卡的引脚定义:  SD卡SPI模式下与单片机的连接图: 注意:SPI模式时,这些信号需要在主机端用10~100K欧的电阻上拉.      SD卡支持两种总线方式:SD方式与SPI方式.         SD方式采用6线制,使用CLK.CMD.DAT0~DAT3进行数据通信.         SPI方式采用4线制,使用CS.CLK.DataIn.DataOut进行数据通信.     SD方式时的数据传输速度与SPI方式要快,采用单片机对SD卡进行读写时一般都采用SPI模式.采用不同的初始…
http://www.amobbs.com/thread-4503884-1-1.html 这个小玩意,采用 ATMEL 的传统51MCU作主控制芯片,加上SD卡和显示屏,就可以作简单的音乐播放器了,虽然音质不怎么样,不过作为DIY还是蛮有乐趣,希望大家喜欢. 没有采用FAT文件系统,只是按扇区读取SD卡,由于2051资源有限,改为4051有望可以操作FAT,但目前程序还在不断完善中.128byte怎样读取512byte的扇区数据?可以采用边读边播放的方式,就能解决.音乐文件是32KHz取样率的…
SD卡是嵌入式设备中很常用的一种存储设备,体积小,容量大,通讯简单,电路简单所以受到很多设备厂商的欢迎,主要用来记录设备运行过程中的各种信息,以及程序的各种配置信息,很是方便,有这样几点是需要知道的 SD 卡是基于 flash 的存储卡. SD 卡和 MMC 卡的区别在于初始化过程不同.SD卡并不是我们通常意义上的手机扩展卡,那种卡叫做TF卡,但是通讯以及驱动模式是类似的. SD 卡的通信协议包括 SD 和 SPI 两类,SD卡上电之后默认处于SD状态. SD 卡使用卡内智能控制模块进行 FLA…
2011-06-06 23:04 前2天,我了解了一下SD卡驱动的原理及FAT32文件系统的结构.接着准备主要已移植为主.通过LCD显示SD卡中的图片.但我需要分步进行. 0,使sd卡能读写数据.1,用512个字节的方式读一幅bmp图片.2,调用fat系统函数,读sd卡的基本信息. 3,调用fat系统,读sd卡中txt文件的基本信息. 已上步骤今天已经完成.效果如下 接着等我考完试应该是下一个周末,将要做如下事情. 4,SD卡读取txt文件信息 5,调用fat系统,读sd卡中bmp文件的基本信息…
(1)通过#fdisk -l命令确认板子上的linux系统是否识别SD卡 MP805M板子插入SD卡后显示 SD30 slot is without WPmmc1: new high speed SD card at address 5bc0mmcblk0: mmc1:5bc0 SD02G 1.83 GiB mmcblk0: p1 [/]# fdisk -l Disk /dev/mtdblock0: 1 MB, 1179648 bytes255 heads, 63 sectors/track,…
首先,保证sd卡驱动是完好,但是sd卡却无法热插拔或者无法识别. 刚开始我的板子上,sd是能够读取的,但是却不支持热插拔,看了几天sd驱动,找到了问题的原因,是驱动中硬件引脚相关设置的问题,具体根绝个人板子来修改,我想说的是sd卡驱动完好下如何使板子支持热插拔,内核的相关配置我就不多说了,网上很多. 1)确保内核支持热插拔# cd linux-2.6.30.4# vi .config CONFIG_KALLSYMS=y # CONFIG_KALLSYMS_ALL is not set # CON…
  为了学习SD/SDIO协议,看了一下linux中初始化SD卡的流程,结合代码更容易SD初始化是怎么做的. 下面图截自:"SD Specifications Part 1 Physical Layer Simplified Specification Version 4.10" SD卡在sd模式下的初始化流程图,sd协议还有spi模式暂不研究. 这个流程图对应于linux 代码就在 /driver/mmc/core/sd.c static int mmc_sd_init_card(s…
这个知识点以后会越来越没什么用,因为这类导航慢慢就会消失.记录这个,就是提醒自己如何防止以为很懂而被骗. 随着导航地图越来越大,4G的SD卡很快就不够用了,但是很不幸车载导航款式太老了,不支持大于4G的SD卡. 网上搜索答案,看到一个人这么说,“就是底层 uint 32 不能表示 4G以上卡的问题,写过SD卡驱动的都晓得”,好像很有道理,我这好歹也写了十几年程序的人也就信了,虽然我从来没写过驱动,隔行如隔山啊. 再后来也就是昨天了,看到有人说FAT32分区选32KB分配单元就能用8G的卡,一试果…
由于之前把树莓派系统安装在4gb的sd卡上,随着系统的更新及安装了一大堆软件包之后,系统提示空间不足了.网上搜索了下,把所有数据迁移到新的sd卡上还是比较简单的. 克隆sd卡: 1,关闭树莓派电源,取出sd卡.插入到电脑的读卡器插槽中. 2,安装并运行Win32DiskImager. 3,在"Image File"选择框中,输入克隆的新文件路径. 例如,我放在"C:\Users\Yvan\Documents\archlinux.img". 4, 在"Dev…
如果大家嫌虚拟机复杂,我这里提供一个我没用虚拟机之前的分区方法:这个方法实际是可行的 我在没有用虚拟机之前,我是这样操作的1.首先在分区软件分好fat32+ext2+ext22.然后用recovery进入SD卡分区选项,升级到ext3,再升级到ext4,然后开始安装ROM3.装好后用分区软件看,recovery只帮我将第三个分区升级到了ext44.不过没关系,在我能正常使用系统后,我再次进入recovery,再进入分区选项,升级到ext3,再升级到ext4,一样成功将两个分区升级到ext4不过用…
因为最近项目需要,涉及到 SD卡 的读写操作,然而申请 <!-- 读写权限 --> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 权限只能对 SD卡 进行读操作,而没有写权限,也…
一.准备工作 1.已经配置启动的树莓派SD卡 2.Linux系统的pc 3.读卡器 二.修改SD卡文件 刚开始我先再win7下把SD卡接到pc上,发现无法读取.用DISKGENIUS查看pc的磁盘状态,发现SD卡被格式化为两个分区,一个56M的Fat32分区,一个7.5G的Ext3分区.如下图: Ext3分区在win下无法读出,所以改换linux系统打开SD卡. 在linux命令行上输入 df -h 可以看到有两个分区sbd1和sdb2已经挂载到pc上了. 接下来对SD中的文件进行修改.ls进入…