了解Linux操作系统
启动流程
Linux:
上电->uboot->加载Linux内核->挂在根文件系统->执行应用程序
Windows:
上电->bios->加载winnt内核->挂在文件系统->执行应用程序
uboot
介绍:
uboot主要用于嵌入式系统的引导加载程序,全程Universal Boot Loader,是遵循GPL条款的开放源码项目。
Boot :完成硬件的初始化,启动硬件平台
Loader :初始化硬件后,加载操作系统
uboot是一个非常复杂的裸机程序,而不是一个操作系统。
输出信息:
进入uboot查看开发板信息:
arch_number ://uboot针对具体硬件平台的ID,若跟linux内核的ID不一致,不能启动内核
boot_params ://uboot传递给内存启动参数的地址
DRAM bank ://内存通道0
-> start ://起始地址
-> size ://内存的大小
eth0name ://网卡的名字
ethaddr ://网卡的MAC地址信息
current eth ://当前使用的网卡
ip_addr ://网卡的IP地址
baudrate ://串口波特率
relocaddr ://linux内核执行的地址
查看环境变量:
bootargs=mem=512M console=ttyAMA0,115200 root=/dev/mtdblock2 rw rootfstype=yaffs2 mtdparts=hinand:1M(boot),4M(kernel),123M(rootfs) 传递给内核的启动参数
mem=512M:内存大小512M
console=ttyAMA0,115200:串口输出占用ttyAMA0 波特率115200
root=/dev/mtdblock2:告诉内核去哪里挂在挂载根文件系统
rw rootfstype=yaffs2:该文件系统可读写 文件系统类型为yaffs2
mtdparts=hinand:1M(boot),4M(kernel),123M(rootfs):nand使用情况
bootcmd=nand read 0x81000000 0x100000 0x400000;bootm 0x81000000
将地址0x100000读取到地址0x81000000,大小为0x400000,去0x81000000启动内核
bootdelay=2
uboot启动延时,就开始执行boot命令(即bootcmd)
下载文件:
tftp 内存地址 文件名 //将文件放到板子上
go 内存地址 //执行文件
弄不懂以上内存到底指什么?我还会回来的!
内核
负责管理系统的进程、内存、设备驱动程序、文件和网络系统
驱动
什么是驱动?驱动就是计算机程序访问硬件的一个接口,这个接口是由操作系统提供。因为在操作系统涉及到安全管理机制,应用层程序不能够直接访问到硬件,需要通过驱动函数接口来访问硬件。