:
:
:
:
:
:
:
:
为了满足人才合作单位的嵌入式技术人才需求,中科华讯嵌入式教育现面向社会开展嵌入式Linux开发工程师招生、培训工作。培训内容以 ARM+Linux 为基础,结合嵌入式人才需求单位的实际需要,通过真实的嵌入式产品开发实践,使学员系统全面地掌握嵌入式开发技术,满足企业对有实际开发经验的嵌入式开发工程师的需求。
[培养目标]
系统掌握嵌入式Linux开发技术,可以从事嵌入式 Linux操作系统移植开发,并发架构、数据管理、网络通信、界面程序开发的高级技术人才。
[就业方向]
行业:消费类电子、工业控制、军工企事业、电信/网络/通讯、航空航天、汽车电子、医疗设备、仪器仪表等相关行业。
就业单位:详见就业合作单位列表。
[待遇]
专科生:¥3000-4000。
本科生:¥4000-4500;解决3险1金;视指标及毕业院校情况解决深圳。
研究生:¥5000-6000;解决3险1金;解决深圳户口。
注:以上信息以人才合作单位为例。(根据本中心与相关用人单位调查所得,嵌入式相关行业的工程师指导薪金在3500-10000元,实际情况会根据企业的性质、所处地区、行业、企业的实际情况及员工的个人能力有所差别,具体以学员与企业签订的劳动合同为准。)
中科华讯郑重承诺:不能就业,全额退学费!
[招生名额]
本次拟招生30名。
[入学条件]
1、计算机、电子、自动化、通信、信息工程等相关专业。
2、大学专科及专科以上学历。
3、不具备以上条件,但从事 2 年以上计算机软硬件开发的技术人员。
4、有就业需求的学员应满足相关企业员工健康要求。
[入学基础考试]
(一)上机考试
1、考试科目:C语言编程。
2、考试时间:所有报名参加考试的学员统一考试,具体时间请与咨询老师联系。
3、考试方式:中科华讯嵌入式教育中心现场参加考试;或者以邮件形式发题目给学员,在规定的时间内做完,答案提交至指定的邮箱。
(二)面试
上机考试成绩合格的学员将统一参加由中科华讯或人才需求单位组织的面试,通过后参加面向中科华讯人才合作单位的职业培训。
1、面试科目:C语言编程、计算机操作系统原理、计算机组成原理。
2、面试时间:具体时间请与咨询老师联系。
3、面试方式:深圳学员:中科华讯嵌入式教育中心当面面试;非深圳学员:通过电话面试。
[就业合同]
凡通过入学基础考试的学员,均在入学前签定就业合同。
[开课情况]
开课时间:全日制,共60天(200学时理论课+100学时项目指导)
上课地点:深圳中科华讯嵌入式教育中心
[课程安排]
第一阶段:嵌入式C语言编程
主要介绍在嵌入式开发编程中C语言的重要概念和编程技巧中的重点难点,以复习串讲和实例分析的形式,重点介绍函数与程序结构,指针、数组和链表,库函数的使用等知识。
课程 |
内容 |
嵌入式C语言编程 |
格式化输入/输出:格式化输出printf,格式化输出scanf,其他常用输入/输出函数(getchar、getch、gets、putch、puts) |
分支结构程序设计:if语句,多路分支switch | |
循环结构程序设计:while循环,for循环,do while语句,break和continue语句 | |
使用数组:数组的概念,一维数组,二位数组,字符数组和字符串,字符串反转,查找最大数,数据排序 | |
使用函数:函数的概念,函数工作过程,编写函数,函数的参数,函数调用,递归函数 | |
模块化程序设计:模块化概念,程序模块结构,变量的作用域,变量的存储类型(auto、register,static、extern),函数、文件、变量的关系 | |
编码规范:文件结构,程序版式,命名规则,防错编程,程序效率 | |
使用指针:内存与变量,指针和简单变量,指针和数组,指向多维数组的指针,指针和字符串,指针数组,指向指针的指针,指针和函数,指针和const,复杂类型指针,指针的理解(指针类型,指针的值,指针所指向的类型,指针本身占据的内存区域) | |
存储管理:内存组织方式,堆和栈的比较,动态内存管理(malloc、calloc、realloc、free),丢失的内存 | |
结构、联合和枚举:结构的概念,结构嵌套,结构变量初始化,结构数组,结构指针,向函数传递结构,联合定义,结构中嵌套联合,枚举定义,使用typedef | |
位运算和位域:二进制数,位逻辑运算,位移运算,位运算复合赋值,位域结构,位域的使用,位域与联合的使用 | |
文件输入/输出:文件与数据流,文件的打开与关闭,文件读写,文件随机访问,文件缓冲区,文件管理 | |
预处理:预处理功能,预处理命令,无参数宏,带参数宏,预处理操作符#和##,条件编译,预定义宏名,#line, #pragma, #error,内联函数 | |
字符串处理:字符串的存储,字符和字符串检测函数,查找字符串,比较字符串,连接字符串,复制字符串,字符和字符串转换,strrev,strset,strtok |
第二阶段:嵌入式Linux开发环境
主要介绍Linux操作系统的使用和编程知识,包括Linux操作命令,文件和服务,VI编辑器,GCC编译器,GDB调试器,Make项目管理工具和Automake/Autoconfig等知识。
课程 |
内容 |
嵌入式Linux开发环境 |
嵌入式Linux软件开发:嵌入式开发概念,嵌入式软件领域,Linux在嵌入式的应用,深圳嵌入式行业优势 |
Linux操作系统:Linux的历史与发展,Linux发行版本,在VMWare上安装Linux,VMWare-Linux网络配置 | |
Linux文件和服务: FTP共享,Samba服务器共享,NFS共享,VMWare共享 | |
Linux命令:文件系统管理,磁盘管理,用户与组管理,帮助与查询,进程控制管理,文件压缩 | |
Vim/Emacs的使用 | |
Linux shell编程:shell变量,流程控制,交互式脚本,shell函数,文件过滤器,shell脚本实例 | |
GUN GCC: gcc组成,可执行文件构造过程(预处理、编译、汇编、链接),gcc选项,gcc代码优化,GUN binutils工具,objdump反汇编 | |
静态库与动态库:库文件的概念,静态链接与动态链接,创建静态库,创建动态链接库,动态库的隐式调用与显示调用 | |
Makefile:Makelfile概念,Makefile格式,Makefile的简化,项目Makefile分析 | |
| |
| |
Autotool: Autotool生成Makefile流程,configure脚本选项,Autotool-Makefile使用,Autotool开源项目的移植 | |
GDB:用gdb调试程序,用gdb定位程序问题,gdb调试core dump | |
嵌入式交叉开发环境:交叉开发环境的组建,交叉编译,交叉调试,挂载调试运行中的程序 |
第三阶段:嵌入式数据结构与算法
主要包括数据结构和算法编程训练,排序查找编程训练,递归和栈编程训练,字符串操作训练和常用C库函数编程接口实践,强化学员对数据结构与算法的理解和嵌入式Linux下编程开发和编码调试的能力。
课程 |
内容 |
嵌入式数据结构与算法
|
算法概念:算法规范,算法性能分析(大O记法),性能度量,数据抽象与ADT |
链表:数组表示链表,指针和结构表示链表,单链表,循环链表,Linux双向循环链表 | |
堆栈:堆栈概念,堆栈的操作,数组实现堆栈,链表实现堆栈,堆栈表达式应用 | |
队列:队列概念,队列的操作,数组实现队列,链表实现队列,循环队列,双向队列和特殊队列 | |
符号表:符号表抽象,hash表,映射函数,迭代器 | |
排序算法:冒泡排序,交换排序,选择排序,插入排序,谢尔排序,基数排序,快速排序,归并排序 | |
查找算法:线性查找,二分查找,插补查找 | |
递归:递归关系,递归数学问题,汉诺塔问题,迷宫问题 | |
树:树型结构和特征,二叉树数据结构,二叉树遍历,二叉树查找 | |
集合:集合抽象,集合操作,集合恒等式 | |
图:图型结构、图的数据结构,图的遍历,最短路径 | |
项目实战:用C语言在嵌入式Linux平台上开发企业员工信息管理系统 |
第四阶段:Linux环境高级编程及项目迭代开发实践
主要包括系统编程,文件I/O编程,串口编程,网络编程;掌握Linux下Socket编程的开发流程,熟悉网络编程的调用接口函数和相关数据结构,使学员具备在Linux上进行系统编程开发的能力。同时综合之前所学内容和编程技术,学员以个体为单位进行嵌入式Linux应用项目开发,项目内容包括嵌入式软件迭代开发流程,项目开发文档,多进程/多线程并发控制,文件I/O编程,串口编程,网络编程。
课程 |
内容 |
Linux系统编程 |
嵌入式应用软件分层结构:UI、业务控制、数据管理、通信集成 |
Linux C基础:程序、进程、线程的区别与联系,程序映像布局,时间与定时器 | |
Linux I/O:系统I/O,文件锁,I/O复用模型,Termio与串口编程,Frame Buffer图形操作,位图与向量图的显示 | |
音频程序设计:OSS音频程序、ALSA音频程序 | |
多进程编程:进程概念,进程状态转换,进程内存布局,fork,exec函数族,僵尸与孤儿进程,守护进程 | |
项目实战: 利用automake、进程架构、串口收发、文件锁、文件存储数据技术进行项目建模 | |
进程间通信:管道,信号,信号量,共享内存,系统五IPC | |
多线程编程: Posix Pthread线程库,线程生命周期,线程属性,线程优先级,线程调度策略 | |
多线程并发控制:线程锁,条件变量,消息队列 | |
项目实战:利用线程并发、共享内存、消息队列、循环buffer、文件链表进行项目细化 | |
| |
Linux网络编程 |
网络基础:OSI/TCPIP模型,网络常识,TCP/IP协议,TCP与UDP的区别与联系 |
常用网络工具:网络截包工具(wiresharp、etherpeek、tcpdump),网络检测程序(ping、ifconfig、route、netstate) | |
SOCKET编程:TCP,UDP | |
TCP服务器模型:fork服务器,线程服务器,io复用服务器 | |
UDP服务器模型:串行服务器,为UDP传输增加可靠性 | |
广播与多播 | |
原始socket和链路层访问:Ping程序,IP冲突检测,DOS攻击,ARP欺骗 | |
项目实战:利用TCP或者UDP为项目增加网络通信功能 |
第五阶段:嵌入式C++编程
主要介绍在嵌入式开发编程中C++在C基础上的增强特性,C++面向对象的主题:抽象、封装、继承、多态,泛型编程和STL库,MFC界面程序设计。
课程 |
内容 |
嵌入式C++编程 |
C++在C语言基础上的增强特性:const,引用,函数默认参数,函数重载 |
C++面向对象技术:面向对象概念(抽象与封装),C++的类,对象的创建与销毁,复制构造函数,特殊数据与函数成员,对象的组织,对象动态分配内存(new,delete) | |
高级对象主题:类的作用域与可见域,对象的生存期、作用域与可见域,友元,运算符重载,类型转换 | |
继承:继承的概念,派生类,派生类的构造函数和释构函数,继承与组合,基类与派生类对象相互转换 | |
多态:多态与虚函数,虚函数的访问,纯需函数与抽象类,重载、覆盖与隐藏 | |
输入输出和文件:输入输出流,高层I/O,流类库,>>和<<重载,文件操作,字符串流 | |
命名空间:命名空间的概念,实体的作用域与可见域,命名空间的作用域与可见域 | |
异常处理:防错编程,C++异常机制,异常发生时的内存管理 | |
运行时类型识别:RTTI机制,类型转换操作符 | |
string类:何为string类,字符串的输入与输出,string类的功能 | |
泛型编程--模板:类型参数化的概念,模板定义,函数模板,类模板,模板参数 | |
泛型编程—STL:容器,迭代器,适配器,泛型算法 | |
MFC界面程序设计:MFC及对话框概念,Dialog项目的创建与修改
,MFC的消息处理,MFC控件数据交换 | |
项目实战:用C++实现FTPServer |
第六阶段:嵌入式Linux高级应用
主要介绍嵌入式嵌入式软件移植,Linux系统构建(包括Bootloader工作原理、内核裁减配置和交叉编译、BusyBox,根文件系统制作),图形界面和数据库开发等知识。同时学员要为嵌入式Linux应用项目增加GUI界面和数据库应用。
课程 |
内容 |
嵌入式Linux高级应用 |
嵌入式软件移植:移植的概念,简单Makefile项目的移植,Autoconf生成项目的移植,图形界面配置 |
构建嵌入式Linux系统: Bootloader架构和功能、vivi与uboot、Busybox根文件系统、Linux内核裁剪、BootLoader和Kernel固化 | |
嵌入式数据库:嵌入式数据库介绍,SQLite移植与使用,SQL语言,SQLite编程 | |
嵌入式Web: 嵌入式Web介绍,BOA介绍,HTML介绍,BOA Web Server移植,BOA动态CGI程序编写 | |
Qt:signal&slot机制,Qt界面程序开发 | |
Qtopia: 嵌入式Qtopia移植的Arm开发板, Qtopia窗口、菜单、对话框、控件, Qtopia可视化编程 | |
Minigui:消息驱动机制,回调函数, Minigui窗口、菜单、对话框、控件, Minigui界面程序开发, Minigui移植到Arm开发板 | |
项目实战:利用Qt或者Minigui为项目增加人机交互界面和数据库 | |
项目集成:UI界面层、并发控制层、数据管理、通信集成层联合调试与测试 |