易截截图软件、单文件、免安装、纯绿色、仅160KB

uboot在引导linux之前要做的事

启动armlinux,bootloader必须提供下面几步:
 
1.  设置并初始化ram
2.  初始化一个串口
3.  检测处理器类型
4.  设置内核标记列表
5.  调用内核映像
 
1.       设置并初始化ram
 
bootloader要找到并初始化系统中所有的ram,内核将这些ram用于可变数据的存储。
 
2.       初始化一个串口
 
bootloader应该在目标板上初始化并使能一个串串口。这将允许内核串口驱动自动检测它应该用哪个串口作为内核控制台。
 
另外,bootloader也可通过标记列表传递相关的”console=”选项到内核来指定串口以及串口格式(奇偶位,停止位等)
 
3.       检测处理器类型
 
bootloader应该通过某种方法检测它所运行的处理器的类型,它最终必须能够向内核提供一个MACH_TYPE_xxx值。
 
4.设置内核标记列表
 
bootloader必须创建并初始化内核标记列表。一个有效的标记列表起始于ATAG_CORE而终止于ATAG_NONE。任何数量的标记都可以加入这个列表。bootloader至少要向内核传送系统内存的大小和位置以及根文件系统的位置。
 
标记列表必须放在某个内存区域,这个区域既不能被内核解压器重写,也不能被initrd ‘boot0’ 程序重写。推荐的位置是RAM开头的16K。
 
5.  调用内核映像
 
有两种调用kernel zImage的选择。如果zImage存储在flash中,并且被正确的连接从flash运行,那么对于bootloader来说,直接从flash调用zImage是合法的。
 
zImage也可以放到系统RAM中任何位置并在那个位置调用。注意,内核使用这个映像下面的16K RAM存储页表。推荐将映像存放在RAM的32K位置处。
 
在任何情况下,下面的重要条件都必须满足:
 
――屏蔽所有具有DMA功能的设备,以便内存不会被伪造的网络包或磁盘数据误导。这将大大节约你的调试时间
 
――cpu寄存器设置
r0 = 0,
r1 = 处理器类型号
r2 = 标记列表在系统内存中的物理地址
 
       uboot中调用内核时:
       theKernel (0, bd->bi_arch_number, bd->bi_boot_params);
这里第1、2、3个参数就分别存储在r0、r


相关文档:

实战Linux Bluetooth编程(三) HCI层编程

1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI)  就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......

linux系统裁剪

 说到裁减Linux,无非是为了减小磁盘占用或者是为了某些特定场合的应用(如嵌入式系统)。以RedHat 7.3为例,其最小安装仍然达到了300M,这不得不让人对一直号称小而全的Linux系统感到疑惑。
作为自己手中课题的一个铺垫,不久前我尝试了对Linux进行裁减,虽然没有达到预期的一张软盘大小,但结果也相当有吸引力。下 ......

小Linux发行版的大用处

 




<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->

        什么是小
Linux
(“
Small
Linux”
)发行版?有哪些小
Linux
?它们有什么用处?
 
        众所周知,由 ......

Linux virtual server【LVS】

1. Two methods to construct the cluster of servers
(1). DNS based load balancing cluster
DNS load balancing is probably the simplest method to build network
service cluster. It uses Domain Name System to distribute requests to
different servers through resolving the domain name to different IP
......

Linux中等待队列机制分析

 Linux中等待队列机制分析
 
什么是等待队列?
       在软件开发中任务经常由于某种条件没有得到满足而不得不进入睡眠状态,然后等待条件得到满足的时候再继续运行,进入运行状态。这种需求需要等待队列机制的支持。Linux中提供了等待队列的机制,该机制在内核中应用很广泛。 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号