一、Linux驱动学习-了解系统

了解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  内存地址   //执行文件

弄不懂以上内存到底指什么?我还会回来的!

内核

  负责管理系统的进程、内存、设备驱动程序、文件和网络系统

驱动

  什么是驱动?驱动就是计算机程序访问硬件的一个接口,这个接口是由操作系统提供。因为在操作系统涉及到安全管理机制,应用层程序不能够直接访问到硬件,需要通过驱动函数接口来访问硬件。

  

原文地址:https://www.cnblogs.com/Just-a-calm-programmer/p/13439903.html