十年资深嵌入式大神:教你如何从零开始学习路线解析

嵌入式开发就是指在嵌入式操作系统下进行开发,一般常用的系统有WinCE,ucos,vxworks,linux,android等。另外,用c,c++或汇编开发;用高级处理器,arm7,arm9,arm11,powerpc,mips,mipsel等,或加上操作系统也属于嵌入式的开发。

嵌入式系统(Embedded System)是指以应用为中心、以计算机技术为基础,软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。举例来说,大到油田的集散控制系统和工厂流水线,小到家用VCD机或手机,甚至组成普通PC终端设备的键盘、鼠标、硬盘、Modem等均是由嵌入式处理器控制的。

嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。

像我们平常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系统。

第一部分:Linux平台搭建与环境熟悉

了解linux系统;区分各种版本的Linux系统,以便于拓展 Linux视野。

1、Linux 简介;

2、Linux 系统的主要特点;

3、Linux 的组成;

4、主要的 Linux 版本;

5、嵌入式 Linux简介与发展

第二部分:虚拟机安装和LINUX系统安装

1、虚拟机安装;

2、Linux系统的安装;

3、Linux系统的常用软件的安装;

4、Linux快速入门

5、 熟悉运用 Linux环境下,常用命令的操作与系统设置,如常用的 Shell;掌握基本的Shell 应用

第三部分:嵌入式LINUX环境搭建

1、 建立嵌入式 Linux开发环境

2、 熟悉嵌入式开发平台

3、 嵌入式 Linux开发工具

4、 Linux下的调试技巧

5、 MAKE工程管理器

6、 硬件环境的搭建;arm-linux-gcc与 gcc安装配置

第四部分: U-Boot

了解 U-Boot 的作用及工作流程;了解Bootloader 的代码结构、编译过程;移植U-Boot;掌握常用的U-Boot命令。

1、 Bootloader介绍

2、 u-boot工程介绍

3、 u-boot的编译使用

4、 u-boot源码分析

5、 u-boot资源分配

6、 配置编译u-boot

7、 u-boot移植过程

8、 u-boot常用命令操作

9、 添加u-boot新命令

10、设置u-boot环境变量

11、 u-boot驱动添加如网卡:DM9000

第五部分:LINUX内核移植

熟悉内核的原码结构和kbuild Makefile语法;掌握和内核、驱动模块编译相关的原理及方法。

1、Linux内核介绍

2、Linux内核特点

3、Linux内核源代码结构

4、Linux内核选项解析

5、Linux内核编译链接

6、内核模块编译、使用方法

第六部分:LINUX根文件系统

1、busybox 包移植、编译

2、Linux跟文件系统制作过程

3、根文件系统介绍

4. nfs文件服务器系统搭建

第七部分:LINUX应用学习

嵌入式Linux应用开发和系统开发是嵌入式Linux中最重要的一部分,也是企业人才需求最广的一部分。

主要目标是精通嵌入式Linux下的程序设计,熟练掌握嵌入式Linux的开发环境、系统编程以及网络编程,熟悉C++、QT编程并且深刻体会整个嵌入式Linux项目开发流程,强化学员对Linux应用开发的能力。

1、Linux系统中的进程的概念,在应用程序中线程与父子进程的创建与应用

2、线程之间、进程之间的通信

3、进程间通信基本概念

4、管道(PIPE)

5、信号(SIGNAL)

6、内存映射(MAPPED MEMORY)

7、消息队列(MESSAGE QUEUE)

8、信号量(SEMAPHORE)

9、共享内存(SHARE MEMORY)@

10、tcPip协议在应用程序中的编程开发(SOCKET套接字编程开发)

10.1. ISO/OSI七层协议模型与IP网络四层模式

10.2.TCP/IP协议簇

10.3. 基于嵌入式Linux的TCP/IP网络结构

10.4. 基于嵌入式Linux的SOCKET编程

10.5.UDP与TCP的区别

10.6. UDP SERVER-CLIENT关系程

11、文件读写与存储

嵌入式设计应具备的基本技能

1、Linux 基础

  • 安装Linux操作系统
  • Linux文件系统
  • Linux常用命令
  • Linux启动过程详解 
  • 熟悉Linux服务能够独立安装Linux操作系统,能够熟练使用Linux系统的基本命令 
  • 认识Linux系统的常用服务安装Linux操作系统 
  • Linux基本命令实践 
  • 设置Linux环境变量 
  • 定制Linux的服务Shell 
  • 编程基础使用vi编辑文件 
  • 使用Emacs编辑文件 
  • 使用其他编辑器

2、Shell 编程基础

  • Shell简介
  • 认识后台程序Bash编程
  • 熟悉Linux系统下的编辑环境 
  • 熟悉Linux下的各种Shell 
  • 熟练进行shell编程熟悉vi基本操作 
  • 熟悉Emacs的基本操作 
  • 比较不同shell的区别 
  • 编写一个测试服务器是否连通的shell脚本程序 
  • 编写一个查看进程是否存在的shell脚本程序 
  • 编写一个带有循环语句的shell脚本程序

3、Linux下的C编程基础

  • linux c语言环境概述 
  • Gcc使用方法 
  • Gdb调试技术 
  • AutoconfAutomake Makefile 代码优化 
  • 熟悉Linux系统下的开发环境 
  • 熟悉Gcc编译器 
  • 熟悉Makefile规则编写Hello,World程序 
  • 使用 make命令编译程序 
  • 编写带有一个循环的程序 
  • 调试一个有问题的程序

4、嵌入式系统开发基础

  • 嵌入式系统概述 
  • 交叉编译 
  • 配置TFTP服务 
  • 配置NFS服务 
  • 下载Bootloader和内核 
  • 嵌入式Linux应用软件开发流程熟悉嵌入式系统概念以及开发流程 
  • 建立嵌入式系统开发环境制作cross_gcc工具链 
  • 编译并下载U-boot 
  • 编译并下载Linux内核 
  • 编译并下载Linux应用程序

5、嵌入式系统移植

  • Linux内核代码 
  • 平台相关代码分析 
  • ARM平台介绍 
  • 平台移植的关键技术 
  • 移植Linux内核到 ARM平台 
  • 了解移植的概念 
  • 能够移植Linux内核移植Linux2.6内核到ARM9开发板

6、嵌入式 Linux 下串口通信

  • 串行I/O的基本概念 
  • 嵌入式Linux应用软件开发流程 
  • Linux系统的文件和设备 
  • 与文件相关的系统调用 
  • 配置超级终端和MiniCOM 
  • 能够熟悉进行串口通信 
  • 熟悉文件I/O 
  • 编写串口通信程序 
  • 编写多串口通信程序

7、嵌入式系统中多进程程序设计

  • Linux系统进程概述 
  • 嵌入式系统的进程特点 
  • 进程操作 
  • 守护进程 
  • 相关的系统调用了解Linux系统中进程的概念 
  • 能够编写多进程程序编写多进程程序 
  • 编写一个守护进程程序 
  • sleep系统调用任务管理
  • 同步与通信Linux任务概述任务调度 
  • 管道 信号 共享内存 任务管理 API 
  • 了解Linux系统任务管理机制 
  • 熟悉进程间通信的几种方式 
  • 熟悉嵌入式Linux中的任务间同步与通信编写一个简单的管道程序实现文件传输 
  • 编写一个使用共享内存的程序

8、嵌入式系统中多线程程序设计

  • 线程的基础知识 
  • 多线程编程方法 
  • 线程应用中的同步问题了解线程的概念 
  • 能够编写简单的多线程程序编写一个多线程程序
  • 发表于:
  • 原文链接:http://news.51cto.com/art/201808/582307.htm

扫码关注云+社区

领取腾讯云代金券