嵌入式Linux系统移植
移植Linux内核2.6.29版本到S3C2440平台,开发板为友善之臂mini2440
HYQ458941968
这个作者很懒,什么都没留下…
展开
-
mini2440系统移植篇之u-boot分析
1. Bootloader概念系统上电后,需要一段程序来初始化重要的硬件,有些程序是固化在固件firmwware上的,如PC的BIOS。然后是Bootloader,如PC上的GRUB。对于嵌入式系统来说,一般只有Bootloader,它负责初始化内核运行的硬件环境,如内存,然后调用操作系统内核。一般最终产品它只需要启动内核就足够了,为了方便开发,还可以增强Bootloader功能,比如网络功能原创 2015-05-04 22:10:14 · 904 阅读 · 0 评论 -
mini2440系统移植篇之u-boot第一阶段汇编
1. 第一阶段汇编1.1. 流程图1.1.1. 异常向量表.globl _start_start: b start_code ldr pc, _undefined_instruction ldr pc, _software_interrupt ldr pc, _prefetch_abort ldr pc, _data_abort ldr pc, _not_used原创 2015-05-05 21:09:25 · 443 阅读 · 0 评论 -
mini2440系统移植篇之u-boot第二阶段C语言
1. 第二阶段C语言1.1. 初始化由第一阶段汇编得知,最后跳到C语言的start_armboot,这个函数在lib_arm/board.c。1.1.1. 全局结构体程序一开始申请两个全局结构体gd和bd。gd是全局相关的变量,主要有波特率,环境变量地址,帧缓冲地址,还有一个flag。typedef struct global_data { bd_t *bd; u原创 2015-05-16 09:42:30 · 621 阅读 · 0 评论 -
mini2440系统移植篇之kernel配置
1. 配置内核的通过读取arch/arm/目录KConfig及各个子目录下的KConfig文件,生成配置选项,用户配置后,生成.config文件,该文件就是生成的配置结果,供编译参考。1、一般配置会拷贝最相近的配置作为蓝本,比如移植mini2440,以2410的默认配置为蓝本cp arch/arm/configs/smdk2410_default .config2、进入图形化配置界原创 2015-05-23 10:53:53 · 824 阅读 · 0 评论 -
mini2440系统移植篇之kernel编译
1. 编译Linux内核的Makefile分为5个部分: Makefile 顶层Makefile .config 内核配置文件 arch/$(ARCH)/Makefile 具体架构的Makefile scripts/Makefile.* 通用的规则等。面向所有的K原创 2015-05-23 10:55:01 · 520 阅读 · 0 评论 -
mini2440系统移植篇之kernel链接
链接文件在arch/arm/kernel中,由vmlinux.S生成vmlinux.ldsSECTIONS{1、代码起始段,head段对应arch/arm/kernel/head.o arm/arch/kernel/init_task.o . = 0xC0000000 + 0x00008000; //代码段起始地址,这是个虚拟地址 .text.head : { _stex原创 2015-05-23 10:56:09 · 630 阅读 · 0 评论 -
mini2440系统移植篇之kernel启动流程
1.1. 第1阶段arch/arm/kernel/vmlinux.lds--------------------Makefile 2.1 arch/arm/boot/compressed/start.S 解压代码 2.2 arch/arm/kernel/head.S2.2.1 __lookup_machine_type 机器ID àMACH_START原创 2015-05-23 11:24:51 · 809 阅读 · 0 评论 -
mini2440系统移植篇之rootfs制作
1. 制作根文件系统1、创建目录2、创建必要的设备文件3、安装所需的共享库4、安装init文件、shell及各种linux命令,由busybox提供5、创建编辑配置1.1. 创建目录mkdir rootfscd rootfsmkdir bin sbin dev lib etc root usr proc mnt tmpmkdir usr/bin usr/li原创 2015-05-30 12:27:34 · 928 阅读 · 0 评论 -
mini2440系统移植篇之init启动流程
1. 启动内核启动应用程序/linuxrcbusybox ini.cinit_main设置信号处理函数初始化控制台parse_inittab解析inittab1.1. 解析inittabfile = open(INITTAB, “r”); //打开配置文件/etc/inittabnew_init_action//1 创建一个init_action结构,填充原创 2015-05-30 12:28:01 · 636 阅读 · 0 评论