linux内核移植s3c2410,移植正式开始1
在前面的准备工作完成之后,先实验一下,谈不上真正的移植 ,因为代码都没有改的。
首先修改顶层的Makefile,修改ARCH,CROSS_COMPLIE变量。
#ARCH ?= $(SUBARCH)
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-
执行make smdk2410_defconfig
make
然后执行make uImage,注意需要含有mkimage工具,这个工具是在编译uboot时产生的,同时需要将mkimage拷贝到path
环境变量中。
最终在arch/arm/boot/目录下生成uImage文件,下载该文件到开发板中,既可以观察结果,当然此时是没有文件系统的支持,
内核肯定是启动不起来的。
为了开始内核代码的移植,首先必须得了解内核的启动过程。
内核最先执行的代码是在arch/arm/kernel/head.S文件,该文件只需要关注下面的一段代码:
.section ".text.head", "ax"
.type stext, %function
ENTRY(stext)
msr cpsr_c, #PSR_F_BIT | PSR_I_BIT | SVC_MODE @ ensure svc mode
@ and irqs disabled
mrc p15, 0, r9, c0, c0 @ get processor id
bl __lookup_processor_type @ r5=procinfo r9=cpuid
movs r10, r5 @ invalid processor (r5=0)?
beq __error_p @ yes, error 'p'
bl __lookup_machine_type @ r5=machinfo
movs r8, r5 @ invalid machine (r5=0)?
beq __error_a @ yes, error 'a'
bl
相关文档:
库有动态与静态两种,动态通常用.so为后缀,静态用.a为后缀。例如:libhello.so libhello.a
1,生成库
第一步要把源代码编绎成目标代码。以下面的代码为例,生成上面用到的hello库:
/* hello.c * ......
先介绍一下情况,服务器A和服务器B都是CentOS 4.6的系统,现在要做HA
Cluster,为了避免裂脑的发生,要提高心跳链路的可靠性,下图是现时的连接情况,服务器A的eth2、eth3分别和服务器B的eth2、eth3
相连(没有顺序关系),所有网卡都是千兆网卡,拓扑图如下所示:
在介绍一起硬件情况,服务器A是一台HP DL380
G5, ......
几个简单的应用。
1、批量图像格式转换
如果想将某目录下的所有jpg文件转换为png文件,只要在命令行模式下输入:
for %f in (*.jpg) do convert “%f” “%~nf.png”
2、对所有图像进行同一操作
譬如,批量生成某目录下所有PNG图像文件的缩略图(大小为80×40):
......
windows(dos)下的换行符 和 linux (ubuntu)下的换行符是不同的。
在涉及到DOS下的文本 在LINUX下 操作时,就涉及到换行符不同带来的麻烦。
,在DOS使用的换行符为 ^M$,我们称为CR与LF两个符号。而在Linux中,则仅有LF ($) 这个换行符。这个换行符对于
Linux的影响很大。
我们说过,在开始执行Linux命令时,它的判断依
......
Linux开机过程理解
一. Power on
二. BIOS加电自检:
1. 检测所有周边硬件
2. 寻找启动的磁盘(cd-rom,floppy,IDE HDD,usb device等)
三. & ......