嵌入式开发“高手”进阶之路

时间:2021-08-11 18:47:27

  第一部分: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下常用接口驱动的编写方法,包括

  1、字符型LED驱动开发(GPIO口驱动)

  2、按键驱动开发(中断驱动,在驱动中中断程序的编写,消息队列的应用)

  3、ADC驱动开发

  4、网卡驱动开发

  5、串口驱动开发

  6、液晶屏(TFT彩屏驱动开发)

  7、触摸屏驱动+tslib(中间插件移植与设置)

  8、USB驱动开发+USB无线网卡移植

  9、IIS驱动开发+maplay移植与应用(mp3播放)+mplayer移植与应用(视频播放Mp4/广告机等播放)

  10、SD驱动开发

  11、RTC驱动开发

  12、电源管理方法


  第八部分: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、文件读写与存储


  第九部分:QT移植与开发

  了解嵌入式Linux下的几种常见GUI及其特点,重点能掌握QT的有关内容,具备QT程序设计能力。了解嵌入式数据库的配置与开发。

  1、嵌入式Linux GUI介绍

        2、嵌入式QT开发包移植

  3、QT介绍及其信号插槽机制

  4、QT图形界面编程技术

        5、QT应用程序与Linux驱动的衔接

  6、QT在实际项目中具体应用


  第十部分:无线通讯应用

        1、无线wifi模块应用

  2、3G模块应用


  第十一分布:嵌入式系统应用程序,驱动程序调试

  1、Linux基本工具调试使用。GDB,insight调试等

  2、Linux应用程序的编程

  3、嵌入式产品程序打包与发布


  第十二部分:嵌入式项目综合调试,产品发布

  了解真实项目的开发流程,掌握如何将所学知识应用到项目开发中。

  模拟真实项目的管理过程,培养项目团队协同开发能力,项目文档编写能力和新知识的学习能力。


  嵌入式LININX开发第一学习阶段,主要打好基础:学好C编程,Linux系统编程。

  1、C语言编程基础

  2、嵌入式开发基础:Linux概述安装,shell命令,vim编辑器,GCC,GDB,Makefile,交叉开发环境构建

  3、嵌入式Linux系统编程:shell编程,文件编程,串口编程,进程编程,线程编程,网络编程

  4、嵌入式项目开发:数据采集控制系统,串口服务器


  (穿插:英语不好的可以专门去学习计算机专业英语)


  嵌入式LININX开发第二学习阶段:掌握ARM汇编程序设计,驱动程序设计。

  1、ARM体系结构:ARM体系,ARM指令,Thumb指令,汇编程序设计,逻辑程序开发

  2、Linux内核移植:bootloader,内核配置,文件系统

  3、驱动程序开发:驱动架构模型,字符设备驱动,块设备驱动,网络驱动

  4、嵌入式项目开发:智能家居系统,视频监控系统


  嵌入式LININX开发第三学习阶段:掌握C++面向对象程序设计,Qt编程。

  1、C++语言编程基础

  2、QT编程开发:QT开发基础,QT布局与控件,QT绘图,QT事件,QT网络通信,QT数据库,QT移植

  3、嵌入式项目开发:车载监控管理系统,工业能源管理系统