当前位置: 嵌入式研究室 > 课程介绍 > 保五万年薪课程 >
企业委培 保5-10万年薪linux内核驱动工程师定制班
应深圳市画晨通科技有限公司的需求,我们为企业招收培养指定条件的学员,进行具有针对性的强化训练。经过培训后合格的学员,达到企业需求,直接进入深圳市画晨通科技有限公司工作。
企业简介:
深圳市画晨通科技有限公司是一家致力于移动智能终端应用开发和服务的软件公司,在移动终端应用领域是领先的立足于中国,服务全球的软件开发及外包服务提供商,其总部设在深圳,为欧美、日韩及中国本土的客户提供终端产品合作及外包开发服务。
深圳市画晨通科技有限公司以“为客户输送专业技术人才”为服务宗旨,为国内外高新企业提供人才输送、人才外包服务。此次人才培养活动主要为了满足华为技术有限公司在“Linux内核及驱动开发工程师”方向的人才需求。
深圳市画晨通科技有限公司委托深圳尚观嵌入式研究室培训未来员工。画晨通科技承诺以下:
1. 尚观其它分校的学生,人员20人以上。画晨通科技可以安排工程师异地上门面试,所录用的学生可以报销来深机票或者火车票费用。
2. 根据工作经验及面试结果提供4k~10k的薪资;本科毕业,linux开发经验有1年以上,薪资试用期5k,3个月试用期,试用期过后可达到6k
3. 每年调整一次薪资
4. 返还学费。鉴于培训人员经济压力情况,画晨通科技承诺学生成功入职之后。其在尚观的培训费用将在在工作满1年时返还培训费的50%;满2年时返还另外的50%培训费。
5. 加班费30元一小时(项目经理认可的周末加班)。在坂田上班的入职人员另有20元一天的车补。
6. 乙方录用的培训人员,工作地点在华为工作。
画晨通科技有限公司招聘要求:
linux内核及驱动开发人员方向要求:
a、本科以上学历;
b、毕业1年以上;
c、精通linux开发,熟悉内核裁减和驱动开发;
尚观嵌入式研究室招生要求:
1、学历要求:普通高等学校本科及以上学历;
2、专业要求:理工科专业,包括但不限于:计算机、电子工程、自动化、通信工程、软件学院、嵌入式、电气工程、微电子、航空科学、机械工程、电机工程、汽车工程、航空宇航工程、测控与信息技术、精密仪器、地理信息系统GIS、数学、物理、化学、热能、工业、水电、材料科学与工程等。文科专业,原则上可申请入学,入学前需要具备C语言基础。
3、知识储备:必备C语言基础;有操作系统、微机原理与接口(计算机组成原理)、数字电路等基础最佳。
2、专业要求:理工科专业,包括但不限于:计算机、电子工程、自动化、通信工程、软件学院、嵌入式、电气工程、微电子、航空科学、机械工程、电机工程、汽车工程、航空宇航工程、测控与信息技术、精密仪器、地理信息系统GIS、数学、物理、化学、热能、工业、水电、材料科学与工程等。文科专业,原则上可申请入学,入学前需要具备C语言基础。
3、知识储备:必备C语言基础;有操作系统、微机原理与接口(计算机组成原理)、数字电路等基础最佳。
希望掌握ARM平台底层编程技术的学员;以及希望从事移动终端开发的爱好者、工程师、程序员、已及相关行业的工程技术人员;有志于从事嵌入式核心研发的软件开发技术人员和正在学习计算机、软件、通信专业的学生,以下是主要应用方向
◆手机内核驱动软件开发;
◆智能设备的驱动软件开发;
◆芯片公司的操作系统级开发;
◆智能操作系统平台驱动研发
◆全国唯一,从零开始手写至少5款驱动,绝非驱动的普通移植,真正的嵌入式核心培训,触摸屏驱动、LCD驱动、音频驱动、网卡驱动、Watch Dog(看门狗)驱动及相应的DMA驱动的编写。能否写出驱动是衡量嵌入式培训水平的唯一标准
◆ 全程实际开发产品伴随,最后学员做一个真正的设备,核心部分使用自己的编码,可以作为求职时的项目经验,高强度授课,全部项目型教学,每个环节都有案例
◆ 从零开始手写Linux驱动和控制程序,直接用自己的代码控制处理器
◆ 三星2440开发板+触摸屏+仿真器,让学员的程序立刻可见。
◆ 全部Linux平台开发环境,真正真实工作环境开发,拒绝Windows下模拟,拒绝照PPT照本宣科
◆ 全程不下20个实际的案例,包括手写驱动,网络攻击程序分析等
◆ 共17周授课,每天面授6小时,有辅导老师值班下自习4小时,强制晚上8点30回家
基于ARM9 S3C 2440芯片的智能手持设备(PDA)开发项目(嵌入式开发板+触摸屏)。所有内容都围绕实际项目,本设备可以直接作为MP4/MPM使用,也可以转为网络智能播放器,智能手机,GPS。我们的设备不只有开发板还有触摸屏,尚观会让学员完成一个完整设备,真正让学员拥有一个工作经验,对找工作具有直接的推动作用。同时这个设备可以作为面试时的项目经验。

板卡:本课程采用尚观定制用作中高端教学使用的特制开发实验平台。此平台为ARM9核心,采用三星2440芯片设计,超大256兆Flash模块,同时配有丰富接口和外接设备,如:音频、DM9000百兆网卡芯片、GPS导航芯片、高保真输出功放芯片、只能电源管理芯片等主流芯片,为学员开启嵌入式之门搭建桥梁,是学员进行3g、多媒体、通信等嵌入式设备的最佳平台。(此开发板,全国独家设计,按Freescale内部研发板规格设计)
芯片:众所周知,S3C2440芯片几乎应用在市面上所有正在销售GPS等设备上,另外有大量的监控设备,医疗,工控,军事和数字多媒体智能设备基于这款芯片。尚观使用S3C2440作为主要的ARM9平台智能PDA设备有非常重要的意义。其中所涉及的技术,可以让学员在多个嵌入式领域就业。尚观作为最早的嵌入式培训机构,早年曾多次使用该平台为知名企业客户(如:HP)进行内部研发团队培训。
注:尚观嵌入式课程项目在ARM9 S3C2440上实现,全程Linux平台开发设计,全程配备开发板实验平台,项目涉及核心Linux内核驱动、ARM体系结构、ARM汇编,Bootloader,网络数据传输、GUI图形界面、mplayer移植、Watch Dog(看门狗)驱动、相应的DMA、触摸屏驱动、LCD驱动、音频驱动、网卡驱动及USB驱动。除了mplayer解码器部分外,其它所有应用程序和驱动程序基本由学员从零编写,而不是简单的“移植驱动程序”, 含盖了嵌入式软件中的各个技术层面。可以全方位学习整个嵌入式产品从硬件选型、电路设计、BSD层开发、操作系统层开发、协议层开发(如3G)、GUI开发等各个细节,能快速提高个人的项目开发和团队研发合作能力。

(三星2440智能开发板:关闭状态)

(三星2440智能开发板:开启状态)

(三星2440智能开发班:核心芯片)

(三星2440智能开发板:丰富的借口)

(三星2440开发板:高保真音频输入输出)

(三星2440智能开发板:功能连接外置扬声器)

(三星2440智能开发板:DM9000百兆网卡芯片)

(三星2440智能开发板:声卡芯片)

(三星2440智能开发板:GPS芯片)

(三星2440智能开发板:GPS天线坞)

(三星2440智能开发板:超大容量FLASH芯片)
按大模块划分:

课程时间:共17周授课,每天面授6小时
授课内容:
---------------------------------------- 第一部分 基础部分----------------------------------------
一、Linux系统基础 (3天)
教学目标:能比较熟练的安装、操作Linux系统, 并能配置开发环境与常用服务.
1. Linux基础
. 系统安装
. 帮助系统
. 文件管理
. 用户组
. 文本处理与编辑
2. Linux常用命令
. 查找
. 压缩
. 输入/出重定向
. 管道
. 启动脚本
. 软件安装
. x-window
3. Linux网络配置
. TCP/IP简介
. 网卡配置
. DNS配置
. nfs
. ssh
二、shell程序设计(2天)
教学目标:能用Shell处理简单的批量化工作
1. Bash Shell初步
. 变量
. 运算符
. 流程控制
. 环境变量
2. Bash Shell进阶
. 文件操作
. 函数
. 输入输出
三、C语言程序设计(10天)
教学目标:能设计普通的应用程序
案例教学: a、指法程序
b、汉诺塔游戏
1. C语言基础
. C语言的特点
. 数据类型
. 运算符
. 表达式
. 关系运算符
. if 语句
. switch 语句
. 循环语句
2. 函数
. 函数的声明和定义
. 形参与实参
. 递归 .
3. 数组
. 数组的定义
. 整型数组
. 字符数组
. 字符串
. 数组名的意义
. 多维数组
4. 指针
. 指针的定义
. 指针运算符
. 指针的加减
. 动态内存分配
. 堆与栈
5. 数组指针
. 指针数组
. 数组指针
6. 预编译与VT控制码
. 声明与头文件
. 静态链接库
. 动态链接库
. ANSI VT控制码
7. 组合数据类型
. 结构体
. 结构体指针
. 枚举
. 共用体 (联合)
8. 指针高级应用
. 二级指针
. 三级指针
. 多级指针
. 函数指针
. C语言与面向对象
9. 文件操作
. 标准I/O (fopen)
10. 辅助开发工具
. Makefile的编写
. GDB的使用
. CVS与配置管理
四、数据结构 (7天)
教学目标:熟悉常用的数据结构与算法
教学案例:
1. 成绩管理系统
2. 计算器
3. 电子词典
4. 文件压缩器
1. 单向链表
. 链表的创建
. 链表的遍历
. 结点的添加、删除
. 基于函数指针的查找
2. Linux内核链表
. 双向链表
. Linux内核链表的创建
. List结构的作用
. 有头与无头链表
3. 排序及查找
. 冒泡排序
. 快速排序
. 选择排序
. 插入排序
4. Hash表
. Hash算法
. Hash表的创建
. 遍历
5. 队列和堆栈
. 数组存储
. 链式存储
6. 树与二叉树
. 数组存储
. 链式存储
. 权值的概念
. Huffman树
. Huffman编码
7. 广义表
. 组合链表的应用
. 广义表
---------------------------------------- 第二部分高级部分-----------------------------------------
一、C++程序设计(3天)
教学目标:能够利用C++的特性编写各种数据结构算法
教学案例:
1. 成绩管理系统(STL实现)
2. 模板库的实现(MyTL)
1. C++基础
. 面向对象思想
. C语言的面向对象
. C++的类
. C语言与C++面向对象实现方式的对比
. 友元
. 构造, 拷贝构造函数
. C++的编译原理, 与C、汇编的互相调用
2. 高级特性
. 继承
. 多重继承
. 虚函数与纯虚类
. 操作符重载
. 命名空间
. 静态函数
3. 泛型技术
. 模板函数
. 模板类
. STL的使用
. STL的实现
4. 项目实践(5 天):
. 俄罗斯方块
注:用VT控制码结合数据结构的知识来实现。
二:linux系统程序设计(7天)
教学目标:熟悉应用各种系统调用
教学案例:
1. 串口监听程序
2. 图片浏览器
3. MP3播放器
1. 系统I/O
. 文件操作
. 终端
. 规范及非规范模式
. select与poll
. mmap
2. 进程
. 进程的创建
. 进程地址空间
. 进程的控制终端
. 僵尸进程
. 孤儿进程
3. 进程组与信号
. 进程组
. 会话的建立
. 守护进程
. 常见的系统信号
. 信号的注册
. 信号处理
4. 进程间通信
. FIFO
. PIPE
. 共享内存
. 信号灯
. 消息队列
5. 线程
. 线程的创建
. 线程的属性
. 取消状态与取消点
. 线程的退出及状态检测
. pthread_mutex
. pthread_cond
6. 图形程序设计
. Frame Buffer的操作
. 位图原理与显示
. 矢量图形操作的实现
. Freetype操作与矢量文字的显示
. Xlib/QT/GTK简介
7. 音频处理与事件获取
. 音频原理
. OSS音频程序设计
. 键盘事件获取
. 鼠标事件获取
. Unicode字符获取
七、嵌入式网络程序设计(3天)
教学目标:熟悉TCP/IP, 熟悉一般的网络服务器程序
教学案例:
1. 聊天程序
2. ftp程序
3. 音频广播程序
4. ping的实现
5. DDos攻击程序
6. ARP攻击程序
1. TCP程序设计
2. 网络程序进阶
. UDP传输
. 广播程序设计
. 多播程序设计
3. 网络攻击
. 原始套接口程序设计
. DDos攻击原理
. ARP攻击原理
4. 项目实践(5 天):网络视频播放系统
利用所学的网络、图形、声频知识构建一个完整的网络点播系统,核心解码部分
可用MPlayer 的相关部分。
八、ARM嵌入式开发(15 天)
教学目标:熟悉ARM微处理结构、指令和常用外围器件
教学案例:(裸板驱动)
1. ARM模拟器开发
2. Watchdog控制程序
3. RTC时钟控制程序
4. Uart控制程序
5. LCD控制程序
6. 触摸屏控制程序
7. DMA控制程序
8. 音频控制程序
9. 网卡控制程序
10. 文件系统制作
11. ARM-Linux移植
1. 嵌入式系统移植
. 仿真器的使用
. Bootloader的烧写
. 内核的烧写
. 根文件系统的制作
. 文件系统的烧写
. NFS文件系统
. 开发板串口通信
2. ARM体系结构
. IP核、芯片与开发板
. 处理器结构
. 处理器模式
. 寄存器
. 流水线结构
. C语言内嵌汇编格式
3. ARM指令系统
. 算术逻辑指令
. 指令对状态寄存器的影响
. 比较分支指令
. 数据总线与地址总线
. 内存访问指令
. 指令位图
. 识别机器指令
4. ARM过程调用标准
. LDM/STM
. 反汇编
. APCS
. C语言函数与汇编的互相调用
5. ARM 汇编与GPIO
. AT&T汇编语法详解
. gas工具的使用
. label标签的作用
. 数据与代码的分布
. 链接脚本ld-script
. 的外围器件结构
. GPIO操作
6. 时钟与UART
. 总线标准
. 频率分配与设置
. Watchdog计时操作
. RTC时钟操作
. UART操作
7. ARM中断体系
. 异常向量表
. ARM模式切换
. ARM中断控制器
. 软中断
. Linux系统调用的实现
8. Nand Flash
. Flash原理
. Nand控制器原理
. 时序分析
9. SDRAM
. 物理地址分布
. SDRAM原理与时序
. 内存控制器的物理连接
. 地址对齐
. SRAM访问
. 软中断
. Linux系统调用的实现
10. 内存管理单元(MMU)
. MMU的原理
. ARM协处理器指令
. section模式
. small page模式
. I & D TLBs
. I & D Cache
. 哈佛结构的原理与实现
11. 触摸屏与ADC
. ADC原理
. 触摸屏接口与控制
12. LCD
. 图形显示原理
. LCD控制器
. LCD时序
13. 音频与DMA
. 音频硬件原理
. UDA1341
. L3总线
. 音频总线时序
. DMA原理与应用
14. 网卡
. 逻辑链路层与MAC层
. CS8900原理与时序分析
15. Bootloader开发
. u-boot的配置、编译
. u-boot启动过程分析
. ARM-Linux的启动要求
. ARM-Linux kernel的ld-sript分析
. u-boot到ARM-Linux的跳转代码分析
16. 项目实践 (5天):Bootloader开发
完全自主开发一个能够引导Linux的Bootloader,需具备tftp、nand烧写等功能。
九、 Linux设备驱动程序 (15天)
教学目标:熟悉内核的裁剪、移植及设备驱动开发
教学案例:(内核驱动)
. GPIO驱动
. RTC时钟驱动
. WatchDog驱动
. Udev移植
. DMA驱动
. Nand Flash块设备驱动
. LCD显示设备驱动
. 触摸屏输入设备驱动
. 网络设备驱动
. 音频设备驱动
1. ARM-Linux启动过程
. ARM-Linux的配置、编译
. ARM-Linux启动代码分析
. ARM-Linux 地址映射;
. Busybox的配置、编译
2. 内核配置与内核模块
. 内核配置编译
. 补丁的制作
. 内核补丁
. 内核 Makefile
. Kconfig的编写
. 模块的编译与加载
. 导出符号
. 引用计数
. 内核空间与用户空间的区别
. printk
. 模块参数
3. 设备驱动初步
. Linux的VFS 简介
. 设备文件与设备号
. 字符设备
. cdev结构
. 用户空间的操作与设备操作关系
. open、 release、read、write、lseek、ioctl等
4. 进程调度
. 定时器中断
. task_struct的作用
. thread_info
. 抢占与非抢占
. 进程睡眠
. 等待队列
. 阻塞I/O与非阻塞 I/O
. select/poll
5. 并发控制
. 原子操作
. 自旋锁
. 禁用抢占
. 中断屏蔽
. 信号量
. completion
6. 内存管理
. 虚拟地址空间与 MMU
. 内核页管理机制
. 内核内存分配
. 高端内存
. vmalloc
. 统一编址与独立编址
. I/O端口与I/O内存
. I/O静态映射
. mmap
7. 内核计时
. 内核计时 jiffies
. timer
. tasklet
. work_struct
. Linux信号
. fasync的实现
. RTC时钟驱动
8. 中断系统
. 中断机制
. 异常向表相关代码分析
. 中断号的确定
. 上半部与下半部
. 中断共享
9. 设备驱动模型
. kobject、kset、class、 subsystem与sysfs的原理和关系
. udev的原理与移植
. bus_type
. device与device_driver原理
. platform_device的应用
10. 触摸屏驱动
. ARM-Linux Input设备详解
. 触摸屏控制
11. LCD驱动
. Frame Buffer驱动详解
. LCD控制
12. 音频设备驱动
. OSS驱动详解
. I2S控制
13. 块设备驱动
. 块设备的注册
. 块设备的I/O的特点
. I/O请求
14. 网卡驱动
. 设备注册
. 驱动层数据收发
. 地址解析
15. ARM-Linux裁剪与移植
. 新版内核移植
. 驱动整合
------------------------------------------- 第三部分项目部分-----------------------------------------
项目实践(5 天):嵌入式智能3g多媒体移动通信终端
重点开发:ALSA音频驱动开发(音频驱动属于驱动中的大型驱动程序,在此项目中,开发驱动的同时,配合上层应用开发(包含图形图像、网络传输、媒体播放等)
学习目的:目的一是用的应用程序验证自己开发的驱动,二是了解公司开发流程与团队协作,为就业上足最后一刻。三是公司往往由几个小组共同开发。学生在学完全部课程后,用此项目贯穿之前全部知识关键点,真正做到学以致用)
项目优势
主流用ARM.所以上面就会涉及到触摸屏驱动、LCD驱动、音频驱动、网卡驱动、Watch Dog(看门狗)驱动及相应的DMA驱动的编写, 另外还会涉及到应用部分图象的显示等。也就是说,在上述项目稍作变更就成为一个GPS设备、智能手机、MPM播放器。
注:本设备可以直接作为MP4/PMP,也可以是网络智能播放器,智能3G手机,GPS等通信设备。
--------------------------------------- 第四部分就业指导-----------------------------------------
从事该项目的学员的目标职位:
目标职位: 驱动开发工程师 智能手机公司
智能手机是典型的嵌入式系统,随着用户对功能需要的增加、网络应用在手持设备上的普极,手机大多采用ARM. 因为ARM最大的优势就在移动消费性电子领域而对于手机来讲,最常规的需求就是图形、声音和操作。而上述项目正好涉及到这些驱动以及相关应用的开发。可以毫不费力的胜任这些工作.
目标职位: 驱动开发工程师 . 数码影音产品公司
数码影音产品(mp3/mp4/MPM)很大程度就是一个不带通信模块的智能手持设备
目标职位: 驱动/应用开发工程师. 数字机顶盒公司
数字机顶盒的操纵界面和图像数据的输出,都离不开上述驱动和应用。而且在技术日趋成熟,机顶盒对联网功能的需求越来越明显,特别是网络电视等新兴媒体的出现,所以在机顶盒中也越来越多的采用网络,所以网络驱动及网络应用程序开发在这些产品中同是核心功能.
目标职位: 驱动/应用开发工程师 . GPS导航仪公司
GPS的一个重要的功能就是用户界面操作、图形显示及语音提示,上述项目完整包含此类驱动开发及相关应用开发,上述开发经验非常容易胜任此类工作.
目标职位: 驱动/应用开发工程师 . 游戏机公司
90年代产生的街机几乎陪伴了一代人的成长,也造就了许多经典游戏的出现。那时的街机都专用主板。一个街机只能玩一个游戏。后来发展到GVD,可以一机兼容多个游戏,但游戏必须是同一公司的同类产品。到了90年代末,新的街机直接采用pc机,内嵌模拟器的形式,通过装载不同的游戏文件,就能运行不同公司的游戏,直接解决游戏的平台问题。但是PC平台价格昂贵(这也是嵌入式系统出现的原因), 所以越来越的游戏机厂商采用ARM来做了运行模拟器,以节约成本,提高竞争力。因为游戏也是依靠交互性、图形和声音的体现的一类产品,所以游戏机模拟器的开发和移植都离不开上述驱动和应用开发的经验。另外还有掌机以及电视家用机也越
来越多的采用ARM平台以降低成本.
目标职位: 驱动/应用开发工程师 . 工控/行业产品公司
在众多的生产线上,如印刷机、数控机床、线切割机、贴片机等等,为了节约生产力,早在80年代末期,就开始产用电脑系统进行控制。但是由于欧美国家掌握大量的关键技术, 生产线引进成本昂贵。所以国内很多生产线还是采用 486 + DOS的过时生产线控制系统。随着嵌入式普及,国内最早从事工业控制领域的研祥工控、华北工控等公司已开始慢慢转型向成本低、可控性好、操作简便的ARM嵌入式系统,并用触摸屏来设定参数。这些领域也离不开相应的驱动和应用开发。
目标职位: 驱动/应用开发工程师 . 检测仪器/医疗设备公司
如汽车故障检测设备,可视化医疗检测设备等,都需要网络传输、图形显示、声音提示及友好的操控界面等。上述项目知识是不可或缺的。
最新就业信息:见http://www.shangguan.com/jiuye/xibao/
当前开课地点:北京/上海/深圳/成都/沈阳/大连/
当前开班时间:尚观核心课程——每月滚动开班(请与当地课程咨询师联系)








