zoukankan      html  css  js  c++  java
  • 嵌入式Linux学习方法——给那些彷徨者(上)

    要想学好嵌入式Linux,首先要解决两个重要问题:

    1. 学什么?

    2. 怎么学?

    首先解决第一个问题。

    嵌入式Linux的系统架构包括软件和硬件两个部分,如下图:

    再来看看一个成熟的嵌入式产品的开发流程是怎么一个过程:

    • 1.硬件开发
    • 责任人: 硬件工程师
    • 负责部分:基于EVM板, 添加、修改、删除硬件
    • 2.Bootloader移植
    • 责任人:系统工程师或驱动工程师
    • 负责部分:将Bootloader移植到流程1所开发出来的硬件平台
    • 3. Linux内核
    • 责任人:系统工程师或驱动工程师
    • 负责部分:将Linux内核移植到流程1所开发出来的硬件平台
    • 4.根文件系统制作
    • 责任人:系统工程师
    • 负责部分:制作供内核启动的根文件系统
    • 5.1 业务相关的应用程序
    • 责任人:应用工程师
    • 负责部分:开发和产品密切相关的应用程序
    • 5.2 业务相关的驱动程序
    • 责任人:驱动工程师
    • 负责部分:开发和产品密切相关的驱动程序,如触摸屏、无线网卡
    • 6. 功能测试,性能测试,系统集成测、实验局(系统设备)、发布

    看完上面这些,你应该对嵌入式Linux有一个大概的认识了。我们再来理清一下知识结构,再对其进行细分。先来看预览一下“学什么”知识结构:

    • 1.嵌入式处理器与裸机程序
    • 2.Linux系统管理
    • 3.Linux应用程序开发
    • 4.Linux驱动程序开发
    • 5.Linux内核开发与系统移植

    再来对每一项要学习的东西进行汇集:

    处理器:

    1. ARM处理器工作模式 
    2. ARM系统寄存器 
    3. ARM寻址方式 
    4. ARM 汇编指令集 
    5. ARM环境C语言编程 
    6. ARM中断与异常 
    7. ADS集成开发环境 
    8. 裸机程序开发(串口、LCD、时钟、LED、按键……)

    系统管理:

    1. Linux定制安装 
    2. Linux命令详解 
    3. samba、nfs、tftp、wireshark使用 
    4. Shell编程

    应用程序开发:

    1. GCC、GDB、Makefile 
    2. 文件、时间编程 
    3. 多进程、多线程程序设计 
    4. 进程间通讯 
    5. 网络编程 
    6. QT图形化应用程序开发 
    7. Android图形化应用程序开发

    内核开发:

    1. Linux内核配置与裁剪 
    2. Linux内核模块开发 
    3. 根文件系统制作 
    4. 进程子系统 
    5. 内存子系统 
    6. Proc文件系统 
    7. 系统调用 
    8. 内核定时器 
    9. 内核异常分析

    驱动程序开发:

    1. 字符设备驱动程序 
    2. 总线、设备、驱动模型 
    3. 硬件访问技术 
    4. 中断处理 
    5. Input设备驱动 
    6. Platform驱动程序 
    7. PCI、USB驱动程序 
    8. 网卡驱动程序 
    9. 触摸屏驱动程序 
    10. 串口驱动程序

    参考资料:国嵌嵌入式Linux

  • 相关阅读:
    利用dockerfile定制镜像
    发布Docker 镜像到dockerhub
    Docker 停止容器
    133. Clone Graph
    132. Palindrome Partitioning II
    131. Palindrome Partitioning
    130. Surrounded Regions
    129. Sum Root to Leaf Numbers
    128. Longest Consecutive Sequence
    127. Word Ladder
  • 原文地址:https://www.cnblogs.com/xumaojun/p/8541164.html
Copyright © 2011-2022 走看看