1. 启动
内核启动应用程序/linuxrc
busybox ini.c
init_main
设置信号处理函数
初始化控制台
parse_inittab解析inittab
1.1. 解析inittab
file = open(INITTAB, “r”); //打开配置文件/etc/inittab
new_init_action
//1 创建一个init_action结构,填充
//2 把结构放入init_action_list链表
默认配置
::sysinit:/etc/init.d/rcS
::askfirst:/bin/sh
tty2::askfirst:/bin/sh
tty3::askfirst:/bin/sh
tty4::askfirst:/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/sbin/swapoff -a
::shutdown:/bin/umount -a -r
::restart:/sbin/init
1.2. 运行
/* First run the sysinit command */
run_actions(SYSINIT);
/* Next run anything that wants to block */
run_actions(WAIT);
/* Next run anything to be run only once */
run_actions(ONCE);
/* Now run the looping stuff for the rest of forever */
while (1) {
/* run the respawn/askfirst stuff */
run_actions(RESPAWN | ASKFIRST);
/* Don't consume all CPU time -- sleep a bit */
sleep(1);
/* Wait for any child process to exit */
wpid = wait(NULL);
while (wpid > 0) {
/* Find out who died and clean up their corpse */
for (a = init_action_list; a; a = a->next) {
if (a->pid == wpid) {
/* Set the pid to 0 so that the process gets
* restarted by run_actions() */
a->pid = 0;
message(L_LOG, "process '%s' (pid %d) exited. "
"Scheduling for restart.",
a->command, wpid);
}
}
/* see if anyone else is waiting to be reaped */
wpid = wait_any_nohang(NULL);
}
}
关键字:mini2440 系统移植 init 启动流程
引用地址:
mini2440系统移植篇之init启动流程
推荐阅读最新更新时间:2024-03-16 15:22
mini2440学习——uboot新手入门
在下载Uboot前,需要准备好以下工作:1.usb下载线和串口线,用于串口输出信息和程序下载,2.编译好的mini2440uboot.bin。 在编译.bin文件前需要对工程进行一次make distclean。否则可能会出错,生成bin文件后,将硬件连线接好,在虚拟机中连接usb下载线。 首先安装dnw,在bin文件下,使用dnw将程序烧录到开发板中。在这之前还有一个特别重要的步骤,下面先从这个步骤说起。 一、使用Jlink,将suppervivi下载到开发板,用来引导安装程序。1.选择Open Project--》2440.jflash。 2.选择Target--》connect,再选择erase chip。
[单片机]
TQ210 —— s5pv210 lowlevel_init.S分析(uboot第一阶段)
/* * Memory Setup stuff - taken from blob memsetup.S * * Copyright (C) 1999 2000 2001 Erik Mouw (J.A.K.Mouw@its.tudelft.nl) and * Jan-Derk Bakker (J.D.Bakker@its.tudelft.nl) * * Modified for the Samsung SMDK2410 by * (C) Copyright 2002 * David Mueller, ELSOFT AG, d.mueller@elsoft.ch * * See file CR
[单片机]
个人修改的用于MDK的2440init.s
;====================================================================================== ; 文件名: 2440INIT.s ; 描述: 1).ARM 指令集, ; 2).小端格式 ; 3).NOR Flash总线16位,大小2MB ; 4).NAND Flash型号:K9F2G08,大小256MB ; 5).GPIO总线32位, ; 更改日期: 2012年1月31日 ;======================================================================================
[单片机]
基于Intel PXA270的WinCE操作系统移植
随着科学技术进步和3G时代的到来,高性能PDA产品作为一种电子消费品越来越受青睐。作为这些高性能的PDA产品核心的嵌入式实时操作系统是开发嵌入式应用的关键环节。向来以界面友好,易操作性,易开发性为卖点的Windows CE.net嵌入式操作系统得到了广泛的使用。然而,WindowsCE在不同CPU,不同硬件环境下的移植成为了限制其进一步发展的障碍。本文利用PlatformBuilder工具并以EEliod Evluation开发板为对象,介绍了基于Intel PXA270WindowsCE的移植方法和内容。并给出了在此操作系统成功开发的应用程序的运行结果。 1.系统硬件平台 论文使用的开发平台为深圳亿道公司提供的EEliod
[单片机]
LPC1768 SPI模式下SD卡FatFs文件系统移植
最近在LPC1768 SPI模式下移植SD卡FatFs(版本R0.09a)文件系统成功,总结一下移植过程。 一、底层驱动 使用的SSP0的SPI模式驱动,SSP时钟开始使用的25M。SD卡驱动测试完成,可读写擦除测试没有问题之后开始文件系统移植。 要用到的底层驱动函数有: MMCSD_TYPE MMCSD_Init(void) BOOL MMCSD_EraseBlocks(uint32_tblkStart,uint32_t blkEnd) BOOL MMCSD_ReadSingleBlock(uint32_tblkIndex,uint8_t *pBytes) uint32_t MMCSD_ReadMul
[单片机]
以模块的方式加载DM9000驱动 (for mini2440)
注意事项: 确保开发板内核中不存在DM9000(内核在编译时选择以模块方式编译DM9000) 如果在已经把DM9000编译进内核的开发板安装,会提示DM9000已安装。 报错如下: dm9000: module is already loaded insmod: cannot insert 'dm9000.ko': invalid_parameter. 1、把dm9000.ko模块拷贝到开发板中 U盘拷贝 2、启动Linux后,加载模块: #insmod dm9000.ko
[单片机]
使用u-boot_2016_01启动mini2440(一)启动代码
mini2440的soc用的是s3c2440,因为板子买回来烧写过NOR,而且NOR启动也过于简单,所以我主要记录下NAND启动。s3c2440的NAND启动原理,是硬件通过引脚判断NAND启动后,会搬运NAND从0地址开始的前4K内容到SRAM上,然后在SRAM上运行起来,这段4K的代码,必须至少要初始化DDR,并且搬运bootloader到DDR,才能运行接下来的代码。普通的arm bootloader的启动流程来看,board_init_f应该在relocate_code之前运行,用来计算将要搬运的目的地址和栈寄存器地址等等,但是因为board_init_f代码段太大,编译不进前4K,所以,网上通用的做法好像是先预设relo
[单片机]
Linux-2.6.32.2内核在mini2440上的移植(十一)---移植SD卡驱动
移植环境 1,主机环境:VMare下CentOS 5.5 ,1G内存。 2,集成开发环境:Elipse IDE 3,编译编译环境:arm-linux-gcc v4.4.3,arm-none-linux-gnueabi-gcc v4.5.1。 4,开发板:mini2440,2M nor flash,128M nand flash。 5,u-boot版本:u-boot-2009.08 6,linux 版本:linux-2.6.32.2 7,参考文章: 嵌入式linux应用开发完全手册,韦东山,编著。 Mini2440 之Linux 移植开发实战指南 【1】在内核中注册SD 设备驱动 Linux-2.6.32.2 已经自带了S3C24
[单片机]