2025-11-26 19:40:55 嵌入式心得体会 浏览:13113 小编:安浅溪
一、嵌入式系统开发与应用概述
在今日,嵌入式ARM 技术已经成为了一门比较热门的学科,无论是在电子类的什么领域,你都可以看到嵌入式ARM 的影子。如果你还停留在单片机级别的学习,那么实际上你已经落下时代脚步了,ARM 嵌入式技术正以几何的倍数高速发展,它几乎渗透到了几乎你所想到的领域。本章节就是将你领入ARM 的学习大门,开始嵌入式开发之旅。以嵌入式计算机为技术核心的嵌入式系统是继网络技术之后,又一个IT领域新的技术发展方向。由于嵌入式系统具有体积小、性能强、功耗低、可靠性高以及面向行业具体应用等突出特征, 目前已经广泛地应用于军事国防、消费电子、信息家电、网络通信、工业控制等各个领域。嵌入式的广泛应用可以说是无所不在。
嵌入式微处理器技术的基础是通用计算机技术。现在许多嵌入式处理器也是从早期的PC 机的应用发展演化过来的,如早期PC 诸如TRS80、Apple II 和所用的Z80 和6502 处理器,至今仍为低 端的嵌入式应用。在应用中,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的优点。嵌入式处理器目前主要有Am186/88、386Ex、SC400、Power PC、68000、MIPS、ARM 等系列。
在早期实际的嵌入式应用中,芯片选择时往往以某一种微处理器内核为核心,在芯片内部集成必要的ROM/EPROM/Flash/EEPROM、SRAM、接口总线及总线控制逻辑、定时/计数器、WatchDog、I/O、串行口、脉宽调制输出、A/D、D/A 等各种必要的功能和外设。
二、实习设备
硬件:Embest EduKitIV实验平台、ULINK2仿真器套件、PC机
软件:mu;Vision IDE for ARM集成开发环境、Windows 98/20xx/NT/xP
三、实习目的
1.初步掌握液晶屏的使用及其电路设计方法;掌握S3C2410x处理器的LCD控制器的使用;掌握通过任务调用的方法把液晶显示函数添加到uC/OSII中;通过实验掌握液晶显示文本及图形的方法与程序设计。
2.了解S3C2410x处理器UART相关控制寄存器的使用; 熟悉ARM处理器系统硬件电路中UART接口的设计方法:掌握ARM处理器串行通信的软件编程方法。
3.掌握有关音频处理的基础知识;通过实验了解IIS音频接口的工作原理;通过实验掌握对处理器S3C2410x中IIS模块电路的控制方法;通过实验掌握对常用IIS接口音频芯片的控制方法。
4.了解mu;C/OSII移植条件和内核基本结构;掌握将mu;C/OSII内核移植到ARM9处理器上的方法和步骤。
四、实习要求
通过对mu;C/OSII移植实验、mu;C/OSII LCD显示实验、串口通信实验、IIS音频实验、液晶显示实验的学习,并将各部分内容合并,最终得出实习结果,实习要求在键盘上输入学号,在液晶显示屏上显示相应的学生信息。学生信息包括显示每个人的照片和姓名系别等,并用键控设置学生输出的顺序,输入学号就显示那个学生的信息,然后过一段时间就顺序循环播放。
移植mu;C/OSII内核到ARM处理器S3C2410,在IDE中观察其运行状况编写S3C2410x处理器的串口通信程序;监视串行口UART1动作;将从UART1接收到的字符串回送显示。将从UART1接收到的字符串回送显示。
通过使用Embest EduKitIV实验板的彩色液晶屏(800*480)进行电路设计,掌握液晶屏作为人机接口界面的设计方法,并编写任务函数在uC/OSII系统中实现位图显示。在uC/OSII中建立五个任务Tast1和Tast2,其中Tast1顺序熄灭四个LED,延迟一会在顺序点亮四个LED。Tast2在LCD屏幕上循环显示三幅图片,并打印一些文字信息和背景音乐。过使用Embest EduKitIII实验板的256 色彩色液晶屏(320x240)进行电路设计,掌握液晶屏作为人机接口界面的设计方法,并编写程序实现:画出多个矩形框;显示ASCII字符;显示汉字字符;显示彩色位图。
五、实习步骤
1. 准备实验环境
使用ULINK2仿真器连接Embest EduKitIV实验平台的主板JTAG接口;使用Embest EduKitIV实验平台附带的交叉串口线,连接实验平台主板上的COM2和PC机的串口(一般PC只有一个串口,如果有多个请自行选择,笔记本没有串口设备的可购买USB转串口适配器扩充);使用Embest EduKitIV实验平台附带的电源适配器,连接实验平台主板上的电源接口。
2. 串口接收设置
在PC机上运行windows自带的超级终端串口通信程序,或者使用实验平台附带光盘内设置好了的超级终端,设置超级终端:波特率115200、1位停止位、无校验位、无硬件流控制,或者使用其它串口通信程序。(注:超级终端串口的选择根据用户的PC串口硬件不同,请自行选择,如果PC机只有一个串口,一般是COM1)
3. 打开实验例程
1)打开实验程序
2)运行mu;Vision IDE for ARM软件
3)默认打开的工程在源码编辑窗口会显示实验例程的说明文件,详细阅读并理解实验内容。
4)工程提供了两种运行方式:一是下载到SDRAM中调试运行,二是固化到Nor Flash中运行。用户可以在工具栏Select Target下拉框中选择在RAM中调试运行还是固化Flash中运行。下面实验将介绍下载到SDRAM中调试运行,所以我们在Select Target下拉框中选择UART Test IN RAM。
5)接下来开始编译链接工程,在菜单栏“Projiet”选择“Build target”或者“Rebuild all target files”编译整个工程。
6)编译完成后,在输出窗口可以看到编译提示信息,比如“"MUART " 0 Error(s), 1 Warning(s).”,如果显示“0 Error(s)”即表示编译成功。
7)拨动实验平台电源开关,给实验平台上电,单击菜单栏Debug>Start/Stop Debug Session项将编译出来的映像文件下载到SDRAM中,或者单击工具栏按钮来下载。
8)下载完成后,单击菜单栏Debug>Run项运行程序,或者单击工具栏按钮来全速运行程序。用户也可以使用进行单步调试程序。
9)全速运行后,用户可以在超级终端看到程序运行的信息。
10)用户可以Stop程序运行,使用mu;Vision IDE for ARM的一些调试窗口跟踪查看程序运行的信息。 注:如果在第4)步用户选择在Flash中运行,则编译链接成功后,单击菜单栏Flash>Download项将程序固化到NorFlash中,从实验平台的主板拔出JTAG线,给实验平台重新上电,程序将自动运行。
部分程序图:
串口通信实验:
IIS音频实验:
六、实习体会
在嵌入式系统中,除了课本上的基础知识外,还学会了软件编程的基本思路,掌握了液晶屏的使用及其电路设计方法;掌握有关音频处理的基础知识;掌握液晶显示文本及图形的方法与程序设计。
通过这次设计,掌握了液晶显示实验、mu;C/OSII移植、mu;C/OSIILCD显示的工作原理及串口通信实验的工作过程,学会了使用仿真软件Embest EduKitIV实验平台及ULINK2仿真器套件,并学会通过应用软件仿真来实现各种通信系统的设计,对以后的学习和工作都起到了一定的作用,加强了动手能力和学业技能。虽然花了很长时间编写软件程序设计,但这一切还是理论上的。希望学校能提供机会和条件,让我们能够去真正地将理论和实践相结合。通过这次程序,感觉自己所掌握的知识是那么的有限,还有许多需要改进和不足的地方,同时也帮助了我怎样学好这门课程,增加了我对这门学科的兴趣。总体来说,这次实习我受益匪浅。在摸索该如何设计电路使之实现所需功能的过程中特别有趣,培养了我的设计思维,增加了实际操作能力。在让我体会到了设计电路的艰辛的同时,更让我体会到成功的喜悦和快乐。通过这次实习通信系统的设计,使我更加清楚以后的发展及学习的方向。
一、嵌入式的概述:
随着信息化技术的发展和数字化产品的普及,以计算机技术、芯片技术和软件技术为核心的嵌入式系统再度成为当前研究和应用的热点,通信、计算机、消费电子技术(3C)合一的趋势正在逐步形成,无所不在的网络和无所不在的计算(everything connecting, everywhere computing)正在将人类带入一个崭新的信息社会。
二、实习目的
学习和了解了嵌入式在生活中的重要作用和发展过程,熟练掌握ARM硬件体系结构,熟悉linux下的嵌入式编程流程,积累自己的软件编写经验,能够参与并实现一个真实和完整的嵌入式项目,为今后的学习和将从事的技术工作打下坚实的基础。
三、实习任务
第一阶段Linux操作和编程基础
主要介绍Linux的基本命令和基础编程知识,包括Linux的文件操作和目录操作命令,VI编辑器,GCC编译器,GDB调试器和Make项目管理工具等知识。
第二阶段 嵌入式C语言编程基础
主要介绍在嵌入式开发编程中C语言的重要概念和编程技巧中的重点难点,以复习串讲和实例分析的形式,重点介绍包括函数与程序结构,指针、数组和链表,库函数的使用等知识。
第三阶段Linux上C强化编程训练
主要包括整数算法训练,递归和栈编程训练,位操作训练,指针训练,字符串训练和常用C库函数编程接口实践,强化学员对Linux下基本编程开发的理解和编码调试的能力。
第四阶段 Linux环境高级编程及项目开发编程实践
主要包括系统编程(信号/系统调用/管道/FIFO/消息队列/共享内存等),文件I/O编程(文件描述符/文件读写接口/原子操作/阻塞与非阻塞IO等,多任务和多线程编程(进程标识/ 用户标识/fork与vfork/多线程概念/线程同步等),网络编程(网络基本概念/套接口编程/网络字节次序/Client/Server结构/UDP编程);掌握Linux下Socket编程的开发流程,熟悉网络编程的调用接口函数和相关数据结构,使学员初步具备在Linux上进行系统编程开发的能力。同时综合之前所学内容和编程技术,以小组为单位进行一个团队合作项目的开发,考核内容包括文件I/O编程,多线程编程,网络编程和项目文档编写。
第五阶段嵌入式处理器体系结构及编程实践
主要介绍ARM体系结构及其基本编程知识,包括指令分类,寻址方式、指令集、存储系统、异常中断处理、汇编语言以及CC++和汇编语言的混合编程等知识。同时结合ARM嵌入式开发板硬件设计原理和基本硬件设计流程,分析各种外设的工作原理和驱动机制,并自己动手实践完成一个ARM开发板上的编程大作业。
第六阶段嵌入式Linux开发基础及高级应用
主要介绍嵌入式Linux开发应用程序的基本流程和知识,包括嵌入式Linux基本概念和开发流程、Bootloader工作原理、内核裁减配置和交叉编译、根文件系统制作、网络编程以及图形界面和数据库开发等知识。同时独立完成一个基于嵌入式Linux GUI的应用编程大作业。
第七阶段嵌入式 Linux驱动理论及驱动程序开发实践
主要介绍嵌入式Linux上驱动程序开发规范,包括设备驱动程序概念、字符设备驱动程序、块设备与网络设备、网卡驱动以及常用嵌入式设备驱动开发等知识。同时独立实现两种嵌入式设备驱动程序的编写,包括驱动模块的调试和加载以及完整的项目开发文档的编写。
第八阶段嵌入式Linux项目团队开发实践锻炼
主要包括设计并实现一个真实和完整的嵌入式项目的开发流程,涉及到数据采集、网络通讯、图形用户界面显示以及嵌入式数据库存储系统等多种嵌入式Linux编程技术。要求学员建立起团队开发和协同工作的企业项目开发模式的概念和流程,强化学员对编写项目概要设计文档和详细设计文档的理解,为就业前的职业技能和素质训练做好充分准备。
现在嵌入式做为计算机发展的一个新的方向越来越得到社会的重视。随之而来的是很多培训班的诞生,但是如何能在琳琅满目的培训机构中找到一个能真正学到东西的培训班呢,这是摆在众多想学嵌入式的人面前的第一个问题。我在了解了众多培训机构并且试听之后,最终选择了Tocore嵌入式培训,之所以选择,是因为我看重老师的实际能力和认真负责的态度。我非常荣幸能够成为Tocore中的一员。
嵌入式开发,做为一个新的计算机发展方向,已经越来越受到社会的重视,社会上的需要也十分巨大,可是真正懂得嵌入式开发的人才缺不是很多,归结去原因主要是一下几个方面:
一、因为它是新兴的一个发展方向,懂得的人自然不多。
二、学习嵌入式需要比较庞杂的知识结构。操作系统、微机原理、C/C++语言、数据结构等。
三、嵌入式学习,上手很困难,不知道从哪里着手去学习。
在刚开始接触的时候,我也是抱着本书,自己摸索,可是越看越迷茫,连很多书里的名词都不知道是什么意思,去网上查也没有得到答案。可是在Tocore我得到了很好的指点,在这里,由于老师都是十分有经验的项目经理,他们懂得如何去学习,从哪里开始入手,这对于我这样的背景知识比较薄弱又接触时间比较短的人来说实在是太有帮助了。
虽然课程还没有完,可是在这段时间的学习中,我按照老师的指导在完善的课程体系下进行系统的学习,已经掌握了Uboot、kernel以及linux移植的基本框架,(我想在今后的学习中一定会对这些知识更加熟悉以至精通!)这对于2个月前什么都不懂的我来说已经是很大的提高了!用得是ARM9的板子,这也是市场上现在比较新的,比较流行的板子,很多公司在实际的产品开发中就用的是ARM9。在课堂上,老师的讲解和我们的练习相结合,理论联系实际。老师除了讲解知识外,还结合了大量的实际案例和操作,这对于我对问题的理解和知识的记忆有很大帮助。
最后谈谈对学习态度的一点看法。嵌入式学习,是比较耗时的,前期需要很多知识做铺垫,有很多人在这个过程中走了不少弯路,于是开始失去耐心、失去信心,以至最终放弃学习。所以我想有必要强调一下问题,在刚开始的时候,自己什么都不懂,可是学习的愿望很强烈,每次上课都希望上完课就能如何如何,可是下来发现自己好像离自己原本的目标还很远,于是心里着急,自己跑到网上搜了很多资料,每天乱看,可是并没有很大的帮助。我想说的是,学习嵌入式一定要有耐心和毅力,不能急躁,按照课程的安排自己多做一些总结和练习,等到知识慢慢的积累下来就会有一种豁然开朗的感觉。
大二下学期,大学里的同学都面临着一次选择,考研或者就业,培训机构纷纷到学校来招生,很多人都犹豫了,也包括我。因为要花一部分费用,而且自己还没毕业,考虑到父母的经济能力,在反复和家里商量后,因为就业形势严峻,而自己又不想考研,我意识到了这是自己走向社会一个关键的转折点,也可能是人生的转折点,所以我选择参加了培训。
刚出来的时候对这些行业我们也不是很了解,以前甚至都不知道嵌入式是什么,通过老师的介绍和自己在网上看到的一些资料,发现嵌入式软件开发的前景很好,目前嵌入式软件工程师也是紧缺人才,通信工程从事这方面也有专业优势,自己大学里学习的知识都可以在以后的工作中得到应用,于是我们选择了来港湾做嵌入式软件工程师的培训。这里有非常浓厚的学习氛围。这里能够感受到社会上工作的压力,来这里学习的同学不全是大学刚毕业或者是还没有毕业的大学生,有的是在工作几年之后又回来学习的,可能他们也感觉社会在快速发展,自己也应该多学点有用的知识,以便更好地立足社会。从他们身上我能感觉到压力,能感觉到自己的不足,让我感觉自己学习不再只是为了一场考试,而是今后工作和生活的实力与能力。
嵌入式技术的掌握是需要一个过程的。实事求是的说,嵌入式技术的全面掌握是有相当难度的。可以轻轻松松学会嵌入式技术的说法是夸大其词了。这个就像学英语一样,学英语无论怎样学,不管是“疯狂学”还是用新理念来学,真正掌握的话还是需要一步步积累才能熟练掌握。要想在几天内学会嵌入式,成为这方面的高手。这些想法本身是不太现实的。
现在我需要主意的是:
第一:把心踏实下来,做好打硬仗的准备。
第二:注意学习方法。尽量不要走弯路,争取一鼓作气入门。一旦入门了以后呢就好办了。嵌入式技术的掌握,本身呢就比较难,要是再走些弯路,时间上会浪费,甚至会影响学习的信心。
第三:不能影响我平时的课程。不能拿了芝麻,丢了西瓜。
根据我在论坛的了解,我选择学习嵌入式linux,刚好我们学校也重视嵌入式linux,有一些专业课也是相关的。
暑假的时间十分宝贵。当培训没有开始时,我电脑就里安装了linux就开始看linux内核方面的书了。我就开始看那本说,大家说linux内核情景分析不错,我就买了上下册,后来又买了 <深入理解linux内核>,最后也买了毛德操的<嵌入式系统>也是分析linux内核代码的,主要讲arm相关的。
看内核期间是个非常痛苦的过程,看情景分析有种在森林中找出路,其间我组织了一些同学学习内核,几乎没有几个能坚持下来的。我认为我是坚持下来了。情景分析在看第一、第二遍是几乎没有摸到门道,我分析有三个方面的原因:
1、自己的基础差,这是最要害的。
2、内核本身很难。
3、没有交流和高人指点。到了第三遍时我才摸到门,才差不多知道个linux的大概脉络,很多细节也是稀里糊涂。
学习linux总结,学习嵌入式的重点和难点要害在操作系统,假如没有把握操作系统,我认为很难把握一个嵌入式系统。即使在做嵌入式开发中,作应有层的开发几乎可以不知道操作系统也可以开发,我认为那是浮在表面的。很难深入和提高自己的层次。学习嵌入式,两个重点,cpu和操作系统,目前比较流行arm,所以学习arm.操作系统很多,但是我在实践中发现,做linux的技术路线很难,在windows几乎不会有的问题,在linux开发中几乎遍地陷阱。一掉进去划很长时间出来,一旦解决自己又长进了!
在刚开始接触的时候,我也是抱着本书,自己摸索,可是越看越迷茫,连很多书里的名词都不知道是什么意思 ,去网上查也没有得到答案。可是在培训的时候我得到了很好的指点,在这里,由于老师都是十分有经验的项目经理,他们懂得如何去学习,从哪里开始入手,这对于我这样的背景知识比较薄弱又接触时间比较短的人来说实在是太有帮助了。
学习嵌入式, 很重要,以前在学校的时候,学得并不扎实,一开始老师带着我们把 从头过了一遍,才感觉到自己确实基础不行,于是又认真的把 过了一遍,在暑假的这些日子里,学习一直很紧张,进度很快,不过老师们很负责,我们遇到的问题都会认真得给解决,学习过程中我接触到了很多新鲜的知识和技术,确实开了不少眼界,了解了嵌入式开发的基本流程,学习过程中,可能是第一次接触到这些以前根本没见过的知识,一开始学很吃力,好多东西都听不懂,更别说把它们联系起来,所以一开始一直很苦恼。
嵌入式学习,是比较耗时的,前期需要很多知识做铺垫,有很多人在这个过程中走了不少弯路,于是开始失去耐心、失去信心,以至最终放弃学习。所以我想有必要强调一下问题,在刚开始的时候,自己什么都不懂,可是学习的愿望很强烈,每次上课都希望上完课就能如何如何,可是下来发现自己好像离自己原本的目标还很远,于是心里着急,自己跑到网上搜了很多资料,每天乱看,可是并没有很大的帮助。我想说的是,学习嵌入式一定要有耐心和毅力,不能急躁,按照课程的安排自己多做一些总结和练习,等到知识慢慢的积累下来就会有一种豁然开朗的感觉。
虽然课程还没有完,可是在这段时间的学习中,我按照老师的指导在完善的课程体系下进行系统的学习,已经掌握了Uboot、kernel以及linux移植的基本框架,(我想在今后的学习中一定会对这些知识更加熟悉以至精通!)这对于2个月前什么都不懂的我来说已经是很大的提高了!用得是ARM9的板子,这也是市场上现在比较新的,比较流行的板子,很多公司在实际的产品开发中就用的是ARM9。在课堂上,老师的讲解和我们的练习相结合,理论联系实际。老师除了讲解知识外,还结合了大量的实际案例和操作,这对于我对问题的理解和知识的记忆有很大帮助。开学后我还需要继续参加培训学习。一个暑假有意义的培训实践,我相信在我以后的求职,工作中,这个暑假给与我的,不仅仅只是个好工作,还有各种学习热情,方法:通过培训,使我认识到:新课程标准下教师是学生学习的合作者,参与者,引导者。21世纪是信息网络时代,学生很容易从学校外部资源中获得信息和知识,教师角色不再主要是信息和知识的传播者、讲授者,而是学生学习的合作者。
传统的教学方法以教师为中心,教师提问,学生回答。学生被动接受,头脑几乎成了知识仓库,而新课标要求以学生为主体,以培养能力为主线。
1.课堂上努力营造一个民主平等、宽松和谐的学习氛围
2.创设情境,激励学生主动参与教学过程
3.课堂上变教师讲授为学生讨论、合作学习,还学生学习的主动权
4.教师应努力培养学生的学习兴趣,培养学生终身学习的观念
5.教师应关注学生的个体差异,使每个学生都得到充分的发展
6.教师应充分利用现代教育技术辅助教学,提高教学效益
帮助学生确立适当的学习目标,指导学生形成良好的学习习惯,为学生服务,建立良好融洽的课堂气氛。
总之无论我们多么习惯和喜欢从前的教学模式,无论有多大的艰难险阻,新课标已经为我们指明了新的方向,只有跟着新课标的方向,我们也才不会迷失自己的方向。
推荐阅读
嵌入式心得体会
教育法心得体会
交通安全学习心得体会
教师法心得体会
嵌入式方案
教师政治笔记心得体会
外出学习心得体会
师德师风心得体会
政治理论学习心得体会