嵌入式学习心得体会

笔构网

2026-02-24心得

请欣赏嵌入式学习心得体会(精选8篇),由笔构网整理,希望能够帮助到大家。

嵌入式学习心得体会 篇1

工作一年了,喜爱嵌入式这个好玩,令人羡慕的行业,不止是工资待遇哦。

4月,又是有许多面临毕业、找工作的大学生来到,面对如此激烈的竞争,如果有一技之长旁身,那就是你挑公司了。

非常有感慨,上一年我也在大学城中参加千里马的面试,跟我同学都是拿着一袋子的简历去排队。

或者网上招聘海投简历。

现在就职的`公司算不上高大上,还能算的过去。总结一下学习心得,也算对自己学习有个交代吧。

1、如何做好嵌入式Linux学习前的准备?

要成为一名合格的嵌入式Linux工程师,就需要系统的学习软、硬件相关领域内的知识。大学里面学的基础还行,可以继续自学,我是自学韦东山Linux视频,重点是有书,有视频,有代码。如果基础太差是个小白,还是建议去花几万培训吧。

2、学习嵌入式Linux需要补习哪些基础课程?

嵌入式Linux工程师的学习需要具备一定的C语言基础,因此面对许多朋友只是在大一或者大二学习过C(还不一定认真学了,呵呵!),之后基本就不再用过的情况,建议大家在学习之前先复习一下C语言基础这块。要提醒大家的是,复习时不能只关注基本语法,对于常用的数据存储及处理方式,例如:数组、结构体等也要关注,有条件的话一定在机器上亲自敲敲代码、分析理解一下具体案例代码编写的思路,让自己慢慢进入一名嵌入式开发人员的状态。

3、嵌入式Linux开发跟普通软件开发在学习方法上有什么不同?

要成为一名成功的嵌入式软件开发人员,程序的设计能力是首要技能,这一点与普通的软件开发人员的要求是一样的。但是作为“软硬兼施”的嵌入式开发,则要求大家不仅要了解较底层软件的工作过程和工作原理(例如操作系统级、驱动程序级软件),可以看一下韦东山Linux视频第1期(基于S3C2440录制): ARM实验,u-boot,文件系统,初级驱动。

嵌入式学习心得体会 篇2

嵌入式学习心得体会,4月10号,为期一个阶段的Linux开发基础培训课程圆满结束,回首这些天所留下的点点滴滴,感触深深,学习上知识点的积累,灵活运用的过程中感受到了Linux操作的快速高效性能,这也是我所追求的效率!

当初初涉培训课程的第一门课程时,都说Linux操作很繁琐复杂,心里总有些顾忌,带着种种不安与些许拼博的决心,开始了自我提升阶段的"充电",由徐海兵老师教授我们基础课程的培训,我们则像着小学生般认真的记着笔记,仔细听着并学会如何去在实践中运用所学的Linux下的各种强大的命令集。

在Unit 1中,徐老师详细生动的为我们讲述了有关Linux的诞生、初成长以及辉煌的发展至今,今后应用范围则愈来愈广泛,讲解了为Linux这个伟大的OS做出巨大贡献的一位位出色的、伟大的人物,他们那种学习钻研的精神、锲而不舍的信念、勇于把握住难得的机会,从小处着手,踏踏实实的创造出了对人类科技发展做出卓越贡献的Linux(Unix)系统,他们的种种,都值得我们去深刻反省、刻苦学习、传承并永远发展下去。

查看ip地址和重启网络服务是我学的第一个命令:ifconfig eth0、ifconfig eth0 IP地址、service network restart。了解到远程登录软件可用xmanager。secureCRT是我们常用的,安装好后利用其登录到了Red hat Linux,需要知道Linux主机的ip地址。徐老师为我们介绍了重要内容:SHELL,即运行程序的程序,如echo $SHELL可查看SHELL的环境变量是csh还是bash。(学习心得 )指令pwd可查看当前所在路径,passwd:更改Linux下的.密码,仅限root用户有此权限,当然我们是利用虚拟机VMware程序来运行Linux OS的,懂得了如何设置虚拟机的网卡设置、暂停、恢复、全屏等。

简单的学习后进入Unit 2,

命令行的句法让我懂得了用法规则,一系列的命令功能强大:date显示当前年月时间星期之类的;more指令与less重要但不常用;cat用于查看短小的文件内容,常用!mkdir命令用于在当前目录下创建新的目录;ls显示当前目录下所有文件;cd更改文件路径,如cd 、cd .当前目录;rmdir删除空文件夹;rm指令很强大,用于删除空目录及非空目录下的指定或全部文件;man真男人,帮助手册;history指令用于显示编写过的命令集,以history序号可显示序号所指命令;echo回写命令,很重要,我需要继续学习;exit指从多重SHELL退出来;Linux账号下,可以增加用户、删除用户、设置密码:useradd、userdel、passwd。

注:所有的用户的家目录都在/home下面,唯独root的家是在/root.点文件都是些SHELL的脚本程序,也称隐藏文件;环境变量常见的有:HOME PATH PWD,懂得了绝对路径与相对路径的对比概念。

最后进入Unit 3、

文件与文件处理的学习中,知道了Linux下支持的六种文件类型:普通文件、目录、设备文件、命名管道、符号链接、socket;Linux下文件系统的组织:倒立的树形结构:/ /bin /boot /dev /home /lib /proc等文件目录,ls –l指令很好很强大,显示文件类型与权限、所有者、字节大小、时间及文件名;touch可创建空文件,复制文件用指令cp,可选-i、-r等;重命名文件使用mv [-i];du显示当前目录所占空间大小;wc命令显示列表中文件的行数、字数、字符数;追加:cat [文件列表] 》目标文件;find指令与grep重要,暂未学习,自己在实践中学习,文件访问权限有:r w x;chmod指令可修改访问权限,如chmod 777 -R文件名。

输入输出重定向每个命令默认打开三个文件:标准输入stdin,标准输出stdout,标准错误stderr,键盘为标准输入,而控制台则是标准输出,文件描述符分别是0,1,2;最重要最常用的为输出重定向>与错误重定向2> ;echo添加的内容>/ 》文件;Linux过滤器和管道:管道操作符:| ;即将某个命令的输出与某个命令的标准输入相连接,从而实现管道功能,例如ls –l |wc;管道和重定向操作符可同时用于一个命令行。

嵌入式学习心得体会 篇3

大一:

应该学习最重要的C语言,51单片机,大二学51单片机也可以,高数也应该好好学下,考研或者以后的工作中会有用的。

大二:

一定要把51单片机学完,做几个小项目,再学习些自己感兴趣的模块,比如红外感应模块,WIFI模块,蓝牙模块,指纹检测模块......很多很多模块的,你可以实现你自己的想法了,譬如做个跑马灯、动态数码管显示、模拟个“世上只有妈妈好的铃声”、又或者弄个难点的时钟计时又或者红外控制,想做什么,都可以问问老师有没有相关的模块,也可以淘宝上买,都不贵。

大二期间还应该学习画原理图的软件protel99se或者AD(AltiumDesigner),C++,java,数据结构,数据库,这些都是课堂上的课程,在课堂上好好学习就行。

英语在以后的工作中也挺重要的,要看英文的文档,四级要好好准备。在大二下学期也可以开始学stm32单片机了,我是大二暑假留在学校的实验室学习STM32的,就是每天看视频学些基础的知识。

大三:

学习一种做上位机的语言VC或者C#,同时STM32要学的精通了,可以先在STM32上学习UCOS实时操作系统,大三的时候要多参加大的项目,多参加比赛,我们实验室就会常参加赛佰特杯,还有挑战杯,蓝桥杯,拿着自己做的东西去参加。

大三如果还有时间的'话,就开始做毕业设计,一般两个月应该就能做好了,我们是选择暑假留在学校做毕业设计,实验室的老师给的题目。做完了就用ARM学习LINUX,当然LINUX在学校阶段熟悉就行。如果这些知识都掌握了,那学的一定不错了,以后就去实习吧,尽早去社会磨练磨练。

看了看怎么这么多东西要学,选一个方向学不就行了吗?这么多有什么用哪?我想告诉大家一句龙应台说的一段话:“孩子,我要求你读书用功,不是因为我要你跟别人比成绩,而是因为,我希望你将来会拥有选择的权利,选择有意义、有时间的工作,而不是被迫谋生。当你的工作在你心中有意义,你就有成就感。当你的工作给你时间,不剥夺你的生活,你就有尊严。成就感和尊严,给你快乐!”

其实大学所学的知识都是基本的知识,所学的知识都是为你以后学习更加深的知识打基础的,当你选择一个新的方向,在大学里面如果还接触过,那么学习起来就没那么难了,如果压根没见过,那么学习起来一定会花费大量的时间,工作的时候可不会给你这么多时间学,所以多学点肯定是有用的。

五:学习一个单片机最快的途径是什么

最快的方法就是做项目,当把一个知识,单片机的基础知识看完之后,一定要做项目,做项目才能让你学的更快。

简单谈一下我从做项目中获取得经验吧。大一期间就对无线控制很感兴趣,觉得无线控制很有意思,响应设备与控制设备之间的数据交互看不见摸不着,但却能精准高速的相互通信。经过一段时间的学习,我选择红外线这一无线通信工具。

完成的项目是“基于物联网教室空调控制系统”,主要实现的功能,学习、发射红外码,加入WIFI通信功能、定时功能、温湿度检测等。首先接到这个项目,先了解基本功能,设计一下方案,思考方案可不可行,各个模块如何相互配合工作?具体需要什么模块等等吧,然后选择适合的MCU,不需要多大够用就行,然后选择要使用的模块硬件。

准备工作做好之后,就可以从PCB构图做起了。当然如果没有条件,可以选择一个带有你需要模块的现有单片机。硬件准备好之后,就可以嵌入式最擅长的软件编程了。编程过程中要多注意细节,以及个人编程习惯都会导致一些很难排查的bug,过程当中无可避免的会出现各种各样的bug。

多回顾自己的代码,从上到下捋一遍程序逻辑,从中发现问题,解决掉。好的编程习惯不仅会让你的程序看起来完美,也能减少你解决bug的痛苦。有一点很重要,自己使用的变量加注释,标明变量做什么用,自己的逻辑最好也加上注释,函数功能等等都加上注释。这样能帮助你更快找出bug和复习自己的程序。最后最终代码的敲定往往就是修改掉最后一个bug,实现了最后一个功能!

我作为一个学生,写内容可能偏于简单,偏于给学生看的,写的不好还请见谅,欢迎大家一起来讨论!

嵌入式学习心得体会 篇4

本人本科学的是电子信息工程专业,其实这个专业和嵌入式没有多大的关系,要说有关系就是简单的讲了下C语言语法,学完之后还不知道什么是C语言,只记住了char,int,long等占几个字节,if, while,for循环什么的,感觉也就能算一些小学就会的题目,全国计算机二级C语言也就糊涂的过了。我这个专业没学过C++,一开始不知道什么是面向对象,这可能会让人笑话了。不过这说的是实话,本科的时候,学院安排的课程大部分偏硬件部分,动手机会比较多,自然而然比较喜欢硬件方面。

在大二的时候就听学长说,单片机很难学,那时候经学长介绍,淘宝买了本郭天祥老师出的书《51单片机C语言教程》,一开始还真是不怎么懂,感觉有点像是看天书,然后硬着头皮去看,当我把51的结构看完了,就不像一开始那样一头雾水了,自己在纸上把51的结构图默画一遍,然后再把各个寄存器功能写一下,各个功能口的结构粗略画了下,然后觉得51整体已在我心中了,虽然没有什么作用,但是至少懂得这门课要怎么去学习。其实有些时候不是这个东西你不会,而是在不会的时候自己先告诉自己这个太难了,自己先放弃了。

在大三的时候,第一学期课比较少,我就经常待在图书馆,会去蛮看些专业相关的书籍,现在想想,那时候也是机缘巧合下,看到了一本书《从51到ARM》,讲述的是从51系列单片机的一般知识出发,将arm处理器和51系列单片机进行对比,引导读者去理解和学习arm处理器的知识。那个时候也有考虑到以后就业的问题,就想到一件事情,如果去应聘工作的话,每个工科院校电子信息类的毕业生都会异口同声地说:我会51系列单片机。当他说这句话的时候,他和别人是站在同一起跑线上的。可我们完全有可能和别人不站在同一起跑线上。正是这本书给我开启了另外一扇大门,让我初步了解了嵌入式。后来去报考全国计算机等级考试三级教程——嵌入式系统开发技术,在图书馆奋斗了两个月,最后取得优秀的成绩,也让我进一步了解嵌入式系统。

在大四的时候,我们有嵌入式的选修课,不过当时因为考研的缘故,就没有去上过这门课,好可惜呀!但是,在选择读研研究方向的时候我还是毅然选择了嵌入式方向,我知道这将成为我未来三年研究的方向。这学期(研一下学期),很开心能够再次接触嵌入式系统这门课程,对于导师教的这门课程,我觉得自己上课还是蛮认真听讲的,当然也被师在台上那讲得头头是道,温文儒雅的风姿所吸引。对于没有学过微机8086的我,有些时候,老师用微机与嵌入式的对比让我头脑没有相关概念...

首先,我对嵌入式在概念上有了一个比较精确的了解。嵌入式是指以应用为中心,以计算机为基础,并且软硬件可裁剪,适用于对功能、可靠性、成本、体积和功耗有严格要求的专用计算机系统。它由硬件平台和系统软件组成。硬件平台指嵌入式处理器和与之通过接口连接的外围硬件平台。系统软件是指实时操作系统和用户应用软件。

谈到硬件部分,我首先想到的是嵌入式处理器那些外围功能模块。对于这部分的学习,我当初花了好长时间看《深入浅出ARM7——LPC2400》这本书,现在想想觉得自己学习方法没用对,完全没有那个必要,自己却花了大把时间在看这些寄存器引脚的使用,因为单纯的看过之后还是很容易忘的,之后在进行实验的时候还是翻书来查就证明了这一点。不过一些最基本的模块,例如通用输入/输出口(GPIO),通用异步收发器(UART),向量中断控制器(VIC),外部中断输入和定时器/计数器还是需要看书认真去记住那些常用的引脚功能。对于CPU异常这部分,我一开始以为异常就是中断,因为处理程序流程设计是相似的,都是请求处理器打断正常的程序执行流程,进入特定程序的一种机制。当时还对老师提出的一个看法有点疑义,51可以处理中断嵌套而ARM处理器却不能?我当时脑子里面就在想:中断不都是有硬件设备产生的,那按常理来讲ARM处理器也可以处理的呀。后来在认真查书,发现CPU异常有7种:复位,数据中止,中断,快中断,预取中止,未定义,软件中断。而异常向量会使CPU转入异常入口地址执行程序,开始了异常处理。同理的话,中断向量使CPU转入中断入口地址执行程序,开始了中断处理。即当发生IRQ中断时,程序返回地址被存入该IRQ中断模式下的LR,如果继续发生IRQ中断,那第二次的中断返回地址也还是被存入该IRQ中断模式下的LR中,那先前发生中断时候存入的程序返回地址将被覆盖掉,导致不能返回正确的位置。在我解决这个问题的期间,每次睡前思维准会定格在这问题上,久久不能绕出来,其实有时候查书还是最好的解决方案,因为网络资源只能提供给我们部分的参考资料。

对于ARM汇编语言这部分的学习,我认为是需要重视的,学汇编不是说用这语言做多牛逼的事情, 问题的关键在于, 学透了汇编会使你真正理解计算机。另外一方面,只要以后在嵌入式工作中你迟早会在某个阴暗的角落里遇到汇编。“不管你承认不承认, 现在的CPU没有直接跑高级语言的, 哪怕是虚拟机也都是类似汇编的指令集.当遇到崩溃分析, 性能优化甚至编译器抽风等等的时候, 汇编是你最后一根救命稻草(这句话是福来师兄讲的)。”为此他给了我们一份资料,周立功lpc21xx/lpc22xx系列ARM7启动代码分析,主要讲述的是startup.s文件的分析,看了下才发现老师上课讲的那个启动代码分析很多不理解之处这里都有详细的介绍,这分析太精辟了。

学 ARM7这么久,我认为从硬件上讲,一方面就是学习接口电路设计,另一方面就是学习汇编和C语言的板级编程。如果从软件上讲,就是要学习基于ARM处理器的操作系统层面 的驱动和移植。这些对于我们初学者来说必须明确,要么从硬件着手开始学,要么从操作系统的熟悉到应用开始学,但不管学什么,只要不是纯的操作系统级,硬件的寄存器类的东西还是要能看懂的,基于板级的汇编和C编程还是要会的。

μC/OS-II 是一种基于优先级的抢占式多任务实时操作系统,包含了实时内核、任务管理、时间管理、任务间通信同步(信号量,邮箱,消息队列)和内存管理等功能。它可以使各个任务独立工作,互不干涉,很容易实现准时而且无误执行,使实时应用程序的设计和扩展变得容易,使应用程序的设计过程大为减化。μC /OS-II是一个完整的、可移植、可固化、可裁剪的占先式实时多任务内核。μC/OS-II绝大部分的代码是用ANSI的C语言编写的,包含一小部分汇编代码,使之可供不同架构的微处理器使用。

μC/OS-II可以大致分成内核结构、任务管理、时间管理、任务之间通信与同步4个部分。内核结构是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分。任务管理部分中的内容都是与任务的操作密切相关的。包括任务的建立、删除、挂起、恢复等等。因为μC/OS-II是以任务为基本单位调度的,所以这部分内容也相当重要。μC/OS-II中的最小时钟单位是timetick(时钟节拍),任务延时等操作是在时间管理这部分完成的。任务之间通信与同步为事件处理部分,包括信号量、邮箱、邮箱队列、事件标志等部分;主要用于任务间的互相联系和对临界资源的访问。μC/OS-Ⅱ操作系统是在main()中建立的,首先要系统初始化,OSInit(),初始化系统所有的变量和数据结构。然后进行任务的创建,OSTaskCreate();之后进行多任务的启动,OSStart()。在进行任务的并行处理的时候,一个任务的程序是顺序执行的,而不同任务的程序却是并行执行的。从应用程序的观点来看,此处的并行处理只是一个假象。而实际上它是通过实时操作系统的内核控制任务之间的切换来实现的,也就是任务调度啦。

μCOS-Ⅱ总是运行进入就绪态任务中优先级最高的那一个。当创建新任务时,或当前任务调用一些可能把自己挂起的系统函数(如OSMBoxPend)时,内核就要进行任务切换。在上述的场合,任务级的调度是由函数OSSched()完成的。

在一个多任务的应用工程中,任务之间并不是完全独立的,它们存在一些需相互配合的处理,这些相互配合是靠任务间的通讯或同步,信号量、邮箱、消息队列可以实现这种任务与任务,任务与中断服务函数间的通讯与同步。

邮箱可以使一个任务或者中断服务子程序向另一个任务发送一个指针型的变量。而信号量不可以,其只能发送信号量。消息队列可以使一个任务或者中断服务子程序向另一个任务发送以指针方式定义的变量。因具体的应用有所不同,每个指针指向的数据结构变量也有所不同,实际上,我们可以将消息队列看作多个邮箱组成的数组,只是它们共用一个等待任务列表。

我们实验所用的ARM开发工具是ADS1.2。ARMADS全称为ARM Developer Suite,是ARM公司推出的新一代ARM集成开发工具。现在ADS的最新版本是1.2,支持软件调试及JTAG硬件仿真调试、支持汇编、C语言、C++源程序,具有编译效率高、系统库功能强等特点。在安装ADS1.2的时候出现过小问题,当时我的电脑是64位的,安装完之后显示不了,后来百度查找到原因,竟然是文件夹放错地方,应该放在Program Files(x86)这个文件夹中。后来有同学问我这方面的问题,但是发现他们的ADS1.2安装不了的原因是因为Licence弄错了。在打开CodeWarrior for ARM Developer Suite的.时候,一定要记得选DebugInChipRAM,否则Make都出现很多error,而且那些几乎都是未定义函数的错误。之后就进行Debug,调试成功之后会跳出AXD的界面,选择Options里面的ConfigureTarget,再添加H-JTAG的文件,之后点击GO,程序会跳出汇编语言的界面,再点击下就跳到C语言程序入口地址,之后再点击下GO,程序就开始跑起来。前面所述的这些步骤是理想情况下程序自身没有发生错误,当然在调试过程中,还是有很多硬件上的问题,一方面是有些开发板可能用久了,用JTAG并口连接的时候接触不良,很容易自动掉线,常出现未连接设备的的Error,还有一方面是跑程序过程常会出现兼容性的问题,导致程序AXD调试时候会出现卡在某个部分一直进入死循环,这个后来是解决了,但是偶尔还是会出现这个BUG。

通过这学期对嵌入式的学习,我发现自己尚未掌握的知识点还是蛮多的,尤其是对μC/OS-II的移植方面,我只是理论上粗略了解,没有经过实验的操作。还有对存储器加速模块(MAM)这方面不够了解,主要一方面当初在做消息队列采集实验(KeySem_SampdataQeue),这个模块被代替掉,不需要使用它,所以后来也没有去掌握相关知识点。对于任务就绪算法这部分,我只是上课的时候听“懂”了,课后自己再看完全懵了。对于CAN总线调试的部分,老师上课没有讲到这部分的介绍与应用,但是后来通过自己对实验室师兄们所做的课题初步了解,发现我自己有必要去弄懂它的构造和原理。

“看书不要希望一次就会,一次就明白是什么意思,也不要死记硬背,看不明白也没关系,以后遇到了知道去哪里去找就可以了,以后遇到的多了,也就记住了,遇到的少的,忘记也就忘记了。”依然记得当初不懂怎么解决某个问题的时候请教李硕师兄,师兄对我说的这番话。自己在μC/OS-II这部分内容挣扎了好久,现在想想,觉得当初不应该一上来就直接阅读内核源代码,看了一些自己把头撞破也想不明白的事,这样直接正面打击我学习嵌入式的积极性。学习啊,还是得要循序渐进。如果你想学习嵌入式一定要有块学习板。看再多的视频,看再多的书,也不如自己动手试一下,看着很简单的东西,做起来就可能遇到很多的问题,遇到问题找到原因,解决问题,只有这样才能学到东西。记得我第一次仿写led的驱动,想自己试一下,可是自己一试,就出了好多的问题,那个led弄了我一天才把led灯点亮。所以不要眼高手低。

对于初学者,有一点小建议,我们拿到一个开发板,很兴奋也很激动,想法自然也很多,想用开发板实现自己的这个想法,实现那个想法,然后又不知道从何下手,然后就去论坛中发一个贴,最后等着别人去回复,当见没人回复就开始抱怨。这种做法是不可取的,有想法是好的,我们要实现自己的想法也是有前提的,首先,我们对这部分知识了解吗?如果不了解就去google一下(最好别用百度,不太好用),了解了一些,也就大概知道要怎么做了。如果再遇到问题,再去发贴问,这样也显得咱们有水平。比如自己连串口是什么都不太清楚呢,就问串口通信怎么做啊,就是人家把代码给咱,咱也不明白是怎么回事啊。见多识广,熟能生巧。多看代码,要从代码中读出代码的意思来。自己平时也要多写代码,多练习(这一点我做的不好,写的少)。

最后,我想说的是嵌入式系统的学习和研究一旦我们达到了一定的水平后,其实很简单,就是如何去看CPU和相关芯片的Datasheet!

嵌入式学习心得体会 篇5

研究嵌入式系统已经有快两年的时间了。很庆幸自己当初选择了嵌入式系统作为自己的研究和职业方向,可以说它是一种催化剂,让我自身的修养和研究能力都有了很大的提高。

在嵌入式系统的大门前,我只能算是刚刚看到这个大门的台阶,但这段小小的距离让我受益颇多,现将其中心得奉献出来,欢迎高手前辈们指正,以供刚接触的新人参考。

在写之前,想先写一句话,千万不要以为你是天才,所谓天才即胜别人N倍的人,如果你真认为你是天才,请以天才的标准来要求自己,将自己付出和别人的比例以N:1来进行。

(1)学习与生活心态

很多朋友都是在刚步入大学校门开始接触计算机或者其他。大学是一个很让人迷茫颓废的地方,可能你在高中踌躇满志,但在大学的管理机制下却心态渐糜。能够在大学(大一)里找到自己人生之志的同学有多少?目标要明确,不要得过且过,不要追逐热门的东西。

不管在什么时候,心里都要有自己的信念和理想,不要被其他东西左右了自己。要从兴趣和竞争出发,因为这才是你产生动力源的地方。学东西时,要让自己先喜欢上它,要学会享受学习它的时间,喜欢乔XXX的都知道,乔老爷子最常说的一句就是要享受比赛的时间。

因为只有你喜欢上了它,享受了它,才不会被它所产生的压力压倒自己,不要产生一种厌恶的心理。而且心态要调整,不要一味的蛮学,死学,在没有什么兴趣学的时候可以先玩几天,在回过头来,或者用其他的方式来转换。要抱着一种十年方能磨一剑的心理,扎扎实实从基础开始,不要为高速开发的'一些现象所迷惑,那些都只是软件的功劳。

我个人认为搞编程,英语和数学很重要,大家一定要时时的抓,至于怎么抓那就是另外一回事了,当然其他的知识也要汲取,可以多接触点天文,地理,人文方面的东西来补充自己。转换的生活方式。要学会生活,在人的一生中,都会遇到一些很不开心的事,或者大大小小的意外,孙子兵法里面一句大意就是说,战场上要会将劣势转成优势,即最大的劣势很可能就是你的优势所在。

一个打击你可以把他变为前进的动力,不必为了一点挫折和捶胸顿足,不必为了一点小事争吵不休。空闲的时候可以躺下来看看天,你就会明白自强不息,厚德载物之理。(看到一些为了失恋或者其他而堕落的人真的很难受和可惜)。

要给人以帮助。别人有困难时或者一些举手之劳在自己解决范围内的尽力帮之,这对自己不会损失什么,相反在对方心里能够树立你的形象和增加好感。记住,给人之恩时也是给你自己铺路,这个世界不是靠你一个人可改变的。

(2)编程语言的选择语言的争论。

很多初学择,老是在学习何种语言上举棋不定,试问,中国牌子有几个不被骂的,试问,世界上哪部影片没人说他坏话的?术业有专攻,各司其职,每个语言的出现肯定都有自己价值和领域的范围,不同的只是价值和领域的高级和大小。

就像高,矮,胖,瘦组成一个“型”。但是技术是进步的,这个进步也是在旧的基础上。放心,技术再飞跃也不会今天奔I,明天扣肉的迅速,在学习的同时也要时时关注整个语言界的走势(貌似哪个伟人说的与时俱进),保持一种同步曲线的前进。语言能干什么?能问这句话,很欣慰。

表明你是从基础学起才会问出这样的话来。但换而言之你一开始对这门语言调查的信息不足。庙算者胜,对自己身边的事物了解是非常重要的,这也能说明说你的教材或者教导你的人不够充分。如果是我对新手交流,我会花足时间让他明白这门语言是什么,能干什么,整个体系等等。

这样在学的时候,对同一条语句上的理解你可能跟别人就不一样了,因为你知道这门语言的体系架构,你可以从更多的特性角度去挖掘使用它。提高自己对语言阅读能力。如何快速的进步?可以告诉你没有一步登天的办法,但是也可以告诉你如何让你快速掌握你所学的技术。多读他人代码,多领悟他人思维,多给自己出难题,多几种方法来解问题,多将语言的思想和身边的事物联系起来。想想你是怎么掌握普通话的,方法就不具体说了。

编程的思维。计算机是充满诱惑的东西,很多人都说热爱计算机,那只是它的表面,你热爱的只是他的一种扩展性的东西。能学计算机我很高兴,因为计算机从某种意义上来说将空间的距离给消除掉了。这里没有流血,没有牺牲。你可以以一种艺术家的思维来塑造它,可以以侦探的逻辑思维来解决它,可以以一种战争狂人的思维来摧毁它。

你可以将你的这种思维体现在代码和整个布局里,不要惊异别人代码思维的异风,你也有自己的思维风格,你也可以,你也可以用自己代码让别人惊异。记住你学东西时更多的要体会他的思维,比如数学,微积分,离散,无数的定理,你学完以后可能永远都用不到,但是你可能有这种感觉,在你碰到某一问题时,这一问题的性质和你学到的东西很类似,但是中间就是差了一点东西,对了,这就是它思维上的一种运用,一种抽象,一种转换。

嵌入式学习心得体会 篇6

就在昨天3月9日,学校规定实习时间已经到期了。从上个月的13日到现在已经近一个月,虽然与公司的实习时间还没有结束,但是为了完成学校交待的任务,在此对这段时间的实习做一个总结。

首先,我先来简单介绍下实习单位。我实习的单位全称——上海宝信软件股份有限公司厦门分公司。其作为上海宝信软件中的重要一员,是宝信软件在全国多网点支持服务的延伸,具备与宝信软件上海总部相同的技术服务能力,并可无限制调用总部专家资源,秉承宝信软件“IT服务,提升信息价值”的经营理念,致力于IT服务,主营业务包括网络安全产品销售、系统集成、运维服务、软件工程等。

其次,向大家介绍是我的实习内容。这里要先介绍我的实习岗位——嵌入式软件开发工程师。实习内容大致分为两块,一是软件测试,二是编码。在我们刚来的前两周,我的实习内容就是软件测试。软件测试的主要内容是UnitTest也就是单元测试。但是,在实习刚开始的阶段,我并没有就马上做测试。而是有前辈给我发了一份我们要做的产品的功能书给我看。功能书文档是日文版的,我要把它看懂,才知道我们这里到底是做什么。后面的测试工作就是做单元测试了。

我们在做测试是有测试环境的,整个单元测试过程是有前人经验的。所以只要按照规则来就没有问题,也相对比较简单。就这样单元测试做了近8天左右,测试了51个c++函数。其实,单元测试比较简单,但是碰到函数的输入输出的值及路径多的时候,特别的烦,会影响测试效率。实习的另一个内容就是编码,其实说的确切一点,是看代码。一个刚来不到3周的新员工,以前又没有经验,公司怎么会放心让你写代码。有前辈给我安装了秀丸和Source Insight软件,然后给了我一代码,让我按上面看,有问题可以问组里的前辈。C++代码是看的懂,但是太多的函数,被调用的关系也不清楚,也不了解决函数的意义,所以感到很无趣。也许是在考验我的耐心或者是让我熟悉代码编写的规范。不管是什么目的,至少自己可以巩固下c++的基础。不过真的要感谢前辈的细心指导,使我大概了解程序的调用关系。

再次,向大学介绍下我的实习阶段的工作过程。每的8小时的上班时间,但是一般会比这个时间长的。早上8点45分到9点15分不等上班,晚上5点30分到6点不等下班,中午11点可以去吃饭、1点之前上班。这个时间还是比较人性化的。当然也有时候也要加班,如有时候日本客户来这里的时候,发现我们的人都很早下班的时候,他就会和我们的上级说,然后我们就得加班。这也是一种非常情况,但是加班是可以调休的。每天的上班时间基本上是跟电脑打交道。

前期实习阶段都是打开电子表格看日语版功能说明书,后面做测试的时间就是各种软件一起用了。每天做单元测试的时候,其实感觉特别烦。有时候一天做7到8个,有时候一天2个做不到。但是整个过程自己还是坚持下来了,虽然很累,自己还是很好强的.。后期基本上是学习编程了。由于后面项目已经交互,所以每天都不没有加班了。每天的工作主要就是学习代码规范,如那里怎么缩进、命名之类的事。至于逻辑什么的,还是很不清楚,还需要努力多问多想。

再次,与大家分享下我的实习收获。虽然与原计划5个月的实习还差很远,但自己还是很有收获。其一,对于歌乐Audio项目有一定的了解。具体的表现在,分了几层。我个人是分配到app层,也就是业务应用层。虽然对业务的熟悉不够深,但大概知道,每一天前辈们都在做什么事。其二,日语方面的加强。因为客户方面基本上是日本人,所以加强日语学习是必须的。有了这样的一种压力,自动会转化为一种动力,促使我去学习。我想这样多少可以提高下我的日语能力。还有就是,常常有很多日本客户就做在我的旁边。感情还是很紧张,因为不知道怎么跟他交流。结果每一天他来的时候,我只能和他说声早上好。希望自己在今

后的时间里要多多加强日语学习,争取与日本客户交流,才能提升自己的能力。其三,交流沟通能力的提高。其实自习也一直觉得沟通能力对成功贡献是最大,要把一件做成肯定不是一个人的事情,我们需要与别人沟通。在沟通中互相了解相联系的部分,这样才能够避免摩擦带来不必要时间与精力的浪费。而我自己的沟通能力提高表现在自我意识的提高。当遇到问题的时候,会主动的想想,是哪个具体的点不懂,然后列出问题,再向前辈请教。这样大脑里就会有一个逻辑过程。通过这样就可以把自己的意思清楚的传达给别人。在别人向自己传达信息的时候,我会边思考边听,遇到不了解的地方,讲明白自己的不解之处。这样这个沟通过程就会比较流畅。其四,职场意识的提高。可以说来实习就意味我们提前毕业了,提前进入社会。所以,由学生到社会职业人的过渡期就被实习给填充了。经过一个月实习,我发现自己已经很习惯在公司工作。对于自己能做什么,未来能做什么也有了一定的思考。不管毕业,我还是留在这个公司还是去其他的公司,我想我心中已经有了这份意识,这对我将来的职业生涯都是有帮助的。其五,时间管理。很多人工作的时候就忘记了生活的存在,我们的生活是多彩的,并不是只有工作。其中,有一项转变的比较大,就是很多人不喜欢运动了。对于这些,我都是不太认可的。我还是会抽出时间出去运动一下。我觉得运动可以带给我健康,同时会让我的精神更好,工作更有效率。其实,运动并不会浪费我们时间,而是会给生活带更美好。

最后,与大家分享一下我这个月实习的心得与体会。通过这段时间的学习,从无知到认知,到深入了解,渐渐的我喜欢上这份工作,让我深刻的体会到学习的过程是最美的。在整个实习过程中,我每天都有很多的新的体会,新的想法,想说的很多,我总结下来主要有以下几点:

1、持之以恒

既然选择了自己的这份工作,不管工作本身怎么样,我们都要坚持往下走。因为我相信每一家公司的工作原理都是差不多的。如果你在这家公司做不住的话,我想你在另外一家公司也是做不住的。只有我们改变自己的态度,才可能战胜心中的浮躁。我们新人一来到公司我,一开始都不会立刻给工作我们做,-一般也都是先让我们看看文档或代码,时间短的要几天,时间长的要几周,在这段时间里很多人会觉得很无聊,没事可做,便觉没有发展空间,于是产生想走的念头。恰恰在这个关键的时候更需要我们的坚持,轻易放弃只会让自己后悔。

2、不怕做小事,那是一种考验

我们一来到公司实习的时候,很多组里的前辈多数还是把我们当学生看待。他们不会也不敢让我们直接参考到一个真正的项目中去。在这个其间一般会给我们看一些过去做过项目的文档和代码,其实不可小看这些小事,也许是为了考验我们,也许是让我们先了解业务。作为一人新人,一定要积极面对这些,勇于担当做小事,喜欢做小事。这样公司同事才会更快的接受你,慢慢地才会让你做一些重要的工作。

3 、态度端正,一定要多主动

我们到公司工作以后,要知道自己能否胜任这份工作,关键是看你自己对待工作的态度,态度对了,即使自己以前没学过的知识也可以在工作中逐渐的掌握。态度不好,就算自己有知识基础也不会把工作做好,四多一少就是我的态度,我刚到这个岗位工作,根本不清楚该做些什么,并且这和我在学校读的专业与这里做的东西还是不太一样的,刚开始我觉得很头痛,可经过工作过程中多看别人怎样做,多听别人怎样说,多想自己应该怎样做,然后自己亲自动手去多做,终于在这一个月里对工作有了一个较系统的认识,慢慢的自己也可以完成相关的工作了,光用嘴巴去说是不行的,所以,我们今后不管干什么都要端正自己的态度,这样才能把事情做好。

4.不要报怨

其实在做单元测试的那个时候,有时候觉的特别的烦。有时候做了半天连一个函数都没有把弄出来,那种感觉真的是非常的难受,心中也有委屈。可是这是我的工作,我报怨也没有用。只能一步一个脚印走过来。直到后面把函数测完,心中还是很有成就感的。其实有的人会觉得公司这里不好那里不好,同事也不好相处工作也不如愿,经常埋怨。我觉这样只会影响自己的工作情绪,不但做不好工作,还增加了自己的压力。所以,我们应该少埋怨,要看到公司好的一面,对存在的问题应该想办法去解决而不是去报怨,这样才能保持工作的激情。

5、虚心学习

由于我们是新手,而且又还没有从学校里完全走出来。所以在工作过程中,我们会碰到很多问题,有的问题我们可以有我们所学的解决,有的有很大业务性的问题,我们就无法解决。这个时候不要不懂装懂,应该虚心地向前辈们请教。请不要害怕,因为前辈肯教我们肯定是我们的福气,对我们以后在工作中都有帮助的。同时请教的时候也是一个锻炼沟通的过程。在前辈给我们解惑的时候,我们也应该虚心的接受,不要装着一副不屑的样子。

6、知错能改

作为一名新人,不管在学校有多么的优秀,来到公司,我们顶多就只有点基础,其他什么的都得重新开始。在学习的过程当中,犯错是不可避免的。知错能改是我们唯一的选择。明知自己有错,还理直气壮那是不应该的。我认为这种行为是可耻的。在犯错的时候来铭记于心,不要第二次在犯同样的错了。当前辈或其他人指出我们的错误时,我们要虚心听教,坦诚改错。这样我们才会进步,才会在组里与同事相处融洽。

7、团队合作

重要的不是我,是我们。在一个项目组里,我并不是一个人。我只能说我是组里的一个部分。我们每一人都不是神,我们不可能一个来完成所有的工作,因此,必须分工。但是,分工并不是都很明确的。每个人分到的工作,多多少少都会和别人的工作的有交集。这是因为,作为一个项目的每个部分,最终还是整合形成整体。我们还是需要这些部分与部分交集作为连接点组合起来。因此,每个虽是分工,但更多是合作。我们中的我必须明白这些,要有团队观,做好自己的同时,更重要也要做好与别人的沟通。这样才会避免工作的重复,意见的不同等负能量。

8、沟通能力

在上一点的体会团队合作中,其实我已经说了,团队合作的基础就是沟通。一个有效率的团队,我认为它的成功就在于成员之间良好的沟通能力。因为,人与人的沟通是信息传递的媒介。没有良好的沟通基础,信息在传递的时候就会被曲解。在软件开发的整个过程,团队合作是至关重要。每一环节,都离不开沟通。需求变更带来的问题,尤其需要在沟通中解决问题。所以,让自己把信息传递的正确和有效,提高沟通能力是必不可少的。

9.做人做事讲究原则

其实在公司上下班是一个很大的学问。同事都已经来上班了,你才来。或者是同事还没下班,你人就都先走了。其实要把这些看成一种常态。在公司上班不是比谁先来,也不是比谁晚走的,比得是自己的工作的效率。有时候,我们工作做完,是可以先走。你想想,你走了之后,估计别人也敢走了。从这一点上,可以说你是帮助了大家。当然这只是开玩笑,做人做事要有点原则。工作没完成当然不能跑回去,这是没有责任的表现,以后主管怎么能把事情交给你。工作做完,想先走就走了,不必当担心这担心那的。我相信一个好的主管,不会以一些无所谓的因素来衡量一个人的。只要自己身体正,就不怕别人说。

10.做好职业生涯规划

每个人在来实习之前,肯定会想我来这家公司是做什么。当你想好,并决定来的时候,你已经做了第一步职业生涯规划了。实习也是成了我们检验计划的时候,如果你发现这个工作不适合你,毕业前你还有机会可以做换。如果感觉这个工作适合你,那么你就可以做下一步

的规划了。我当初选择这个工作,是因为嵌入式软件开发在近几年会发展会比较快,而且本人对c++和c比较感兴趣。同时,目前做的工作是对日外包,对于我日语的提高也是很有帮助的。现在实习给我感觉是,不出现什么其他状况,应该毕业后会留在这个公司。至少今后的职业规划以日语和编程提高为主,以管理为辅。

在这里,我要感谢上海宝信软件股份分司给我这次宝贵的实习机会。同时,也要感谢组员对我有直接帮助的前辈。当然还要感谢学校和毕业指导王老师的关心与指导。

总而言之,这次实习是我大学四年来最正式的一次。我想通过这次的实习,我将从学生走向社会职业人的转变。一个月的时间过的太快了,但是我们的实习并没有结束。通过这次的总结,我对这次实习的意义有了深刻地认识。自己在今后的学习与工作中,一定会更加努力做的更好。

嵌入式学习心得体会 篇7

嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系统。

看到了嵌入式系统的范围,你也应该知道嵌入式系统工程师是做什么的,就是开发上面的那些电子产品的工程师。

关于如何学习嵌入式?

学习嵌入式,该学习什么基本的知识呢?

首先C语言,这个是毋庸置疑的,不管是做嵌入式软件还是硬件开发的人员,对C语言的掌握这个是必需的,特别是对于以后致力于嵌入式软件开发的人,现在绝大部分都是用C语言,你说不掌握它可以吗?至于如何学习C语言,我想这些基础的知识每个人都有自己的方法,关键要去学习,看书也好,网上找些视频看也好。很多人会问,C语言要学到怎么样,我觉得这没有标准的答案。我想至少你在明白了一些基础的概念后,就该写代码了,动手才是最重要的,当你动手了,遇到问题了,再反过来学习,反过来查查课本,那时的收获就不是你死看书能得到的。

其次,应该对操作系统有所了解,这对你对硬件和软件的理解,绝对有很大的帮助。应该把系统的管理理解一下,比如进程、线程,系统如何来分配资源的,系统如何来管理硬件的,当然,不是看书就能把这些理解透,如果不是一时能理解,没关系,多看看,结合以后的项目经验,会有更好的理解的。

还有应该学习嵌入式系统,如linux或者wince下的编程,这些对以后做应用的编程很有帮助,当然,如果做手机的话,那可以学习MTK、塞班、Android等操作系统,Android是以后发展的趋势,现在很热门,Android也是基于linux系统封装的,所以建议先学习下linux。

还有,应该学习下单片机或者ARM或者MIPS,很多人说我没有单片机的经验,直接学ARM可以吗?我觉得那完全没有问题的,当然如果你学习过单片机,那最好不过了,以后学习ARM就更简单了。

最后如果你把以上的'知识都有所了解后,就该去阅读阅读一些优秀的代码,比如结合arm芯片手册学习去学习下UBOOT的源代码,了解下最小的系统开发,那对你整个嵌入式开发的非常有帮助的,可以的话,还可以学习下linux的源代码,当然如果你直接阅读2.6的代码,我想你会很痛苦的,可以先看看linux 代码早期的版本,比如0.12 的代码等等,麻雀虽小,五脏俱全,如果你全看完了,那我想你就是一名很成功的嵌入式工程师。

至于上面说的知识如何学习呢?每个人都应该去找自己最好的方法,所谓的最好的方法就是最适合自己的方法。很多人看不进书,那就去看看视频吧。视频也应该要选择,不是随便看看,应该要有所选择,有所挑选。我也是这样一路走过来的,不过我这人比较懒,我看不进书,一看书我就想睡觉,所以这几年我都是看视频过来的,现在也算学有所成,但也不敢说是高手吧。

我在网上看到,有人把自己学习嵌入式的视频总结出来,嵌入式系列实践和视频教程,大家可以看看网址我仔细看了觉得很不错,我本来也想整理下,可是奈何我自己的电脑硬盘空间才40G,没有办法,时间也是不够,心有余而力不足,我不是在帮他做广告,虽然要花钱,我觉得算不错,至少自己不用去整理和花大量的时间去找资源,当然如果网上有的下,你网速和硬盘都够的话,我建议大家自己网上下也好。想想我自己该开始学的时候,那时视频资源少之又少,我买书和买视频至少花了几千块,但是我觉得那很值,至少我现在赚回来了很多知识。

最后,希望这篇文章对热爱嵌入式,想致力于嵌入式开发的朋友有所帮助。送给大家一句简单而又朴素的话,坚持就是胜利,贵在坚持,也可以看看如何坚持嵌入式学习!

嵌入式学习心得体会 篇8

4月10号,为期一个阶段的Linux开发基础培训课程圆满结束,回首这些天所留下的点点滴滴,感触深深,学习上知识点的积累,灵活运用的过程中感受到了Linux操作的快速高效性能,这也是我所追求的效率!

当初初涉培训课程的第一门课程时,都说Linux操作很繁琐复杂,心里总有些顾忌,带着种种不安与些许拼博的决心,开始了自我提升阶段的“充电”,由徐海兵老师教授我们基础课程的培训,我们则像着小学生般认真的记着笔记,仔细听着并学会如何去在实践中运用所学的Linux下的各种强大的命令集。

在Unit 1中,徐老师详细生动的为我们讲述了有关Linux的诞生、初成长以及辉煌的发展至今,今后应用范围则愈来愈广泛,讲解了为Linux这个伟大的OS做出巨大贡献的一位位出色的、伟大的人物,他们那种学习钻研的精神、锲而不舍的信念、勇于把握住难得的机会,从小处着手,踏踏实实的创造出了对人类科技发展做出卓越贡献的'Linux(Unix)系统,他们的种种,都值得我们去深刻反省、刻苦学习、传承并永远发展下去。

查看ip地址和重启网络服务是我学的第一个命令: ifconfig eth0、ifconfig eth0 IP地址、service network restart。了解到远程登录软件可用xmanager。

secureCRT是我们常用的,安装好后利用其登录到了Red hat Linux,需要知道Linux主机的ip 地址。徐老师为我们介绍了重要内容:SHELL,即运行程序的程序,如echo $$SHELL可查看SHELL的环境变量是csh还是bash。指令pwd可查看当前所在路径,passwd:更改Linux下的密码,仅限root用户有此权限,当然我们是利用虚拟机VMware程序来运行Linux OS的,懂得了如何设置虚拟机的网卡设置、暂停、恢复、全屏等。

简单的学习后进入Unit 2,命令行的句法让我懂得了用法规则,一系列的命令功能强大:

date 显示当前年月时间星期之类的;

more指令与less重要但不常用;

cat用于查看短小的文件内容,常用!

mkdir命令用于在当前目录下创建新的目录;

ls 显示当前目录下所有文件;cd 更改文件路径,如cd 、cd . 当前目录;

rmdir 删除空文件夹;

rm指令很强大,用于删除空目录及非空目录下的指定或全部文件;

man 真男人,帮助手册;

history指令用于显示编写过的命令集,以history 序号 可显示序号所指命令;

echo回写命令,很重要,我需要继续学习;

exit 指从多重SHELL退出来。

大家都在看