1北京嵌入式系统培训及会议总结信科院电子系吴筠我于2008年1月22日-28日参加了由信息产业部电子信息中心开设的全国“嵌入式LINUX软件系统”师资培训班。该培训班有约四十所高校的老师参加。培训内容详见附录1。通过学习,基本达到了如下培训目标:1.了解嵌入式开发全过程2.熟悉主流ARM体系结构及汇编编程3.掌握嵌入式开发环境安装、编译、运行全过程4.掌握嵌入式应用程序开发,熟悉多进程编程5.掌握嵌入式驱动程序开发,熟悉中断驱动编程6.培养嵌入式软件系统独立开发能力及解决问题能力。我还参加了由微软(中国)有限公司于2008年1月30日~31日在北京举办“FacultyConnection—EmbeddedCurriculumWorkshop”。该研讨会邀请了微软总部嵌入式系统领域资深专家就微软在嵌入式课程方面所做出的努力进行展示,展望嵌入式技术的发展趋势;介绍了GeorgiaInstituteofTechnology嵌入式课程体系以及微软针对嵌入式课程设计的实践项目。微软公司还对其举办的“创新杯”全球学生大赛进行了介绍。国内几十所高校嵌入式系统相关专业的教师参加了会议。会议的内容见附录2。我于2004年开始担任电子系《嵌入式系统》课程的教学工作。本次培2训和微软会议对提高本人的嵌入式系统研发能力和教学水平,起了非常大的作用。我深感受益良多,对《嵌入式系统》这门课程有了新的体会。下面将我在这次培训班和微软研讨会了解的一些信息和日后教学工作的一些设想总结如下。一.嵌入式系统人才的市场需求及就业前景随着软件业与制造业的融合,巨大的智能化装备需求拉动了嵌入式软件及系统的迅猛发展。如今嵌入式系统技术和产品的研究与开发已经成为全球IT产业最热门的技术之一,是IT产业发展的核心方向。嵌入式产品在消费类电子、汽车电子、通信工程、医疗安全、智能家居、工业自动化等行业中应用十分广泛。国内外各大厂商竞相推出嵌入式系统新产品,各种各样的嵌入式系统设备在应用数量上已经远远超过通用计算机。2005年,中国嵌入式软件产业规模达到1061.4亿元,同比增长41.3%,塞迪顾问预测,从2006年至2010年,中国嵌入式软件产业规模仍将保持快速增长态势,年均复合增长率为205.8%,到2010年将达到3339.6亿元的规模。作为一个充满商机的巨大产业,国内外急需大量嵌入式系统人才,使嵌入式系统工程师成为未来几年最为热门的职业之一。据权威部门统计,我国目前嵌入式软件人才缺口每年为20万人左右。未来随着“三网融合”不断提速,3G网络全面铺开,这一数字还将成倍增长。根据业内发布的薪资报告,初入门的开发人员平均月薪一般都能达到5000元左右,有3年以上经验的人员年薪都在10万元以上,中高级的嵌入式系统工程师月薪平均已超过万元,具有十年工作经验的高级嵌入式软件3工程师年薪在30万左右。二.嵌入式系统行业对人才的能力要求由于嵌入式系统属于典型的交叉学科,它涵盖了微电子技术、电子信息技术、计算机软件和硬件等多项技术领域的应用。因此,如果没有足够的课程背景作支撑,没有坚实的软硬件技术储备作基础,就很难彻底掌握嵌入式系统的开发原理,非专业IT人员很难介入相关行业。由于这一领域属于新兴产业,发展速度和更新程度相当迅速,许多软硬件技术都在短时间内涌现并且需要及时补充新的知识。嵌入式系统行业急需既有扎实专业技术,同时又具备较强学习能力和跟进力度的多层次人才。软件开发工作负荷大,工作要求高,挑战性、协作性强,要求员工有较强的协作能力、团队意识、奉献精神等。三.嵌入式系统人才教育现状为了大力培养嵌入式系统人才,国内许多高校已纷纷开设嵌入式系统课程,建立32位嵌入式系统实验室,大力开展嵌入式系统教学及科研工作。全球著名的嵌入式微处理器技术及产品供应商ARM、INTEL、微软、NXP、TI等公司纷纷制定了中国大学计划,并举办大学生嵌入式系统设计大赛,吸引学生投入到嵌入式系统的学习和研发中。目前,与嵌入式系统相关的电子信息类学科竞赛层次比较高的主要有:全国大学生电子设计竞赛全国大学生嵌入式系统设计竞赛全国大学生ACM设计竞赛INTEL全球嵌入式系统设计竞赛微软“创新杯”全球学生大赛嵌入式开发项目竞赛4全国大学生电子竞赛逐渐成为了各个高校教学评估的一个重要指标。我校近年开设了《嵌入式系统》课程,实验中心组建了嵌入式系统实验室和创新设计实验室等,为嵌入式系统人才的培养建立了很好的基础。四.教学设想嵌入式系统是软硬件高度结合的产物。嵌入式系统应用技术是一门实践性很强的学科,同时理论也在不断发展。没有实践,纵使能“夸夸其谈”也只是“纸上谈兵”而已。为保证良好的教学效果,最好的教学方法是通过必要的基础理论教学与大量的实践环节相结合,利用先进的教学实验仪器、开发环境,使学生深入了解嵌入式系统的基本特点,并获取嵌入式系统开发所需的基本技能;使学生具有较强的综合素质,成为具有良好的实际操作能力、设计能力,符合社会需求的开拓性人才。为此在教学中,应注重以下几个环节的把握:1.详细讲述嵌入式微处理器的结构和指令系统,介绍基于ARM的嵌入式应用系统的设计,使学生对嵌入式控制器及其系统设计有深入的了解。2.结合UCOS,讲述嵌入式实时操作系统的基本概念;介绍LINUX和WindowsEmbeddedCE操作系统;让学生掌握基于实时操作系统的嵌入式系统软件开发方法。3.增加课程的创新实践内容,让学生在接受理论教育的同时,培养与课程相关的创新实践能力。4.传统的实验模式是学生按照教师事先布置好的内容安排和程序按部就班地进行操作,学生的学习能动性受到了很大的限制,同时,在应用理论知识和使用各类仪器设备方面存在着很大的局限性。因此5在实践环节,除了利用实验室现成的实验箱进行实验,还应引导学生自主设计制作实验板,指导学生学会在掌握核心部件的基础上,搭建自己的系统,提升能力。5.增强课外项目,吸引、鼓励学生踊跃参加课外科技活动,让一部分正常学习之外还有余力的学生采取“自己选题、自己探索、自己动手、自己创新”的形式参加项目实践,通过具体的选题把先进技术融会贯通。通过一对一的单独指导,提升学生的科研能力和实践能力,为优秀人才的脱颖而出创造条件。6.积极引导学生参与学科竞赛,学科竞赛主题一般比较明确,通过赛前的专项集训和竞赛过程,对于增强学生的协作精神和实践能力非常有益。7.引导学生组织项目小组,几个人一组,共同完成项目,以锻炼学生的协作能力,培养他们的团队精神,五.几点建议1.建议信科院成立一个嵌入式系统研究室,将学院中从事嵌入式系统研发教学的教师组织起来,便于教师互相合作交流,并可开展系列嵌入式系统的科研教学工作:1)嵌入式系统发展速度和更新程度相当迅速,许多软硬件技术不断发展,有必要与嵌入式微处理器技术及产品供应商进行长期紧密合作,以中大嵌入式系统研究室的名义争取厂商提供最新的嵌入式系统开发工具和技术的支持。2)有组织系统地指导学生参加学科竞赛,并以此带动广大学生形成注重创新能力、协作精神和理论联系实际的学风;63)充分利用中大的资源优势,可为华南地区大专院校的师资和企业提供嵌入式系统人才培训、技术咨询等服务,在人才培养上为我国的嵌入式系统产业发展提供强有力的支持。4)产、学、研结合,与企业联合开展嵌入式系统研发工作。2.由于嵌入式系统属于综合性很强的交叉学科,《嵌入式系统》课程与一些专业基础课之间有很强的先后修关系。在开设这门课之前必须具备的专业基础知识有:电路理论基础、模拟电子技术、数字电路与逻辑设计、C语言编程、数据结构与算法、微机原理与应用、计算机接口技术、单片机原理、通信原理与计算机网络等。按照目前的教学安排,《嵌入式系统》课程被排在四年级第一学期。由于学生这时要忙于找工作或考研,加上一般学生已修够了学分,因此选修《嵌入式系统》的学生人数不多,学习积极性不够强,使教学效果大打折扣。建议学院能适当调整教学安排,使《嵌入式系统》课程能安排在三年级第二学期,以收到更好的教学效果。3.嵌入式系统知识的掌握必须有良好专业基础知识,建议学院对刚进校的新生在进行专业指导教育时,能将嵌入式系统的发展情况及人才需求情况进行介绍,激发学生对本专业的学习兴趣和热情。7附录1“嵌入式LINUX软件系统”师资培训班培训内容时间授课实验嵌入式开发流程版块第一天嵌入式系统开发概述现实中的嵌入式系统嵌入式系统的概念嵌入式系统概述嵌入式LINUX操作系统嵌入式LINUX操作系统的作用嵌入式LINUX开发流程实验一开发版硬件资源实验二开发环境介绍实验三开发板启动过程实验四交叉编译工具使用实验五网络开发环境实验六HelloWorld运行ARM体系结构板块第二天嵌入式系统概述与ARM简介ARM知识体系ARM结构与编程ARM中断资源ARM指令系统与汇编语言编程使用ARMADS开发工具的方法、流程和技巧实验一ADS开发工具安装与使用实验二I/O接口实验实验三串口通讯实验实验四实时时钟实验实验五I²C实验1—EEPROM实验实验六I²C实验2—基于I²C数码管扫描电路实验七WATCHDOG实验实验八触摸屏控制实验实验九I/O实验——8×8发光二极管点阵试验实验十A/D转换实验实验十一D/A转换实验实验十二音频接口I2S实验实验十三键盘中断实验实验十四SUPERI/O串口实验实验十五SUPERI/O键盘实验实验十六网络通信实验实验十七PROGRAMFLASH实验嵌入式开发环境板块第三天LINUX开发环境安装和配置开发环境硬件选择REDHAT9.0安装和配置LINUX常用系统命令LINUX常用网络命令嵌入式软件开发环境的安装和配置使用串口与开发板通讯使用网络与开发板通讯使用NFS共享目录及文件使用TFTP快速传输文件实验一硬件环境准备实验二REDHAT9.0软件安装配置实验三管理Linux文件系统实验四管理Linux网络实验五其他Linux常见操作实验六开发环境配置,GNU工具链实验七WINDOWS串口配置实验八LINUX串口配置实验九开发机和宿主机网络配置实验十NFS服务器配置和测试实验十一NFS客户端配置8第四天交叉编译环境的搭建交叉编译工具的安装交叉编译工具的使用HelloWorld程序编写和测试GCC编译工具高级GCC参数及命令使用Make工具管理软件工程Makefile规则和编写使用GDB调试和优化程序实验一交叉编译工具安装详解实验二交叉编译工具详解实验三HelloWorld开发过程实验四源码编辑过程实验五源码编译过程实验六源码链接过程实验七源码运行过程实验八Makefile编写及执行嵌入式应用开发板块第五天嵌入式LINUX操作系统引导嵌入式LINUX操作系统引导原理嵌入式系统引导器BootLoader编程嵌入式LINUX操作系统内核选择内核内核配置编译内核安装内核实验一U-BOOT源码目录分析实验二移植U-boot实现系统引导实验三编译内核及内核配置实验四内核烧写环境配置实验五通过JTAG烧写U-BOOT到Flash实验六通过网口和TFTP烧写内核映像实验七通过网口烧写根文件系统第六天嵌入式系统开发进程和进程组织使用fork实现多进程编程使用wait实现父子进程等待使用管道实现进程间通讯实验一进程基本概念实验二多进程运行观察实验三使用Fork完成多进程编程实验四Fork多进程创建过程实验五Fork多进程运行过程实验六Fork多进程结束过程实验七使用Wait完成父子进程等待实验八使用管道完成父子进程通信嵌入式驱动开发板块第七天嵌入式驱动开发字符设备驱动开发中断和I/O在驱动开发中的作用嵌入式LINUX开发流程和案例介绍嵌入式系统需求分析及概要设计嵌入式软件系统设计及实现实验一简单字符设备驱动开发实验二LED点阵硬件原理实验三LED点阵驱动开发实验四LED点阵驱动扩展实验五按键中断硬件原理实验六中断按键驱动开发实验七声音设备驱动开发实验五团