新闻中心

EEPW首页>嵌入式系统>设计应用> 移植标准Linux到S3C2410

移植标准Linux到S3C2410

作者: 时间:2012-05-18 来源:网络 收藏

此处需要自行加入内核解压前处理器初始化文件head-s3c2410.s,示例代码:

.section .start, ax

___start:

bic r2, pc, #0x1f @清除pc相关位,放于r2

add r3, r2, #0x4000

1: ldr r0, [r2], #32

teq r2, r3

bne 1b

mcr p15, 0, r0, c7, c10, 4 @ 写回 Write Buffer

mcr p15, 0, r0, c7, c7, 0 @ 刷新 I D caches

#if 0

@ 禁用MMU ,caches

……

#endif

mov r0, #0x00200000

1: subs r0, r0, #1

bne 1b

/arch/arm/kernel/ Makefile

依样将$(CONFIG_ARCH_2400) $(CONFIG_ARCH_2410) 加入

no-irq-arch :=$(CONFIG_ARCH_INTEGRATOR) $(CONFIG_ARCH_CLPS711X)

……

$(CONFIG_ARCH_AT91RM9200

并添加 obj-$(CONFIG_MIZI) += ecard.o

obj-$(CONFIG_ARCH_APM) +=apm2.o

/arch/arm/kernel/entry-armv.S

此文件主要定义CPU初始化时中断处理部分[6],可参考处理器使用手册,按处理器使用要求设置。

/arch/arm/kernel/debug-armv.S

此文件用于最基本的串口调试功能[6],包括调试串口的地址初始化、发送、等待、忙状态定义等。使用此文件可以在启动过程中打印出相关信息。

/arch/arm/kernel/setup.c

在此文件中要根据使用的板子设置几个变量[5]。nr_banks指定了内存块的数量,bank指定了每块内存块的范围,PAGE_OFFSET是内存起始地址,MEM_SIZE是内存的大小。PAGE_OFFSET,MEM_SIZE要在/include/asm-arm/arch-s3c2410中定义。

/arch/arm/mm/mm-armv.c

此文件用于与硬件相关的内存管理,如初始化内存页表内存映射等。

将init_maps->bufferable = 0;改为 init_maps->bufferable = 1;

/arch/arm/mach-s3c2410

建立相应目录并按照处理器使用要求编写irq.c,mm.c,time.c,arch.c,Makefile,分别实现中断控制器的初始化,地址的虚实映射关系,时钟中断和实时时钟处理以及有关Ramdisk使用参数等的设置。

/include/asm-arm/arch-s3c2410

此目录下定义用到的头文件。

至此工作基本完成,再进行如下编译过程,即可得到我们需要的映像文件[4]。

make dep; make clean; make zImage

linux操作系统文章专题:linux操作系统详解(linux不再难懂)


评论


相关推荐

技术专区

关闭