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

  • 相关阅读:
    C# 谈谈代码重构
    收藏.NET 技术社区
    步步为营 .NET三层架构解析 四、Model设计(四种设计方式)
    C# 谈谈abstract用法 和一个简单abstract factory
    步步为营 .NET三层架构解析 一、什么是三层架构
    用户登陆的验证码的制作
    控制部分字体的颜色
    回发或回调参数无效。在配置中使用 <pages enableEventValidation= "true "/> 或在页面中使用 <%@ Page EnableEventValidation= "true " %> 启用了事件验证
    实习记2
    sniffer攻击
  • 原文地址:https://www.cnblogs.com/xumaojun/p/8541164.html
Copyright © 2011-2022 走看看