03 2013 档案
摘要:U-BOOT源码分析及移植本文从以下几个方面粗浅地分析u-boot并移植到FS2410板上:1、u-boot工程的总体结构2、u-boot的流程、主要的数据结构、内存分配。3、u-boot的重要细节,主要分析流程中各函数的功能。4、基于FS2410板子的u-boot移植。实现了NOR Flash和NAND Flash启动,网络功能。 这些认识源于自己移植u-boot过程中查找的资料和对源码的简单阅读。下面主要以smdk2410为分析对象。 一、u-boot工程的总体结构:1、源代码组织 对于ARM而言,主要的目录如下:board 平台依赖 存...
阅读全文
摘要:把读卡器SD卡插上电脑,在VMware的菜单栏上依次点VM--》Removable Devices--》USB Devices--》(你的SD卡)如图:此时,可以看到Windows系统右下角弹出安全退出USB设备的消息提示,说明U盘已被虚拟系统识别,在VMware的右下角会看到一个USB的图标通过#fdisk -l命令确认虚拟系统是否识别U盘,如下:要记住你的SD卡在Linux下的的设备名称,然后你就可以用"mount /dev/sdb1 /mnt"命令挂载你的SD卡了。其中这里我挂载的时候出现了一些错误,所以挂了好一会儿才挂上去的,以它老是提示说:hfs: unable
阅读全文
摘要:Redhat Linux 硬盘挂载方法!!!编写背景:这周要开始搭建测试管理系统bugzilla,第一步是装操作系统。由于使用的机器配置非常的老,机器有4块硬盘,每个硬盘17G;第一次遇到这样的情况,装上操作系统后,如何挂接硬盘还真是不会,在网上找了不少资料看,对资料进行归类总结,在此收录保存同时供大家需要时查看。Redhat Linux 硬盘挂载方法!!!参考资料网址:http://www.chinalinuxpub.com/read.php?wid=1080硬盘挂载操作工作步骤:1、先查看目前机器上有几块硬盘,查看命令有两种:命令1:# fdisk –l命令2:# dmesg | grep
阅读全文
摘要:DECLARE_GLOBAL_DATA_PTR; 这个宏在include/global_data.h中#define DECLARE_GLOBAL_DATA_PTR register volatile gd_t *gd asm ("r8")/* 声明一个寄存器变量gd占用r8。这个宏在所有需要引用全局数据指针gd_t *gd的源码中都有声明* 这个声明也避免编译器把r8分配给其他的变量,所以gd就是r8,这个指针变量不占用内存。*//* 定义gd为gd_t类型指针,存储在寄存器r8中 *//* register:表示变量对于执行速度非常重要,因此应该放在机器的寄存器中(寄存
阅读全文
摘要:1.CS8900ACS8900芯片是Cirrus Logic公司生产的一种局域网处理芯片,在嵌入式领域中使用非常常见。它的封装是100-pin TQFP,内部集成了在片RAM、10BASE-T收发滤波器,并且提供8位和16位两种接口。CS8900与ARM芯片按照16位方式连接,网卡芯片复位后默认工作方式为I/O连接,基址是300H。CS8900A还提供其它性能和配置选择.它独特的Packet Page结构可自动适应网络通信量模式的改变和现有系统资源,从而提高系统效率。MCU与CS8900A的数据传输有三种模式:I/O模式,存储器模式和DMA模式.本设计采用CS8900A默认的I/O模式,因为I
阅读全文
摘要:原文出处:http://blog.csdn.net/sydjm/article/details/8591518-------------------------------------------------------------------------------------------------------------------------------------------我们知道,bootloader是系统上电后最初加载运行的代码。它提供了处理器上电复位后最开始需要执行的初始化代码。 在PC机上引导程序一般由BIOS开始执行,然后读取硬盘中位于MBR(Main Boot Reco
阅读全文
摘要:http://www.cnblogs.com/hanyan225/archive/2011/05/23/2054076.html本例中采用的同样是前边一贯的实验板,这里就不对板子资源做进一步介绍了。 我们知道,bootloader是系统上电后最初加载运行的代码。它提供了处理器上电复位后最开始需要执行的初始化代码。在PC机上引导程序一般由BIOS开始执行,然后读取硬盘中位于MBR(Main Boot Record,主引导记录)中的Bootloader(例如LILO或GRUB),并进一步引导操作系统的启动。然而在嵌入式系统中通常没有像BIOS那样的固件程序,因此整个系统的加载启动就完全由bootl
阅读全文
摘要://主题:S5PV210之UBOOT-2011.06启动过程解析//作者:kevinjz2010@gmail.com//版权:kevinjz原创//平台:S5PV210 ARMV7 TINY210//发布日期:2012-05-24//最后修改:2012-11-27//注意事项:欢迎转载,但不得在转载的时候擅自修改、删除文章的任何部分//------------------------------------------------------------------------------------------------- 本文使用的UBOOT版本:u-boot for tiny21...
阅读全文
摘要:按照三星《S5PV210_UM_REV1.1》手册上说明的启动流程为:S5PV210上电将从IROM(interalROM)处执行固化的启动代码,它对时钟等初始化、对启动设备进行判断,并从启动设备中复制BL1(最大16KB)到IRAM(0xd002_0000处,其中0xd002_0010之前的16个字节储存的BL1的校验信息和BL1尺寸)中,并对BL1进行校验,校验OK转入BL1进行执行;首先解释一下我认为的BL0、BL1、BL2:(1)BL0:是指S5PV210的IROM中固化的启动代码;(2)BL1:是指在IRAM自动从外扩存储器(nand/sd/usb)中拷贝的uboot.bin二进制文
阅读全文
摘要:最近在分析u-boot的源代码,看到这一行:.balignl 16,0xdeadbeef不理解了,不知道为什么要这样写,0xdeadbeef,明显是个单词组,写在这里有何意义呢?然后在查阅了众多资料的时候才晃然大悟。下面我一步步来说明:首先要弄明白.balignl的意思,这个其实应该算是一个伪操作符,伪操作符的意思就是机器码里,并没有一个汇编指令与其对应,是编译器来实现其功能的。.balignl是.balign的变体,.balign是意思是,在以当前地址开始,地址计数器必须是以第一个参数为整数倍的地址为尾,在前面记录一个字节长度的信息,信息内容为第二个参数。.balign 8, 0xde它的意
阅读全文
摘要:自己写的bootloader可以引导kernel了,我以为曾经神秘的u-boot代码将变得毫无挑战,然事实表明u-boot作为优秀的开源代码,阅读起来还是很有挑战的,值得一读! 阅读碰到的头等问题:Makefile和shell脚本看不懂... 说起来做linux也很久了,Makefile和shell脚本都接触过,但真的都是略懂而已.因为公司的Makefile和shell简单的一眼望的对穿,很初级的写法,简单的应用.再随便在网上下个老外的开源代码,那个Makefile和shell复杂啊.一不留神想起来了qt的qmake根据工程文件生成的Makefile也是很简单,但qmake是人家老...
阅读全文
摘要:如果make执行的命令前面加了@字符,则不显示命令本身而只显示它的结果; Android中会定义某个变量等于@,例如 hide:= @通常make执行的命令如果出错(该命令的退出状态非0)就立刻终止,不再执行后续命令,但如果命令前面加了-号,即使这条命令出错,make也会继续执行后续命令。通常rm命令和mkdir命令前面要加-号,因为rm要删除的文件可能不存在,mkdir要创建的目录可能已存在,这两个命令都有可能出错,但这种错误是应该忽略的。
阅读全文
摘要:在linux下拷贝的时候有时候会出现cp:omitting directory的错误 ,例如 cp:omitting directory "bbs" 说明bbs目录下面还有目录,不能直接拷贝解决办法:递归拷贝 命令:cp-rbbs ../backup/bbs 解释:-r 这个options是递归的意思举一反三:删除的时候也可能出现这种下面有文件不能删除的问题 也用-r 级联删除 chmod赋予权限的时候想级联也可以用-R 注意是大写的R
阅读全文
摘要:标题:u-boot中.lds连接脚本文件的分析2008-03-14 14:03:31对于.lds文件,它定义了整个程序编译之后的连接过程,决定了一个可执行程序的各个段的存储位置。虽然现在我还没怎么用它,但感觉还是挺重要的,有必要了解一下。先看一下GNU官方网站上对.lds文件形式的完整描述:SECTIONS {...secname start BLOCK(align) (NOLOAD) : AT ( ldadr ) { contents } >region :phdr =fill...}secname和contents是必须的,其他的都是可选的。下面挑几个常用的看看:1、secname:
阅读全文
摘要:ARM协处理学习分类:arm2011-11-14 11:07141人阅读评论(0)收藏举报cachecdomaincrm存储系统exception一、背景 FS2410 开发板上的ARM核心为ARM920T,ARM920T 代表着什么呢? 其实ARM920T =ARM9 core + MMU + Cache,也就是说ARM920T 为实现虚拟内存管理提供了硬件条件,这个硬件条件就是 MMU -- 内存管理单元。前面的实验我们程序里的地址都是直接对应物理地址,也就是说虚拟地址等同于物理地址,而今借助 MMU 我们可以实现虚拟内存管理,程序里面的地址不再被直接送到地址总线,而是先通过 MMU,由
阅读全文
摘要:ARM 伪指令在 ARM 汇编语言程序里,有一些特殊指令助记符,这些助记符与指令系统的助记符不同,没有相对应的操作码,通常称这些特殊指令助记符为伪指令,他们所完成的操作称为伪操作。伪指令在源程序中的作用是为完成汇编程序作各种准备工作的,这些伪指令仅在汇编过程中起作用,一旦汇编结束,伪指令的使命就完成。在 ARM 的汇编程序中,有如下几种伪指令:符号定义伪指令、数据定义伪指令、汇编控制伪指令、宏指令以及其他伪指令。符号定义( Symbol Definition )伪指令符号定义伪指令用于定义 ARM 汇编程序中的变量、对变量赋值以及定义寄存器的别名等操作。常见的符号定义伪指令有如下几种:— 用于
阅读全文
摘要:中断与异常有什么区别:1、中断:系统停止当前正在运行的程序而转向其他服务,可能是因为优先级高的请求服务了,或者是因为人为安排中断。中断是属于正常现象。异常:是由于软件错误而引起的2、中断是CPU所具备的功能--硬件异常是软件运行过程中的一种开发过程中没有考虑到的程序错误--软件3、1)中断的概念所谓中断是指CPU对系统发生的某个事件作出的一种反应:CPU暂停正在执行的程序,保留现场后自动地转去执行相应的处理程序,处理完该事件后再返回断点继续执行被“打断”的程序。引起中断的事件称为中断源,中断源向CPU提出进行处理的请求称为中断请求。2)中断类型按中断事件来源进行分类,主要有两类:(1)中断。由
阅读全文
摘要:linux源码下载地址:https://www.kernel.org/或者https://www.kernel.org/pub/linux/kernel/
阅读全文