博客
关于我
嵌入式 linux 系统的组成与启动
阅读量:479 次
发布时间:2019-03-06

本文共 571 字,大约阅读时间需要 1 分钟。

组成

arch Ivanka bootloader + kernel + rootfs

启动流程

  • CPU 中固化的一小段代码
  • 操作 SPI 控制器,从 SPI Flash 0 地址开始读数据到 RAM
  • CPU 开始从 RAM 读取指令并执行
  • 首先执行 bootloader 第一部分
  • 此部分为汇编代码且不做压缩
  • 初始化 CPU、DDR、PLL、Cache 等硬件组件
  • CPU 执行 bootloader 第二段代码
  • 完成串口、Flash、网口等驱动的初始化
  • 构建 shell 环境来接受用户输入
  • 整个 bootloader 运行期间 MMU 未初始化,所有地址访问采用物理地址方式
  • 解压并拷贝 kernel 到 RAM
  • 设置启动参数如 console=ttyS0,115200 root=31:2 mtdparts=ar7100-nor0:196608(boot),835236(kernel),-(rootfs)
  • 跳转至 kernel 入口开始运行
  • kernel 开始运行
  • 初始化 kernel 子系统
  • 完成 MMU 初始化
  • 挂载 rootfs,根文件系统通过启动参数获得
  • kernel 实现 Flash访问 abstraction 通过 MTD 子系统
  • 初始化各类驱动程序
  • 启动 /sbin/init
  • 执行 rcS 脚本
  • 启动 shell
  • 转载地址:http://anmdz.baihongyu.com/

    你可能感兴趣的文章
    Netty工作笔记0057---Netty群聊系统服务端
    查看>>
    Netty工作笔记0060---Tcp长连接和短连接_Http长连接和短连接_UDP长连接和短连接
    查看>>
    Netty工作笔记0063---WebSocket长连接开发2
    查看>>
    Netty工作笔记0070---Protobuf使用案例Codec使用
    查看>>
    Netty工作笔记0077---handler链调用机制实例4
    查看>>
    Netty工作笔记0084---通过自定义协议解决粘包拆包问题2
    查看>>
    Netty工作笔记0085---TCP粘包拆包内容梳理
    查看>>
    Netty常用组件一
    查看>>
    Netty常见组件二
    查看>>
    netty底层源码探究:启动流程;EventLoop中的selector、线程、任务队列;监听处理accept、read事件流程;
    查看>>
    Netty心跳检测机制
    查看>>
    Netty核心模块组件
    查看>>
    Netty框架内的宝藏:ByteBuf
    查看>>
    Netty框架的服务端开发中创建EventLoopGroup对象时线程数量源码解析
    查看>>
    Netty源码—2.Reactor线程模型一
    查看>>
    Netty源码—3.Reactor线程模型三
    查看>>
    Netty源码—4.客户端接入流程一
    查看>>
    Netty源码—4.客户端接入流程二
    查看>>
    Netty源码—5.Pipeline和Handler一
    查看>>
    Netty源码—5.Pipeline和Handler二
    查看>>