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

S3C2440 三星ARM9 S3C2416开发板完美替代     S3C2416是低功耗、高性能、低成本的SAMSUNG ARM9(ARM926EJ)处理器,最具性价比优势的芯片,S3C2440最完美的替代者 。     UT-S3C2416开发板是一款以S3C2416处理器为核心的高性价比开发板,该开发板实现了S3C2416的所有功能特性,专门专为消费类 电子、工业控制、车载导航、行业PDA等电子产品的开发而设计,主要供广大企业用户进行产品前期软硬件性能评估验证、设计参考用。 产品功能特性 ·ARM926EJ内核,400M CPU主频稳定工作 阅读详情
【楼主位】 liuweiele Liuwei

积分:687
派别:
等级:------
来自:
系统上电后,如果发现SD卡中有boot.ini文件,便按boot.ini文件中的指定参数运行,否则继续启动原系统:


 (原文件名:IMAG0118.jpg) 


 (原文件名:IMAG0120.jpg) 


 (原文件名:IMAG0108.jpg) 


本贴被 liuweiele 编辑过,最后修改时间:2008-11-02,23:18:43.
 
2008-11-02,22:05:43
资料 邮件 回复 引用回复 编辑 删除
【1楼】 liuweiele Liuwei

积分:687
派别:
等级:------
来自:
SD卡中的WINCE映像和自启动配置文件:


 (原文件名:23.jpg) 


 (原文件名:24.jpg) 
 
2008-11-02,22:13:22
资料 邮件 回复 引用回复 编辑 删除
【2楼】 liuweiele Liuwei

积分:687
派别:
等级:------
来自:
boot.ini文件内容:


 (原文件名:25.jpg) 

 
2008-11-02,22:19:13
资料 邮件 回复 引用回复 编辑 删除
【3楼】 liuweiele Liuwei

积分:687
派别:
等级:------
来自:
void        Find_SystemFile(char *dir)
{
        
        struct        FileInfoStruct        File;
        ////
        /*
                
        if(!SDI_Init())                        return;
        if(FAT_Init())                        return;
        */
        
        if(FAT_OpenFile(dir,&File)==1)
        
        {        
                Uart_Printf(0,"Open '%s' Err!!!/n",dir);
                return;
        }
        ////
        
        GUI_LabelPrintf(40,(LCD_YSIZE>>1)-40,LCD_XSIZE-40-40,60,RGB565(28,56,0),RGB565(0,0,0),RGB_Tran,Center,Font_ASC_8_16,"找到系统文件:'%s'.系统将丛SD卡启动,请等候...",dir);
                
        FAT_RunFile(dir);
        
        ////
        


}

本贴被 liuweiele 编辑过,最后修改时间:2008-11-02,22:48:51.
 
2008-11-02,22:20:53
资料 邮件 回复 引用回复 编辑 删除
【4楼】 liuweiele Liuwei

积分:687
派别:
等级:------
来自:
int        FAT_RunFile(char *ini_dir)
{

        U32                a,b,i;
        
        U8                *Buf;
        U8                *LCD_Buf;
        char        str_buf[1024];
        char        dir_buf[1024];
        char        *Str=str_buf;
        char        *dir=dir_buf;
        struct        FileInfoStruct        File_Info;
        ////
        
        
        
        i=FAT_OpenFile(ini_dir,&File_Info);
        if(i==1)
        {
                Uart_Printf(0,"FAT Load '%s' Err!/n",ini_dir);        //文件打开失败.
                
        //        GUI_LabelPrintf(40,LCD_YSIZE>>2,LCD_XSIZE-40*2,40,RGB565(31,0,0),RGB565(24,48,0),RGB565(10,20,10),Center,Font_ASC_8_16,"Open '%s' Err!",dir);
        //        Uart_Getch(0);
                return 0;
        
        }
        ////
        
        
        Uart_Printf(0,"FAT Load '%s' Size=%d,Start Cluster=%d./n",File_Info.Size,i);
        ////
        Buf=malloc(File_Info.Size);
        
        if(Buf==0)
        {
                Uart_Printf(0,"Load File:'%s';APP RAM Err!/n");
                return        0;
        }
        ////
        
        FAT_DirLoadFile(ini_dir,Buf);                //加载 ini文件.
        a=0;
        
        while(1)
        {
                if(Buf[a]=='/n')        break;        
                if(Buf[a]==' ')                break;
                
                dir[a]=Buf[a];
                a++;
                
        
        }

        dir[--a]='/0';
        ////
        

        for(a=0;Buf[a]!='@';a++);
        
        a++;
        b=0;
        while(1)
        {
        
        if(Buf[a]=='/n')        break;
        if(Buf[a]==' ')                break;
        if(b==8)                        break;
        ////
        Str[b++]=Buf[a++];
        
        }
        Str[b]='/0';
                
        
        i=strtol(Str,NULL,16) ;
        
        Uart_Puts(0,dir);
        Uart_Printf(0," Read RAM=%X/n",i);
         
        a=FAT_OpenFile(dir,&File_Info);
        if(a==1)
        {
                Uart_Printf(0,"Open '%s' Err!/n",dir);
                Uart_Printf(0,"Start Cluster=%d/n",a);
                return 1;
        
        }
        ////
        Uart_Printf(0,"Size=%d;Start Cluster=%d./n",File_Info.Size,a);
        
        FAT_DirLoadFile(dir,(U8 *)i);
        
        Uart_Printf(0,"Start Run to:0x%08X./n",i);
        Run_Address(i);

        return 1;

}
 
2008-11-02,22:22:49
资料 邮件 回复 引用回复 编辑 删除
【5楼】 liuweiele Liuwei

积分:687
派别:
等级:------
来自:
主程序:
点击此处下载 ourdev_479701.rar(文件大小:2K) (原文件名:S3C2440_Main.rar) 
 
2008-11-02,22:25:00
资料 邮件 回复 引用回复 编辑 删除
【6楼】 liuweiele Liuwei

积分:687
派别:
等级:------
来自:
运行在S3C2440上的目标文件(基于东华4.3寸TFT LCD( 480x272 )):

点击此处下载 ourdev_479721.rar(文件大小:176K) (原文件名:S3C2440目标文件.rar) 


本贴被 liuweiele 编辑过,最后修改时间:2008-11-02,22:31:22.
 
2008-11-02,22:31:01
资料 邮件 回复 引用回复 编辑 删除
【7楼】 liuweiele Liuwei

积分:687
派别:
等级:------
来自:
如果,系统没有检测到SD卡或boot.ini文件参数配置错误,将会继续运行原系统:


 (原文件名:IMAG0137.jpg) 



本贴被 liuweiele 编辑过,最后修改时间:2008-11-02,22:43:55.
 
2008-11-02,22:43:28
资料 邮件 回复 引用回复 编辑 删除
【8楼】 thriller
积分:501
派别:
等级:------
来自:
记性不好,留个脚印
 
2008-11-02,22:54:35
资料 邮件 回复 引用回复 编辑 删除
【9楼】 yin66

积分:222
派别:
等级:------
来自:
mark

以后再回来看看
 
2008-11-02,22:59:38
资料 邮件 回复 引用回复 编辑 删除
【10楼】 miraclelife 麦诺克科技

积分:925
派别:
等级:------
来自:山东 蓬莱
这个应该“酷”了
 
2008-11-02,23:01:13
资料 邮件 回复 引用回复 编辑 删除
 
↑↑↑↑↑↑↑↑↑↑↑↑
抱歉本贴的回复数太多,为了减轻网络流量,只显示帖子正文的前后各10个回复。本贴的正文内容中间隐藏了89个回复。你需要 点击此处 才能查看全部内容。
对为你带来的访问不便表示歉意。不过我们仍会坚持即使没有登录,仍能共享我们网站的所有资料。你没有 登录后就能消除这个访问上的不便(可增加到显示60个回复)。
如果你是新用户请先 注册。注册是免费的,并且手续简单只需要填写用户名与口令。
↓↓↓↓↓↓↓↓↓↓↓↓
 
【100楼】 zl308424
积分:25
派别:
等级:------
来自:
楼主,我用了你的sd驱动和文件系统每次读文件最多读130个字符,写文件就每次写2个。和我自己用的sd驱动+FatFs效果一样,试了很多次都这样,实在是不解啊...
 
2010-02-06,01:28:32
资料 邮件 回复 引用回复 编辑 删除
【101楼】 fy024 梦兰

积分:522
派别:
等级:------
来自:云南*昆明
mark
 
2010-02-06,09:44:10
资料 邮件 回复 引用回复 编辑 删除
【102楼】 zl308424
积分:25
派别:
等级:------
来自:
很久不见楼主人啊。请问坛子里还有人用过2440 SD+文件系统的吗?为什么我的出现这么怪问题。
 
2010-02-07,18:50:39
资料 邮件 回复 引用回复 编辑 删除
【103楼】 liuweiele Liuwei

积分:687
派别:
等级:------
来自:
回复【102楼】zl308424 
-----------------------------------------------------------------------

什么问题?
 
2010-02-07,22:15:27
资料 邮件 回复 引用回复 编辑 删除
【104楼】 zl308424
积分:25
派别:
等级:------
来自:
一开始读文件,文件里字符超过130个arm会死机,写文件每次只能写2个字符。现在知道为什么每次最多读130个字符了,原因是我用了Uart_Printf函数打印读到buff的数据,Uart_Printf里只申请了128byte空间,数组越界就死机了。现在搞不懂为什么写文件每次只写2个字符,写文件时文件系统也没错,arm也很正常。
 
2010-02-08,01:26:59
资料 邮件 回复 引用回复 编辑 删除
【105楼】 liuweiele Liuwei

积分:687
派别:
等级:------
来自:
什么系统?
 
2010-02-08,10:35:23
资料 邮件 回复 引用回复 编辑 删除
【106楼】 zl308424
积分:25
派别:
等级:------
来自:
裸机程序,TQ2440+MDK+SDIO+FatFs
 
2010-02-08,11:18:19
资料 邮件 回复 引用回复 编辑 删除
【107楼】 liuweiele Liuwei

积分:687
派别:
等级:------
来自:
这问题不好猜测~~~

本贴被 liuweiele 编辑过,最后修改时间:2010-02-08,13:03:24.
 
2010-02-08,13:03:02
资料 邮件 回复 引用回复 编辑 删除
【108楼】 zl308424
积分:25
派别:
等级:------
来自:
呵呵,问题找到了。的确不好猜,我每次res = f_write(&file, T_buffer, sizeof(T_buffer), &bw); 就写几个字符,换成
res = f_write(&file, T_buffer, 300, &bw); 就写300个字符。是指定写多少数据这有点问题。现在读写都正常了,呵呵。
 
2010-02-08,13:10:44
资料 邮件 回复 引用回复 编辑 删除
【109楼】 liuweiele Liuwei

积分:687
派别:
等级:------
来自:
你的 T_Buffer是指针变量?
 
2010-02-08,13:46:26
资料 邮件 回复 引用回复 编辑 删除
【110楼】 zl308424
积分:25
派别:
等级:------
来自:
恩,将sizeof换成strlen就好了。搞错一点真是害死人啊。现在文件系统没问题了,把中文字库放到sd卡里能读出来显示了。
 
2010-02-08,20:39:37
资料 邮件 回复 引用回复 编辑 删除
【111楼】 freud
积分:28
派别:
等级:------
来自:北邮
mark!
 
2010-02-12,10:56:55
资料 邮件 回复 引用回复 编辑 删除
【112楼】 RF2010 RF陈
积分:92
派别:
等级:------
来自:
点击此处下载 ourdev_547023.pdf(文件大小:141K) (原文件名:S3C2440 VS AT91SAM9261综合比较.pdf) 
 
2010-04-17,12:57:53
资料 邮件 回复 引用回复 编辑 删除
【113楼】 xzm8469105 谢钟满

积分:59
派别:
等级:------
来自:汕头
mark
 
2010-04-20,13:58:17
资料 邮件 回复 引用回复 编辑 删除
【114楼】 dubu 老 K

积分:251
派别:
等级:------
来自:杭州
mark
 
2010-04-20,16:23:18
资料 邮件 回复 引用回复 编辑 删除

 

http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=1709802&bbs_id=1032

WINCE系统启动自动运行程序的实现方案 在嵌入式系统开发中,程序自启动是工业控制和专用设备的关键需求。WINCE系统通过定制化启动流程实现这一功能,其核心原理涉及系统Shell替换、启动脚本执行和注册表项修改三种技术路径。从工程实践角度看,替换Shell方案可靠性最高但需要重新编译系统,启动脚本方案灵活性最佳适合多程序场景,注册表方案则平衡了易用性和功能性。这些技术在ATM机、工业控制设备、医疗仪器等场景有广泛应用,特别是需要开机即进入全屏业务界面的场合。通过合理配置project.bib文件、处理路径依赖和异常恢复机制,开发者可以构建稳定的自启 阅读详情

相关推荐

S3C2440开发板WinCE5.0触摸屏驱动程序源代码完整分析

本文还有配套的精品资源,点击获取 简介:S3C2440开发板是基于Samsung公司的S3C2440 ARM920T处理器设计的嵌入式平台,拥有丰富的外围接口。WinCE5.0是一种适用于嵌入式设备的实时操作系统,支持多种处理器架构。触摸屏驱动程序在WinCE5.0上负责将触摸操作转换为系统输入事件。本源代码压缩包为开发者提供了研究和定制S3C2440开发板触摸屏驱动程序的...

weixin_28713083的博客 1032

嵌入式Linux之我行——S3C2440上MMC/SD卡驱动实例开发讲解(一)

http://blog.ednchina.com/mcuandme/1787530/Message.aspx   http://blog.chinaunix.net/u3/101649/showart_2232724.html 嵌入式Linux之我行,主要讲述和总结了本人在学习嵌入式linux中的每个步骤。一为总结经验,二希望能给想入门嵌入式Linux的朋友提供方便。如有错误之处,谢请指正。

keep moving 3184

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

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

weixin_30653091的博客 693

2440从sd卡启动wince

经过一周的时间终于在s3c2440上把sdboot给跑起来了。整个任务是在已有的bootloader上(用usb线从pc下载的方式)修改以支持直接从sd卡上拷贝nk.nb0文件到内存并启动。 有关sd卡驱动和fat fs的实现用了3个文件来实现。sdboot.c为sd的驱动(可理解为pdd)层,主要实现一些对sd控制器的配置以及一些基本sd命令的实现和对sd...

weixin_34152820的博客 290

S3C2440裸机读写SD卡(可调试可运行)

S3C2440裸机读写SD卡(可调试可运行) 启动代码是基于mini2440 nand:256M写的,这个版本的mini2440编译后可以下载到nand的0地址处运行。也可以eclipse+jlink调试。 详细介绍:http://blog.csdn.net/kangear/article/details/8853824

S3C2416从SD卡启动说明书

S3C2416开发板SD卡启动说明,比较详细

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

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

menuconfig的专栏 872

第十一届全国大学生GIS应用技能大赛——广西区域发展布局示意图

我们需要制作一幅广西区域发展布局示意图,最终成图参考“数据”文件夹中的广西区域发展布局示意图.png。地图使用的投影坐标系是 Asia_North_Albers_Equal_Area_Conic,其中地理坐标系是China_Geodetic_Coordinate_System_2000,中央经线东经 105°,标准纬线是北纬 25°和北纬 47°,出图比例尺 1:4,780,000。

@HNUSTer的博客 7799

S3C2440、S3C2450和S3C6410之间区别

S3C2440其实是一个很不错的CPU,价格便宜、内部资源多、最主要的是国内很多人使用,相关的资料比较多。ARM920T内核, 400M主频,支持NAND FLASH、NORFLASH、SDRAM、支持STN/TFT LCD、4通道DMA、3通道UART、2通道SPI、IIC总线、IIS/AC97音频控制器、SD/MMC控制器、2通道USB HOST 1通道USB DEVICE、4通道PWM、8通

wince--linux的专栏 4955

STM32接入CH340芯片的升级电路及初始化进入升级模式(死机)问题处理

MCU-REST 在 MCU-BOOT0 处于低电平状态下,进行下拉操作,在MCU-REST 与 MCU-BOOT0 恢复正常电平时,将导致MCU死机,MCU-REST 先于 MCU-BOOT0 下拉可解决该问题;MCU-REST 在 上升沿结束时将判断 MCU-BOOT0 的状态,MCU-BOOT0 处于高电平,MCU死机,MCU-BOOT0 处于低电平 MCU 正常;

LuDvei的博客 2491

千兆网口电路设计中的EMC防护与TVS选型实战

本文深入探讨了千兆网口电路设计中面临的EMC挑战,并提供了TVS二极管选型的实战指南。文章分析了ESD、浪涌和EFT等主要威胁,重点阐述了如何根据工作电压、钳位电压和关键的低结电容等参数为PHY芯片选择匹配的TVS器件,以确保在严苛电磁环境下实现可靠的信号完整性与防护。

m3n5b7v8c9x的博客 531

S3C2416与S3C2440的对比的压倒性优势

三星最新推出的2416芯片相比2440具有压倒性的优势,是完美替代2440的首要选择 1.         性能以及对视频播放能力的支持:2416 主频400MHz和2440持平,但是2416是ARM926JES内核,是ARM920T的增强版本,治理运行速度方面比2440要快很多,尤其表现在图像、视频和图片播放能力方面:2416在1024x768下面,可以完美支持VGA格式的MPEG4/AV

wince--linux的专栏 2334

北理计算机考研复试经验贴

很早就想写一篇复试经验贴,因为关于复试,消息相对初试少很多,尤其北理,关于具体怎么考,网上信息更是匮乏,之前自己也是死缠烂打,一路追着各位学姐学长问经验,求助老师才一路走过来,至今还没有看过系统完整的北理计算机的复试经验贴,后又经过老师提醒,借此机会开始好好总结一下,希望帮到你们。 首先希望学弟学妹不管初试成绩是高是低对复试都要足够的重视,因为复试1分相当于初试的5分,而且去年今年都有初试前几名...

wusiji8121的博客 2万+

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

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

weixin_28981623的博客 163

傅里叶光学(1)

傅里叶光学,可以看作是通信理论中傅里叶变换等一系列数学思想以及系统理论与光学(主要是衍射光学)相结合的产物关于傅里叶光学的应用领域,本节介绍了成像,当然事实上不可能仅限于成像,经典的还如激光散斑的一些应用,干涉计量,还有傅里叶变换光谱学等等。最后总结一下,傅里叶光学我认为可以看做一个工具,对于任意的系统,它能给出一些数学思想与物理原理进行解释和分析,找出系统的扰动和响应的关系,或者说根据扰动和响应,来研究或者设计一个系统。

m0_53607446的博客 1672

京东/淘宝商品评论情感分析:基于Python的大规模评论爬取与NLP情感分析实战

在当今电商蓬勃发展的时代,用户评论已成为影响消费者购买决策的关键因素。本文将详细介绍如何使用Python最新技术栈爬取京东和淘宝商品评论,并运用先进的自然语言处理技术对评论进行情感分析,识别用户的好评与差评倾向。通过完整的代码实现和深入的技术解析,帮助读者掌握从数据采集到情感分析的全流程。本文详细介绍了如何使用Python最新技术栈实现京东和淘宝商品评论的爬取与情感分析。通过结合异步爬虫、反爬策略、BERT情感分析等先进技术,我们构建了一个完整的评论分析系统。高效爬取。

2201_76125261的博客 1402
上一篇: 2440平台,SD卡启动WINCE,全部源码
下一篇: 2440从sd卡启动wince
menuconfig
博客等级 码龄19年 713粉丝 6原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值