086-uBOOT移植详解;086-uBOOT移植详解
上传时间: 2021-10-22
上传用户:
085-uBOOT简介;U-Boot主要目录结构
标签: uBOOT
上传时间: 2021-10-22
上传用户:
uBOOT启动流程分析(基于u-boot1.1.4)这是一份非常不错的资料,欢迎下载,希望对您有帮助!
标签: uBOOT
上传时间: 2022-02-06
上传用户:
基于S3C2440的uBOOT开发与设计这是一份非常不错的资料,欢迎下载,希望对您有帮助!
上传时间: 2022-03-03
上传用户:
随着消费类电子产业的蓬勃发展,越来越多的嵌入式电子产品走进了千家万户。电脑的形态也不再局限于以前的PC机,各式各样的嵌入式系统出现在了众多的行业和应用中,其中ARM和Linux结合的产品在市场上最受青睐。ARM由于其低功耗、高性能、小体积、低成本受到了越来越广泛的重视,成为众多公司产品开发的主流硬件。而Linux则因其开放的源代码,可裁剪的内核,便利的开发环境,各硬件平台的通用性,逐渐成为嵌入式开发的主流操作系统。本课题的嵌入式MP3设计就是基于ARM和linux平台的。 @@ 本课题实现了一个完整的嵌入式系统,选用zq2410开发板为目标平台,linux作为目标操作系统,在这样的软硬件环境下研究实现MP3播放器。 @@ 文章首先综述了嵌入式系统开发方法,介绍了ARM处理器及其特点,Linux操作系统,嵌入式系统的开发模式以及如何搭建交叉开发环境,然后介绍了所选硬件平台zq2410目标板的各种资源,在系统软件开发中,介绍uBOOT、Linux的裁剪和移植,根文件系统的制作以及核心驱动程序的开发,应用程序开发中,介绍了MP3的原理,移植Madplay MP3播放器,最后成功对Madplay播放器实现了综合控制。 @@关键词:嵌入式;ARM; Linux;驱动程序;MP3;
上传时间: 2013-05-26
上传用户:lo25643
随着消费类电子产业的蓬勃发展,越来越多的嵌入式电子产品走进了千家万户。电脑的形态也不再局限于以前的PC机,各式各样的嵌入式系统出现在了众多的行业和应用中,其中ARM和Linux结合的产品在市场上最受青睐。ARM由于其低功耗、高性能、小体积、低成本受到了越来越广泛的重视,成为众多公司产品开发的主流硬件。而Linux则因其开放的源代码,可裁剪的内核,便利的开发环境,各硬件平台的通用性,逐渐成为嵌入式开发的主流操作系统。本课题的嵌入式MP3设计就是基于ARM和linux平台的。 本课题实现了一个完整的嵌入式系统,选用zq2410开发板为目标平台,linux作为目标操作系统,在这样的软硬件环境下研究实现MP3播放器。 文章首先综述了嵌入式系统开发方法,介绍了ARM处理器及其特点,Linux操作系统,嵌入式系统的开发模式以及如何搭建交叉开发环境,然后介绍了所选硬件平台zq2410目标板的各种资源,在系统软件开发中,介绍uBOOT、Linux的裁剪和移植,根文件系统的制作以及核心驱动程序的开发,应用程序开发中,介绍了MP3的原理,移植Madplay MP3播放器,最后成功对Madplay播放器实现了综合控制。
上传时间: 2013-04-24
上传用户:Amygdala
嵌入式Linux的c开发,很详细的讲解了嵌入式Linux的驱动和最小系统启动开发,uBOOT的开发等等
标签: 嵌入式C
上传时间: 2013-04-24
上传用户:wangdean1101
作为世界上最优秀的操作系统之一,Linux不仅在服务器领域有着不可撼动的地位,而且正在嵌入式领域发挥着越来越重要的作用。有专家预测,Linux将是未来最主要的嵌入式操作系统之一,将广泛应用在各种消费电子和通信设备中。因此,产生并逐渐形成了嵌入式Linux这项技术。然而,面对嵌入式系统多样化的硬件平台以及多样化的应用,如何更快更好地建立基于Linux的软件平台成为一个必须解决的问题。 本文正是针对这个问题,以Linux相关的基础软件为主要研究对象,在深入分析引导加载程序、Linux与处理器相关的代码、文件系统以及设备驱动的基础上,对基于ARM的Linux软件平台进行了创新性和探索性的研究。主要内容为:在理解ARM体系结构的基础上,通过分析uBOOT源码,详细研究ARM处理器在上电后的启动过程和加载引导Iinux的过程;分析并总结Linux与处理器相关的接口,以中断控制器、定时器以及串口为主,提出了移植Linux到新型处理器的思路和方法;研究Iinux文件系统的内容、制作和使用;分析Linux的设备驱动体系结构以及设备驱动的调用方式;在学习和研究的基础之上,针对STMP36xx这款处理器,设计并实现引导加载程序,完成Linux的移植、配置、编译,解决Linux启动过程遇到的问题,然后通过制作根文件系统和实现NandFlash、LCD的驱动,完整地搭建起以Linux为核心的软件平台,并进行了应用验证。 在实际应用中,嵌入式系统会使用很多不同类型的处理器,因此迫切希望能够找到一个准则解决移植带来的问题。本文最重要的成果就是为Linux在新型处理器上的移植提出了一个准则,根据该准则可以更加快速、更加准确地将Linux应用到不同的处理器上,因此具有重要的现实意义。同时,本文将项目实践贯穿于理论研究之中,涉及到Linux平台关键技术的分析、相关工具的使用以及开发经验的分享,对学习嵌入式Linux和设计嵌入式Linux系统具有较高的参考和指导价值。此外,成功移植的STMP36xx已经初具规模,可以通过二次开发以形成完善的嵌入式产品。
上传时间: 2013-06-01
上传用户:sa123456
很好的 源码,适合初学者,引导Linux的代码
上传时间: 2013-04-24
上传用户:zukfu
at91rm9200启动过程教程 系统上电,检测BMS,选择系统的启动方式,如果BMS为高电平,则系统从片内ROM启动。AT91RM9200的ROM上电后被映射到了0x0和0x100000处,在这两个地址处都可以访问到ROM。由于9200的ROM中固化了一个BOOTLOAER程序。所以PC从0X0处开始执行这个BOOTLOAER(准确的说应该是一级BOOTLOADER)。这个BOOTLOER依次完成以下步骤: 1、PLL SETUP,设置PLLB产生48M时钟频率提供给USB DEVICE。同时DEBUG USART也被初始化为48M的时钟频率; 2、相应模式下的堆栈设置; 3、检测主时钟源(Main oscillator); 4、中断控制器(AIC)的设置; 5、C 变量的初始化; 6、跳到主函数。 完成以上步骤后,我们可以认为BOOT过程结束,接下来的就是LOADER的过程,或者也可以认为是装载二级BOOTLOER。AT91RM9200按照DATAFLASH、EEPROM、连接在外部总线上的8位并行FLASH的顺序依次来找合法的BOOT程序。所谓合法的指的是在这些存储设备的开始地址处连续的存放的32个字节,也就是8条指令必须是跳转指令或者装载PC的指令,其实这样规定就是把这8条指令当作是异常向量表来处理。必须注意的是第6条指令要包含将要装载的映像的大小。关于如何计算和写这条指令可以参考用户手册。一旦合法的映像找到之后,则BOOT程序会把找到的映像搬到SRAM中去,所以映像的大小是非常有限的,不能超过16K-3K的大小。当BOOT程序完成了把合法的映像搬到SRAM的任务以后,接下来就进行存储器的REMAP,经过REMAP之后,SRAM从映设前的0X200000地址处被映设到了0X0地址并且程序从0X0处开始执行。而ROM这时只能在0X100000这个地址处看到了。至此9200就算完成了一种形式的启动过程。如果BOOT程序在以上所列的几种存储设备中找到合法的映像,则自动初始化DEBUG USART口和USB DEVICE口以准备从外部载入映像。对DEBUG口的初始化包括设置参数115200 8 N 1以及运行XMODEM协议。对USB DEVICE进行初始化以及运行DFU协议。现在用户可以从外部(假定为PC平台)载入你的映像了。在PC平台下,以WIN2000为例,你可以用超级终端来完成这个功能,但是还是要注意你的映像的大小不能超过13K。一旦正确从外部装载了映像,接下来的过程就是和前面一样重映设然后执行映像了。我们上面讲了BMS为高电平,AT91RM9200选择从片内的ROM启动的一个过程。如果BMS为低电平,则AT91RM9200会从片外的FLASH启动,这时片外的FLASH的起始地址就是0X0了,接下来的过程和片内启动的过程是一样的,只不过这时就需要自己写启动代码了,至于怎么写,大致的内容和ROM的BOOT差不多,不同的硬件设计可能有不一样的地方,但基本的都是一样的。由于片外FLASH可以设计的大,所以这里编写的BOOTLOADER可以一步到位,也就是说不用像片内启动可能需要BOOT好几级了,目前AT91RM9200上使用较多的bootloer是u-boot,这是一个开放源代码的软件,用户可以自由下载并根据自己的应用配置。总的说来,笔者以为AT91RM9200的启动过程比较简单,ATMEL的服务也不错,不但提供了片内启动的功能,还提供了uBOOT可供下载。笔者写了一个BOOTLODER从片外的FLASHA启动,效果还可以。 uBOOT结构与使用uBOOT是一个庞大的公开源码的软件。他支持一些系列的arm体系,包含常见的外设的驱动,是一个功能强大的板极支持包。其代码可以 http://sourceforge.net/projects/u-boot下载 在9200上,为了启动uBOOT,还有两个boot软件包,分别是loader和boot。分别完成从sram和flash中的一级boot。其源码可以从atmel的官方网站下载。 我们知道,当9200系统上电后,如果bms为高电平,则系统从片内rom启动,这时rom中固化的boot程序初始化了debug口并向其发送'c',这时我们打开超级终端会看到ccccc...。这说明系统已经启动,同时xmodem协议已经启动,用户可以通过超级终端下载用户的bootloader。作为第一步,我们下载loader.bin.loader.bin将被下载到片内的sram中。这个loder完成的功能主要是初始化时钟,sdram和xmodem协议,为下载和启动uBOOT做准备。当下载了loader.bin后,超级终端会继续打印:ccccc....。这时我们就可以下在uBOOT了。uBOOT将被下载到sdram中的一个地址后并把pc指针调到此处开始执行uBOOT。接着我们就可以在终端上看到uBOOT的shell启动了,提示符uBOOT>,用户可以uBOOT>help 看到命令列表和大概的功能。uBOOT的命令包含了对内存、flash、网络、系统启动等一些命令。 如果系统上电时bms为低电平,则系统从片外的flash启动。为了从片外的flash启动uBOOT,我们必须把boot.bin放到0x0地址出,使得从flash启动后首先执行boot.bin,而要少些boot.bin,就要先完成上面我们讲的那些步骤,首先开始从片内rom启动uBOOT。然后再利用uBOOT的功能完成把boot.bin和uBOOT.gz烧写到flash中的目的,假如我们已经启动了uBOOT,可以这样操作: uBOOT>protect off all uBOOT>erase all uBOOT>loadb 20000000 uBOOT>cp.b 20000000 10000000 5fff uBOOT>loadb 21000000 uBOOT>cp.b 210000000 10010000 ffff 然后系统复位,就可以看到系统先启动boot,然后解压缩uBOOT.gz,然后启动uBOOT。注意,这里uBOOT必须压缩成.gz文件,否则会出错。 怎么编译这三个源码包呢,首先要建立一个arm的交叉编译环境,关于如何建立,此处不予说明。建立好了以后,分别解压源码包,然后修改Makefile中的编译器项目,正确填写你的编译器的所在路径。 对loader和boot,直接make。对uBOOT,第一步:make_at91rm9200dk,第二步:make。这样就会在当前目录下分别生成*.bin文件,对于uBOOT.bin,我们还要压缩成.gz文件。 也许有的人对loader和boot搞不清楚为什么要两个,有什么区别吗?首先有区别,boot主要完成从flash中启动uBOOT的功能,他要对uBOOT的压缩文件进行解压,除此之外,他和loader并无大的区别,你可以把boot理解为在loader的基础上加入了解压缩.gz的功能而已。所以这两个并无多大的本质不同,只是他们的使命不同而已。 特别说名的是这三个软件包都是开放源码的,所以用户可以根据自己的系统的情况修改和配置以及裁减,打造属于自己系统的bootloder。
上传时间: 2013-10-27
上传用户:wsf950131