心得简单来说就是个人的感想与体会,我们要认真对待自己笔下的心得体会,叁五范文网小编今天就为您带来了学习嵌入式的心得体会7篇,相信一定会对你有所帮助。
学习嵌入式的心得体会篇1
一、如果非常多人都想做linux,那么就要对linux要比较熟悉。这个熟悉不是说对内核,对代码有多了解,而是至少要会基本的操作,非常难想象让一个连编译程式,编辑文本文件都非常困难的人去弄嵌入式的软件吧。总之在进入嵌入式这个领域之前要对自己评估一下,看看自己是不是准备好了去学习嵌入式相关的东西。
二、要舍得花钱买研发板。公欲善其技,必先利其器。也就是说,理论上可能掌控了非常多,不过不去实践,那只能是纸上谈兵,这样是无法学好嵌入式的。弄个研发板自己摆弄摆弄,即使什么都不懂,也能按照说明书把厂家给的程式下载到研发板上运行运行,先知其然,然后再通过具体的学习知其所以然,这样能避免学习中的枯燥。目前市场上研发板的种类繁多,相同cpu的板子价格却相差非常多,令非常多人都不知道怎么选择购买。我的看法是,尽量买大厂的产品。因为在初学阶段学习资料少是个非常头疼的事,非常多时候都是无从下手,不知道怎么去做,那么随研发板附送的资料就非常重要了。大厂技术比较强,附带的程式都是能在板子上运行的,例如我买的优龙st2410这个板子(不是广告啊),光盘上带了一个bootloader个2.4.18的内核,更有一个cramfs,这些程式的原始码都是厂家事先做好或修改好的,完全适用于初学者使用。而有些实力不行的小厂家的资料不齐全,我们学习的时候需要自己弄bootloader什么的,那入门就非常难了。不过大厂的板子都非常贵,大家能根据预算来选择适合自己的研发板,不过无论怎样,在学习上投资都是值得的。
三、不要事无巨细的学习,要有明确的目标。我最开始给自己制定的学习计划是:学习arm体系结构—>学习arm汇编—>自己移植bootloader—>自己移植kernel—>做应用,不过不久就被我否决了,因为这个过程实在是太枯燥太痛苦了,在学习资料少,没人指导的情况下根本无法进展。于是我决定使用厂家的代码来“玩”研发板,自己弄些应用上去。先是完全使用厂家给的bootloader,kernel,cramfs。之后发现cramfs中的一些控制linux初始化的文件不符合我的需求,于是修改cramfs,删除了qt,修改了网卡初始的ip地址,安装到板子上能运行了之后就开始尝试做一些应用,比如helloworld这样的程式。最后移植了一个mpg123到板子上。完万能在不知道原理的情况下来使用板子的一些功能,等熟悉板子了再回头学习其中的道理,这样就容易一些。学习嵌入式就是这样,根据问题来选择学习的内容,否则会非常盲目,最后就失去信心了。
四、要有耐心。不能否认,在学习一门自己完全不了解的技术是非常烦人的。嵌入式的复杂在于他的交叉性。也就是说为了研究某一个嵌入式的问题,你有可能得学习非常多其他的知识,比如操作系统,编译,体系结构等等,那么对于这种情况需要我们有足够的耐心。我在交叉编译mpg123的时候前几次无论怎么修改makefile都无法编译成功,最后我发现我用的arm—linux—gcc是2.9版本的,比较老,于是我换成新的3.4.1版本,就ok了。
以上是我初学嵌入式所获得的一些浅显的经验,基本都是基于软件方面的,硬件的diy我就不行了。希望我的经验能给大家一些帮助。
学习嵌入式的心得体会篇2
这个题目很大,给人一种感觉我好像很成功,其实不然。实际上自己水平不高,甚至很低,但是做过了一些曲折的学习道路,同时把自己真实的学习历程表达出来,希望对后来者有借鉴的意义,甚幸!
工作三年、几成废人!
我xx年毕业于华中地区的一个理工科大学,专业是机械电子,我当时已经签了一家内陆某个省级机关工作,家里八辈是农民,并且很偏远,能够进入这样的地方是祖坟有风水。但在毕业前夕有个进入it的机会,我本想进去的,家里人极力反对,阻力可想而知。同时要交4000元的违约金,对我来说是天文数字。大学里的费用很多是借的,几乎将近一半的费用是在大学勤工俭学挣的,为了省钱,高中一个学期回家一次,大学一年回去一次。并且我个人也有特殊的人生背景(悲景更确切),这里不多说了,写十篇也写不完,同时偏离主题。这样我就参加了工作。一张报纸一杯茶的日子,几乎下班后有种很空虚和恐慌的感觉。在工作中虽然是与自己专业有点关系,但是很少。专业几乎荒废。我自己也思考,如果再不出去,自己将会成废人,只好让国家养了。两年后决定出去,但是几成废人,谁要呢,只好到学校去镀金。这是中国教育和社会的悲哀!
至于专业就改为计算机方面,听说好找工作,我说实话不是很对计算机特别感兴趣,生存第一需要。不要笑我,哈哈!
考研成绩出来,超过了国家线几十分。那个方向要两个,我第三,但是那年非碘,不面试就按分数来排,自然我落选了。其实给我面试机会也不一定要我,哈哈,自己几斤几两很清楚。
最后调剂到另外一个学校,交钱,咬咬牙,交吧!现在仍然债台高筑!
进入学校前夕为什么要把这段列出,看后就知道了。
单位有网络,经常上网查些英语资料,在那里唯独英语没有丢很多。于是我就在网上查资料,学什么好呢,最后确定学嵌入式把,听说跟硬件相对比较紧密!而我在大学里多少学习了数字电路,单片机等,所以多少也有所利用,不会真的一无所知。当然在这之前也自学过数据结构,计算机组成原理等。c语言在大学就学了。哈哈这就是我的家底。
我知道自己的基础差,于是我就拿操作系统,数据库、数据结构、c++来看,机关有这个好处,空余时间多,于是平常就看书,很痛苦,没有人请教。
另外就上网到论坛上去,我就到各个专业的技术论坛,其实是电子论坛和嵌入式论坛。我几乎没有发帖,几乎把几个大型的出名的论坛的帖子翻遍了,虽然有很多重复的,我才知道嵌入式是个什么东东。这些帖子对我以后的学习产生了极大的影响。
最关键两点:
1、嵌入式是什么?
2、嵌入式需要哪些知识?
知道了这两点,好办!我就开始规划学习路线。计算机的基本理论不能丢,于是重点看组成原理,数据机构,操作系统、c++。同时论坛上了解到,实时操作系统ucos是一个很好的嵌入式操作系统,对初学者很好。于是我就买了一本书,但是代码在电脑里调不通,网上也有很多相同的问题,我就看书,分析代码,一遍不行就两遍,三遍,这样才看了入了门,才知道什么是进程。原来看操作系统书时,根本就不知道进程是个什么东西。
在这段时间掌握的东西不多,但是,对我以后的影响很大,我想起了大学时一个同学跟我说过了一句话:大学里最重要的`不是学到了什么,最重要的是学会怎么学!大概是这个意思。
进入我的避难所对我来讲,再次进入大学不再是大学,而是避难所。希望这次进入给我喘气和养精蓄锐的机会和时间。我是这样认为和实践的。
在学校我有三件事:上课,上图书馆,上网。
对于上课,学校开了很多课程,非常好,很多是名人名师讲解,于是很多同学都想学,都去听。我也考虑过,最后放弃。我是这样认为的,时间是有限的,什么都想学,什么都学不成。于是我把我自己学的课进行了分化,一般的课程通过就行,重要的一定好好学。我希望不要什么争论学习课程多和少的问题,这仅仅是我的看法。所以我的成绩应该是很差的。分数低。好在后来的单位没有要我的成绩单,否则就惨了。
我个人感觉是上图书馆的效率比在寝室里高多了,这是我的经验。
学习嵌入式的心得体会篇3
嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、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,没有办法,时间也是不够,心有余而力不足,我不是在帮他做广告,虽然要花钱,我觉得算不错,至少自己不用去整理和花大量的时间去找资源,当然如果网上有的下,你网速和硬盘都够的话,我建议大家自己网上下也好。想想我自己该开始学的时候,那时视频资源少之又少,我买书和买视频至少花了几千块,但是我觉得那很值,至少我现在赚回来了很多知识。
最后,希望这篇文章对热爱嵌入式,想致力于嵌入式开发的朋友有所帮助。送给大家一句简单而又朴素的话,坚持就是胜利,贵在坚持,也可以看看如何坚持嵌入式学习!
学习嵌入式的心得体会篇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
对于学习,我们应该去适应它,而不是让它来适应我们。
那我们应该怎样去适应学习呢?我觉得我们应该做到以下三点:
一、学得平衡。
学习,首先要做到的就是平衡。不能说你喜欢这一学科,就一味地学习这一学科,而放弃其它学科。但也不能因为你这一学科较弱而总学习这一学科,自己较强的学科却不去学习。这些都是不平衡的现象,到最后只会是两手空空。我们应该做到科科必学,科科平衡。当然,如果自己的弱势学科实在是补不上,我们可以采取“扬长避短”的学习方法,让自己的优势学科学得更好,以弥补自己的不足。
二、学得透彻。
学习,就是要有敢问敢钻研的精神。我是一个提倡“不懂就问”的学习方法的人。要想学得透彻,不光上课要认真听,课后还要找出不懂的地方问老师,与同学探讨,力求把每一个不懂的地方都弄懂,每一个知识点都学懂。不能将不懂的知识都藏起来,要记住把不懂的知识变成为自己的知识,是一件有利于自己的事。
三、学得有趣。
当你把所有的知识都学懂之后,你会发现,原来那一道道如拦路虎般的练习题都变成了笑脸在向你招手。学得有趣就是要在学得透彻的基础上更进一步。把做练习题变得像做游戏一样有趣,那你的学习之旅就会变得既轻松又愉快了。
以上所说的是学习方法,接下来该说说学习态度了。学习态度对于学习也是非常重要的。我的学习态度就是:考得好,不能骄傲,心中要牢记“骄兵必败”这句话。考得差,不要气馁,振作精神,鼓足力气努力冲刺。
学习是一件困难而又轻松的事,只要你掌握一定的学习方法与态度,就能化难为易,轻松学习。
学习,我曾经认为是一件很苦的事情。但是,后来我找到了方法,兴趣,斗志,激情,我终于再不认为学习是一件枯燥的事情了。
英语比起其它语言来说,应该算是最容易的。对于英语的口语学习我想说,单纯的背诵或者单纯的练习各种对话都是不够的,而要两者结合起来。最后还是想说一句勤奋比任何技巧方法都重要,因为学英语贵在坚持。
语文呢?学语文要学会熟读课本的每一篇课文,我们只有把课文读透、读熟,课文中的知、情、意、景等,才自然会明白。古人云:“读书百遍,其意自见。”就是这个道理。当我需要记忆某些知识点,课文的时候,我采用最原始的方法:抄!抄一遍没有记住,我就抄两遍,两遍不行,三遍……直到我记住为止。很多基础知识,我抄了八、九遍。尤其是重要的知识点,决不能掉以轻心!学习没有懒可以偷!书山有路勤为径,学海无涯苦作舟!这就是真理。不能因为自己背得比别人慢而放弃背诵。
数学呢?我不是一个智商很高的人,但也不是一个头脑反应特别快的人,不仅我的家长这样说我,还有许多教过我的老师也这么说。但他们也曾告诉过我“太聪明的人不一定能成功,聪明反被聪明误!既然你不是一个智商很高的人,你就必须比别人更努力更刻苦更认真,才能取得优异的成绩。”我听从了他们的话。不是有一个成语为“笨鸟先飞”吗?那就要做到课前预习,课后及时复习。不要怕别人笑话你笨!只要有我不懂得地方,我就去问,问同学问老师。我不在乎别人怎么说我,不懂就是不懂,没有必要因为怕别人说“笨”而放弃问问题。孔子不是说过,“知之为知之,不知为不知。”吗?今天,这个问题如果没有弄懂,明天那个问题也没有弄懂,时间长了,问题就积累多了,就会感到学习越来越艰难了,自信心也随之消亡了。
我今天写这篇文章的时候,总结了几条学习方法,因为有了这些,我自己才会有今天这一点点的成绩。
1、学习要有激情!
只有把学习当作一件快乐的事情来做,才会有学习的欲望,才会有学好的愿望。
2、学习要有斗志!
每一个人在学习的过程中,都会遇到很艰难的一段路程,你不能因为落后而放弃!人要有斗志!同在一个屋檐下,同一个老师教,凭什么别人就比我成绩好?比聪明,我不傻;比身体,又不会残缺,为什么别人可以考出优异的分数,而我不能?都是人,我为什么要输?不!我告诫自己:我不能被别人打败!当我们哪一方面比较差时,就要想出“点子”来解决它,提高它。
3、学习要有目标!
每一个人都应该有自己的目标。目标不一定能直接实现,但就像每一个运动员都梦想当冠军拿金牌一样,目标,那是一个奔跑的方向,至少它让你知道你应该向哪里跑。首先,把目标拆分为几段,然后看看自己每一次考试的成绩离我们设计的目标还差多少?如果超过了预计目标,就把目标往上提高一点。如果没有达到我们的预计目标,就要检查自己,为什么没有达到目标?这样,既可以激励你奋进,又可以让你感到学习的快乐!
4、不要轻视你的老师!
这是我最深刻的体会。千万不要轻视你的老师,尤其是进入了总复习那段时间,老师反复讲的是最基础的东西,很多同学感到很烦躁,很无聊。于是,根本不听老师讲课,自己埋头做参考资料。你想啊,老师们经验丰富,他们对要考的题型,太熟悉了。他们目睹了太多太多的人,因为某一个小失误而失败。可以说,他们对我们常犯的错误太了解了。老师们之所以在课堂上反复强调,就是因为每一年都会有同学掉入这些看似很简单的陷阱中。所以,你千万不能轻视你的老师。
5、不要轻视课本!
课本很重要,你必须能很熟练地掌握它,就如同我们熟悉乘法口诀一样。所以,我们必须做一个对教材相当熟悉的一个人。
6、不要放弃自己!
人不能轻易放弃自己,这很重要。没有谁是一帆风顺的,每一个人都会遇到无法预知的困难,但不论遇到什么都不能放弃自己。一旦自己放弃了自己,一切就完了,勇敢地面对困难,挑战自我,就一定能走出困境!所谓:自助者天助!
7、不要放纵自己!
每一个人都有惰性!当我们想玩时,应该理性的重复地告诫自己:不行!不能再玩了。该好好地学习了。然而,真正留给有效学习的时间却不多。要认真地对待每一个问题。不懂,就一定要问老师。千万不能似懂非懂!很多人在做题的时候,总是会有这样的心理:这道题,不会考!于是,我们放过。那道题目也不可能考,于是,我们也放弃。有时候是觉得太难了,无法做下去。遇到这种心理的时候,就要告诫自己:一切皆有可能!当你无法突破自己的时候,千万不能泄气!每天对着镜子说:我能!我行!我一定能行!
8、不要读死书!
思维是需要调剂的,不要以为一天到晚读书就会有好的结果,书呆子是没有用的。人要学会快乐学习!一定要有一本你喜欢读的书,一个你喜欢的运动或者爱好。课外读物很重要,能丰富你的知识。要积极地参加学校的各项活动。每个人都有自己的爱好,我对学校和班级的活动最积极了。反倒是那些不喜欢参加活动一门心思读书的人,这一次却没有考好。运动是最好的调节剂。
学习,学习,再学习。学习不仅可以使你变聪明,而且可以改变一个人的气质!
学习嵌入式的心得体会篇6
从实习到现在搞嵌入式开发快一年了,蓦然回首好像一年过得挺快,挺顺利的。细细品味,发现这一年还是有很多值得回忆和总结的东西。至少这一年看书挺多,大概二十几本,当然和那些一年看一百多本书的人没法比,但是我已经超越了自己。这是我大学毕业的第一年,初次走上社会,很想一展身手,可是。.。.。其实也不用可是了,和很多朋友一样碰了很多钉子,现在我和老板的关系就挺一般的,只是我性格还不错。呵呵~~,做优秀员工看来还得慢慢学。
今年最大的收获就是做了一个半项目,是在uclinux下面跑的。半个是snmp-agent的实现,因为我去的时候snmpd已经跑起来了,我只是实现部分管理功能;一个是基于web的管理系统,使公司的主打产品微波通信设备上网。这个项目是我一手策划,一手实现(界面设计是一位女同事,很优秀的程序员),从中学到的东西也最多,感情不可谓不深。
snmp即简单网络管理协议,其实一点都不简单。在我所知的网络协议里面,它仅仅比osi的cmip简单一点,而cmip直到现在还没得到广泛应用。我们能够实现snmp-agent不能不感谢carnegiemellon大学免费发布的ucd-snmp软件包。它使得开发人员专注于实现对特定设备的管理功能。
我在项目中的工作主要是扩展mib,实现相应的管理功能以及网络功能的扩展。我们公司的mib库比较庞大,但是程序运行还是挺快的。因为ucd-snmp软件包中大量使用回调函数,而且它将mib树以二叉树形式表示,但是每个结点不是单个的mib结点,而是一个表,包括了多个结点。回调函数和两层表示法的使用是操作快速的主要因素。
基于web的管理系统我原本是打算在设备外实现snmp-manager的功能,因为设备中已经嵌入了agent。这样管理人员可以在世界各地通过登录公司的管理平台,实现对所有设备的管理。但是老板想在设备中嵌入一个管理系统,可以通过管理单个设备就行。呵呵~~,这样工作又轻松了一点,就按老板的意思做了。
我用的http服务器是boa,它比现在市场占有率第一的apache速度要快。目前还只支持cgi,我就用c写cgi程序,古老了点。但是在开发过程中感觉用cgi比用现在流行的asp,jsp要爽,可以随心所欲,哈哈~~,而且这也是用cc++语言的优点。cgi程序很简单,它的输入就是标准输入,它的输出就是标准输出。boa在uclinux上面跑总要出点问题的,出问题好,出了问题我就能找到问题,一来一往,我对socket编程,i/o多路等编程技术了解也就越来越深了。
在linux下面搞了一年,不爱上linux都难,个人认为软件开发人员在linux下面进步是最快的。那么多优秀的开源代码供我们研究,犹如每天与世界上最优秀的程序员打交道,进步于不经意间。哈哈~~。正所谓“熟读唐诗三百首,不会作诗也会吟”。gcc编译器的优秀不用多说,我觉得写makefile也是很件开心的事。不推荐程序员搞开发都用ide,隔靴捎痒很不爽。但是linux缺点也很明显,听歌、看碟、玩游戏不如windows。恰巧公司的电脑没音箱,干脆我就懒得用windows了。
用linux而不讲开源是不道德的,我们程序员享受着开源的好处,自然也要为开源做点贡献。我开发的所有软件都开源,但是我也有个“怪癖”:不喜欢别人在我代码未完成的时候问我要源代码。
做嵌入式开发一年,稍稍有点心得。总结了一下,有以下几点经验:
1、不要玩linux。这一点主要是对像我这样在linux下面开发的程序员来说的。因为linux对程序员的吸引力很大,但它下面可以直接用的软件还是比较少。于是我们总想到网上找一些开源的软件装到我们的机器上,从无到有让人很有成就感的,呵呵~~。要是装上的不是最新版本的还不满意,于是又开始忙升级。在windows下这个过程大概没什么意思,全都next了。在linux下就不一样了,直接拿过来的源代码很多编译都不能通过,最新版本更是这样,得我们自己改,而且往往时改了又改。这个过程很花时间,我就在这方面浪费了很多时间,本来有个月工作比较轻松,打算阅读linuxkernel代码(也想成高手,呵呵~~),当时我机子上没有好的阅读工具,于是先弄了个sourcenavigator,觉得不够又装了个openoffice,然后又找来了几份不同版本的kernel代码。结果一个月过去了,一个文件夹还没看完。后面工作紧了,只能把看kernel当休息,直到现在才粗略看完fs,mm两个文件夹。
2、不要满足于c语言。c语言很优秀,也很简单。程序设计能力不等同于用c语言能力。嵌入式开发程序员要有扎实的数据结构基础,要积极的学习操作系统,积极的学习网络编程,要是想进行驱动开发还需要积极的学习硬件知识。
3、了解几种芯片体系结构。嵌入式不像pc领域x86一统天下,在嵌入式领域arm、mips、m68k等各显神通。例如arm7是没有mmu的,uclinux在它上面跑是最合适了,但是没有mmu我们也必须实现简单的mm功能,同时没有mmu一些常用库函数是不能实现的,这些嵌入式开发程序员必须要了解。
4、编写无错的c程序。关于这一点建议阅读stevemaguire的《writingcleancode》。我对ms没有好感,但这不影响我对ms里面大牛们的尊敬。嵌入式的调试是非常麻烦的,很耗时。虽然有gdbserver这类工具,但是你用的开发工具链中不一定包括它,而且就算用上了调试仍然是很花时间的。所以要是不想天天通宵调程序呢,那就要时时以编写无错程序为目标。
5、了解一点编译知识。这对编写高性能程序很有帮助。
6、学习设计模式。设计模式一般在高级语言中讨论较多,但是好东西应该大家一起分享。学习设计模式对提高我们的设计能力非常有帮助。用c语言也可以实现一些模式思想,例如我们常用的回调函数,就可看作是command模式的c语言版本。
7、要有前瞻性,要积极学习新技术。目前的嵌入式开发一般都是将pc应用加以剪裁,移植到嵌入式系统中。但是随着通信技术的发展,ipv6的广泛应用,设备上网是大势所趋。许多新技术有可能在嵌入式领域率先应用。把握住这个趋势,嵌入式程序员大有可为。
现在很多公司招程序员要求有嵌入式开发经验,其实本质上嵌入式开发和我们平常的开发没什么不同,只是要求严格一点。我写下这些希望对学习嵌入式开发的朋友们有所帮助。
嵌入式arm软件开发设计流程
一。项目总体任务描述:
设计gps/北斗接收显示终端平台,为数据的接收(nema格式),处理,图形显示等后端应用软件提供平台支持。
二。项目功能要求:
1、以pxa270微处理器配合lcd模块开发出独立的接收显示终端硬件平台;
2、在该硬件平台架构linux,
3.wince操作系统
三。嵌入式软件开发上手知识储备和开发流程
(注:由于我们开发时买了一个样机,这样可以节省我们项目开发中的许多时间和降低了开发的复杂度,我们在看资料的时候,作为学习时,可以认真仔细的看每个细节,但作为开发时,有时会碰到一些无关紧要的细节问题,这时可以采用黑匣子办法,只要会用就行了,我的理解是做项目时并不一定需要知道每个具体细节,要学会分清“系统学习”和“实践应用”的范畴。比方说,操作系统,我们只需要拿别人的一个样板来修改达到自己需要的要求就可以,而没必要自己去编操作系统,一般来讲,一个人自己去编写那东西是不大现实的。所以以下我都是从实用的角度出发,总节我这段时间arm的学习体会,从而让对嵌入式不了解的新手如何迅速掌握开发中的重点以及达到开发的能力。总之,我的理解是搞开发就是大量广泛看好的资料,一份好的资料可以节省你开发中的好多时间。不必等资料都看完再动手,那样时间不够,可以一边动手一边学习资料,需要什么方面的知识,不懂的当即查下看懂即可。)
嵌入式软件开发整体流程:
uboot启动代码的编写->各模块驱动程序的开发->操作系统的移植->应用程序的开发
以下是上手的一些基本知识储备:
1)汇编语言的学习可参见文件夹“我的arm”->“arm汇编指令”集,不需要都掌握,只要知道有哪些指令功能,用的时候查阅就可以了。这部分的学习对用汇编编写的“uboot”启动代码的理解比较重要,启动代码的详细介绍可参见“studyarmboot”这本书,里面讲的非常详细。(注:如没特殊说明,资料指的是都是“我的arm”文件夹里的资料)
2)c语言只需我们本科学的就够用了,大致过一遍应用时去查就可以了。没必要再深入系统的学习。搞wince操作系统移植的同学有必要把c++快速学一遍,掌握c++的三大特性(抽象性,继承和派生,多态),因为操作系统wince的程序代码都是按c++的编程格式组织起来的,如果不懂c++的那些特性,比较难看懂程序。这方面的资料请看见文件夹“vc++学习”,里面资料相当详细。
3)各模块驱动程序的开发。这方面首先要熟读芯片资料,要理解软件程序是怎样控制硬件的。(简单的理解就是往寄存器里写不同的值以驱使硬件实现不同的功能。)刚开始不必把芯片中的每个模块都搞透,只需熟悉一些常用的模块即可,比方说串口,i/o口,iic总线,lcd驱动控制和显示等等,这些跟我们当前的项目都是紧密联系的。看各个模块芯片资料的时候可以对照示例程序结合起来看,首先要理解这个模块的工作原理,然后看程序中每个寄存器所设的参数,边看边思考这些程序如果我用在其他的地方该如何修改。其他的模块的学习都是触类旁通的,关键是思路,可以把本科我们所做的单片机,dsp等实验联想结合起来。资料可参见文件夹“44b0实验资料”和“实验指导书”。
4)操作系统的移植。主要是理解操作系统的一些基本概念(如对信号量,锁,进程同步,进程间的通信,临界资源使用,驱动管理,文件存储等等),然后知道这些概念在程序中是如何反映出它们的功能的。我们以ucos-ii这个操作系统作为理解学习,具体资料参见文件夹“ucosii-en”,里面资料讲得非常详细。项目中要求的是用wince和linux两套操作系统,由于我们买了成套开发板,代码都有,我们要做的工作就是对它们进行修改和移植,所以只有当你了解了操作系统的一些基本概念,你才可能对它们进行修改。linux开发难度要大些,不仅操作复杂些,而且开发用的命令行的方式,这方面的资料可参考文件夹“linux学习”和“uclinux核心(中文手册)”,由于嵌入式大部分用的是嵌入式linux操作系统,从学习的角度来讲,这方面要多下功夫。
至于应用程序的开发,那就要看具体的应用了,这个难度不是很大。
学习嵌入式的心得体会篇7
因为这次病情,我们不能正常开学,为了学生能正常学习,进行了线上教学。 开始之前,很是担心。因为家里什么都没有,没有黑板,没有道具,只有一台电脑,还非常得卡,我该怎么和学生上课,这样上出来的课有效吗?在进行了第一次地直播测试之后,我就更为焦虑了。
测试得时候,家长纷纷反映非常卡,听不到老师说话,如果直播上课,我一年级一次联播四个班,学生这一节课就是在浪费时间啊,不仅什么都学不到,还会对以后的课堂缺少了兴趣。后来,通知我们可以先把视频录下来再转播,我松了一口气。但是我们老师身上都还有很大的重担,需要提前备课,录课。我们都忙碌了起来,学习怎么录课,准备上课的教案,ppt等,但是录出来得视频实在是不能入眼,我自己都不想看第二遍。这时候,我们英语组韩航发现了非常好的资源,找到了微课视频,我们都觉得这个视频能解决当下的问题。于是,郝老师就去商量看我们能不能用这个视频。果然,郝老师给我们带来了好消息,解决了一个大难题。 后来,又接到通知,学生可以在家通过电视,手机等统一学习河南省的优质课堂。
真是一波三折啊!这样的话,我们就需要更加认真对待学生的学习反馈问题,布置什么样的作业,怎样才能确保学生学习的效率,我们英语组内也详细地讨论了应该布置什么作业。但我依然非常担心学生学习是否专心,作业是否能按时完成。
第二天与第一天相比,提交作业的人数变少了。我就在想怎么样才能让学生和家长重视起来了。坚持,我可以从这点入手,我就在周三直播地时候讲了这点,果然,那天作业完成情况比第一天还多了一位同学,我非常高兴,更为重要的是,我要坚持提醒同学们不要忘了坚持才是最重要的。 在线上教学的这段时间,我能看到,家长也是付出了很多时间。因为网络不稳定,太卡,手机看不了学习课堂,家长在群里进行转播。
在孩子看视频学习的时候,家长也是陪伴在孩子的身旁,提交作业的时候会听到家长提问和纠正的声音。这段时间,学生,家长和老师都围绕在电视旁,手机旁,时时刻刻都在为学习而操劳。 武汉加油,中国加油,我们都能挺过这段艰难的时光。
会计实习心得体会最新模板相关文章: