1、嵌入式工程师培养,惠州学院 嵌入式系统研究室,嵌入式卓越工程师的培养,目标:面向嵌入式企业,培养具有创新能力、适应嵌入式企业研发的高质量技术人才。 方式:组建研发团队,采取嵌入式企业的管理机制、研发思想。,嵌入式团队的组织结构,嵌入式卓越工程师培养思路,从软件编程入手,培养软件编程思维,在编程过程中逐渐理解ARM芯片体系结构的硬件底层工作原理以及各类外设驱动开发过程。 项目实践来带动理论学习,打破 “不会动手”或无项目经验的困惑 注重计算机技术基础和原理的培养,为学生顺利跨过企业笔试关和后续技术路线上的发展打下深厚的基础。 严格按照嵌入式开发流程进行管控,从需求文档开始、设计、测试,灌输开发规
2、范贯穿到始终。,嵌入式系统学习的忠告,对于嵌入式开发工程师来说,在技术上需要逾越三道关卡,分别是“硬件”开发、操作系统开发和应用软件开发,三者缺一不可(如果缺一环,在工作中的技术发展会受限)。逾越三个堡垒的最佳途径是通过平台级的应用软件开发,锻造良好的应用软件编程思维;在这个软件编程思维和一定的编程经验基础上,能够更好得看透操作系统,理解操作系统的各个子系统工作原理和构成要素;从而在具备了一定“硬件”开发基础后,能够在开发板或者公司设计的板子上从容得搭建起满足成本、性能或其他要求的嵌入式系统,并在这个嵌入式系统上完成设备应用的软件开发。,培训方式,主要以研发中心负责,针对嵌入式不同方向,有计划
3、的培训; 老师不定期的讲座; 邀请企业的研发人员交流、指导。,嵌入式系统学习的三阶段,基础阶段 中级阶段 高级阶段,1.基础阶段,为软件基础比较薄弱的同学补习语言基础,通过在小项目的开发锻炼组织程序的能力,建立初级的编程思维。 主要以11级为对象,10级基础差的,无线点菜宝,【开发环境】 :WINDOWS , 【开发工具】:vc+ 【项目简介】: 项目主要是实现前台收银管理,主要包括如下的功能: 1)总台功能:开台、移台、撤台和并台;预定管理;现金结算收银、系统日结及报表 2)点菜功能:点菜、加/减菜、催菜、上菜确认; 3)厨房功能:炒菜策略、炒菜及要求上菜、催菜告警等。 【项目要求】: 需求
4、分析,开发设计文档,代码的规范化,2.中级阶段(Linux开发基础/C语言基础),主要以10级为对象,09级基础差的 本阶段主要目标是为了让学生具备良好的编程习惯和扎实的C语言基础,并逐渐得打通和培养起学生的编程思维,组织程序的能力和初步的编程经验,为编写和理解嵌入式系统应用开发技术打下伏笔。通过该阶段能让同学们理解基于图形库的UI封装过程以及MVC设计模式的应用。,餐馆点菜系统,【开发环境】:Linux+QT+SQLite 【开发工具】:vi+gcc+gdb+make 【项目简介】:该系统主要是应用于餐馆,减少跑冒滴漏并减轻服务员传单的工作强度,对餐馆来说实现无纸化传单,提高服务员的工作效率
5、并实现收银员和点菜员工作分离,减轻了收银员的工作强度,避免了收银失误。该项目可被移植到无线PDA或无线手机上使用。项目主要是实现前台收银管理,主要包括如下的功能:1)总台功能:开台、移台、撤台和并台;预定管理;现金结算收银、系统日结及报表;2)点菜功能:点菜、加/减菜、催菜、上菜确认;3)厨房功能:炒菜策略、炒菜及要求上菜、催菜告警等。,餐馆点菜系统,【理论学习】 :系统需求文档编写、关键业务设计/数据库设计/PowerDesigner使用、Shell编程、GCC/GDB等工具使用、MakeFile编写、编程规范与调试技巧、Linux编程实用工具、基本SQL-92语句(增删改查)、SQLITE
6、数据库、QT程序设计、QT基本组件、QT事件处理、MVC设计模式、SQLITE3 API、模块封装思想。 【项目要求】: 需求分析,开发设计文档,代码的规范化,2.中级阶段(Linux高级应用技术 ),本阶段目标是巩固和加强软件编程能力,熟悉在多任务环境的编程和调试能力并积累经验;并在应用linux系统高级编程技术的开发过程中,逐步深入到Linux系统内部、初步领略到Linux内核中的一些概念。同时,网络通信开发是嵌入式软件开发重中之重的技术,能在此阶段需掌握网络通讯编程中的关键因素和注意点,理解TCP/IP五层协议的封装过程。,连锁餐馆经营管理系统,【开发环境】:Linux+QT+SQLit
7、e 【开发工具】:gedit或vi/GCC 【项目简介】:在连锁经营模式下,各个餐馆营业点分散在城市各地甚至是不同的城市,总部经营管理者为了能够监控和管理各地餐馆的运营,需要信息系统辅助管理。通过信息管理系统,实现如下的几个主要管理功能:1)将各个餐馆的各类消费信息上传到总部;2)对于部分菜品以及菜品的价格能够实现总部统一定价;3)总部能够掌控人事权。,连锁餐馆经营管理系统,【理论学习】 :C+运算符重载、C+模板和基本STL、C+容器;进程、子进程与信号、管道、进程间通信(消息队列/共享内存/信号量等)、POSIX线程、守护进程、网络基础与TCPIP协议族、IO复用编程基础、基本套接字SOC
8、KET编程、TCP端口以及端口状态状态分析(三次握手建链与断链)、链路层/网络层/传输层的协议分析、IO复用模型、UDP编程、原始套接口;HTTP协议分析。 【项目要求】: 需求分析,开发设计文档,代码的规范化,电信渠道终端系统(终端前置接入服务),【开发环境】:Linux+QT+SQLite 【开发工具】:gedit或vi/GCC 【项目简介】:智能终端是作为业务的营业点或业务的发起方,只提供客户办理业务时的数据采集功能;需要一个服务为分布广泛的终端的各类业务提供后台支撑和集中接入点。本项目就是为了达到和实现该集中接入点的功能。该服务器按照万级用户/终端作为接入的标准,采用Linux 2.6
9、内核以上版本提供的epoll技术,承载万级用户数的长连接接入,并能负载千级的业务并发。对服务器性能、服务程序架构以及部分算法提出很高的要求。并解决了网络通信中重连,丢包,重包,半包等等故障。,电信渠道终端系统(终端前置接入服务),【应用的技术要点】: 基于SOCKET的通讯组件封装; 多线程/线程池/线程同步技术/线程间通信; 信号量/共享内存/互斥量/信号等IPC技术; 高性能的服务程序框架; 高效率的散列表。 【项目要求】: 需求分析,开发设计文档,代码的规范化,3.高级阶段,理解嵌入式操作系统从无到有的过程,深刻体会嵌入式系统各模块的工作原理以及操作系统原理等,为学生打下坚实的计算机理论
10、基础。从裸机设备开始,主要分为如下几个阶段: 无操作系统支持的裸机开发阶段:理解嵌入式设备资源的重要性,在无操作系统情况下即无任务管理,内存管理,需要自己来完成这些功能;理解ARM体系结构和工作原理,系统启动等等 小型操作系统阶段:借助这种小型操作系统来剖析操作系统的任务管理机制以及内存管理机制,并完善操作系统应该具备的5大基本功能,从而对整个操作系统内核有深刻的认识。 嵌入式操作系统阶段:根据前面的基础,制作嵌入式操作系统的加载开发和底层驱动,并理解专用嵌入式操作系统的内核功能和工作机制。,手持阅读终端(中国移动电子书),【开发环境】:嵌入式开发板+Linux 【开发工具】:VC,make工
11、具等 【项目简介】:项目是为了完成一款带有操作系统的智能终端。首先系统的内核移植和裁剪,然后到各种专用硬件外设的驱动移植或编写自产的硬件驱动,再到在智能设备终端所应用到各类应用组件的移植,最终完成嵌入式应用软件的功能,是一个从底层到高层(上位)的一系列的技术应用过程 。嵌入式操作系统移植主要分如下几个步骤完成: BootLoader/UBoot移植 嵌入式Linux内核移植 根文件系统移植 驱动程序移植或开发 .,手持阅读终端(续1),利用MiniGui开发应用程序UI,SQLite存储应用的数据,yaffs文件系统及存取,利用GSM模块完成GPRS网络架设和短信交互。从而完成嵌入式智能设备的
12、客户端应用开发,并具备了与平台服务器进行通讯的基础。主要实现如下的两个部分的功能:本地功能:是实现本地的电子书籍、期刊等资料的个人管理设备,让用户可以将自身的各类资源或信息通过电子书设备进行管理和可以随身携带、阅读或播放等,主要功能如下:1)书籍或电子期刊等资料信息分类维护2)资料的导入和导出功能3)书籍和电子期刊的阅读功能.,手持阅读终端(续2),网络应用功能:是在完成智能终端设备的本地功能基础上,让设备具备上网功能(GSM或TD),并加入电子书的运营平台,实现与运营平台服务的对接;采用CS结构,通过终端前置接入服务的帮助下,可以在设备上完成运营商的电子书或电子期刊的检索、排行、热点跟踪等功
13、能,并支持在线阅读或下载后离线阅读等功能,支持资料导入导出。 【应用的技术要点】: (1)UBOOT、Linux内核、根文件系统配置/移植/烧写 (2)系统设备驱动开发移植/自编写的串口驱动加入内核 (3)RAMDISK、Yaffs移植 (4)GSM模块通信控制和功能封装 (5)Linux高级开发技术 (6)MiniGUI移植和应用 (7)SQLite移植和应用,手持阅读终端(Android 版),【开发环境】:嵌入式开发板+Android 【开发工具】:java等 【项目简介】:Android操作系统的移植、驱动的开发等.,无线投票系统,具体内容待定,电子作业本系统(Android 版),具体内容待定,基于物联网智能家居系统,该项目比较大,具体内容待定,