Bootloader
文章平均质量分 76
menuconfig
当别人前进时,你不能妒忌,当别人妒忌时,你必须前进。
展开
-
基于S3C2440丛SD卡启动WinCE(或其它程序)的实现
【楼主位】 liuweiele Liuwei积分:687派别:等级:------来自:系统上电后,如果发现SD卡中有boot.ini文件,便按boot.ini文件中的指定参数运行,否则继续启动原系统: (原文件名:IMAG0118.jpg) (原文件名:IMAG0120.jpg) (原文件名:IMAG0108.jpg) 本贴被 liuweiele 编辑过,最后修改时间:转载 2010-04-30 10:15:00 · 1790 阅读 · 0 评论 -
U-BOOT环境变量实现
基于smdk2410)1.相关文件common/env_common.c供u-boot调用的通用函数接口,它们隐藏了env的不同实现方式,比如dataflash, epprom, flash等 common/env_dataflash.cenv 存储在dataflash中的实现 common/env_epprom.cenv 存储在epprom中的实现 c转载 2008-04-09 16:00:00 · 2057 阅读 · 0 评论 -
U-BOOT Nand命令支持(一)
u-boot1.1.6 nand_legacy驱动提供了u-boot对nand相关命令的一个轻量级的实现,但好象可扩展性不足。本文主要分析u-boot 1.16/drivers/nand文件夹下的源程序。一.关键数据结构1.struct mtd_info该结构在include/linux/mtd/Mtd.h中定义,字段比较多,有很多还是函数指针,它是MTD设备操作的通用接口,这个结构中转载 2008-04-09 15:59:00 · 1524 阅读 · 0 评论 -
U-Boot的常用命令详解
U-Boot还提供了更加详细的命令帮助,通过help命令还可以查看每个命令的参数说明。由于开发过程的需要,有必要先把U-Boot命令的用法弄清楚。接下来,根据每一条命令的帮助信息,解释一下这些命令的功能和参数。1、bootmdKNLinux联盟bootm [addr [arg ...]] - boot application image stored in memory转载 2008-04-07 22:13:00 · 941 阅读 · 0 评论 -
u-boot裁减
u-boot裁减的主要方法是通过删除不需要的命令来减小可执行代码体积。比如说,如果不需要网络相关的功能,则可以将网络相关的所有命令全部删除,可以节约可观的flash空间。一般u-boot的大小为100k左右,通过删除命令(如果删除网络相关的命令),可以裁减到64k以内,只保留一些经常使用的命令。另外,如果需要动态修改环境变量,环境变量还需要单独分配一个flash扇区用于保存。这样大约就需转载 2008-04-10 10:35:00 · 1736 阅读 · 0 评论 -
Linux 2.6.19.x 内核编译配置选项简介
Linux 2.6.19.x 内核编译配置选项简介作者:金步国版权声明本文作者是一位自由软件爱好者,所以本文虽然不是软件,但是本着 GPL 的精神发布。任何人都可以自由使用、转载、复制和再分发,但必须保留作者署名,亦不得对声明中的任何条款作任何形式的修改,也不得附加任何其它条件。您可以自由链接、下载、传播此文档,但前提是必须保证全文完整转载,包括完整的版权信息和作译者声明。转载 2008-04-02 22:16:00 · 2249 阅读 · 0 评论 -
移植U-Boot手记-续
昨天把u-boot给勉强跑通了,但是还无法读写Nand Flash和启动内核。今天忙活了一天,最后终于没坚持住,放弃了u-boot 1.2.0 + arm-linux 3.3.2,改用1.1.4 + arm-linux 2.95.3,在网上借鉴,copy了无数高手之成果,u-boot终于TNND被俺给整成能读写Nand的了。下面请听详细~~~报道:今天已开始就接着昨天的弄,昨天发现1.2.0的u-转载 2008-04-02 21:27:00 · 799 阅读 · 0 评论 -
U-Boot中SMDK2410的NAND Flash驱动。
十年以前,喜欢追求流行的东西,C++好,那就学C++。Java火了,又开始学Java。 头脑里充满了种族歧视,瞧不起VB,PowerBuilder等等。十年后的今天,只要有足够的利益,COLOL,RPG也会去学去做的。生活的经历告诉我,什么是最好的开发语言,能让我吃饱饭的就是最好的!转载 2008-03-31 22:10:00 · 898 阅读 · 0 评论 -
嵌入式Linux系统开发技术详解-基于ARM
showModalDialog()、showModelessDialog()方法使用详解 Javascript有许多内建的方法来产生对话框,如:window.alert(), window.confirm(),window.prompt().等。 然而IE提供更多的方法支持对话框。如: showModalDialog() (IE 4+ 支持) showModelessDialog() (I转载 2008-03-23 22:18:00 · 1059 阅读 · 0 评论 -
U-Boot在S3C44B0上的移植方法
Bootloader 给嵌入式操作系统提供板上硬件资源信息,并进一步加载、引导嵌入式操作系统。由于Bootloader 的功能直接与CPU和微处理器系统相关,所以不同的CPU体系将需要不同的Bootload-er。除了依赖于CPU的体系结构外,Bootloader 实际上也依赖于具体的嵌入式板级设备的配置。也就是说,对于两块不同的嵌入式板,即使它们使用同一种CPU 构建,要想让运行在其中一块上的B转载 2008-03-17 22:57:00 · 1314 阅读 · 0 评论 -
职业生涯中12个最致命的想法
1、总觉得自己不够好 这种人虽然聪明、有历练,但是一旦被提拔,反而毫无自信,觉得自己不胜任。此外,他没有往上爬的野心,总觉得自己的职位已经太高,或许低一两级可能还比较适合。 这种自我破坏与自我限制的行为,有时候是无意识的。但是,身为企业中、高级主管,这种无意识的行为却会让企业付出很大的代价。 2、非黑即白看世界 这种人眼中的世界非黑即白。他们相信,一切事物都应该像转载 2008-03-14 00:10:00 · 701 阅读 · 0 评论 -
Eboot代码流程
首先通常都是汇编代码:启动时由系统复位导致PC为0为触发条件:以2440代码为例直接进入fw.s文件。主要执行的操作为设置处理器频率(PLL),设置内存参数,须注意的是在该部分代码虽然在形式上实现了诸多中断向量,但是这些代码根本上不会得到执行。(参考“Eboot 编译编译器决定中断向量及其实现单一性的原因”)而在后面会有一些其他手段用于实现中断向量的功能。由于和hal复用该部分文件,所以调用的函数转载 2008-03-12 23:13:00 · 731 阅读 · 0 评论 -
Redboot安装历程
一 目标 公司购买了EV40开发板:CPU AT91M40800, 内存2M+2M(扩展), FLASH 2M+4M(扩展), RTl8019AS芯片, FLASH是AM29LV160TE(2M) 公司自己开发自用的板子WX10: CPU AT91M40800, 内存4M, FLASH 8M, RTl8019AS芯片, FLASH是AM29LV641(8M)及其他应用功能芯片. 我主要的工作是开发转载 2008-03-12 14:29:00 · 1162 阅读 · 0 评论 -
从NAND闪存中启动U-BOOT的设计
bootloader是芯片复位后进入操作系统之前执行的一段代码,完成由硬件启动到操作系统启动的过渡,为运行操作系统提供基本的运行环境,如初始化CPU、堆栈、初始化存储器系统等,其功能类似于PC机的BIOS。U-BOOT执行流程图如图1所示。 图1 U-BOOT启动流程图 NAND闪存工作原理 S3C2410开发板的NAND闪存由NAND闪存控制器(集成在S3C2410 CPU转载 2008-04-09 16:18:00 · 1519 阅读 · 1 评论 -
对比嵌入式文件系统损耗平衡算法
引言为什么要损耗平衡(wear-leveling)?Flash 上的每一位(bit)可以被写操作置成逻辑0。 可是把逻辑 0 置成逻辑 1 却不能按位(bit)来操作,而只能按擦写块(erase block)为单位进行擦写操作。一般来说,“NOR flash擦写块的大小是128K,Nand flash擦写块的大小是8K”【2】。从上层来看,擦写所完成的功能就是把擦写块内的每一位都重设置转载 2008-04-09 16:20:00 · 2655 阅读 · 0 评论 -
2440平台,SD卡启动WINCE,全部源码
【楼主位】 153290557 周远峰积分:110派别:等级:------来自:启动部分是拿liuweiele,其他也都是拿来主义,稍微改下就OK了! GUI部分只试过输出英文,其他没测,暂时没法搞了,因为昨天屏幕莫名烧掉了。。很无奈 FAT不支持长文件,刚开始是:NK_cs8900.nb0老是加载不了,后来改NK.nb0就OK了 卡是512MB的卡! 点击此处下载 ourdev_转载 2010-04-30 10:11:00 · 1298 阅读 · 0 评论 -
2440平台,SD卡启动WINCE,全部源码
【楼主位】 153290557 周远峰积分:110派别:等级:------来自:启动部分是拿liuweiele,其他也都是拿来主义,稍微改下就OK了! GUI部分只试过输出英文,其他没测,暂时没法搞了,因为昨天屏幕莫名烧掉了。。很无奈 FAT不支持长文件,刚开始是:NK_cs8900.nb0老是加载不了,后来改NK.nb0就OK了 卡是512MB的卡! 点击此处下载 ourde转载 2010-04-30 10:03:00 · 790 阅读 · 0 评论 -
2440从sd卡启动wince
经过一周的时间终于在s3c2440上把sdboot给跑起来了。整个任务是在已有的bootloader上(用usb线从pc下载的方式)修改以支持直接从sd卡上拷贝nk.nb0文件到内存并启动。 有关sd卡驱动和fat fs的实现用了3个文件来实现。sdboot.c为sd的驱动(可理解为pdd)层,主要实现一些对sd控制器的配置以及一些基本sd命令的实现和对sd卡的操作。sdmmc.c实现了转载 2010-04-30 10:29:00 · 1234 阅读 · 0 评论 -
如何修改bootargs参数使u-boot从网络引导内核
如何修改bootargs参数使u-boot从网络引导内核?开发板上电运行u-boot后,不按下空格键,将会自动从flash引导内核。但现在我想从通过通过网络自动从TFTP SERVER下载并启动内核,而不是从flash启动内核。在网上搜了很长时间,知道是修改bootargs参数。但是怎么样修改,网上确实鲜有资料。修改bootargs参数应该就是修改hhbf.h中的#define CONFIG_BO转载 2008-04-18 10:02:00 · 4701 阅读 · 0 评论 -
u-boot命令的添加
U-Boot的命令为用户提供了交互功能,并且已经实现了几十个常用的命令。如果开发板需要很特殊的操作,可以添加新的U-Boot命令。U-Boot的每一个命令都是通过U_Boot_CMD宏定义的。这个宏在include/command.h头文件中定义,每一个命令定义一个cmd_tbl_t结构体。 #define U_BOOT_CMD(name,maxargs,rep,cmd,usage转载 2008-04-14 11:08:00 · 1115 阅读 · 0 评论 -
u-boot/mips移植分析
1. 引言文章是2年前移植u-boot时候分析的,u-boot方面文章比较多,但是mips方面的稍微少一点,因此贴上来就当资料搜集贴吧.(Note: 图片上传后和原图有些出入,不知道什么原因,不过总体框图还是正确的)1.1. 参考资料詹荣开 原作者未考证 2. 需求分析Bootloader 在嵌入式系统中一般起硬件初始化和内核引导的作用,在产品中使用的Bootloader只要保证转载 2008-04-10 10:43:00 · 2342 阅读 · 0 评论 -
u-boot 详细介绍
Bootloader对于计算机系统来说,从开机上电到操作系统启动需要一个引导过程。嵌入式Linux系统同样离不开引导程序,这个引导程序就叫作Bootloader。6.1.1 Bootloader介绍Bootloader是在操作系统运行之前执行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备。对转载 2008-04-09 16:17:00 · 4039 阅读 · 2 评论 -
U-BOOT启动过程分析 经典文章汇集
U-Boot启动过程尽管有了调试跟踪手段,甚至也可以通过串口打印信息了,但是不一定能够判断出错原因。如果能够充分理解代码的启动流程,那么对准确地解决和分析问题很有帮助。开发板上电后,执行U-Boot的第一条指令,然后顺序执行U-Boot启动函数。函数调用顺序如图6.3所示。看一下board/smsk2410/u-boot.lds这个链接脚本,可以知道目标程序的各部分链接顺序。第一个要链转载 2008-04-09 16:15:00 · 1959 阅读 · 0 评论 -
U-Boot在基于ADSP BF533的嵌入式Linux系统上的移植
1 引言Boot Loader(内核引导程序)是在操作系统内核运行之前运行的一段自举程序,用于初始化硬件设备、改变处理器运行模式、重组中断向量和建立内存空间映射图,从而将系统的软硬件带到一个合适的状态或者用户定制的特定状态,以便为最终加载操作系统内核准备好正确的环境[1]。嵌入式Linux系统常用的Boot Loader有arm-boot、redboot、U-Boot等。U-Boot (全转载 2008-04-10 10:39:00 · 1459 阅读 · 0 评论 -
u-boot bootm命令浅析
与boom命令实现有关的源文件主要为 common/cmd_bootm.c 和lib_arm/armlinux.c。下面就这两个文件中的关键代码段进行分析。 common/cmd_bootm.c(前面数字为Source Insight 中显示的行号):168 if (argc addr = load_addr; } else {转载 2008-04-09 16:03:00 · 2271 阅读 · 0 评论 -
u-boot启动过程分析——基于lpc2210的移植代码
Bootloader介绍 Bootloader的定义:Bootloader是在操作系统运行之前执行的一小段程序,通过这一小段程序,我们可以初始化硬件设备、建立内存空间的映射表,从而建立适当的系统软硬件环境,为最终调用操作系统内核做好准备。意思就是说如果我们要想让一个操作系统在我们的板子上运转起来,我们就必须首先对我们的板子进行一些基本配置和初始化,然后才可以将操作系统引导进来运行。具体在B转载 2008-04-07 22:30:00 · 843 阅读 · 0 评论 -
几种Bootloader简介
l RedbootRedboot是Redhat公司随eCos发布的一个BOOT方案,是一个开源项目。当前Redboot的最新版本是Redboot-2.0.1,Redhat公司将会继续支持该项目,其官方发布网址为:http://sources.redhat.com/redboot/。Redboot支持的处理器构架有ARM,MIPS,MN10300,PowerPC, Ren转载 2008-03-12 14:27:00 · 1894 阅读 · 0 评论 -
移植u-boot
u-boot工程简介-------------------------------------- 最早,DENX软件工程中心的Wolfgang Denk基于8xxrom的源码创建了PPCBOOT工程,并且不断添加处理器的支持。后来,Sysgo Gmbh把ppcboot移植到ARM平台上,创建了ARMboot工程。然后以ppcboot工程和armboot工程为基础,创建了u-boot工程。转载 2008-03-13 16:37:00 · 3948 阅读 · 0 评论 -
ecos(redboot)移植剖析
不同平台之间的移植(CPU相同,硬件平台不同) mypath是ecos的安装目录 mypath/ecos/package/ecos.db记录了现有的包(package)和目标板(target)描述.一个target包含若干的package,target的描述会出现在configtool的templete的选项里。Target里同时指定了包含的package。照猫画虎的添加上自己的package转载 2008-03-12 14:30:00 · 869 阅读 · 0 评论 -
Windows CE嵌入式开发入门——基于Xscale架构(3)
n DownloadImage这个函数将执行把操作系统Image文件下载到目标机的操作。n OEMLaunch函数这个函数将PC指针直接设置到Image文件的开始地址,它是启动操作系统前BootLoader的最后一个函数,没有返回值。在此之后,BootLoader就消失了。下面分析SMDK2410的OEMLaunch的实现代码: void OEMLaunch转载 2007-11-30 22:54:00 · 948 阅读 · 0 评论 -
Windows CE嵌入式开发入门——基于Xscale架构(2)
下面是SMDK2410中的BootLoader中的main函数实现代码: void main(void){ //清空LED OEMWriteDebugLED(0, 0xF); //通用BootLoader (blcommon)主入口 BootloaderMain();//注意,在此调用了BootloaderMain函数,并且没有返回值转载 2007-11-30 22:49:00 · 837 阅读 · 0 评论 -
Windows CE嵌入式开发入门——基于Xscale架构(1)
1.BootLoader的构成组件BootLoader主要由以下两部分组成。(1)OEM startup code这部分代码是在BootLoader中最先被执行的。它的主要功能是初始化最小范围的硬件设备,比如设置CPU工作频率、关闭看门狗、设置cache、设置RAM的刷新率、填写内存控制寄存器(通知CPU有效的数据总线引脚数)等。由于系统刚刚启动,不适合使用复杂的高级语言,因此这部分代转载 2007-11-30 22:44:00 · 863 阅读 · 0 评论 -
S3c2410/2440的Eboot流程介绍
对于嵌入式系统来说,一般都需要一个bootloader来下载和引导操作系统,常用的bootloader有eboot,uboot以及vivi等,对于windows ce来说最理想的bootloader当然是eboot(我也做了利用uboot下载和引导ce,以后我会介绍)。下面我就把自己开发eboot的过程和大家分享。eboot的流程可以如下图所示:自己开发eboot的过程和大家分享。转载 2007-11-28 21:56:00 · 1006 阅读 · 0 评论 -
vivi源代码分析2
现在进入bootloader之vivi分析的第二阶段,这部分使用C语言实现,部分代码采取内嵌汇编的方式。这里需要用到GNU GCC内嵌汇编的知识,这部分基础还没有具备,需要学习。 下面先按照流程进行分析。需要注意的是,此部分内容并非完全按照原版的vivi源代码,而是加入了自己的理解。另外,对非常简单、google出一片而且有分析正确的部分,在这里就简化了,不做详细分析,只是对网上没转载 2007-11-13 10:21:00 · 1432 阅读 · 0 评论 -
vivi源代码分析3
继续分析vivi源代码。 step 5: MTD设备初始化。 关于什么是MTD,为什么要使用MTD,MTD技术的架构是什么,等等,可以参考《Linux MTD源代码分析》(作者:Jim Zeus,2002-04-29)。这份文档的参考价值比较大,猜想作者在当时可能研究了很长时间,毕竟2002年的时候资料还比较缺乏。当然,因为完全分析透彻,方方面面都点透,这份转载 2007-11-13 10:24:00 · 1414 阅读 · 0 评论 -
vivi源代码分析1
通过vivi研究bootloader有一段时间了,基本是在与之相关的基础方面做工作,还没有真正深入研究vivi。以后的学习重心就要放到研究vivi源代码上面了。我想,真正细致地弄清楚vivi实现的细节,对C语言水平的提高,对ARM体系结构的认识,对S3C2410的熟悉,对嵌入式bootloader相关技术,都能有很大的好处。学习的进度会慢一些,但是务求深入,并且打好相关的基础。 一、写在前转载 2007-11-13 10:20:00 · 2076 阅读 · 0 评论 -
U-BOOT程序的运行机制
u-boot的最新版本代码是1.1.6,可以到http://sourceforge.net/projects/u-boot下载。u-boot中已经对ATMEL官方的评估板at91rm9200dk 进行了支持,可参考u-boot源代码中的board/at91rm9200dk目录下的代码进行修改,以适合你自己的at91rm9200开发板。国内通常所谓的u-boot移植也就是这样,对 u-boot完全不转载 2007-11-06 11:15:00 · 1589 阅读 · 0 评论 -
u-boot 简介
U-Boot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目。从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是相应的Linux内核源程序的简化,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。但是U-Boot不仅仅支持嵌入式Linux系统的引导,当前,它还转载 2007-11-06 11:18:00 · 875 阅读 · 0 评论 -
vivi boot loader的实现
vivi boot loader的实现 参考资料: 嵌入式系统 Boot Loader 技术内幕, 詹荣开 (zhanrk@sohu.com) Getting started with VIVI, Janhoon Lyu, nandy@mizi.com 嵌入式设备上的Linux 系统开发,A. Santhanam etc. Linux sy转载 2007-08-22 16:44:00 · 4481 阅读 · 0 评论 -
Bootloader(Vivi)源代码分析
Vivi 是韩国mizi 公司开发的bootloader, 适用于ARM9处理器。 Vivi有两种工作模式:启动加载模式和下载模式。启动加载模式可以在一段时间后(这个时间可更改)自行启动linux内核,这时vivi的默认模式。在下载模式下,vivi为用户提供一个命令行接口,通过接口可以使用vivi提供的一些命令,见下表:转载 2007-08-22 10:21:00 · 2469 阅读 · 0 评论