04 2013 档案

摘要:2 u-boot系统启动流程大多数bootloader都分为stage1和stage2两大部分,u-boot也不例外。依赖于CPU体系结构的代码(如设备初始化代码等)通常都放在stage1且可以用汇编语言来实现,而stage2则通常用C语言来实现,这样可以实现复杂的功能,而且有更好的可读性和移植性。2.1 stage1 (start.s代码结构)u-boot的stage1代码通常放在start.s文件中,它用汇编语言写成,其主要代码部分如下:(1) 定义入口 。由于一个可执行的Image必须有一个入口点,并且只能有一个全局入口,通常这个入口放在ROM(Flash)的0x0地址,因此,必须通知 阅读全文
posted @ 2013-04-28 10:49 @菜鸟爱学习@ 阅读(234) 评论(0) 推荐(0) 编辑
摘要:http://blog.mcuol.com/User/lvembededsys/Article/4355_1.htmU-BOOT是一个LINUX下的工程,在编译之前必须已经安装对应体系结构的交叉编译环境,这里只针对ARM,编译器系列软件为arm-linux-*。U-BOOT的下载地址: http://sourceforge.net/projects/u-boot我下载的是1.1.6版本,一开始在FTP上下载了一个次新版,结果编译失败。1.1.6是没问题的。u-boot源码结构 解压就可以得到全部u-boot源程序。在顶层目录下有18个子目录,分别存放和管理不同的源程序。这些目录中所要存放的文件 阅读全文
posted @ 2013-04-27 10:49 @菜鸟爱学习@ 阅读(203) 评论(0) 推荐(0) 编辑
摘要:http://blog.csdn.net/string19820108/article/details/7235546本章和第5章的内容都与ARM处理器中CP15协处理器的寄存器有密切关系,所以我们这里先介绍一下CP15寄存器以及访问CP15寄存器的汇编指令。4.1.1 访问CP15寄存器的指令访问CP15寄存器指令的编码格式及语法说明如下:31 2827 2423 212019 1615 1211 87 543 0cond1 1 1 0opcode_1Lcr nrd1 1 1 1opcode_21crm说明::协处理器行为操作码,对于CP15来说,永远为0b000,否则结果未知。:不能是r1 阅读全文
posted @ 2013-04-27 10:09 @菜鸟爱学习@ 阅读(373) 评论(0) 推荐(0) 编辑
摘要:ARM汇编指令集一、 跳转指令 跳转指令用于实现程序流程的跳转,在ARM程序中有两种方法可以实现程序流程的跳转:Ⅰ.使用专门的跳转指令。Ⅱ.直接向程序计数器PC写入跳转地址值。通过向程序计数器PC写入跳转地址值,可以实现在4GB的地址空间中的任意跳转,在跳转之前结合使用MOV LR,PC等类似指令,可以保存将来的返回地址值,从而实现在4GB连续的线性地址空间的子程序调用。 ARM指令集中的跳转指令可以完成从当前指令向前或向后的32MB的地址空间的跳转,包括以下4条指令:1、 B指令B指令的格式为:B{条件} 目标地址B指令是最简单的跳转指令。一旦遇到一个 B 指令,ARM 处理器将立即跳转到给 阅读全文
posted @ 2013-04-26 15:15 @菜鸟爱学习@ 阅读(1394) 评论(0) 推荐(0) 编辑
摘要:http://www.51hei.com/mcu/1435.htmlhttp://blog.mcuol.com/User/lvembededsys/Article/4728_1.htm 阅读全文
posted @ 2013-04-26 10:23 @菜鸟爱学习@ 阅读(109) 评论(0) 推荐(0) 编辑
摘要:没有时间整理,一开始一直在百度上搜索资料,两天也没弄好,后来去谷歌上搜索了一下,3分钟就编译通过了,虽然还没来得及实验,但是从这一刻起我决定抛弃百度,用谷歌s5pv210 uboot-2012-10移植(一) 之能够启动进入控制台http://www.verydemo.com/demo_c278_i1187.html 阅读全文
posted @ 2013-04-24 10:14 @菜鸟爱学习@ 阅读(184) 评论(0) 推荐(0) 编辑
摘要:转载请注明出处:snowboy.blog.chinaunix.net每个诡异错误的背后。都隐藏着一个低级错误。真理重新得到验证。正如只所以会有这篇博文也是如此,拿别人的一个uboot源码直接过来编译,操作如下:顶层Makefile已经生成完毕#make clean#make mini2440_config#make出现错误如下:给我的第一感觉分析,我该清的都清了,前面不是已经做了make clean操作了么?现在是不是Makefile出现了问题,我该源码具备的编译环境,我的源码需要放在特定的路径下编译,种种答案一一尝试,而该问题给我的回应是无止无休的***没有规则可以创建***类似的错误。所有 阅读全文
posted @ 2013-04-23 10:39 @菜鸟爱学习@ 阅读(1071) 评论(0) 推荐(0) 编辑
摘要:在uboot中已经支持了DM9000驱动代码在drivers/net/目录下的dm9000x.c dm9000x.h修改include/configs/smdkc100.h 文件,注释掉SMC911X的支持,添加对DM9000的支持//#define CONFIG_SMC911X 1 /* we have a SMC9115 on-board *///#define CONFIG_SMC911X_16_BIT 1 /* SMC911X_16_BIT Mode *///#define CONFIG_SMC911X_BASE 0x98800300 /* SMC911X Drive Base */在 阅读全文
posted @ 2013-04-23 10:37 @菜鸟爱学习@ 阅读(336) 评论(0) 推荐(0) 编辑
摘要:我们知道,bootloader是系统上电后最初加载运行的代码。它提供了处理器上电复位后最开始需要执行的初始化代码。 在PC机上引导程序一般由BIOS开始执行,然后读取硬盘中位于MBR(Main Boot Record,主引导记录)中的Bootloader(例如LILO或GRUB),并进一步引导操作系统的启动。 然而在嵌入式系统中通常没有像BIOS那样的固件程序,因此整个系统的加载启动就完全由bootloader来完成。它主要的功能是加载与引导内核映像一个嵌入式的存储设备通过通常包括四个分区:第一分区:存放的当然是u-boot第二个分区:存放着u-boot要传给系统内核的参数第三个分区:是系统内 阅读全文
posted @ 2013-04-23 09:57 @菜鸟爱学习@ 阅读(491) 评论(0) 推荐(0) 编辑
摘要:1.1U-Boot工作过程U-Boot启动内核的过程可以分为两个阶段,两个阶段的功能如下:(1)第一阶段的功能硬件设备初始化加载U-Boot第二阶段代码到RAM空间设置好栈跳转到第二阶段代码入口(2)第二阶段的功能初始化本阶段使用的硬件设备检测系统内存映射将内核从Flash读取到RAM中为内核设置启动参数调用内核1.1.1U-Boot启动第一阶段代码分析第一阶段对应的文件是cpu/arm920t/start.S和board/samsung/mini2440/lowlevel_init.S。U-Boot启动第一阶段流程如下:图2.1 U-Boot启动第一阶段流程根据cpu/arm920t/u-b 阅读全文
posted @ 2013-04-22 11:08 @菜鸟爱学习@ 阅读(279) 评论(0) 推荐(0) 编辑
摘要:一.预备知识:1. 首先,U-Boot1.3.4还没有支持s3c2440,移植仍是用2410的文件稍作修改而成的。2. 2440和2410的区别:2440和2410的区别主要是2440的主频更高,增加了摄像头接口和AC‘97音频接口;寄存器方面,除了新增模块的寄存器外,移植所要注意的是NAND FlASH控制器的寄存器有较大的变化、芯片的时钟频率控制寄存器(芯片PLL的寄存器)有一定的变化。其他寄存器基本是兼容的。3. 你开发板的boot方式是什么,开发板上电以后是怎么执行的。一般来说三星的开发板有三种启动方式:nand、nor、ram。具体用那一种方式来启动决定于CPU的0M[0:1]这两. 阅读全文
posted @ 2013-04-22 09:59 @菜鸟爱学习@ 阅读(362) 评论(0) 推荐(0) 编辑
摘要:根据IEEE(电气和电子工程师协会)的定义,嵌入式系统是“控制、监视或者辅助装置、机器和设备运行的装置”(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。从中可以看出嵌入式系统是软件和硬件的综合体,还可以涵盖机械等附属装置。目前国内一个普遍被认同的定义是:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。一般的嵌入式系统都由以下几部分组成: 1.特定的应用程序 比如QQ ,浏览器,游戏 2 阅读全文
posted @ 2013-04-15 09:05 @菜鸟爱学习@ 阅读(487) 评论(0) 推荐(0) 编辑
摘要:开发平台:x86 redhat5.5目标平台:SMDK6410 注意: 该文档是移植完成之后的总结,所以并非按照真正的移植步骤所写, 只做参考 修改完成后运行make进行编译,把编译生成的u-boot-nand.bin烧写到nand的0-0x40000后即可切换为nand启动方式来运行 在uboot启动后手动添加环境变量 [zhangsan@nand]# set ipaddr 192.168.1.20 [zhangsan@nand]# set serverip 192.168.1.254 [zhangsan@nand]# set ethaddr 11:22:33:44:55:66 这些变量也可 阅读全文
posted @ 2013-04-15 09:02 @菜鸟爱学习@ 阅读(282) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示