付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、一、分析嵌入式系统的启动过程i嵌入式系统的启动过程:上电>u-boot>加载Linux内核> 挂载 rootfs ->执行应用程序二、分析 u-bootH.什么是u-boot (是一个通用的bootloader )U-Boot,全称 Universal Boot Loader ,是遵循 GPL条款的开放源码 项目。Boot>启动,引扌1导Loader>加载Un iversal> 通用的通用同厂支持多种架构的 CPU,除了支持ARM系列的处理器外,还能支持MIPS、x86、Power PC、NIOS等诸多常用系列的处理器>支持多种厂家的开发板,女D
2、cortex-A8 , cortex-A9 , cortex-A53 等不家的开发板> 支持多种嵌入式操作系统,U-Boot不仅仅支持嵌入式 Linux系统的引它还支持 Net BSD, Vx Works, QNX, RTEMS, ARTOS, Lynx OS,i an droid嵌入式操作系统。Boot>完成硬件的初始化,启动硬件平台。ILoader>当初始化硬件结束后,加载操作系统。i! 2.u-boot的作用大多数BootLoader 都分为stage1 和stage2两大部分,U-boot 也不例外。依赖于 cpui体系结构的代码(如设备初始化代码等)通常都放在sta
3、gel且可以用汇编语言来实现,而! (6) PLL0: HDMI PCLK =133333333|Stage2则通常用C语言来实现,这样可以实现复杂的功能,而且有更好的可读性和移植性。Stage1 : CPU ( S5P6818->Cortex-A53)的初始化,使用汇编语言编写。如:初始化 Cache、MMU、clock、中断、看门狗、 DDR3、eMMC、.Stage2 :板级初始化,使用 C语言编写。如:uart、网卡、usb、LCD、.提供了一些工具,如进入 uboot的命令行模式,使用u-boot命令 加载操作系统I 3.U-boot的工作模式I U-Boot的工作模式有启动加
4、载模式和下载模式必须II(1 )启动加载模式是 Bootloader 的正常工作模式,嵌入式产品发布时,Bootloader i工作在这种模式下,Bootloader 将嵌入式操作系统从FLASH中加载到SDRAM中运行,i!整个过程是自动的。i( 2)下载模式就是 Bootloader通过某些通信手段将 内核映像或根文件系统映像等从 PCi机中下载到目标板的FLASH中。用户可以利用 Bootloader提供的一些命令接口来完成自 !己想要的操作。i 4.U-boot的输出I U-Boot 2014.07 (Apr 27 2017 - 15:45:25)>u-boot的版本号! PLL
5、 : 0800000000, 1800000000, 2780000000,3I (0) PLL1: CPUI PLL1: CPUi 800000000FCLK =800000000, HCLK = 200000000 (G0)FCLK =800000000, HCLK = 200000000 (G1)! (2) PLL3: MEM FCLK =800000000, DCLK = 800000000, BCLKiI 400000000, PCLK = 200000000I (1) PLL0: BUS BCLK =400000000, P CLK = 200000000i (8) PLL0: C
6、CI4 BCLK =i400000000, P CLK = 200000000I PLL0: G3D BCLK =400000000I PLL0: CODA BCLK =400000000, P CLK = 200000000I (5) PLL0: DISP BCLK =400000000, P CLK = 200000000I I2C: readyi DRAM: 1 GiB> 内存1GBi Heap = 0x44000000-0x46000000 ! Code = 0x43c000000x43c83e48 i GLD = 0x43bffeb8 i GLBD = 0x43bffe68 i
7、 SP = 0x43bffe68,0x43bffe48(CURR)I PC = 0x43c06640 i TAGS = 0x40000100 i PAGE = 0x43c900000x43c9c000 ! MACH = 4330 iVER = 0 i BOARD= x6818i MMC:NXP DWMMC: 0, NXP DWMMC: 1, NX P DWMMC: 2In:serialI Out:seriali Err:seriali#DCDC_MODE(0x80):DCDC1PFM,DCDC2PFM,DCDC3PFM, iI DCDC4PWM, DCDC5PWMI # STATUS(0x00
8、):0xe4 0x10i # IRQ(0x48):0x00 0x00 0x00 0x00 0x00!# CHG TYPE:ADPI # BAT VOLI:OmVi# BAT CAP:100%i DONE: Logo bmp 300 by 300 (3bpp), len=270056 ! DRAW: 0x47000000 -> 0x46000000I DONE: Logo bmp 300 by 300 (3bpp), len=270056 i DRAW: 0x47000000 -> 0x46000000 ! RGB: dis pl ay.0I MIPI: display.0 i DS
9、IM ESCMODE 1 : 0xc0 i DSIM STATUS : 0x10010fI! MIPI elk: 420MHz i DSIM ESCMODE 2 : 0x0Ii DSIM_STATUS : 0x10010f i # Skip BAT Animation.i # IRQ(0x48): 0x00 0x00 0x00 0x00 0x00 i # battery_vol : 0mV i # battery_cap : 100%! # chg_type:ADPI # BootingI Card did not res pond to voltage select!i Net:x6818
10、eth in it.! x6818 mac in it.I dwmac.c0060000 i Hit any key to stop autoboot: iX6818# i 5.u-boot的信息1X6818# bdi nfo> 查看硬件平台的信息i arch number = 0x000010EAI>u-boot针对具体硬件平台的i!IDI boot_params0x40000100>u-boot传递给内存的启动Ii参数i DRAM bank=0x00000000i -> start! -> sizei eth0namei ethaddr=0x40000000=
11、0x40000000=dwmac.c0060000=00:e2:1c:ba:e8:60> 内存的开始地址> 内存的大小! current eth = dwmac.c0060000I ip_addr=1i baudrate=115200 bpsi TLB addr=0X7FFF0000relocaddr=0x46000000reloc off=0x00000000irq_sp=0x7DF6BF00sp start=0x43BFFE68i DDR3 的内存地址范围:0x40000000 - 0x7FFFFFFFjX6818# printenv> 查看u-bo
12、ot的环境变量i androidcrc=-411152780! baudrate=115200I bootargs=lcd=at070tn92tp=gslx680-li nuxroot=/dev/mmcblk 0p2rw Ii rootfstype=ext4 i bootcmd=ext4load mmc 2:1 0x48000000 ulmage;bootm 0x48000000 i bootdelay=5 ! bootfile=ulmage> 网卡的mac地址> 网卡芯片的型号i ethact=dwmac.c0060000 i ethaddr=00:e2:1c:ba:e8:60I
13、 ethprime=RTL8211I fastboot=flash=mmc,2:ubootpak:2nd:0x200,0x78000;flash=mmc,2:2ndb i oot:2nd:0x200,0x4000;flash=mmc,2:bootloader:boot:0x8000,0x70000;fla ! sh=mmc,2:boot:ext4:0x00100000,0x04000000;flash=mmc,2:system:ext4:I 0x04100000,0x2F200000;flash=mmc,2:cache:ext4:0x33300000,0x1AC000 i 00;flash=m
14、mc,2:misc:emmc:0x4E000000,0x00800000;flash=mmc,2:recov i ery:emmc:0x4E900000,0x01600000;flash=mmc,2:userdata:ext4:0x50000>tftp服务器的IP! 000,0x0; filesize=41ee8gatewayi p=> 网关ip addr=1> 板子的冲'netmask=> 子网掩码i serverip=0 i stderr=serial ! stdin
15、=serial i stdout=serial i Environment size: 846/32764 bytes!关键的内容:i (1) bootargs启动参数I bootargs=lcd=at070tn92tp=gslx680-li nuxroot=/dev/mmcblk 0p2rwI rootfstype=ext4! lcd=at070tn92液晶屏的型号,800*480I tp=gslx680-linux>触摸屏的型号i root=/dev/mmcblk0p2>rootfs在哪里,告诉kernel去哪里挂载rootfs |/dev/mmcblk0 p2->mmc
16、blkO (emmc 电子硬盘)p2 (partion2 ,emmc电子硬盘的第二个分!区)! rw rootfstype=ext4>rootfs是可读可写的,根文件系统的类型是'ext4i练习:如何查看emmc电子硬盘有几个分区,以及设备的详细信息答:到根目录去查看cd /dev +ls -l或者 ls -l /devi brw-rw-rootroot179,0 Jan11970 mmcblk0i brw-rw-1 rootroot179,8 Jan1970 i! mmcblk0boot0! brw-rw-1 rootroot179,16 Jan1970 Ii mmcblk0b
17、oot1brw-rw-1 rootroot179,1 Jan11970 mmcblk 0p1brw-rw-1 rootroot179,2 Jan11970 mmcblk 0p2brw-rw-1 rootroot179,3 Jan11970 mmcblk 0p3brw-rw-1 rootroot179,4 Jan11970 mmcblk 0p4brw-rw-1 rootroot179,5 Jan11970 mmcblk 0p5brw-rw-1 rootroot179,6 Jan 11970 mmcblk 0p6brw-rw-1 rootroot179,7 Jan 11970 mmcblk 0p7
18、179>主设备号2>次设备号,设备号=主设备号20+I次设备号I bootcmd=ext4load mmc 2:1 0x48000000 ulmage;bootm 0x48000000i以ext4文件系统格式去emmc的第一个分区加载Linux内核,加载到i0x48000000 地址上,然后在 0x48000000 地址上启动Linux内核。I通俗的理解:bootcmd 告诉u-boot去哪里加载Linux内核,bootargs 告诉|i linux内核,去哪里挂载rootfs。1(3)修改启动延时时间i #setenv bootdelay3 i #saveenv、分析linux内
19、核! (2)bootcmd启动命令i 1. linux的作用(1)进程管理和进程通信:进程的创建和删除,进程的优先级抢占,进程I的时间片轮转,进程间的通信机制(2)内存管理:内存分配算法,每个进程的内存空间(3 )内核支持的文件系统:#cat /proc/filesystemsi时钟r aot鳄EC6816 nodev nodev nodev nodev nodev nodev nodev nodev nod&v nodev nodev nodev nodev nodevnodevnodev nodevnodevnodev nodev(4)设备管理: JI亠 Jr f22816 /te
20、stcat /proc/fi 1 esysterns sysf s rootfs bdevproc cgroup tmpf s deurmpfs binfmt_nii5C dbuqfs sockfs pipefs anon_Tnodfs pcpipefs dvpt5 ext 2 ext 3 ext4 ramfs vfat ITS dos 1509660 nfs nfs4 ntfs autofs fuseblk fuse fusectl>linux驱动> 字符设备,块设备,网络设备,中断,内核(5)网络协议:如tcp/ip协议2. GEC6818 开发板>输出信息GECGuan
21、gdong EmbeddedCen ter(1) u-boot 加载内核# Boot ing kernel from Legacy Image at 48000000 .ImageName:Linu x-3439-gec |>li nux内核版本Image Type:ARM Linux Kernel Image (uncomp ressed)Data Size:5533496 Bytes = 5.3 MiBLoad Address: 40008000>DDR3内存的I地址Entry Poi nt: 40008000Verifyi ng Checksum . OKLoad ing K
22、ernel Image . OKStart ing kernel .Linux内核启动0.000000 Booti ng Lin ux on physical CPU 0Linux内存管理237776k i0.000000 Memory: 1024MB = 1024MB total0.000000 Memory: 810800k/810800k available,reserved, 272384K highmem0.000000 Virtual kernel memory layout:0.000000vector : 0xffff0000 - 0xffff10004 kB) i0.0000
23、00fixmap : 0xfff00000 - 0xfffe0000(896 kB) ! 0.000000MB)0.000000lowmem : 0xc00000000xef600000 i(758 MB)0.000000pkmap : 0xbfe00000 - 0xc0000000MB)0.000000modules : 0xbf000000- 0xbfe00000(14 iMB)0.000000.text : 0xc0008000- 0xc0a54188(10545 ikB)0.000000.init : 0xc0a55000 - 0xc0a92100(245 kB) !0.000000.
24、data : 0xc0a94000- 0xc0b2e488(618 IkB)0.000000.bss : 0xc0b2e4ac - 0xc0d0e1c8(1920 ikB)vmalloc : 0xef800000- 0xfee00000( 246 |0.000000SLUB: Genslabs=11,HWalign=64, Order=0-3, |Mi nObjects=0, CP Us=8, Nodes=1(4 )设备管理0.207000 usbcore: registered new in terface driver usbfs0.208000 i2c-gpio i2c-gpio.0:u
25、sing pins 99 (SDA) and 98 i(SCL)0.209000 s3c-i2c s3c2440-i2c.1: i2c-1: S3C I2C ada pter0.210000 s3c-i2c s3c2440-i2c.1: slave address 0x100.210000 s3c-i2c s3c2440-i2c.1: bus frequency set to 195 IKHz0.211000 s3c-i2c s3c2440-i2c.2: i2c-2: S3C I2C ada pter0.211000 s3c-i2c s3c2440-i2c.2: slave address 0
26、x100.211000 s3c-i2c s3c2440-i2c.2: bus frequency set to 195 iKHz0.212000 Li nux video cap ture in terface: v2.000.223000 ax p22_ldo1: 3000 mV0.353000 Dis play LCD register o peration0.354000 Dis play LVDS register o peration0.354000 Dis play MiPi register o peration网络协议0.331000 NET: Registered p rot
27、ocol family 20.331000 IP route cache hash table en tries: 32768 (order: 5,131072 bytes)0.332000 TCP established hash table en tries: 131072 (order: 8,1048576 bytes)0.334000 TCP bi nd hash table en tries: 65536 (order: 8J 1572864 bytes)0.336000 TCP: Hash tables con figured (established 131072 bind 65536)0.336000 TCP: reno registered0.336000 UDP hash table entries: 512 (order: 3, 32768 ibytes)0.337000 UDP-Lite hash ta
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 急性化脓性阑尾炎术后感染控制与恢复全流程规范化管理指南
- 工贸企业分管工艺质量安全工作领导安全生产责任制培训
- 2025《阿房宫赋》文学成就课件
- 运行电工安全职责培训
- 2026年高考综合素质检测语文试题及答案
- 各类机械设备安全使用规定培训课件
- 探水员安全生产岗位责任制培训
- 营销中心职业健康安全管理职责培训
- 2026年广东省茂名市单招职业倾向性测试题库含答案详解(模拟题)
- 2026年广东茂名幼儿师范专科学校单招职业适应性测试题库附参考答案详解(基础题)
- DB52-T 1685-2022 电动汽车充电站(桩)防雷技术规范
- 建设工程项目经济分析与评价PPT完整全套教学课件
- 技术交底制度
- 废塑料高温裂解干馏可行性报告
- 地质勘探原始记录表格【实用文档】doc
- GB/T 3146.1-2010工业芳烃及相关物料馏程的测定第1部分:蒸馏法
- GB/T 30812-2014燃煤电厂用玻璃纤维增强塑料烟道
- 住院医师规范化培训临床技能结业考核体格检查评分表(神经外科)
- 小学二年级下册体育教案(全册)
- 中国外文出版发行事业局所属企事业单位公开招聘71人模拟试卷【共500题附答案解析】
- 《导游基础知识》61中国古典园林概说课件
评论
0/150
提交评论