嵌入式linux培训计划资料Word文档格式.docx
- 文档编号:1557497
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:30
- 大小:1.21MB
嵌入式linux培训计划资料Word文档格式.docx
《嵌入式linux培训计划资料Word文档格式.docx》由会员分享,可在线阅读,更多相关《嵌入式linux培训计划资料Word文档格式.docx(30页珍藏版)》请在冰点文库上搜索。
标准C语言基本数据类型字符串和搁置话IO运算符表达式和语句
C基本控制流函数的实现与使用数组与指针存储类链接和内存管理
LinuxC内存映像复杂声明结构体地址对齐共用体和枚举
条件编译宏与带参宏的编写变参函数回调函数和内联函数
3
项目实战
《超市购物计价系统》
在预科阶段主要是让学员建立完整的编程能力基础,本项目通过对linux系统开发环境的熟悉,采用基础的C语言编程知识,灵活巧妙的运用,完成超市购物计价系统的商品添加,计价消除,消费总价等功能,并且能够实现商品的存量查看与购物清单的生成。
目的是通过该项目能让学员熟悉C语言各种常用语法。
基本数据结构,培养良好的编程思维。
独立完成
培养目标
Linux系统见习程序员
第二阶段:
Linux系统运维学习
让学员能熟悉掌握linux系统的重要shell命令,掌握Linux系统中的多种服务配置技巧,深入shell编写出智能化的系统自动配置脚本,胜任常见的linux系统的运维工作。
Linux系统服务配置基础
本课程主要介绍Linux系统的版权特性,注重企业运用的实际配置操作,强化商业版权意识,并针对常见的服务器系统配置及维护工作操作方法展开详细的学习,以满足企业对Linux系统运维服务工作的需求。
本阶段将涉及以下主要内容:
GNU项目,通用公共许可证GPL、LGPL、POSIX、CopyLeft、FSF、SUS等基本概念简介
Linux系统体系结构Linux内核版本管理
GNIME、KDE桌面系统简介
API软件包管理系统高阶使用
Shell命令通配符别名定义管道与重定向
Linux系统环境变量的设置与作用
Linux系统启动过程中的重要配置管理文件
Linux系统管理命令用户管理命令文件管理命令网络管理命令
Linux网络服务配置服务器常用配置方法
Linux虚拟文件系统VFS与存储设备挂载方法
Linux多任务控制与进程控制命令
Linux系统安全配置
Linux下shell语言编程
本课程主要通过对shell脚本语言的体系化学习,让学员能熟悉运用shell语言实现自动化系统配置脚本编写,提供系统运行的效率,为无人值守的Linux服务系统奠定基础。
同时shell脚本也是嵌入式系统开发过程中非常重要而且常见的脚本语言,其一般与Makefile文件结合,实现更为复杂的项目管理功能,特别是在内核的开发工程中脚本的结合使用更加频繁。
本阶段将涉及以下这些内容:
shell的基本语法shell的特殊配置功能shell的系统配置功能
shell的正则表达式shell的高阶编程shell的图表化编程
shell的自动化脚本设计与实现
《小区用户管理系统》
该项目在linux运维学习阶段是一个典型的应用,通过对shell编程的基本御用,完成小区用户管理系统的住户信息添加、删除、查找等功能,并且能够实现智能权限管理及用户信息列表生成等功能。
巧妙的将shell的基本编程灵活的运用到实际的运维管理上来。
《设备自动化配置系统》
该项目在linux运维学习阶段是一个综合性的实际应用,通过本项目对图形化的shell工具的运用,完成设备自动化配置系统的设备等功能,并且能够实现配置日志记录,实现无人值守的全自动化智能控制流程,是linux运维工程师的综合技能的完美体现。
Linux系统运维工程师
颁发证书
粤嵌——Linux系统运维工程师
第三阶段:
嵌入式软件开发基础学习
嵌入式项目开发是一个需要软硬件技术结合的开发过程,开发中使用最多的计算机编程语言是C语言;
例如引导加载程序bootloader的实现、操作系统内核的开发、驱动程序的开发,同时GNU在实际项目开发中为标准C增加了很多使用的扩展,使得C语言在整个嵌入式开发过程中发挥出了非常重要的作用。
C语言的跨平台性比较强,精通C语言的程序员可以很容易地从事众多嵌入式系统的开发,如:
Linux、Windowsphone、QNS、uC/OS、Vxworks等。
本阶段学习目标是掌握嵌入式设备的C语言开发的核心方法,灵活运用工具快速搭建嵌入式设备的开发调试环境,深入理解程序内存的操作特性,程序稳定的核心技术就是内存的精准操作跟缜密的算法,为了确保学员得到坚实的开发技能,本阶段将内存编程作为重点,深入剖析C语言的数据结构与算法在嵌入式系统的高阶应用,为后续程序开发的稳定性提供确切的保障。
有志在linux/Andoid系统开发邻域,从事内核开发/驱动开发/嵌入式应用程序开发的工程师或学生。
◆Linux系统的基本操作
◆计算机C语言编程基础
◆计算机组成原理基础
掌握要求
交叉开发环境的建立
嵌入式系统开发工程师的首要任务是建立稳定的交叉开发环境,并确保每一个程序均在嵌入式设备上顺利运行。
本节将详细讲解嵌入式设备开发过程的各种开发工具的使用,以及如何高效率的进行嵌入式项目开发,并通过搭建个性化的开发环境为后续的程序开发提供便捷的条件。
交叉环境的搭建
Cortex-A8GEX210平台介绍与操作熟悉
嵌入式平台启动流程
交叉开发流程分析
交叉开发环境搭建
arm-linux-gcc交叉编译器的使用
arm-linux-gdb交叉调试器的使用
精通
嵌入式C语言指针与内存
在任何程序设计环境及语言中,内存管理都十分重要。
在目前的计算机系统或嵌入式系统中,内存资源仍然是有限的。
因此在程序设计中,有效地管理内存资源是程序员首先考虑的问题。
通过计算机程序准确并高效的使用内存,是权衡一个软件工程师实力及经验的重要指标。
本节针对C语言开发在嵌入式系统中的典型应用及核心开发技巧展开深入的剖析。
并根据实际项目案例进行深入学习。
嵌入式C语言的指针与数组的运用指针与数组的混合运用
C语言结构体与联合体的使用复杂声明解读
预处理指令之文件包含、文件组织结构、复杂宏编写技巧
预处理指令之条件编译及实际运用案例、attribute机制简介
嵌入式C语言的数据结构
在linux内核中,任务调度、文件管理、设备管理、内存管理机制的实现,使用了大量的数据结构及算法;
尤其是驱动管理、协议解析、数字处理引擎中更普遍存在,数据结构的设计本质是对设备内存的高级抽象,对程序的稳定性、健壮性造成直接的影响。
本节针对嵌入式设备开发过程中常用的数据结构技术进行灵活生动的讲解,结合项目实例,剖析包括链表、队列、栈、树、哈希表以及各种算法的应用实例,让学员更加深刻的理解基础与实际应用的技巧。
数据结构的逻辑结构分析
线性表、顺序表、linux内核链表
循环队列与链队列
树的实现与二叉树的操作
Linux内核的红黑树设计
分块查找和哈希表的linux内核运用
《约瑟夫问题》
该案例使用C语言实现的链表,实现对给定数据相关链表的初始化、插入、删除、遍历、查找等基础操作,通过该案例的实现,可基本掌握链表的基本概念,基本掌握操作链表的基本技能,该案例难度较小,适合初学者。
4
《汉诺塔游戏》
该项目是经典的递推益智游戏,使用数据结构中的栈实现,结合C语言中经典的递归算法,可以巧妙地实现汉诺塔的自动搬移,在学习了数据结构之栈逻辑,递归算法以及复习了C语言语法之余,也增加了编程的趣味性。
该项目难度适中,适合喜欢挖掘算法和不满足与基本编程技能的学员。
5
《模拟排队系统》
该项目模拟现实排队,每隔一段时间,队列随机增加一个节点,以及每隔一段时间,从队列中删除节点,该项目难度适中。
6
《航班查询系统》
该项目要求学员通过文件或者标准输入设备,录入航班信息,然后使用数据结构中的链表、队列等知识,实现对航班信息的编辑、录入、排序、遍历、删除等操作。
该项目难度偏大,在老师手把手的指导下,专门安排时间完成。
Linux系统初级程序员
粤嵌——Linux初级程序员
第四阶段:
嵌入式Linux系统编程开发
当前主流的嵌入式设备中均运行架构复杂的操作系统,操作系统提供了多任务的实现,为了能让嵌入式设备实现更高校的运作,必须掌握嵌入式操作系统中最核心的系统编程技巧,包括:
多线程编程、多线程编程、进程管理、进程间通信机制,多线程间同步互斥机制,线程池机制等。
Linux进程编程
本课程从系统调用开始,重点讲解Linux多任务编程中的多进程,以及进程间通信(pipe、FIFO、消息队列、共享内存、signal、信号量等)。
让学员与实际应用相联系,提升学员对linux应用开发的理解和代码调试的能力。
嵌入式linux进程创建
嵌入式linux进程基本概念
进程API函数详解
嵌入式linux守护进程编写
嵌入式linux进程间通信之无名管道和有名管道
嵌入式linux进程间通信之信号机制
嵌入式linux进程间通信之systemVIPC
Linux多线程编程
本课程重点讲解linux多任务编程中的多线程编程,同步与互斥对共享资源访问控制等重要知识,让学员深入的掌握linux系统中轻量级进程(线程)的操作特点及工作机制,使用最小的资源降低系统的运行负担,降低功耗,提高系统效率。
Linux线程基本概念
线程同步与互斥之互斥锁
线程同步与互斥之读写锁
线程同步与互斥之信号量
线程同步与互斥之记录锁
线程同步与互斥之条件变量
线程属性与线程池
多线程并发拷贝
Linux网络编程
计算机网络在嵌入式linux系统应用开发过程中使用非常广泛,本课程从linux网络发展、TCP/IP协议、socket编程,TCP编程、UDP网络编程、Web编程开发等方面入手,全面讲解linux网络应用开发,重点介绍网络编程相关API,熟练掌握TCP协议服务器编程方法和并发服务器的实现,了解HTTP协议及其实现方法,熟悉UDP广播,多播的原理及编程方法,掌握混合C/S架构网络通信系统的设计,熟悉HTML,Javascript等Web编程技术及实现方法。
TCP/IP分层思想、TCP/UDP用途
Socket、IP地址、端口号
字节序概念
TCP编程API及各种IO模型
UDP编程API
网络工具wireshark用法
网络封包格式、网络信息检索
网络属性设置和超时检测
TCP带外数据及编程方法
广播和组播
UNIX域套接字
TCP粘包和解决方法
流媒体编程RTP,RTSP
《并发日志系统》
该项目模拟linux系统中实际使用的日志系统,使用管道通信同步协调各个不同进程的日志信息,统一由日志服务器处理数据,实现多线程并发产生日志的功能。
《多点下载技术》
该项目运用多线程技术,对大文件实现多点并发下载功能,提高本地写操作效率,充分利用有限的带宽处理器性能,提高下载速度。
《断电续传技术》
该项目在网络编程中是一个典型的实用模块,通过记录文件的当前位置偏移量,使得断开数据传输之后依然可以保证下次下载可以续传,节约程序运行时间,提高工作效率。
《线程池并发目录拷贝》
该项目使用线程池的概念,进一步优化多线程程序中对线程的使用技巧。
Linux应用开发工程师
粤嵌——Linux系统中级程序员
第五阶段:
Android系统编程开发
熟悉掌握androidSDK是android应用编程的核心,在授课过程中将引用真实案例,传授大量实战技巧和开发经验。
使学员完成此课程后将具有开发手机应用、手机游戏和手机网络游戏的能力。
Java语法及编程提高
学习android编程都需要有比较扎实的java语言开发基础,需要对学员的java语言进行强化。
对于有java语言编程基础的学员来说此课程能够将学员平时容易忽略和没有参透的重要内容加以强化。
对于没有java语言编程基础的学员来说可以迅速掌握java的核心技术。
对于javaWeb编程,为Android客户端开发提供服务端功能。
熟练使用Eclipse
编译运行并调试项目
Java基本程序的书写
Java数据类型和变量、运算符的使用
Java控制流、数组的使用
Java对象的本质、类和对象的关系
Java的封装、类的继承、多态性
Android应用开发进阶
本节通过全面掌握androidSDK编程开发,并通过实际项目锻炼实际开发能力、培养出符合企业需要的Android开发工程师
安卓应用编程主要方法、安卓主要组件
常用图形界面组件、事件处理方法
工程结构、核心组件、模拟器、DDMS、LogCat
Android程序生命周期、Activity组件
《雷神之锤游戏》
一种射击游戏,主要分为网络版和单机版。
网络版:
和网上的人进行射击协作共同完成任务,可以选择不同的游戏场景,两人或多人共同闯关。
单机版:
自己设置游戏难度,提供不用的场景和关数,从易到难,让学员体会游戏的乐趣。
第六阶段:
CortexA8设备接口开发
本阶段通过基于ARMCortex-A8处理器S5pv210了解嵌入式项目开发过程中,芯片手册的高效阅读技巧,掌握S5pv210芯片的系统资源、时钟控制器、电源管理、异常中断控制器、nandflash控制器等模块,为底层平台搭建做好准备。
◆数字电路与模拟电路基础
…
实时时钟、LCD、触摸屏与IIC
NANDFLASH操作等
《智能家居系统》
该项目在裸机编程阶段是一个典型的综合应用,通过本项目对Cortex-A8的控制器的全面熟悉,完成无操作系统的裸机状态下的多任务响应,并且能够实现众多外部设备的接口控制,为后续进行设计Bootloader启动引导程序打下坚实的基础。
ARM开发工程师
ATC认证、粤嵌认证——ARM开发工程师
第七阶段:
Linux设备驱动开发
熟悉Bootloader的工作原理,通过分析优秀的Bootloader工程代码,实现自定义引导程序设计。
熟悉U-boot工作原理,并实现在S5PV210平台的移植与优化。
掌握Linux内核裁剪的重要方法,并实现cortex-A8平台的内核移植
掌握Android系统定制与裁剪的重要方法,并实现cortex-A8平台的Android系统开发移植。
通过使用Busybox实现嵌入式根文件系统的制作技巧和过程。
掌握linux内核的重要框架及运作机制
掌握linux内核的任务管理与调度的核心技术
掌握linux内核的内存管理与文件管理的核心技术
掌握linux内核的文件管理核心技术
掌握linux字符设备驱动编写方法以及使用方法
掌握linux驱动中断的处理方法
掌握linux驱动的同步并发处理机制,优化内核与驱动
掌握linux系统中的常见总线驱动工作原理,如Platform、IIC、USB等
掌握linux系统中的framebuffer、input、IIC、Misc等子系统设备驱动
掌握linux系统中的快设备驱动
掌握linux系统中Flash、SD存储设备的工作原理及驱动设计框架
掌握linux系统中的网络设备驱动,熟悉常见网卡驱动如DM9000等
掌握Android系统中的常见设备驱动移植与开发方法
◆Android系统环境编程基础
◆Linux系统环境编程基础
◆Cortex-A8裸机驱动设计基础
◆常见数据通信接口驱动开发基础
Linux系统移植
本阶段主要介绍商业产品开发中,开发企业如何获得开发资源,并能通过有效渠道获得重要的开发工具及第一首开发方案,结合芯片企业的开发方案,快速从零开始定制项目所需的BSP系统开发包,并针对项目的目标功能指标实现准确定制及移植优化。
本阶段主要涉及以下主要内容:
1、芯片官方资料获取方法
2、芯片开发方案获取
3、芯片开发Demo分析
4、高效项目系统移植方案设计方法
5、著名常见Bootloader分析
6、U-boot分析与移植
7、Linux内核分析与移植
8、Android系统框架分析与移植
9、Linux驱动重要框架分析与移植
10、Linux/Android系统根文件系统分析与移植
Linux初级设备驱动
在实际商业项目开发中,程序效率的高低在于应用程序算法对操作系统机制及系统调用接口的灵活运用,本阶段主要深入介绍linux的内核机制,从重要的内存管理机制、任务管理机制、文件管理机制展开、让学员掌握linux内核的重要运作机制,并能完成常见的模块编程,掌握内核的多种数据交换方法,掌握linux操作系统下设备管理的重要思路,掌握驱动开发的重要框架,熟悉掌握linux下常用字符设备驱动的编写方法,能完成设备的并发访问控制、中断访问、常见总线接口访问,能独立完成常见linxu设备驱动的开发。
本阶段主要涉及以下内容:
1、linux内核模块开发技术
2、linux内核内存管理、进程管理、文件管理机制
3、linux字符驱动框架及GPIO控制驱动
4、linux设备驱动的安全稳定内存交换技术
5、linux中断机制处理及多方式下半部处理方法
6、linux下缓冲机制、并发与竞态(如原子量、信号量、自旋锁等)机制
7、linux驱动中的阻塞和非阻塞
8、linux下的时钟、定时器、电源管理机制
9、linux下SPI/IIC/UART常见通信总线驱动编写与应用
Linux高级设备驱动
增强商业项目的技术竞争力,一般都需要主持丰富的外设接口,在系统中增加更加复杂的设备驱动支持。
本阶段深入介绍linux的设备模型机制,从重要的总线管理机制、设备管理机制、总线设备驱动管理机制展开,让学员掌握linux内核的重要设备驱动管理思想,并能掌握linux系统下扩展复杂外设驱动总线及设备的方法。
同时掌握linux下显示设备驱动、输入设备驱动、传感器驱动、块设备驱动、网络设备驱动,能独立完成复杂的linux设备驱动开发。
1、linux下bus、device、driver设备驱动管理框架(kobject、kset子系统、sysfs操作)
2、linux下platform总线机制及新型设备驱动设计
3、linux下input设备驱动框架分析及驱动设计
4、linux下块设备驱动框架分析及驱动设计,NAND及SD驱动分析
5、linxu下显示设备驱动机制,framebuffer驱动设计,常见LCD接口驱动程序的实现
6、linux下网络设备驱动机制,常见网卡驱动以及虚拟网络设备驱动设计
7、linux下复杂设备总线驱动分析,如USB设备等
Android系统设备驱动
Android系统基于Linux内核,但应用程序使用Java语言开发,所以应用程序在调用设备驱动时不能像一般的linux应用程序那样直接使用系统调用,必须通过Jave虚拟机的JNI本地(Native)方法使用设备。
另一方面,Android要成为一个通用性强的平台,必须加强它的可移植性。
因此要掌握如何在Android架构中添加一个稳定的硬件抽象层(HAL)插件。
主要阶段主要涉
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 linux 培训 计划 资料