嵌入式Linux系统工程师都学些什么?

来源:互联网 发布:卡尔马龙 知乎 编辑:程序博客网 时间:2024/04/30 15:37
教学大纲
课程安排
课 程 简 介

第一周
嵌入式C语言编程基础

    主要介绍在嵌入式开发编程中C语言的重要概念和编程技巧中的重点难点,以复习串讲和实例分析的形式,重点介绍包括函数与程序结构,指针、数组和链表,库函数的使用等知识。

第二周
Linux 操作和编程基础

    主要介绍 Linux 的基本命令和基础编程知识,包括Linux的文件操作和目录操作命令,VI编辑器,GCC编译器,GDB调试器和 Make 项目管理工具等知识。

第三周
Linux 上C 强化编程训练

    主要包括整数算法训练,递归和栈编程训练,位操作训练,指针训练,字符串训练和常用C库函数编程接口实践,强化学员对Linux下基本编程开发的理解和编码调试的能力。
第四-七周
Linux环境高级编程及项目开发编程实践
    主要包括系统编程(信号/系统调用/管道/FIFO/消息队列/共享内存等),文件I/O编程(文件描述符/文件读写接口/原子操作/阻塞与非阻塞IO等),多任务和多线程编程(进程标识/用户标识/fork与vfork/多线程概念/线程同步等),网络编程(网络基本概念/套接口编程/网络字节次序/ Client/Server 结构/ UDP 编程);掌握Linux下Socket编程的开发流程,熟悉网络编程的调用接口函数和相关数据结构,使学员初步具备在Linux上进行系统编程开发的能力。同时综合之前所学内容和编程技术,以小组为单位进行一个团队合作项目的开发,考核内容包括文件I/O编程,多线程编程,网络编程和项目文档编写。

期 中 考 试

第八-九周
嵌入式处理器体系结构及编程实践
    主要介绍 ARM、MIPS、PowerPC等体系结构及其基本编程知识,包括指令分类,寻址方式、指令集、存储系统、异常中断处理、汇编语言以及C/C++和汇编语言的混合编程等知识。同时结合ARM嵌入式开发板硬件设计原理和基本硬件设计流程,分析各种外设的工作原理和驱动机制,并自己动手实践完成一个ARM开发板上的编程大作业。
第十-十一周
嵌入式Linux开发基础及高级应用
    主要介绍嵌入式 Linux 开发应用程序的基本流程和知识,包括嵌入式Linux基本概念和开发流程、Bootloader 工作原理、内核裁减配置和交叉编译、根文件系统制作、网络编程及图形界面和数据库开发等知识。同时独立完成一个基于嵌入式Linux GUI的应用编程大作业。

第十二-十三周
嵌入式 Linux驱动理论及驱动程序开发实践

    主要介绍嵌入式 Linux 上驱动程序开发规范,包括设备驱动程序概念、字符设备驱动程序、块设备与网络设备、网卡驱动以及常用嵌入式设备驱动开发等知识。同时独立实现两种嵌入式设备驱动程序的编写,包括驱动模块的调试和加载以及完整的项目开发文档的编写。

第十四-十五周
嵌入式Linux项目团队开发实践锻炼

    主要包括设计并实现一个真实和完整的嵌入式项目的开发流程,涉及到数据采集、网络通讯、图形用户界面显示以及嵌入式数据库存储系统等多种嵌入式Linux编程技术。要求学员建立起团队开发和协同工作的企业项目开发模式的概念和流程,强化学员对编写项目概要设计文档和详细设计文档的理解,为就业前的职业技能和素质训练做好充分准备。

毕 业 典 礼

培 训 目 标

学 习 内 容

掌 握 程 度

掌握三种编程语言

C 语言

精通

 

 

 

C++ 语言

 

 

了解 

 

ARM 汇编语言

 

熟悉

 

掌握两种嵌入式Linux操作系统

Linux

精通

 

 

 

uCLinux

精通

 

 

掌握两种嵌入式实时操作系统

VxWorks

 

熟悉

 

 

uC/OS-II

 

熟悉

 

掌握三种处理器体系结构

ARM 体系结构

精通

 

 

 

MIPS 体系结构

 

熟悉

 

 

PowerPC

 

 

了解

掌握五种ARM核处理器

Samsung S3C2410/S3C44B0

精通

 

 

 

Intel XScale PXA255

精通

 

 

 

Philips LPC22xx

精通

 

 

 

EP7312

 

熟悉

 

 

MIPS Godson 龙芯

 

熟悉

 

掌握两种硬件设计工具

Candence PCB

 

熟悉

 

 

Protel

 

 

了解

掌握两种Linux下编辑软件

VI

精通

 

 

 

EMACS

 

 

了解

掌握两种串口通讯工具

超级终端 (Windows)

 

熟悉

 

 

MiniCOM (Linux)

 

熟悉

 

掌握三种 Flash 烧写工具

Flash Programmer (GUI)

 

熟悉

 

 

JFlash 烧写软件及原理

精通

 

 

 

SJF系列烧写软件及原理

精通

 

 

掌握两种调试工具

JTAG 在线调试器

 

熟悉

 

 

SkyEye 仿真调试工具

 

熟悉

 

掌握两种集成开发环境

ARM  ADS 1.2

精通

 

 

 

K-Develop IDE

 

熟悉

 

掌握一种源代码版本管理工具

CVS

 

熟悉

 

掌握嵌入式 Linux整体开发流程

 

 

熟悉

 

GNU 交叉编译器使用

Cross-compiler-gcc/g++

精通

 

 

 

Linux Makefile 组织结构

精通

 

 

Bootloader 启动代码

u-Boot

精通

 

 

 

RedBoot

 

熟悉

 

内核编译

配置参数设置

精通

 

 

 

内核调试

 

熟悉

 

文件系统

JFFS2 文件系统

精通

 

 

 

NFS 文件系统

精通

 

 

 

ROMFS 文件系统

精通

 

 

 

EXT2 文件系统

 

熟悉

 

 

YAFF 文件系统

 

 

了解

设备驱动程序

液晶 LCD 设备驱动

精通

 

 

 

USB设备驱动

精通

 

 

 

网卡设备驱动

精通

 

 

嵌入式图形系统

MiniGUI

精通

 

 

 

QT/Embedded

 

熟悉

 

 

MicroWIN

 

 

了解

嵌入式数据库系统

SQLLite

精通

 

 

嵌入式应用程序开发

网络通讯应用开发

精通

 

 

 

数据库存储应用开发

 

熟悉

 

 

多媒体应用开发

 

熟悉

 

 

图形用户界面开发

精通

 

 

 

Shell 编程技巧

 

熟悉

 

【说明】
精通 ―― 表明对于所学内容和工具的原理进行过深入分析,了解相关内容实现的具体技术细节,并掌握
          了相关工具的高级使用技巧。
熟悉 ―― 表明对于所学内容和工具能够融会贯通,掌握相关内容的基本概念,并能够熟练使用相关工具
          的常用技巧。
了解 ―― 表明对于所学内容和工具一般了解,能够区别相关内容在概念上的异同,并能够初步使用相关
          工具。
 
原创粉丝点击