2440从sd卡启动wince

SD卡初始化、读写流程及其相关CMD sd卡初始化、读写 阅读详情

经过一周的时间终于在s3c2440上把sdboot给跑起来了。整个任务是在已有的bootloader上(用usb线从pc下载的方式)修改以支持直接从sd卡上拷贝nk.nb0文件到内存并启动。

    有关sd卡驱动和fat fs的实现用了3个文件来实现。sdboot.c为sd的驱动(可理解为pdd)层,主要实现一些对sd控制器的配置以及一些基本sd命令的实现和对sd卡的操作。sdmmc.c实现了从sd卡读取nk并跳到内存去运行的代码(基本可以理解为sd驱动的mdd层)。sdfat.c文件就是实现fat fs的。mdd层通过fatfs来对pdd层操作以实现读取文件。
    在整个过程中遇到了很多问题,现在列举如下:
1)sd卡初始化问题
    配置gpio有关sd的功能:SDCMD, SDDAT[3:0]。

    使能CLKCON中的SDI位。

    时钟以及计算公式:SDIPRE   = PCLK/(CLK)-1;INICLK=300000;SDCLK=24000000; MMCCLK= 15000000

    cmd0-cmd55-cmd41-cmd2-cmd3-cmd7-cmd6-cmd17

2)对sd卡操作问题

    SD卡包括:一个标识寄存器CID,一个相应地址寄存器RCA,一个其他参数寄存器
CSD。

    对sd卡的操作是驱动通过sd controller来发相应的命令以达到读写等操作的:发送命令通过SDICmdCon[7:0]的除了开始2bit:CmdIndex放置要发送的命令号;SDICmdCon[8]开始发送命令来完成的。

    检测卡的插入,直接用中断引脚的电平来判断。

    判断插入的卡是否是sd卡,用命令cmd55和cmd41,因为mmc卡对cmd55不做回应。

    命令9就是获取sd卡中csd寄存器的值的,该值包括很多sd卡的信息,其中就有sd卡的容量。这个值在sd卡接收到cmd9之后会以response的形式存放在sd控制器的SDI Response Register[0,1,2,3]中。在执行cmd9,cmd10等这样的命令的时候,卡的状态应该是不选中的,或直接在执行它们之前发送cmd7(0)不选中卡,不然的话会timeout。

    用cmd17来读取单个block的数据,该命令要带地址参数(该参数通过cmd3命令来获取),然后根据SDIDSTA和SDIFSTA状态值来从sd控制器的SDIDAT寄存器中读出要读的数据。该命令与cmd9相反,在执行它之前要选中卡。读完一个block之后要做一些善后工作,为下次读取做好准备,不然的话checkcmdend就要一直循环了。因为用的是每次都读一个block,并地址要以block对齐,这样就要考虑要读取的地址是否是block对齐的,长度是否够一个block。

    SDIDCON这个数据控制寄存器也很重要,一些对数据的操作形式就是在这里设置的。

3)fat文件系统问题

    根据MBR找到分区表,根据分区表找到该分区MBR[446B+4个分区表(每个16B)+2B结束符)

    分区表中的第9-12字节为该分区的启始地址(单位没sector),第13-16字节为分区的长度(单位也是sector)

本文出自 “bluefish” 博客,请务必保留此出处http://bluefish.blog.51cto.com/214870/71870

本文出自 51CTO.COM技术博客

 

本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/luixing67/archive/2010/04/24/5524777.aspx

SD-scard-对应CMD指令集讲解 目录: SD卡中的CMD命令子集: CMD_0: 当前指令位,进入空闲状态,该指令无灰度 CMD_2 发送CMD2,验证SD卡是否接入,长反馈(CID),广播获取卡的CID信息 CMD_3 发送CMD3,读取SD卡是否接入RCA (地址),短反馈 , 广播获取SD卡所分配的相对地址 CMD_7 发送CMD7,使能SD卡,如果参数值为0 , 即使取消所有选中SD卡 根据获取指定的RCA,选中SD卡,如果在选中一个卡的状态下,又选中其他的卡,那么之前的卡会自动取消选中, 如果发送地址0,则表示取消选中全 阅读详情

相关推荐

[SDIO] SD card 初始化及常用命令解析(附波形,uboot代码)

目录 初始化 1.cmd 0 2.cmd8 3.cmd55 4.acmd41 5.cmd2 6.cmd3 7.cmd9 8.cmd13 9.cmd7 10.ACMD51 11.CMD6 12.CMD16 13.CMD17 14.CMD18 15.CMD12 tuning CMD19 DW_SDHCI的tuning流程 初始化 1.cmd 0 /* Reset the Card */ err = mmc_go_idle(mmc...

Lenz_s_law的开发记录本 2万+

【嵌入式开发】158

CMD0: 复位命令这是SD卡上电后必须发送的第一个命令,用于将SD卡复位到其初始状态。CMD0不带任何参数,它会使SD卡取消之前所有的命令和状态,准备进入新的命令序列。CMD1: 发送操作条件在复位后,主控制器通过CMD1向SD卡发送其支持的操作电压和通信协议等信息。SD卡会响应这些信息,表明它是否准备好进行后续操作。ACMD41: 发送SD卡操作条件并检查忙碌状态这是一个应用特定命令(ACMD),需要在CMD55之后发送。ACMD41用于初始化SD卡,并检查其是否已准备好。

宅男很神经 842

TQ2440(2416)Wince系统源码完整剖析

TQ2440/2416开发板是基于Samsung S3C2440A/S3C2416处理器的高性能开发平台。该系列开发板以其稳定性、广泛的应用支持和灵活的扩展性,被广泛应用于工业控制、智能设备、车载信息系统等领域。为了适应不同的开发需求,TQSocketDebugger可能提供了扩展机制,允许开发者根据自身需求开发插件或自定义工具。例如,开发者可以创建专门的插件来处理特定协议的监控,或者增加额外的安全检测功能。扩展与自定义可以极大地提升工具的适用性和灵活性。

weixin_30653091的博客 693

2440平台,SD卡启动WINCE,全部源码

【楼主位】 153290557 周远峰积分:110派别:等级:------来自:启动部分是拿liuweiele,其他也都是拿来主义,稍微改下就OK了! GUI部分只试过输出英文,其他没测,暂时没法搞了,因为昨天屏幕莫名烧掉了。。很无奈 FAT不支持长文件,刚开始是:NK_cs8900.nb0老是加载不了,后来改NK.nb0就OK了 卡是512MB的卡! 点击此处下载 ourdev_

menuconfig的专栏 1367

SAP中贸易伙伴的应用原理简析

公司也称为贸易伙伴,是出具合并报表的组织单位,可以为客户和供应商分配公司(贸易伙伴),用于识别集团内关闻公司间的业务往来,在编制合并报表时进行往来账务的计算处理。 如下图某贸易伙伴公司(关联方名称G0059)在我方公司的SAP系统中有多重身份(即是供应商,又是客户)。那么在我方公司SAP系统中建立起公司(贸易伙伴),并关联到供应商和客户主数据中。之后,就可以通过G0059这个贸易伙伴名称来识别与该贸易伙伴间的往来业务。 相应的配置设定如下: 定义公司(贸易伙伴或关联方) 会计凭证中会

专注SAP应用技术文章写作,致力于拉近用户与系统间的距离; 9816

告别Keil!用VSCode+PlatformIO玩转STC单片机(附自动下载配置)

本文详细介绍了如何从Keil迁移到VSCode+PlatformIO进行STC单片机开发,包括环境搭建、自动下载配置等实用技巧。通过对比传统IDE与现代工具链的差异,展示了VSCode+PlatformIO在代码编辑体验、跨平台支持和开发效率上的优势,帮助开发者实现更流畅的STC单片机开发流程。

weixin_27252001的博客 458

基于S3C2440丛SD卡启动WinCE(或其它程序)的实现

【楼主位】 liuweiele Liuwei积分:687派别:等级:------来自:系统上电后,如果发现SD卡中有boot.ini文件,便按boot.ini文件中的指定参数运行,否则继续启动原系统:  (原文件名:IMAG0118.jpg)   (原文件名:IMAG0120.jpg)   (原文件名:IMAG0108.jpg) 本贴被 liuweiele 编辑过,最后修改时间:

menuconfig的专栏 1868

本地服务器搭建Uptime Kuma网站监控服务

本文主要介绍如何在Linux系统中一键部署Uptime Kuma运维监控服务,并将这个服务映射至公网实现随时随地远程访问。如果您像我一样在服务器上托管了多个网站,并且没有足够的时间来手动检查每个网站的在线状态,那么当出现问题时,您可能无法及时收到通知来处理这些问题。因此,搭建一个在线监控服务是很有必要的,它可以在状态异常时提醒您,以便您能够及时处理问题,确保网站的稳定性和可用性。监控服务有很多,我最终选择了Uptime Kuma,因为Uptime Kuma是开源免费的,

Tiam_cr的博客 1823

2440平台,SD卡启动WINCE,全部源码(转)

RNDIS是指Remote NDIS,基于USB实现RNDIS实际上就是TCP/IP over USB,就是在USB设备上跑TCP/IP,让USB设备看上去像一块网卡。同样,在WinCE中实现USB RNDIS功能,首先具备以下条件:1. 支持USB Client并且USB驱动已经OK。2. 在PC上面安装Active Sync软件,该软件用于支持RNDIS驱动。补充一下,我在这里不谈USB驱动,假设USB驱动已经存在,这里谈到的USB RNDIS的实现是指USB Client设备上面运行RNDIS。下面介

zmq5411的专栏 985

FreeRTOS项目:智能手表(1);

从 “最底层启动”→“系统基础配置”→“硬件驱动”→“中间件能力封装”→“上层业务功能”,分层递进、从基础到应用,就能逐步把整个项目的逻辑串联起来~

weixin_46847454的博客 1446

816华为OD机试真题 新系统 - 电池充电时间计算 (Java/Py/C/C++/Js/Go)

816华为OD机试真题 新系统 - 电池充电时间计算 (Java/Py/C/C++/Js/Go)

算法大师! 472

MINI2440从SD卡更新NK及nboot(一)

MINI2440从SD卡更新NK及nboot(一)

mike fei的专栏 1504

1 电科院FTU检测标准学习笔记-外观检查

作者简介:本人从事电力系统多年,岗位包含研发,测试,工程等,具有丰富的经验在配电自动化验收测试以及电科院测试中,本人全程参与,积累了不少现场的经验。

sixtome 1852

视频教程-SD卡启动详解-1.10.ARM裸机第十部分-驱动/内核开发

SD卡启动详解-1.10.ARM裸机第十部分 互联网课程品牌《朱老师物联网大...

weixin_28981623的博客 163

Calibre 3Dstack Flow Example(5-2)

本文详细介绍了Calibre3DSTACK工具在3D-IC设计验证中的应用。主要内容包括:1)连通性检查(LVS)规则编写,重点说明connected命令的使用方法和多文本标签处理;2)设计规则检查(DRC)实现,涵盖层间距检查和焊盘重叠检查;3)系统网表生成器操作流程,从芯片导入到网连通性定义;4)两种规则文件语法(扩展语法和传统语法)的编写示例;5)验证报告文件格式解析。通过具体案例演示了如何建立完整的3D-IC验证流程,包括芯片定义、装配操作、电气连接验证和物理规则检查等关键步骤,为3D-IC设计验证

u013620135的博客 2336

SAP 基于生产订单行项目外部加工创建采购申请时的一个增强需求

摘要 本文介绍在SAP系统中实现生产订单外协工序自动生成采购申请(PR)时,将指定文本写入PR抬头文本的技术方案。关键点包括: 业务背景:通过CO02事务码将工序标记为外部加工,系统自动生成PR,需在生成时自动写入抬头文本。 技术难点: PR抬头文本存储在STXH/STXL而非EBAN表 标准增强点ME_PROCESS_REQ_CUST在外协场景可能不触发 推荐方案: 使用BAdI ME_REQ_POSTED,在PR过账时点执行 通过Text Object EBANH和Text ID(如B01)写入文本 实

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 623

wince下mini2440登陆Telnet和FTP需要密码解决方法

经过两周多的纠缠,今天终于在mini2440下能登陆telnet了。过程是痛不欲生,阶段性成果还是让人能释怀。先对个人之前困惑,目前豁然开朗等情况总结汇总。 原来使用英创的telnet调试习惯了,同时下载速度较快,入手友善之臂mini2440也希望如此。mini2440提供的缺省内核,已包含了telnet和ftp,在电脑上cmd->telnet 192.168.1.230就能登录,出现如下对话框

岁月的专栏 4783

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

定制mini2440 wince启动界面

作者:SUKHOI27SMK 转自:http://blog.csdn.net/sukhoi27smk/article/details/8467171 定制mini2440 wince启动界面过程 我的显示屏是7寸的,所以应该按照分辨率制作一张800*480像素的图片。 详细步骤如下: 1、我用photoshop的制作的,如下图: 2、用bmp2T

老瓦的笔记本 613

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

上一篇: 基于S3C2440丛SD卡启动WinCE(或其它程序)的实现
下一篇: SD卡的命令格式及解析
menuconfig
博客等级 码龄19年 713粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值