ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:27.48KB ,
资源ID:15693961      下载积分:5 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-15693961.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(嵌入式linux系统的启动过程.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

嵌入式linux系统的启动过程.docx

1、嵌入式linux系统的启动过程1、分析嵌入式系统的启动过程嵌入式系统的启动过程:上电-u-boot-加载Linux核-挂载rootfs -执行应用程序2、分析u-boot1.什么是u-boot(是一个通用的bootloader)U-Boot,全称 Universal Boot Loader,是遵循GPL条款的开放源码项目。Universal -通用的Boot -启动,引导Loader -加载通用 -支持多种架构的CPU,除了支持ARM系列的处理器外,还能支持MIPS、 x86、Power PC、NIOS等诸多常用系列的处理器 -支持多种厂家的开发板,如cortex-A8,cortex-A9,c

2、ortex-A53等不同厂 家的开发板 -支持多种嵌入式操作系统,U-Boot不仅仅支持嵌入式Linux系统的引导, 它还支持Net BSD, Vx Works, QNX, RTEMS, ARTOS, Lynx OS, android 嵌入式操作系统。Boot -完成硬件的初始化,启动硬件平台。Loader -当初始化硬件结束后,加载操作系统。2.u-boot的作用大多数BootLoader都分为stage1和stage2两大部分,U-boot也不例外。依赖于cpu体系结构的代码(如设备初始化代码等)通常都放在stage1且可以用汇编语言来实现,而stage2则通常用C语言来实现,这样可以实现

3、复杂的功能,而且有更好的可读性和移植性。(1)Stage1:CPU(S5P6818-Cortex-A53)的初始化,使用汇编语言编写。 如:初始化Cache、MMU、clock、中断、看门狗、DDR3、eMMC、.(2)Stage2:板级初始化,使用C语言编写。如:uart、网卡、usb、LCD、.(3)提供了一些工具,如进入uboot的命令行模式,使用u-boot命令(4)加载操作系统3.U-boot的工作模式U-Boot的工作模式有启动加载模式和下载模式。(1)启动加载模式是Bootloader的正常工作模式,嵌入式产品发布时,Bootloader必须工作在这种模式下,Bootloader

4、将嵌入式操作系统从FLASH中加载到SDRAM中运行,整个过程是自动的。(2)下载模式就是Bootloader通过某些通信手段将核映像或根文件系统映像等从PC机中下载到目标板的FLASH中。用户可以利用Bootloader提供的一些命令接口来完成自己想要的操作。4.U-boot的输出U-Boot 2014.07 (Apr 27 2017 - 15:45:25) -u-boot的版本号PLL : 0 = 800000000, 1 = 800000000, 2 = 780000000, 3 = 800000000(0) PLL1: CPU FCLK = 800000000, HCLK = 2000

5、00000 (G0)(7) PLL1: CPU FCLK = 800000000, HCLK = 200000000 (G1)(2) PLL3: MEM FCLK = 800000000, DCLK = 800000000, BCLK = 400000000, PCLK = 200000000(1) PLL0: BUS BCLK = 400000000, PCLK = 200000000(8) PLL0: CCI4 BCLK = 400000000, PCLK = 200000000(3) PLL0: G3D BCLK = 400000000(4) PLL0: CODA BCLK = 4000

6、00000, PCLK = 200000000(5) PLL0: DISP BCLK = 400000000, PCLK = 200000000(6) PLL0: HDMI PCLK = 133333333I2C: readyDRAM: 1 GiB -存1GBHeap = 0x440000000x46000000Code = 0x43c000000x43c83e48GLD = 0x43bffeb8GLBD = 0x43bffe68SP = 0x43bffe68,0x43bffe48(CURR)PC = 0x43c06640TAGS = 0x40000100 PAGE = 0x43c900000

7、x43c9c000MACH = 4330 VER = 0 BOARD= x6818 MMC: NXP DWMMC: 0, NXP DWMMC: 1, NXP DWMMC: 2In: serialOut: serialErr: serial# DCDC_MODE(0x80): DCDC1PFM, DCDC2PFM, DCDC3PFM, DCDC4PWM, DCDC5PWM # STATUS(0x00) : 0xe4 0x10 # IRQ(0x48) : 0x00 0x00 0x00 0x00 0x00 # CHG_TYPE : ADP# BAT_VOL : 0mV # BAT_CAP : 100

8、%DONE: Logo bmp 300 by 300 (3bpp), len=270056 DRAW: 0x47000000 - 0x46000000 DONE: Logo bmp 300 by 300 (3bpp), len=270056 DRAW: 0x47000000 - 0x46000000 RGB: display.0MIPI: display.0DSIM_ESCMODE 1 : 0xc0DSIM_STATUS : 0x10010fMIPI clk: 420MHz DSIM_ESCMODE 2 : 0x0DSIM_STATUS : 0x10010f# Skip BAT Animati

9、on. # IRQ(0x48) : 0x00 0x00 0x00 0x00 0x00 # chg_type : ADP # battery_vol : 0mV # battery_cap : 100%# Booting Card did not respond to voltage select!Net: x6818 eth init.x6818 mac init.dwmac.c0060000Hit any key to stop autoboot: 0 X6818# 5.u-boot的信息X6818# bdinfo -查看硬件平台的信息arch_number = 0x000010EA -u-

10、boot针对具体硬件平台的IDboot_params = 0x40000100 -u-boot传递给存的启动参数DRAM bank = 0x00000000- start = 0x40000000 -存的开始地址- size = 0x40000000 -存的大小eth0name = dwmac.c0060000ethaddr = 00:e2:1c:ba:e8:60current eth = dwmac.c0060000ip_addr = 192.168.5.41baudrate = 115200 bpsTLB addr = 0x7FFF0000relocaddr = 0x46000000rel

11、oc off = 0x00000000irq_sp = 0x7DF6BF00sp start = 0x43BFFE68DDR3的存地址围:0x40000000 0x7FFFFFFFX6818# printenv -查看u-boot的环境变量androidcrc=-411152780baudrate=115200bootargs=lcd=at070tn92 tp=gslx680-linux root=/dev/mmcblk0p2 rw rootfstype=ext4bootcmd=ext4load mmc 2:1 0x48000000 uImage;bootm 0x48000000bootdel

12、ay=5bootfile=uImageethact=dwmac.c0060000ethaddr=00:e2:1c:ba:e8:60 -网卡的mac地址ethprime=RTL8211 -网卡芯片的型号fastboot=flash=mmc,2:ubootpak:2nd:0x200,0x78000;flash=mmc,2:2ndboot:2nd:0x200,0x4000;flash=mmc,2:bootloader:boot:0x8000,0x70000;flash=mmc,2:boot:ext4:0x00100000,0x04000000;flash=mmc,2:system:ext4:0x04

13、100000,0x2F200000;flash=mmc,2:cache:ext4:0x33300000,0x1AC00000;flash=mmc,2:misc:emmc:0x4E000000,0x00800000;flash=mmc,2:recovery:emmc:0x4E900000,0x01600000;flash=mmc,2:userdata:ext4:0x50000000,0x0;filesize=41ee8gatewayip=192.168.5.1 -网关ipaddr=192.168.5.41 -板子的IPnetmask=255.255.255.0 -子网掩码serverip=192

14、.168.5.40 -tftp服务器的IPstderr=serialstdin=serialstdout=serialEnvironment size: 846/32764 bytes关键的容:(1)bootargs - 启动参数bootargs=lcd=at070tn92 tp=gslx680-linux root=/dev/mmcblk0p2 rw rootfstype=ext4lcd=at070tn92 -液晶屏的型号,800*480tp=gslx680-linux -触摸屏的型号root=/dev/mmcblk0p2 -rootfs在哪里,告诉kernel去哪里挂载rootfs/dev

15、/mmcblk0p2 - mmcblk0 (emmc电子硬盘) p2(partion2,emmc电子硬盘的第二个分区)rw rootfstype=ext4 -rootfs是可读可写的,根文件系统的类型是ext4练习:如何查看emmc电子硬盘有几个分区,以及设备的详细信息答:到根目录去查看 cd /dev + ls -l 或者 ls -l /devbrw-rw- 1 root root 179, 0 Jan 1 1970 mmcblk0brw-rw- 1 root root 179, 8 Jan 1 1970 mmcblk0boot0brw-rw- 1 root root 179, 16 Jan

16、 1 1970 mmcblk0boot1brw-rw- 1 root root 179, 1 Jan 1 1970 mmcblk0p1brw-rw- 1 root root 179, 2 Jan 1 1970 mmcblk0p2brw-rw- 1 root root 179, 3 Jan 1 1970 mmcblk0p3brw-rw- 1 root root 179, 4 Jan 1 1970 mmcblk0p4brw-rw- 1 root root 179, 5 Jan 1 1970 mmcblk0p5brw-rw- 1 root root 179, 6 Jan 1 1970 mmcblk0

17、p6brw-rw- 1 root root 179, 7 Jan 1 1970 mmcblk0p7179 -主设备号 2 -次设备号, 设备号 = 主设备号启动命令bootcmd=ext4load mmc 2:1 0x48000000 uImage;bootm 0x48000000以ext4文件系统格式去emmc的第一个分区加载Linux核,加载到0x48000000地址上,然后在0x48000000地址上启动Linux核。通俗的理解:bootcmd告诉u-boot去哪里加载Linux核,bootargs告诉linux核,去哪里挂载rootfs。(3)修改启动延时时间#setenv bootd

18、elay 3#saveenv3、分析linux核1.linux的作用(1)进程管理和进程通信:进程的创建和删除,进程的优先级抢占,进程的时间片轮转,进程间的通信机制(2)存管理:存分配算法,每个进程的存空间(3)核支持的文件系统:#cat /proc/filesystems (4)设备管理: -linux驱动-字符设备,块设备,网络设备,中断,核时钟(5)网络协议:如tcp/ip协议2.GEC6818开发板 -输出信息GEC - Guangdong Embedded Center (1)u-boot加载核# Booting kernel from Legacy Image at 4800000

19、0 . Image Name: Linux-3.4.39-gec -linux核版本 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 5533496 Bytes = 5.3 MiB Load Address: 40008000 -DDR3存的地址 Entry Point: 40008000 Verifying Checksum . OK Loading Kernel Image . OKStarting kernel .(2)Linux核启动 0.000000 Booting Linux on physical CPU

20、0(3)Linux存管理 0.000000 Memory: 1024MB = 1024MB total 0.000000 Memory: 810800k/810800k available, 237776k reserved, 272384K highmem 0.000000 Virtual kernel memory layout: 0.000000 vector : 0xffff0000 - 0xffff1000 ( 4 kB) 0.000000 fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) 0.000000 vmalloc : 0xef800000

21、 - 0xfee00000 ( 246 MB) 0.000000 lowmem : 0xc0000000 - 0xef600000 ( 758 MB) 0.000000 pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB) 0.000000 modules : 0xbf000000 - 0xbfe00000 ( 14 MB) 0.000000 .text : 0xc0008000 - 0xc0a54188 (10545 kB) 0.000000 .init : 0xc0a55000 - 0xc0a92100 ( 245 kB) 0.000000 .data : 0xc

22、0a94000 - 0xc0b2e488 ( 618 kB) 0.000000 .bss : 0xc0b2e4ac - 0xc0d0e1c8 (1920 kB) 0.000000 SLUB: Genslabs=11, HWalign=64, Order=0-3, MinObjects=0, CPUs=8, Nodes=1(4)设备管理 0.207000 usbcore: registered new interface driver usbfs 0.208000 i2c-gpio i2c-gpio.0: using pins 99 (SDA) and 98 (SCL) 0.209000 s3c

23、-i2c s3c2440-i2c.1: i2c-1: S3C I2C adapter 0.210000 s3c-i2c s3c2440-i2c.1: slave address 0x10 0.210000 s3c-i2c s3c2440-i2c.1: bus frequency set to 195 KHz 0.211000 s3c-i2c s3c2440-i2c.2: i2c-2: S3C I2C adapter 0.211000 s3c-i2c s3c2440-i2c.2: slave address 0x10 0.211000 s3c-i2c s3c2440-i2c.2: bus fre

24、quency set to 195 KHz 0.212000 Linux video capture interface: v2.00 0.223000 axp22_ldo1: 3000 mV 0.353000 Display LCD register operation 0.354000 Display LVDS register operation 0.354000 Display MiPi register operation (5)网络协议 0.331000 NET: Registered protocol family 2 0.331000 IP route cache hash t

25、able entries: 32768 (order: 5, 131072 bytes) 0.332000 TCP established hash table entries: 131072 (order: 8, 1048576 bytes) 0.334000 TCP bind hash table entries: 65536 (order: 8, 1572864 bytes) 0.336000 TCP: Hash tables configured (established 131072 bind 65536) 0.336000 TCP: reno registered 0.336000

26、 UDP hash table entries: 512 (order: 3, 32768 bytes) 0.337000 UDP-Lite hash table entries: 512 (order: 3, 32768 bytes) 0.337000 NET: Registered protocol family 1(6)挂载rootfs 3.959000 EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null) 3.961000 VFS: Mounted root (ext4 filesyst

27、em) on device 179:2. 3.968000 devtmpfs: mounted 3.970000 Freeing init memory: 244K 3.974000 Write protecting the kernel text section c0008000 - c0a1e000 3.981000 rodata_test: attempting to write to read-only section: 3.987000 write to read-only section trapped, success 4.127000 EXT4-fs (mmcblk0p2):

28、re-mounted. Opts: data=ordered根文件系统在emmc的第2个分区上,根文件系统的格式是:ext44、分析rootfs(根文件系统)1.什么是rootfsLinux核挂载的第一个文件系统,根文件系统是挂载到根目录下的文件系统。rootfs是一个”包”,里面包含:rootGEC6818 /#lsIOT etc lost+found root sys usrbin lib mnt run vardev linuxrc proc sbin tmp这些容是什么?5、执行应用程序GEC6818平台 - IOT (Internet of Things)rootfs挂载后-自动执行脚本 /etc/init.d/rcS -自动执行 /etc/profile -安装驱动 -执行应用程序vi /etc/profile, 注释掉最后三行

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2