arm嵌入式学习心得1 本人大学学的是电子信息科学与技术专业,其实这个专业和嵌入式没有多大的关系,要说有关系就是简单的讲了下C语言语法,学完之后还不知道什么是C语言,只记住了,char,int,s下面是小编为大家整理的arm嵌入式学习心得3篇【优秀范文】,供大家参考。
本人大学学的是电子信息科学与技术专业,其实这个专业和嵌入式没有多大的关系,要说有关系就是简单的讲了下C语言语法,学完之后还不知道什么是C语言,只记住了,char,int,string等占几个字节,if,for,while循环什么的,感觉也就能算一些小学就会的题目,全国计算机等级二级也就糊涂的过了。
我这个专业没学过C++,一开始不知道什么是向对象,什么叫面向过程,这可能让大家笑话了。不过这说的是实话,大学的时候比较喜欢动手,喜欢硬件方面的东西,也喜欢看书。在大一的时候就听学长说,单片机很难学,在没事的时候就从图书管借了本关于51的书,一开始还真是不怎么懂,然后硬着头皮去看,当我把51的结构看完了,就不像一开始那样一头雾水了,自己在纸上把51的结构图默画一遍,然后再把各个寄存器功能写一下,各个功能口的结构也画一遍,然后就不觉得51有什么难了。其实有些时候不是这个东西你不会,而是在不会的时候自己先告诉自己这个太难了,自己先放弃了。我们学习51芯片,是为了以后的打基础,知道是怎么通过配置寄存器来实现功能。
大二下学期的时候,我们开了51的课,这个课几乎就没怎么去,因为我认为没有必要去听自己会的东西了。后来听别人说avr的资源会比51的丰富的很多,所以就想试试,看看有什么难的,就从网上买了本马潮老师《AVR单片机嵌入式系统原理与应用实践》,一边看书,一边想自己画一个板了,一开始想实现一个点阵屏,实现滚动效果,后来想想做个板也花不少钱呢,为什么不多加一些功能呢,还能多学到些知识,所以就加了温感,红外,铁电存储器等并把所有的扩展口都扩展了出来,备以后用,那时还挺自豪的呢,同学们都很羡慕,不过现在想想其实也没什么了。
大学也听说过嵌入式这个词,不过不太明白是什么意思,09年的时候从网上找到中嵌视频,有四张DVD(大约13G),下载下来后,从头到尾的看了一遍,没什么印象,只记得讲一些不知所云的函数,然后莫名其妙的讲怎么使用那个44b0的开发板,不过听完了,还是有很大收获的,就有一种想装一个linux的冲动,我是大二下学期才有的自己电脑,不过电脑的配置比较低,1g内存,跑虚拟机就像个蜗牛,所以就想着怎么才能装个linux,自己用XP习惯了,如果全换了又舍不得,那时从书上知道linux的文件系统和windows不一样,只有一个根分区,所以也害怕一装linux全盘就被格式化了,不过最后还是欲望战胜了担心,买了张redhat9的光盘,小心的装这个系统,里边的英文也不是太难,还是知道大概意思的,所以一步步的装,最后装到我的硬盘的最后空间,重新启动,竟可以选择进入哪一个系统了,从这之后,自己就不害怕怎么装系统了,应了那句言,纸上得来终觉浅,绝知此事要躬行。所以我认为,买一个开发板是完全有必要的,拿到实物操作一下就不会感觉太抽象了。
后来也想学学arm,但不知道arm是什么东西,所以就买了本《从51到arm》,讲的是关于arm的大体结构,看完后感觉,原来arm就是一个速度更快,接口更丰富的单片机啊。
如果想做linux设备驱动的同学应该对arm硬件有一些了解。如果对驱动不感兴趣,完全没有必要去看。交叉编译器会帮我们做好这些事情,他比我们更了解arm结构。
大三下学期开始准备考研了,所以自己这些兴趣就先放下了,报的北邮的信通学院通信专业,当时就是想一定要上个好学校好专业,也没想太多,结果考了的成绩差了点,没有被录取,也不想调剂一个二流的学校,然后就参加工作了,工作中每天都用的到开发板,当我看到一个小板上还可以跑系统的时候感觉很不可思议,以为要很大工程。后来边工作边学习,每天都要看电脑看到眼发疼,晚上也都差不多十二点时才睡觉。感觉到累,不过也感觉到自己在进步。
闲话有点多了,说了很多都是自己大学那点破事。
听很多的初学者说不知道从哪里开始,学习嵌入都要学哪些东西,从网上搜了一下,一大堆的东西要学,一下就推荐十几本书,说看完这本书怎么怎么样,看完那本书怎么怎么样,一下子就给初学者给吓住了,其实完全没必要把网上的那些东西全部看一遍,那样又费时,又感觉工程太大,让初学者没有信心去把每一种都看完。网上说的些方面都要知道,不一定全部都掌握,我们可以退成求其次,每一个都知道一些,当然会的.越多越好。今天学点这个明天学点那,换着样来也不会觉得烦。而且还能感觉到每天都有收获。
下面给嵌入式初学者一些自己的我个人建议。
1、嵌入式涉及到很多的基础知识
c语言,关于C语言要知道基本的语法,什么是结构体,什么是共用体,有什么区别,不用强记一些二级考的东西,因在实际中用的很少。
c++要知道什么是类,怎么定义,继承,接口,要深刻理解,当然基本语法也是必不可少的。
操作系统原理也应该知道基本的原理的,我记得我大学没这个课还是去电信学院蹭别的专业的课呢,后来学习发现很多的东西都是在这个课上学到的。什么时间片啊,任务调度啊,都是在那里知道的。
Linux基本命令的使用(vi编辑器必须会用,因为在终端改文件的时候只能用这个),我们现在很多的人都习惯用鼠标了,很少用到命令,我们学习嵌入linux可要改改这个习惯了,linux用命令操作一是效率高,二是功能非常强大,远非图形界面能比的了的,其实我们用图形界面的操作都要转化为命令传给硬件的。
Linux文件系统的管理要清楚,哪个目录存放是什么东西,有什么用,文件权限管理等
Shell编程也要了解一些,在这给大家推荐一个教程,周朝剑的 shell编程,也就七八讲吧,讲的很全面。初学者看前4讲就可以了。
Linux设备驱动的架构要了解,初学者可以以米尔的MYD-AM335X开发板上的led驱动分析一下,结合原理图和linux设备驱动相关书籍把每一行代码都分析明白。关于驱动给大家推荐一本书《LINUX设备驱动程序》*电力出版社出版的,很经典的,初学者看可能看不太明白,不过要坚持看,最次也得把前6章看完了。
2、看书不要希望一次就会
一次就明白是什么意思,也不要死记硬背,看不明白也没关系,以后遇到了知道去哪里去找就可以了,以后遇到的多了,也就记住了,遇到的少的,忘记也就忘记了。还有,不要直接阅读linux内核源代码,看一些自己把头撞破也想不明白的事,会打击初学者的积极性,要循序渐进,今天学个做个led,明天做个串口,后天说不定就做硬件编解码了。
3、你可以不接受培训,但是不能不买开发板
如果你想学习嵌入式一定要买块学习板,现在的开发板很便宜了,给我们初学者减轻了很多经济负担。看再多的视频,看再多的书,也不如自己动手试一下,看着很简单的东西,做起来就可能遇到很多的问题,遇到问题找到原因,解决问题,只有这样才能学到东西,记得我第一次写led的驱动,想自己试一下,网上也有人写过相关的代码,可是自己一试,就出了好多的问题,那个led弄了我一天才把led灯点亮。所以不要眼高手低。
还有关于培训,现在的培训机构很多,讲的也不错,老师也很好,但是有一个问题,太集中了,而且学生动手的机会也不太多,记得我们公司还招了一个在北京某个培训机构培训半年的员工呢,花了一万多,来了之后也没感觉有多高,问他都学了什么,也就是我前边说的那些基础知识,很多的东西还是不知道的,照着书弄个helloworld模块驱动两天没搞定。不是培训不好,但我个人见解效果并不是很好。记住:只有自己动手做过的东西才是自己的。
现在买一块开发板很便宜,飞凌的OK6410的开发板就不错,源码完全开放,而且资料也很丰富,完全能满足初学者学习用,有人说友善的板子也不错,我个人觉得友善的板子不错,但是不适合初学者,因为他的很多的东西是不给代码的,用过友善的板子的同学经常有这样的痛苦,想学一个东西,去找他的代码的时候,却找不到,很多友善提供的代码中很多的都是封装好的,只提供给客户一个库,初学者想要找代码的时候就不知道怎么办了。
4、不要好高骛远,要脚踏实地
对于初学者,还有一点小建议,我们拿到一个开发板,很兴奋也很激动,想法自然也很多,想用开发板实现自己的这个想法,实现那个想法,然后又不知道从何下手,然后就去论坛中发一个贴,“那个什么什么怎么实现啊,哪位大侠能详细说一下啊,跪求!!”然后等着别人去回复。见没人回复就抱怨。有想法是好的,我们要实现自己的想法也是有前提的,首先,我们对这部分知识了解吗?如果不了解就去google一下(最好别用百度,不太好用),了解了一些,也就大概知道要怎么做了。如果再遇到问题,再去发贴问,这样也显得咱们有水*。比如自己连串口是什么都不太清楚呢,就问串口通信怎么做啊,就是人家把代码给咱,咱也不明白是怎么回事啊。
5、多看代码,多写代码
见多识广,熟能生巧。多看代码,要从代码中读出代码的意思来。自己*时也要多写代码,多练习(这一点我做的不好,写的少)。
写完已经晚上两点了,思路有些乱,有些也是个人的见解,在有些人看来可能是错误的,每个人有每个人的学习方法,但是我们的目的只有一个——希望我们学到更多的知识。
——嵌入式学习心得体会10篇
研究嵌入式系统已经有快两年的时间了。很庆幸自己当初选择了嵌入式系统作为自己的研究和职业方向,可以说它是一种催化剂,让我自身的修养和研究能力都有了很大的提高。
在嵌入式系统的大门前,我只能算是刚刚看到这个大门的台阶,但这段小小的距离让我受益颇多,现将其中心得奉献出来,欢迎高手前辈们指正,以供刚接触的新人参考。
在写之前,想先写一句话,千万不要以为你是天才,所谓天才即胜别人N倍的人,如果你真认为你是天才,请以天才的标准来要求自己,将自己付出和别人的比例以N:1来进行。
(1)学习与生活心态
很多朋友都是在刚步入大学校门开始接触计算机或者其他。大学是一个很让人迷茫颓废的地方,可能你在高中踌躇满志,但在大学的管理机制下却心态渐糜。能够在大学(大一)里找到自己人生之志的同学有多少?目标要明确,不要得过且过,不要追逐热门的东西。
不管在什么时候,心里都要有自己的信念和理想,不要被其他东西左右了自己。要从兴趣和竞争出发,因为这才是你产生动力源的地方。学东西时,要让自己先喜欢上它,要学会享受学习它的时间,喜欢乔XXX的都知道,乔老爷子最常说的一句就是要享受比赛的时间。
因为只有你喜欢上了它,享受了它,才不会被它所产生的压力压倒自己,不要产生一种厌恶的心理。而且心态要调整,不要一味的蛮学,死学,在没有什么兴趣学的时候可以先玩几天,在回过头来,或者用其他的方式来转换。要抱着一种十年方能磨一剑的心理,扎扎实实从基础开始,不要为高速开发的一些现象所迷惑,那些都只是软件的功劳。
我个人认为搞编程,英语和数学很重要,大家一定要时时的抓,至于怎么抓那就是另外一回事了,当然其他的知识也要汲取,可以多接触点天文,地理,人文方面的东西来补充自己。转换的生活方式。要学会生活,在人的一生中,都会遇到一些很不开心的事,或者大大小小的意外,孙子兵法里面一句大意就是说,战场上要会将劣势转成优势,即最大的劣势很可能就是你的优势所在。
一个打击你可以把他变为前进的动力,不必为了一点挫折和捶胸顿足,不必为了一点小事争吵不休。空闲的时候可以躺下来看看天,你就会明白自强不息,厚德载物之理。(看到一些为了失恋或者其他而堕落的人真的很难受和可惜)。
要给人以帮助。别人有困难时或者一些举手之劳在自己解决范围内的尽力帮之,这对自己不会损失什么,相反在对方心里能够树立你的形象和增加好感。记住,给人之恩时也是给你自己铺路,这个世界不是靠你一个人可改变的。
(2)编程语言的选择语言的争论。
很多初学择,老是在学习何种语言上举棋不定,试问,*牌子有几个不被骂的,试问,世界上哪部影片没人说他坏话的?术业有专攻,各司其职,每个语言的出现肯定都有自己价值和领域的范围,不同的只是价值和领域的高级和大小。
就像高,矮,胖,瘦组成一个“型”。但是技术是进步的,这个进步也是在旧的基础上。放心,技术再飞跃也不会今天奔I,明天扣肉的迅速,在学习的同时也要时时关注整个语言界的走势(貌似哪个伟人说的与时俱进),保持一种同步曲线的前进。语言能干什么?能问这句话,很欣慰。
表明你是从基础学起才会问出这样的话来。但换而言之你一开始对这门语言调查的信息不足。庙算者胜,对自己身边的事物了解是非常重要的,这也能说明说你的教材或者教导你的人不够充分。如果是我对新手交流,我会花足时间让他明白这门语言是什么,能干什么,整个体系等等。
这样在学的时候,对同一条语句上的理解你可能跟别人就不一样了,因为你知道这门语言的体系架构,你可以从更多的特性角度去挖掘使用它。提高自己对语言阅读能力。如何快速的进步?可以告诉你没有一步登天的办法,但是也可以告诉你如何让你快速掌握你所学的技术。多读他人代码,多领悟他人思维,多给自己出难题,多几种方法来解问题,多将语言的思想和身边的事物联系起来。想想你是怎么掌握普通话的,方法就不具体说了。
编程的思维。计算机是充满诱惑的东西,很多人都说热爱计算机,那只是它的表面,你热爱的只是他的一种扩展性的东西。能学计算机我很高兴,因为计算机从某种意义上来说将空间的距离给消除掉了。这里没有流血,没有牺牲。你可以以一种艺术家的思维来塑造它,可以以侦探的逻辑思维来解决它,可以以一种战争狂人的思维来摧毁它。
你可以将你的这种思维体现在代码和整个布局里,不要惊异别人代码思维的异风,你也有自己的思维风格,你也可以,你也可以用自己代码让别人惊异。记住你学东西时更多的要体会他的思维,比如数学,微积分,离散,无数的定理,你学完以后可能永远都用不到,但是你可能有这种感觉,在你碰到某一问题时,这一问题的性质和你学到的东西很类似,但是中间就是差了一点东西,对了,这就是它思维上的一种运用,一种抽象,一种转换。
时间过的紧快,在粤嵌教育已经培训有5个月了,培训期间收获很多,也认识了班上的学习大神,经过系统的学习,老师的细心指导,我的付出努力,对于嵌入式上,学到很多实用的知识,在动手操作能力也加强了,不仅在专业技术方面有了很大进步,而且在实践操作方面我也对嵌入式有了更深入的了解。也许这5个月是我在外面学习和生活最宝贵的时间。
在校两年,读于电子信息工程技术专业的我,就觉得这专业学的知识太广了,不管基础还是动手操作,都要比较灵活。在校期间,学习单片机,传感器,C语言,嵌入式应用技术等课程。感觉学起来,对我来说接受还是比较快的,那时就有想过:学的多不如学的巧,也许在校对课程多于理论为主,理解它的原理和基本编程方式。其实,我还是有努力去学的,可以说,在校科任老师都教会我很多专业知识,为我将来的学习和发展打好基础。
在大三期间,为了更明确自己要走的方向,去培训嵌入式软件开发。也许将要投身嵌入式行业的我,就注定这条路要付出很多时间和精力,但可能我好求比较强,接受还行,就不停给自己打气,努力!要去培训嵌入式时,我从网上也对它有更加的理解,也看下大2学的嵌入式应用技术书,嵌入式系统是软件和硬件的综合体,以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。
刚开始嵌入式学习,对Linux系统的知识加于巩固。一些简单的代码,C语言,对于嵌入式软件还是硬件开发的人员,对C语言的掌握这个是必需的,特别是对于以后致力于嵌入式软件开发的人,现在绝大部分都是用C语言。在下来几个月就对Linux系统,数据结构、系统移植的方法、A8的体系结构、Linux内核及驱动设计、android、C+Java的JNI应用编程的系统学习。在每学个阶段就作一个考试,对前面所学的知识进行复习,有些会做一个简单的小项目,学以致用。知识量还是比较多,但教学也比较快,有些知识还没消化完,第二天又接受新知识,对于能在课上就可以对知识完全懂的并不多,晚上都用一两个小时来复习。经过5个月系统的学习,嵌入式技术方面有了很大进步,实践操作方面也对嵌入式有了更深入的了解。在最后一个月,基于A8(S5PV210)的嵌入式智能家居系统制作。
下面我谈谈在粤嵌教育的培训感受,我培训的地点是在科学城粤嵌教育培训中心的多媒体课室里,这里有学习环境非常好,在紧张的学习的过程中,你可以得到名师的指导,也可以体会到一流企业高质量的培训。在课堂上,老师们认真的演讲,以及手把手地教导,使每个学生都能够扎实地掌握到嵌入式的各方面的知识。而粤嵌教育的老师也是操作实践为主,实践是非常重要的,只有把知识掌握到位,才能达到学习的目的。
感谢粤嵌教育机构,感谢粤嵌教育老师。
一、如果非常多人都想做Linux,那么就要对Linux要比较熟悉。
这个熟悉不是说对内核,对代码有多了解,而是至少要会基本的操作,非常难想象让一个连编译程式,编辑文本文件都非常困难的人去弄嵌入式的软件吧。总之在进入嵌入式这个领域之前要对自己评估一下,看看自己是不是准备好了去学习嵌入式相关的东西。
二、要舍得花钱买研发板。公欲善其技,必先利其器。
也就是说,理论上可能掌控了非常多,不过不去实践,那只能是纸上谈兵,这样是无法学好嵌入式的。弄个研发板自己摆弄摆弄,即使什么都不懂,也能按照说明书把厂家给的程式下载到研发板上运行运行,先知其然,然后再通过具体的学习知其所以然,这样能避免学习中的枯燥。目前市场上研发板的种类繁多,相同CPU的板子价格却相差非常多,令非常多人都不知道怎么选择购买。我的看法是,尽量买大厂的产品。因为在初学阶段学习资料少是个非常头疼的事,非常多时候都是无从下手,不知道怎么去做,那么随研发板附送的资料就非常重要了。大厂技术比较强,附带的程式都是能在板子上运行的,例如我买的优龙ST2410这个板子(不是广告啊),光盘上带了一个bootloader,个2.4.18的内核,更有一个cramfs,这些程式的原始码都是厂家事先做好或修改好的,完全适用于初学者使用。而有些实力不行的小厂家的资料不齐全,我们学习的时候需要自己弄bootloader什么的,那入门就非常难了。不过大厂的板子都非常贵,大家能根据预算来选择适合自己的研发板,不过无论怎样,在学习上投资都是值得的。
三、不要事无巨细的学习,要有明确的目标。
我最开始给自己制定的学习计划是:学习arm体系结构->学习arm汇编->自己移植bootloader ->自己移植kernel ->做应用,不过不久就被我否决了,因为这个过程实在是太枯燥太痛苦了,在学习资料少,没人指导的情况下根本无法进展。于是我决定使用厂家的代码来“玩”研发板,自己弄些应用上去。先是完全使用厂家给的bootloader,kernel,cramfs。之后发现cramfs中的一些控制Linux初始化的文件不符合我的需求,于是修改cramfs,删除了QT,修改了网卡初始的IP地址,安装到板子上能运行了之后就开始尝试做一些应用,比如hello world这样的程式。最后移植了一个mpg123到板子上。完万能在不知道原理的情况下来使用板子的一些功能,等熟悉板子了再回头学习其中的道理,这样就容易一些。学习嵌入式就是这样,根据问题来选择学习的内容,否则会非常盲目,最后就失去信心了。
四、要有耐心。
不能否认,在学习一门自己完全不了解的技术是非常烦人的。嵌入式的复杂在于他的交叉性。也就是说为了研究某一个嵌入式的问题,你有可能得学习非常多其他的知识,比如操作系统,编译,体系结构等等,那么对于这种情况需要我们有足够的耐心。我在交叉编译mpg123的时候前几次无论怎么修改makefile都无法编译成功,最后我发现我用的arm-linux-gcc是2.9版本的,比较老,于是我换成新的3.4.1版本,就ok了。
以上是我初学嵌入式所获得的一些浅显的经验,基本都是基于软件方面的,硬件的DIY我就不行了。希望我的经验能给大家一些帮助。
刚刚和LUPA的嵌入式版主要了uboot的代码,接下来的我想研究研究厂家的bootloader代码然后移植一下uboot。
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退出来。
首先,我们学习的课本是嵌入式系统应用教程。我学习的体会是这样的:开始时,由于是刚刚入门,对老师书的好多东西是好奇的,好多名词也是新鲜的,不过不太懂什么意思。但是慢慢的,了解的深入让我有了更深的感触和体会。
在嵌入式的学习过程中,让我了解了什么是嵌入式系统。它就是以应用为中心,以计算机技术为基础,软硬件可定制,适用于不同应用场合,对功能、可靠性、成本、体积、功耗有严格要求的计算机系统。他一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统、用户应用程序四个部分组成,用于实现对其他设备的控制、监视或管理功能。嵌入式系统已经应用于科学研究、工业控制、军事技术、交通通信、医疗卫生、消费娱乐等领域,人们日常使用的手机、PDA、汽车、智能家电、GPS等均是嵌入式系统的典型代表。
一开始我们就学习嵌入式的系统的基础部分,那很简单,就是一些定义或是介绍之类的。在进入第二章时,就开始学习了嵌入式开发过程中的主要操作系统——linux,在接下来的课程中,我发现嵌入式的学习过程还是蛮有趣的。在对linux的学习中,我们对它有了一点点的了解,接着就是学习一虚拟机的方式安装linux。对我来说有趣的就是安装的过程了,首先我们跟着老师的脚步走,学会了怎么安装,在自己动手进行对它的安装,这个过程是简单而有趣的。这样的开始让我对它充满了兴趣,也对以后的学习充满了信心。
其次就是安装好了之后,老师就更深一步的教我们应用了。在这是老师首先交给我们的是一些简单的命令应用,Linux具有很丰富的命令,绝大多数命令具有大量的参数。在学习命令的过程中,只要你认真的看着老师操作还有认真听着他讲,你就会发现有些命令的操作还是很简单的,不过在操作的过程中,我也有遇到有些困难,会出现你按照书上学习的例子,将命令输入终端时会出现你不想要的结果,也就是错误的结果。这是问问旁边的同学或是懂的同学就可以解决了。在对于这部分的学习中,让我知道了命令对于嵌入式的重要性。它是linux的重要内容,linux中所有的功能都是通过命令执行。在实际应用中,为了减少系统开销,经常不使用图形界面,此时,对系统的所有操作都需要以命令方式来执行。在嵌入式系统开发过程中,由于目标机的性能和配置比较低,因此,一般情况下目标机仅具有命令窗口而没有图形界面,对目标机的所有操作都通过命令来实现。
还有的那就是进一步学习与嵌入式系统开发相关的linux的服务,他们的启动、设置等的操作和应用。而在学习之中,我们主要介绍的是嵌入式系统中开发工程使用的TFTP、Telent和NFS服务。第一个实现的事上机位与下机位之间文件的传输、无磁盘网络的设备的启动等功能;第二个实现的事远程登录功能;第三个实现的是网络文件系统功能。
从以上的内容之中,并不难感受到我们的学习过程是由浅入深的,这对于我们的学习也有了较好的帮助。
当然,我们学习的不仅仅是这么几个内容,其中还有相关的实验内容。在我们基础的学习的过程之中,我有了这么一点的感受,总的来说就是概念加专业名词还有介绍加实验。不过你绝对不能小看那些概念和介绍,它对我们有着很重要的指导作用哦!实验那就更不用说了,它提高我们的动手能力,在实验的过程中还能让你更加理解书中的理念,这就是我学习嵌入式的感受。
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退出来。
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;管道和重定向操作符可同时用于一个命令行。
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退出来。
这个题目很大,给人一种感觉我好像很成功,其实不然。实际上自己水*不高,甚至很低,但是做过了一些曲折的学习道路,同时把自己真实的学习历程表达出来,希望对后来者有借鉴的意义,甚幸!工作三年、几成废人!
我XX年毕业于华中地区的一个理工科大学,专业是机械电子,我当时已经签了一家内陆某个省级机关工作,家里八辈是农民,并且很偏远,能够进入这样的地方是祖坟有风水。但在毕业前夕有个进入it的机会,我本想进去的,家里人极力反对,阻力可想而知。同时要交4000元的违约金,对我来说是天文数字。大学里的费用很多是借的,几乎将近一半的费用是在大学勤工俭学挣的,为了省钱,高中一个学期回家一次,大学一年回去一次。并且我个人也有特殊的人生背景(悲景更确切),这里不多说了,写十篇也写不完,同时偏离主题。这样我就参加了工作。一张报纸一杯茶的日子,几乎下班后有种很空虚和恐慌的感觉。在工作中虽然是与自己专业有点关系,但是很少。专业几乎荒废。我自己也思考,如果再不出去,自己将会成废人,只好让国家养了。两年后决定出去,但是几成废人,谁要呢,只好到学校去镀金。这是*教育和社会的悲哀!
至于专业就改为计算机方面,听说好找工作,我说实话不是很对计算机特别感兴趣,生存第一需要。不要笑我,哈哈!
考研成绩出来,超过了国家线几十分。那个方向要两个,我第三,但是那年非碘,不面试就按分数来排,自然我落选了。其实给我面试机会也不一定要我,哈哈,自己几斤几两很清楚。
最后调剂到另外一个学校,交钱,咬咬牙,交吧!现在仍然债台高筑!
进入学校前夕
为什么要把这段列出,看后就知道了。
单位有网络,经常上网查些英语资料,在那里唯独英语没有丢很多。于是我就在网上查资料,学什么好呢,最后确定学嵌入式把,听说跟硬件相对比较紧密!而我在大学里多少学习了数字电路,单片机等,所以多少也有所利用,不会真的一无所知。当然在这之前也自学过数据结构,计算机组成原理等。c语言在大学就学了。哈哈这就是我的家底。
我知道自己的基础差,于是我就拿操作系统,数据库、数据结构、c++来看,机关有这个好处,空余时间多,于是*常就看书,很痛苦,没有人请教。
另外就上网到论坛上去,我就到各个专业的技术论坛,其实是电子论坛和嵌入式论坛。我几乎没有发帖,几乎把几个大型的出名的论坛的帖子翻遍了,虽然有很多重复的,我才知道嵌入式是个什么东东。这些帖子对我以后的学习产生了极大的影响。
最关键两点:
1、嵌入式是什么?
2、嵌入式需要哪些知识?
知道了这两点,好办!我就开始规划学习路线。计算机的基本理论不能丢,于是重点看组成原理,数据机构,操作系统、c++。同时论坛上了解到,实时操作系统ucos是一个很好的嵌入式操作系统,对初学者很好。于是我就买了一本书,但是代码在电脑里调不通,网上也有很多相同的问题,我就看书,分析代码,一遍不行就两遍,三遍,这样才看了入了门,才知道什么是进程。原来看操作系统书时,根本就不知道进程是个什么东西。
在这段时间掌握的东西不多,但是,对我以后的影响很大,我想起了大学时一个同学跟我说过了一句话:大学里最重要的不是学到了什么,最重要的是学会怎么学!大概是这个意思。
进入我的避难所
对我来讲,再次进入大学不再是大学,而是避难所。希望这次进入给我喘气和养精蓄锐的机会和时间。我是这样认为和实践的。
在学校我有三件事:上课,上图书馆,上网。
对于上课,学校开了很多课程,非常好,很多是名人名师讲解,于是很多同学都想学,都去听。我也考虑过,最后放弃。我是这样认为的,时间是有限的,什么都想学,什么都学不成。于是我把我自己学的课进行了分化,一般的课程通过就行,重要的一定好好学。我希望不要什么争论学习课程多和少的问题,这仅仅是我的看法。所以我的成绩应该是很差的。分数低。好在后来的单位没有要我的成绩单,否则就惨了。
我个人感觉是上图书馆的效率比在寝室里高多了,这是我的经验。
现在嵌入式做为计算机发展的一个新的方向越来越得到社会的重视。随之而来的是很多培训班的诞生,但是如何能在琳琅满目的培训机构中找到一个能真正学到东西的培训班呢,这是摆在众多想学嵌入式的人面前的第一个问题。我在了解了众多培训机构并且试听之后,最终选择了Tocore嵌入式培训,之所以选择,是因为我看重老师的实际能力和认真负责的态度。我非常荣幸能够成为Tocore中的一员。
嵌入式开发,做为一个新的计算机发展方向,已经越来越受到社会的重视,社会上的需要也十分巨大,可是真正懂得嵌入式开发的人才缺不是很多,归结去原因主要是一下几个方面:
一:因为它是新兴的一个发展方向,懂得的人自然不多。
二:学习嵌入式需要比较庞杂的知识结构。操作系统、微机原理、C/C++语言、数据结构等。
三:嵌入式学习,上手很困难,不知道从哪里着手去学习。
在刚开始接触的时候,我也是抱着本书,自己摸索,可是越看越迷茫,连很多书里的名词都不知道是什么意思,去网上查也没有得到答案。可是在Tocore我得到了很好的指点,在这里,由于老师都是十分有经验的项目经理,他们懂得如何去学习,从哪里开始入手,这对于我这样的背景知识比较薄弱又接触时间比较短的人来说实在是太有帮助了。
虽然课程还没有完,可是在这段时间的学习中,我按照老师的指导在完善的课程体系下进行系统的学习,已经掌握了U-boot、kernel以及linux移植的基本框架,(我想在今后的学习中一定会对这些知识更加熟悉以至精通!)这对于2个月前什么都不懂的我来说已经是很大的提高了!用得是ARM9的板子,这也是市场上现在比较新的,比较流行的板子,很多公司在实际的产品开发中就用的是ARM9。在课堂上,老师的讲解和我们的练习相结合,理论联系实际。老师除了讲解知识外,还结合了大量的实际案例和操作,这对于我对问题的理解和知识的记忆有很大帮助。
最后谈谈对学习态度的一点看法。嵌入式学习,是比较耗时的,前期需要很多知识做铺垫,有很多人在这个过程中走了不少弯路,于是开始失去耐心、失去信心,以至最终放弃学习。所以我想有必要强调一下问题,在刚开始的时候,自己什么都不懂,可是学习的愿望很强烈,每次上课都希望上完课就能如何如何,可是下来发现自己好像离自己原本的目标还很远,于是心里着急,自己跑到网上搜了很多资料,每天乱看,可是并没有很大的帮助。我想说的是,学习嵌入式一定要有耐心和毅力,不能急躁,按照课程的安排自己多做一些总结和练习,等到知识慢慢的积累下来就会有一种豁然开朗的感觉。
最后希望每个想学习和热爱linux的人都能学有所成!
——嵌入式学习心得体会10篇
研究嵌入式系统已经有快两年的时间了。很庆幸自己当初选择了嵌入式系统作为自己的研究和职业方向,可以说它是一种催化剂,让我自身的修养和研究能力都有了很大的提高。
在嵌入式系统的大门前,我只能算是刚刚看到这个大门的台阶,但这段小小的距离让我受益颇多,现将其中心得奉献出来,欢迎高手前辈们指正,以供刚接触的新人参考。
在写之前,想先写一句话,千万不要以为你是天才,所谓天才即胜别人N倍的人,如果你真认为你是天才,请以天才的标准来要求自己,将自己付出和别人的比例以N:1来进行。
(1)学习与生活心态
很多朋友都是在刚步入大学校门开始接触计算机或者其他。大学是一个很让人迷茫颓废的地方,可能你在高中踌躇满志,但在大学的管理机制下却心态渐糜。能够在大学(大一)里找到自己人生之志的同学有多少?目标要明确,不要得过且过,不要追逐热门的东西。
不管在什么时候,心里都要有自己的信念和理想,不要被其他东西左右了自己。要从兴趣和竞争出发,因为这才是你产生动力源的地方。学东西时,要让自己先喜欢上它,要学会享受学习它的时间,喜欢乔XXX的都知道,乔老爷子最常说的一句就是要享受比赛的时间。
因为只有你喜欢上了它,享受了它,才不会被它所产生的压力压倒自己,不要产生一种厌恶的心理。而且心态要调整,不要一味的蛮学,死学,在没有什么兴趣学的时候可以先玩几天,在回过头来,或者用其他的方式来转换。要抱着一种十年方能磨一剑的心理,扎扎实实从基础开始,不要为高速开发的一些现象所迷惑,那些都只是软件的功劳。
我个人认为搞编程,英语和数学很重要,大家一定要时时的抓,至于怎么抓那就是另外一回事了,当然其他的知识也要汲取,可以多接触点天文,地理,人文方面的东西来补充自己。转换的生活方式。要学会生活,在人的一生中,都会遇到一些很不开心的事,或者大大小小的意外,孙子兵法里面一句大意就是说,战场上要会将劣势转成优势,即最大的劣势很可能就是你的优势所在。
一个打击你可以把他变为前进的动力,不必为了一点挫折和捶胸顿足,不必为了一点小事争吵不休。空闲的时候可以躺下来看看天,你就会明白自强不息,厚德载物之理。(看到一些为了失恋或者其他而堕落的人真的很难受和可惜)。
要给人以帮助。别人有困难时或者一些举手之劳在自己解决范围内的尽力帮之,这对自己不会损失什么,相反在对方心里能够树立你的形象和增加好感。记住,给人之恩时也是给你自己铺路,这个世界不是靠你一个人可改变的。
(2)编程语言的选择语言的争论。
很多初学择,老是在学习何种语言上举棋不定,试问,*牌子有几个不被骂的,试问,世界上哪部影片没人说他坏话的?术业有专攻,各司其职,每个语言的出现肯定都有自己价值和领域的范围,不同的只是价值和领域的高级和大小。
就像高,矮,胖,瘦组成一个“型”。但是技术是进步的,这个进步也是在旧的基础上。放心,技术再飞跃也不会今天奔I,明天扣肉的迅速,在学习的同时也要时时关注整个语言界的走势(貌似哪个伟人说的与时俱进),保持一种同步曲线的前进。语言能干什么?能问这句话,很欣慰。
表明你是从基础学起才会问出这样的话来。但换而言之你一开始对这门语言调查的信息不足。庙算者胜,对自己身边的事物了解是非常重要的,这也能说明说你的教材或者教导你的人不够充分。如果是我对新手交流,我会花足时间让他明白这门语言是什么,能干什么,整个体系等等。
这样在学的时候,对同一条语句上的理解你可能跟别人就不一样了,因为你知道这门语言的体系架构,你可以从更多的特性角度去挖掘使用它。提高自己对语言阅读能力。如何快速的进步?可以告诉你没有一步登天的办法,但是也可以告诉你如何让你快速掌握你所学的技术。多读他人代码,多领悟他人思维,多给自己出难题,多几种方法来解问题,多将语言的思想和身边的事物联系起来。想想你是怎么掌握普通话的,方法就不具体说了。
编程的思维。计算机是充满诱惑的东西,很多人都说热爱计算机,那只是它的表面,你热爱的只是他的一种扩展性的东西。能学计算机我很高兴,因为计算机从某种意义上来说将空间的距离给消除掉了。这里没有流血,没有牺牲。你可以以一种艺术家的思维来塑造它,可以以侦探的逻辑思维来解决它,可以以一种战争狂人的思维来摧毁它。
你可以将你的这种思维体现在代码和整个布局里,不要惊异别人代码思维的异风,你也有自己的思维风格,你也可以,你也可以用自己代码让别人惊异。记住你学东西时更多的要体会他的思维,比如数学,微积分,离散,无数的定理,你学完以后可能永远都用不到,但是你可能有这种感觉,在你碰到某一问题时,这一问题的性质和你学到的东西很类似,但是中间就是差了一点东西,对了,这就是它思维上的一种运用,一种抽象,一种转换。
本人本科学的是电子信息工程专业,其实这个专业和嵌入式没有多大的关系,要说有关系就是简单的讲了下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!
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退出来。
研究嵌入式系统已经有快两年的时间了。很庆幸自己当初选择了嵌入式系统作为自己的研究和职业方向,可以说它是一种催化剂,让我自身的修养和研究能力都有了很大的提高。
在嵌入式系统的大门前,我只能算是刚刚看到这个大门的台阶,但这段小小的距离让我受益颇多,现将其中心得奉献出来,欢迎高手前辈们指正,以供刚接触的新人参考。
在写之前,想先写一句话,千万不要以为你是天才,所谓天才即胜别人N倍的人,如果你真认为你是天才,请以天才的标准来要求自己,将自己付出和别人的比例以N:1来进行。
(1)学习与生活心态。
很多朋友都是在刚步入大学校门开始接触计算机或者其他。大学是一个很让人迷茫颓废的地方,可能你在高中踌躇满志,但在大学的管理机制下却心态渐糜。能够在大学(大一)里找到自己人生之志的同学有多少?目标要明确,不要得过且过,不要追逐热门的东西。
不管在什么时候,心里都要有自己的信念和理想,不要被其他东西左右了自己。要从兴趣和竞争出发,因为这才是你产生动力源的地方。学东西时,要让自己先喜欢上它,要学会享受学习它的时间,喜欢乔XXX的都知道,乔老爷子最常说的一句就是要享受比赛的时间。
因为只有你喜欢上了它,享受了它,才不会被它所产生的压力压倒自己,不要产生一种厌恶的心理。而且心态要调整,不要一味的蛮学,死学,在没有什么兴趣学的时候可以先玩几天,在回过头来,或者用其他的方式来转换。要抱着一种十年方能磨一剑的心理,扎扎实实从基础开始,不要为高速开发的一些现象所迷惑,那些都只是软件的功劳。
我个人认为搞编程,英语和数学很重要,大家一定要时时的抓,至于怎么抓那就是另外一回事了,当然其他的知识也要汲取,可以多接触点天文,地理,人文方面的东西来补充自己。转换的生活方式。要学会生活,在人的一生中,都会遇到一些很不开心的事,或者大大小小的意外,孙子兵法里面一句大意就是说,战场上要会将劣势转成优势,即最大的劣势很可能就是你的优势所在。
一个打击你可以把他变为前进的动力,不必为了一点挫折和捶胸顿足,不必为了一点小事争吵不休。空闲的时候可以躺下来看看天,你就会明白自强不息,厚德载物之理。(看到一些为了失恋或者其他而堕落的人真的很难受和可惜)。
要给人以帮助。别人有困难时或者一些举手之劳在自己解决范围内的尽力帮之,这对自己不会损失什么,相反在对方心里能够树立你的形象和增加好感。记住,给人之恩时也是给你自己铺路,这个世界不是靠你一个人可改变的。
(2)编程语言的选择语言的争论。
很多初学择,老是在学习何种语言上举棋不定,试问,*牌子有几个不被骂的,试问,世界上哪部影片没人说他坏话的?术业有专攻,各司其职,每个语言的出现肯定都有自己价值和领域的范围,不同的只是价值和领域的高级和大小。
就像高,矮,胖,瘦组成一个“型”。但是技术是进步的,这个进步也是在旧的基础上。放心,技术再飞跃也不会今天奔I,明天扣肉的迅速,在学习的同时也要时时关注整个语言界的走势(貌似哪个伟人说的与时俱进),保持一种同步曲线的前进。语言能干什么?能问这句话,很欣慰。
表明你是从基础学起才会问出这样的话来。但换而言之你一开始对这门语言调查的信息不足。庙算者胜,对自己身边的事物了解是非常重要的,这也能说明说你的教材或者教导你的人不够充分。如果是我对新手交流,我会花足时间让他明白这门语言是什么,能干什么,整个体系等等。
这样在学的时候,对同一条语句上的理解你可能跟别人就不一样了,因为你知道这门语言的体系架构,你可以从更多的特性角度去挖掘使用它。提高自己对语言阅读能力。如何快速的进步?可以告诉你没有一步登天的办法,但是也可以告诉你如何让你快速掌握你所学的技术。多读他人代码,多领悟他人思维,多给自己出难题,多几种方法来解问题,多将语言的思想和身边的事物联系起来。想想你是怎么掌握普通话的,方法就不具体说了。
编程的思维。计算机是充满诱惑的东西,很多人都说热爱计算机,那只是它的表面,你热爱的只是他的一种扩展性的东西。能学计算机我很高兴,因为计算机从某种意义上来说将空间的距离给消除掉了。这里没有流血,没有牺牲。你可以以一种艺术家的思维来塑造它,可以以侦探的逻辑思维来解决它,可以以一种战争狂人的思维来摧毁它。
你可以将你的这种思维体现在代码和整个布局里,不要惊异别人代码思维的异风,你也有自己的思维风格,你也可以,你也可以用自己代码让别人惊异。记住你学东西时更多的要体会他的思维,比如数学,微积分,离散,无数的定理,你学完以后可能永远都用不到,但是你可能有这种感觉,在你碰到某一问题时,这一问题的性质和你学到的东西很类似,但是中间就是差了一点东西,对了,这就是它思维上的一种运用,一种抽象,一种转换。
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,那么就要对Linux要比较熟悉。这个熟悉不是说对内核,对代码有多了解,而是至少要会基本的操作,非常难想象让一个连编译程式,编辑文本文件都非常困难的人去弄嵌入式的软件吧。总之在进入嵌入式这个领域之前要对自己评估一下,看看自己是不是准备好了去学习嵌入式相关的东西。
二、要舍得花钱买研发板。公欲善其技,必先利其器。也就是说,理论上可能掌控了非常多,不过不去实践,那只能是纸上谈兵,这样是无法学好嵌入式的。弄个研发板自己摆弄摆弄,即使什么都不懂,也能按照说明书把厂家给的程式下载到研发板上运行运行,先知其然,然后再通过具体的学习知其所以然,这样能避免学习中的枯燥。目前市场上研发板的种类繁多,相同CPU的板子价格却相差非常多,令非常多人都不知道怎么选择购买。我的看法是,尽量买大厂的产品。因为在初学阶段学习资料少是个非常头疼的事,非常多时候都是无从下手,不知道怎么去做,那么随研发板附送的资料就非常重要了。大厂技术比较强,附带的程式都是能在板子上运行的,例如我买的优龙ST2410这个板子(不是广告啊),光盘上带了一个bootloader,个2.4.18的内核,更有一个cramfs,这些程式的原始码都是厂家事先做好或修改好的,完全适用于初学者使用。而有些实力不行的小厂家的资料不齐全,我们学习的时候需要自己弄bootloader什么的,那入门就非常难了。不过大厂的板子都非常贵,大家能根据预算来选择适合自己的研发板,不过无论怎样,在学习上投资都是值得的。
三、不要事无巨细的学习,要有明确的目标。我最开始给自己制定的学习计划是:学习arm体系结构->学习arm汇编->自己移植bootloader ->自己移植kernel ->做应用,不过不久就被我否决了,因为这个过程实在是太枯燥太痛苦了,在学习资料少,没人指导的情况下根本无法进展。于是我决定使用厂家的代码来“玩”研发板,自己弄些应用上去。先是完全使用厂家给的bootloader,kernel,cramfs。之后发现cramfs中的一些控制Linux初始化的文件不符合我的需求,于是修改cramfs,删除了QT,修改了网卡初始的IP地址,安装到板子上能运行了之后就开始尝试做一些应用,比如hello world这样的程式。最后移植了一个mpg123到板子上。完万能在不知道原理的情况下来使用板子的一些功能,等熟悉板子了再回头学习其中的道理,这样就容易一些。学习嵌入式就是这样,根据问题来选择学习的内容,否则会非常盲目,最后就失去信心了。
四、要有耐心。不能否认,在学习一门自己完全不了解的技术是非常烦人的。嵌入式的复杂在于他的交叉性。也就是说为了研究某一个嵌入式的问题,你有可能得学习非常多其他的知识,比如操作系统,编译,体系结构等等,那么对于这种情况需要我们有足够的耐心。我在交叉编译mpg123的时候前几次无论怎么修改makefile都无法编译成功,最后我发现我用的`arm-linux-gcc是2.9版本的,比较老,于是我换成新的3.4.1版本,就ok了。
以上是我初学嵌入式所获得的一些浅显的经验,基本都是基于软件方面的,硬件的DIY我就不行了。希望我的经验能给大家一些帮助。
刚刚和LUPA的嵌入式版主要了uboot的代码,接下来的我想研究研究厂家的bootloader代码然后移植一下uboot。
这个题目很大,给人一种感觉我好像很成功,其实不然。实际上自己水*不高,甚至很低,但是做过了一些曲折的学习道路,同时把自己真实的学习历程表达出来,希望对后来者有借鉴的意义,甚幸!工作三年、几成废人!
我XX年毕业于华中地区的一个理工科大学,专业是机械电子,我当时已经签了一家内陆某个省级机关工作,家里八辈是农民,并且很偏远,能够进入这样的地方是祖坟有风水。但在毕业前夕有个进入it的机会,我本想进去的,家里人极力反对,阻力可想而知。同时要交4000元的违约金,对我来说是天文数字。大学里的费用很多是借的,几乎将近一半的费用是在大学勤工俭学挣的,为了省钱,高中一个学期回家一次,大学一年回去一次。并且我个人也有特殊的人生背景(悲景更确切),这里不多说了,写十篇也写不完,同时偏离主题。这样我就参加了工作。一张报纸一杯茶的日子,几乎下班后有种很空虚和恐慌的感觉。在工作中虽然是与自己专业有点关系,但是很少。专业几乎荒废。我自己也思考,如果再不出去,自己将会成废人,只好让国家养了。两年后决定出去,但是几成废人,谁要呢,只好到学校去镀金。这是*教育和社会的悲哀!
至于专业就改为计算机方面,听说好找工作,我说实话不是很对计算机特别感兴趣,生存第一需要。不要笑我,哈哈!
考研成绩出来,超过了国家线几十分。那个方向要两个,我第三,但是那年非碘,不面试就按分数来排,自然我落选了。其实给我面试机会也不一定要我,哈哈,自己几斤几两很清楚。
最后调剂到另外一个学校,交钱,咬咬牙,交吧!现在仍然债台高筑!
进入学校前夕
为什么要把这段列出,看后就知道了。
单位有网络,经常上网查些英语资料,在那里唯独英语没有丢很多。于是我就在网上查资料,学什么好呢,最后确定学嵌入式把,听说跟硬件相对比较紧密!而我在大学里多少学习了数字电路,单片机等,所以多少也有所利用,不会真的一无所知。当然在这之前也自学过数据结构,计算机组成原理等。c语言在大学就学了。哈哈这就是我的家底。
我知道自己的基础差,于是我就拿操作系统,数据库、数据结构、c++来看,机关有这个好处,空余时间多,于是*常就看书,很痛苦,没有人请教。
另外就上网到论坛上去,我就到各个专业的技术论坛,其实是电子论坛和嵌入式论坛。我几乎没有发帖,几乎把几个大型的出名的论坛的帖子翻遍了,虽然有很多重复的,我才知道嵌入式是个什么东东。这些帖子对我以后的学习产生了极大的影响。
最关键两点:
1、嵌入式是什么?
2、嵌入式需要哪些知识?
知道了这两点,好办!我就开始规划学习路线。计算机的基本理论不能丢,于是重点看组成原理,数据机构,操作系统、c++。同时论坛上了解到,实时操作系统ucos是一个很好的嵌入式操作系统,对初学者很好。于是我就买了一本书,但是代码在电脑里调不通,网上也有很多相同的问题,我就看书,分析代码,一遍不行就两遍,三遍,这样才看了入了门,才知道什么是进程。原来看操作系统书时,根本就不知道进程是个什么东西。
在这段时间掌握的东西不多,但是,对我以后的影响很大,我想起了大学时一个同学跟我说过了一句话:大学里最重要的不是学到了什么,最重要的是学会怎么学!大概是这个意思。
进入我的避难所
对我来讲,再次进入大学不再是大学,而是避难所。希望这次进入给我喘气和养精蓄锐的机会和时间。我是这样认为和实践的。
在学校我有三件事:上课,上图书馆,上网。
对于上课,学校开了很多课程,非常好,很多是名人名师讲解,于是很多同学都想学,都去听。我也考虑过,最后放弃。我是这样认为的,时间是有限的,什么都想学,什么都学不成。于是我把我自己学的课进行了分化,一般的课程通过就行,重要的一定好好学。我希望不要什么争论学习课程多和少的问题,这仅仅是我的看法。所以我的成绩应该是很差的。分数低。好在后来的单位没有要我的成绩单,否则就惨了。
我个人感觉是上图书馆的效率比在寝室里高多了,这是我的经验。
一、嵌入式的概述:
随着信息化技术的发展和数字化产品的普及,以计算机技术、芯片技术和软件技术为核心的嵌入式系统再度成为当前研究和应用的热点,通信、计算机、消费电子技术(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编程技术。要求学员建立起团队开发和协同工作的企业项目开发模式的概念和流程,强化学员对编写项目概要设计文档和详细设计文档的理解,为就业前的职业技能和素质训练做好充分准备。
四、实习内容
1、 嵌入式的历史与现状
虽然嵌入式系统是近几年才开始真正风靡起来的,但事实上嵌入式这个概念却很早就已经存在了,从上个世纪70年代单片机的出现到今天各种嵌入式微处理器、微控制器的广泛应用,嵌入式系统少说也有了近30年的历史。纵观嵌入式系统的发展历程,大致经历了以下四个阶段:
无操作系统阶段
嵌入式系统最初的应用是基于单片机的,大多以可编程控制器的形式出现,具有监测、伺服、设备指示等功能,通常应用于各类工业控制和飞机、导弹等武器装备中,一般没有操作系统的支持,只能通过汇编语言对系统进行直接控制,运行结束后再清除内存。这些装置虽然已经初步具备了嵌入式的应用特点,但仅仅只是使用8位的CPU芯片来执行一些单线程的程序,因此严格地说还谈不上"系统"的概念。
这一阶段嵌入式系统的主要特点是:系统结构和功能相对单一,处理效率较低,存储容量较小,几乎没有用户接口。由于这种嵌入式系统使用简便、价格低廉,因而曾经在工业控制领域中得到了非常广泛的应用,但却无法满足现今对执行效率、存储容量都有较高要求的信息家电等场合的需要。
首先,嵌入式系统是以应用为中心,以计算机技术为基础,且软硬件可裁减,适应应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。嵌入式有如下几个突出的有点1。系统内核小,2专用性强,3系统精简4高实时性OS5嵌入式系统的应用程序可以没有操作系统直接在芯片上运行,6嵌入式系统需要开发工具和环境。
嵌入式系统是近几年才风靡起来的,但是这个概念并非新近才出现。从20世纪七十年代单片机(最早的单片机是Intel公司的 8048,出现在1976年)的出现到今天各式各样的嵌入式微处理器,微控制器的大规模应用,嵌入式系统已经有了近30年的发展历史。经过30年的发展,嵌入式技术已经日趋成熟,在*嵌入式机一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序等四个部分组成,用于实现对其他设备的控制、监视或管理等功能。
其次,嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。
嵌入式系统是软硬结合的学科,通常有两类人会去专研嵌入式:一类是学电子工程、通信工程等偏硬件专业的,另一类是学软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。我是软件专业的学习嵌入式,越是智能设备越是复杂系统,软件越起关键作用,而且这是目前的趋势。嵌入式应用在很多方面,具体的可以分为工业控制,交通管理,信息家电,家庭智能管理系统,POS网络及电子商务,环境工程与自然,机器人,机电产品方面应用等方面。其中目前在服务领域,如远程点菜器等已经体现了嵌入式系统的优势。例外还有很多地方用到了嵌入式系统,最近飞利浦和ARM共同推出32位RISC嵌入式控制器,适用于工业控制,采用最先进的0。18微米CMOS嵌入式闪存处理技术,操作电压可以低至1.2伏,它还能降低25%到30%的制造成本,在工业领域中对最终用户而言是一套极具成本效益的解决方案。
学期开始,我们开始学习《嵌入式系统及应用》,由于初次接触嵌入式系统,感觉蛮难的,所以收获不是很大,很多的概念都比较模糊,等到学期结束开始做嵌入式课程设计时,真是茫然无从下手,自从拿到设计主题后,我就像热锅上的蚂蚁,一个字"急"。最后实在没有办法,逼着自己去学习,查资料,总算对嵌入式有了浅层理解。
嵌入式系统本身是一个相对模糊的定义,一个手持的Mp3和一个pC104的微型工业控制计算机都可以认为是嵌入式系统。总体来说,嵌入式系统是"用于控制,监视或者辅助操作机器和设备的装备"。
一个典型的桌面Linux系统包括3个主要的软件层———linux内核、C库和应用程序代码。内核是唯一可以完全控制硬件的层,内核驱动程序代表应用程序与硬件之间进行会话。内核之上是C库,负责把pOSIXApI转换为内核可以识别的形式,然后调用内核,从应用程序向内核传递参数。应用程序依靠驱动内核来完成特定的任务。
在了解了基础知识之后,我开始进行上机操作,当然,其中遇到很多的难题,很多东西都是第一次接触,又没有别人在旁边指导操作,完全凭借自己去摸索练习。其中的困难可想而知。
然而坚持就是胜利,牙一咬眼一闭坚持做下去,而通过本次实验,我感觉收获还是蛮多的。可能我对于嵌入式的知识学习的还是不太多,但是这之外的东西收获颇丰。
它让我学会了如何通过自己的努力去认知一个新事物,更重要的是端正自己的学习态度,只有真正下功夫去学习,才能有收获,正所谓"一份耕耘,一份收获。"没有付出,何谈回报呢?
再者,通过本次实验,我也学会了如何去分析问题,如何找出自己设计中的不足,继而去排除解决问题,这就是一个自我学习的过程。当我们通过实验去学习理论知识时,自己动手得出的结论,不仅能加深我们对嵌入式的理解,更能加深我们对此的记忆。
当然,在这其中,我也发现自己的许多不足之处,由于学期伊始我没有好好学习,才落到如此地步,这也可以说是一个教训吧!我相信在以后的学习工作中,我一定会端正自己的学习态度,一丝不苟的去对待每一件事。只有做好足够的准备,才能事半功倍!
——嵌入式实习心得3篇
学期开始,我们开始学习《嵌入式系统及应用》,由于初次接触嵌入式系统,感觉蛮难的,所以收获不是很大,很多的概念都比较模糊,等到学期结束开始做嵌入式课程设计时,真是茫然无从下手,自从拿到设计主题后,我就像热锅上的蚂蚁,一个字"急"。最后实在没有办法,逼着自己去学习,查资料,总算对嵌入式有了浅层理解。
嵌入式系统本身是一个相对模糊的定义,一个手持的Mp3和一个pC104的微型工业控制计算机都可以认为是嵌入式系统。总体来说,嵌入式系统是"用于控制,监视或者辅助操作机器和设备的装备"。
一个典型的桌面Linux系统包括3个主要的软件层———linux内核、C库和应用程序代码。内核是唯一可以完全控制硬件的层,内核驱动程序代表应用程序与硬件之间进行会话。内核之上是C库,负责把pOSIXApI转换为内核可以识别的"形式,然后调用内核,从应用程序向内核传递参数。应用程序依靠驱动内核来完成特定的任务。
在了解了基础知识之后,我开始进行上机操作,当然,其中遇到很多的难题,很多东西都是第一次接触,又没有别人在旁边指导操作,完全凭借自己去摸索练习。其中的困难可想而知。
然而坚持就是胜利,牙一咬眼一闭坚持做下去,而通过本次实验,我感觉收获还是蛮多的。可能我对于嵌入式的知识学习的还是不太多,但是这之外的东西收获颇丰。
它让我学会了如何通过自己的努力去认知一个新事物,更重要的是端正自己的学习态度,只有真正下功夫去学习,才能有收获,正所谓"一份耕耘,一份收获。"没有付出,何谈回报呢?
再者,通过本次实验,我也学会了如何去分析问题,如何找出自己设计中的不足,继而去排除解决问题,这就是一个自我学习的过程。当我们通过实验去学习理论知识时,自己动手得出的结论,不仅能加深我们对嵌入式的理解,更能加深我们对此的记忆。
当然,在这其中,我也发现自己的许多不足之处,由于学期伊始我没有好好学习,才落到如此地步,这也可以说是一个教训吧!我相信在以后的学习工作中,我一定会端正自己的学习态度,一丝不苟的去对待每一件事。只有做好足够的准备,才能事半功倍!
一、嵌入式的概述:
随着信息化技术的发展和数字化产品的普及,以计算机技术、芯片技术和软件技术为核心的嵌入式系统再度成为当前研究和应用的热点,通信、计算机、消费电子技术(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体系结构及其基本编程知识,包括指令分类,寻址方式、指令集、存储系统、异常中断处理、汇编语言以及C++和汇编语言的混合编程等知识。同时结合ARM嵌入式开发板硬件设计原理和基本硬件设计流程,分析各种外设的工作原理和驱动机制,并自己动手实践完成一个ARM开发板上的编程大作业。
第六阶段嵌入式Linux开发基础及高级应用
主要介绍嵌入式Linux开发应用程序的基本流程和知识,包括嵌入式Linux基本概念和开发流程、Bootloader工作原理、内核裁减配置和交叉编译、根文件系统制作、网络编程以及图形界面和数据库开发等知识。同时独立完成一个基于嵌入式Linux GUI的应用编程大作业。
第七阶段嵌入式 Linux驱动理论及驱动程序开发实践
主要介绍嵌入式Linux上驱动程序开发规范,包括设备驱动程序概念、字符设备驱动程序、块设备与网络设备、网卡驱动以及常用嵌入式设备驱动开发等知识。同时独立实现两种嵌入式设备驱动程序的编写,包括驱动模块的调试和加载以及完整的项目开发文档的编写。
第八阶段嵌入式Linux项目团队开发实践锻炼
主要包括设计并实现一个真实和完整的嵌入式项目的开发流程,涉及到数据采集、网络通讯、图形用户界面显示以及嵌入式数据库存储系统等多种嵌入式Linux编程技术。要求学员建立起团队开发和协同工作的企业项目开发模式的概念和流程,强化学员对编写项目概要设计文档和详细设计文档的理解,为就业前的职业技能和素质训练做好充分准备。
四、实习内容
1、 嵌入式的历史与现状
虽然嵌入式系统是近几年才开始真正风靡起来的,但事实上嵌入式这个概念却很早就已经存在了,从上个世纪70年代单片机的出现到今天各种嵌入式微处理器、微控制器的广泛应用,嵌入式系统少说也有了近30年的历史。纵观嵌入式系统的发展历程,大致经历了以下四个阶段:
无操作系统阶段
嵌入式系统最初的应用是基于单片机的,大多以可编程控制器的形式出现,具有监测、伺服、设备指示等功能,通常应用于各类工业控制和飞机、导弹等武器装备中,一般没有操作系统的支持,只能通过汇编语言对系统进行直接控制,运行结束后再清除内存。这些装置虽然已经初步具备了嵌入式的应用特点,但仅仅只是使用8位的CPU芯片来执行一些单线程的程序,因此严格地说还谈不上"系统"的概念。
这一阶段嵌入式系统的主要特点是:系统结构和功能相对单一,处理效率较低,存储容量较小,几乎没有用户接口。由于这种嵌入式系统使用简便、价格低廉,因而曾经在工业控制领域中得到了非常广泛的应用,但却无法满足现今对执行效率、存储容量都有较高要求的信息家电等场合的需要。
ARM嵌入式系统综合设计
一、实习时间和地点安排
1、实习时间:20XX年12月03 日 —— 20XX年12月14日,共两周的时间。
2、每天的实习时间安排:
上午:8:30——11:30
下午:13:30——15:30
3、实习地点:校内。
二、实习目的
1、掌握电子元器件的焊接原理和方法。
2、掌握ARM7 LPC2132控制程序的编写方法。
3、掌握调试软件和硬件的方法。
三、实习内容与要求
1、根据设计要求焊接好电路板并测试焊接无误。
2、绘制流程图并编写程序。
3、编译通过后,将程序下载到LPC2132进行调试。
4、调试成功后编写实习报告。
四、LPC2132芯片介绍
LPC2132最小系统图及其介绍
概述
LPC2132是基于一个支持实时仿真和嵌入式跟踪的32/16 位 ARM7TDMI-STM CPU 的微控制器,并带有 32kB、64kB、512 kB 的嵌入的高速
Flash 存储器。128 位宽度的存储器接口和独特的加速结构使 32 位代码能够在最大时钟速率下运行。对代码规模有严格控制的应用可使用 16 位 Thumb?
模式将代码规模降低超过 30%,而性能的损失却很小。
较小的封装和极低的功耗使 LPC2131/2132/2138 可理想地用于小型系统中,如访问控制和 POS 机。宽范围的串行通信接口和片内 8/16/32kB 的 SRAM 使 LPC2131/2132/2138 非常适用于通信网关、协议转换器、软 modem 、声音辨别和低端成像,为它们提供巨大的缓冲区空间和强大的处理功能。多个 32 位定时器、1 个或 2 个 10 位 8 路 ADC 、10 位 DAC 、PWM 通道和 47 个 GPIO 以及多达9 个边沿或电*触发的外部中断使它们特别适用于工业控制和医疗系统。
特性
1、小型 LQFP64 封装的 16/32 位 ARM7TDMI-S 微控制器。
2、8/16/32kB 片内静态 RAM 。
3、片内 Boot 装载软件实现在系统/在应用中编程(ISP/IAP )。扇区擦除或整片擦除的时间为400ms ,1ms 可编程 256 字节。
4、EmbeddedICE?RT 和嵌入式跟踪接口可实时调试(利用片内 RealMonitor软件)和高速跟踪执行代码。
5、1 个(LPC2132/2132 )或2 个(LPC2138 )8 路 10 位 A/D 转换器共包含 16 个模拟输入,每个通道的转换时间低至 2.44us 。
6、1 个 10 位 D/A 转换器,可提供不同的模拟输出(LPC2132/2138 )。
7、 2 个 32 位定时器/计数器(带 4 路捕获和 4 路比较通道)、PWM 单元(6 路输出)和看门狗。
8、实时时钟具有独立的电源和时钟源,在节电模式下极大地降低了功耗。
9、多个串行接口,包括 2 个 16C550 工业标准 UART 、2 个高速 I2C 接口(400 kbit/s )、SPITM 和 SSP(具有缓冲功能,数据长度可变)。
10、向量中断控制器。可配置优先级和向量地址。
11、多达 47 个 5V 的通用I/O 口(LQFP64 封装)。
12、 9 个边沿或电*触发的外部中断引脚。
13、 通过片内 PLL 可实现最大为 60MHz 的 CPU 操作频率,PLL 的稳定时间为 100us。
14、片内晶振频率范围:1~30 MHz。
15、2 个低功耗模式:空闲和掉电。
16、可通过个别使能/禁止外部功能和降低外部时钟来优化功耗。
17、通过外部中断将处理器从掉电模式中唤醒。
18、单个电源供电,含有上电复位(POR )和掉电检测(BOD )电路:-CPU
操作电压范围:3.0~3.6 V (3.3 V+/ - 10%) ,I/O 口可承受5V 的最大电压。
结构概述
LPC2132包含一个支持仿真的 ARM7TDMI-S CPU 、与片内存储器控制器接口
的 ARM7 局部总线、与中断控制器接口的 AMBA 高性能总线 (AHB )和连接片内外设功能的 VLSI 外设总线 (VPB ,ARM AMBA 总线的兼容超集)。
LPC2131/2132/2138 将 ARM7TDMI-S 配置为小端(little-endian )字节顺序。 AHB 外设分配了 2M 字节的地址范围,它位于 4G 字节 ARM 存储器空间的最顶端。每个 AHB 外设都 分配了 16k 字节的地址空间。LPC2131/2132/2138 的外设功能 (中断控制器除外)都连接到 VPB 总线。AHB 到 VPB 的桥将 VPB 总线与 AHB 总线相连。VPB 外设也分配了 2M 字节的地址范围,从 3.5GB 地址点开始。每个 VPB 外设在 VPB 地址空间内都分配了 16k 字节地址空间。
片内外设与器件管脚的连接由管脚连接模块控制。该模块必须由软件进行控制以符合外设功能与管脚在特定应用中的需求。
ARM7TDMI-S 处理器
ARM7TDMI-S 是通用的 32 位微处理器,它具有高性能和低功耗的特性。ARM 结构是基于精简指令集 计算机(RISC)原理而设计的。指令集和相关的译码机制比复杂指令集计算机要简单得多。这样使用一个小的、廉价的处理器核就可实现很高的指令吞吐量和实时的中断响应。
由于使用了流水线技术,处理和存储系统的所有部分都可连续工作。通常在执行一条指令的同时对下 ,一条指令进行译码,并将第三条指令从存储器中取出。
ARM7TDMI-S 处理器使用了一个被称为 THUMB 的独特结构化策略,它非常适用于那些对存储器有限制或者需要较高代码密度的大批量产品的应用。
在 THUMB 后面一个关键的概念是“超精简指令集”。基本上,ARM7TDMI-S 处理器具有两个指令集:标准 32 位 ARM 指令集 、16 位 THUMB 指令集THUMB 指令集的 16 位指令长度使其可以达到标准 ARM 代码两倍的密度,却仍然保持 ARM 的大多 数性能上的优势,这些优势是使用 16 位寄存器的 16 位处理器所不具备的。因为 THUMB 代码和 ARM 代码一样,在相同的 32 位寄存器上进行操作。THUMB 代码仅为 ARM 代码规模的 65%,但其性能却相当于连接到 16 位存储器系统的相同 ARM 处理器性能的 160%。
片内 FLASH 程序存储器
LPC2131/2132/2138 分别含有 32kB、64kB 和 512kB 的FLASH 存储器系统。该存储器可用作代码和数据的存储。对 FLASH 存储器的编程可通过几种方法来实现:通过内置的串行 JTAG 接口,通过在系统编程(ISP )和 UART0 ,或通过在应用编程(IAP )。使用在应用编程的应用程序也可以在应用程序运行时对FLAH 进行擦除和/ 或编程,这样就为数据存储和现场固件的升级都带来了极大的灵活性。如果LPC2131/2132/2138 使用了片内引导装载程序(bootloader ),32/64/512kB 的 Flash 存储器就可用来存放用户代码。 LPC2131/2132/2138 的Flash 存储器至少可擦除/编程 10,000 次,保存数据的时间长达 10 年。 片内静态 RAM片内静态 RAM (SRAM )可用作代码和/ 或数据的存储,支持 8位、16 位和32 位的访问。LPC2131/2132/2138 含有 8/16/32kB 的静态RAM 。 LPC2131/2132/2138 SRAM 是一个字节寻址的存储器。
对存储器进行字和半字访问时将忽略地址对准,访问被寻址的自然对准值(因此,对存储器进行字访问时将忽略地址位 0 和 1,半字访问时将忽略地址位 0 )。因此,有效的读写操作要求半字数据访问的地址线0 为 0(地址以0、2 、4 、6、8、A 、C 和 E 结尾),字 数据访问的地址线 0 和 1 都为 0 (地址以0、4 、8 和 C 结尾)。该原则同样用于片外和片内存储器。SRAM 控制器包含一个回写缓冲区,它用于防止 CPU 在连续的写操作时停止运行。回写缓冲区总是保存着软件发送到 SRAM的最后一个字节。该数据只有在软件请求下一次写操作时才写入 SRAM (数据只有 在软件执行另外一次写操作时被写入 SRAM)。如果发生芯片复位,实际的SRAM 内容将不会反映最近一 次的写请求(即:在一次“热”芯片复位后,SRAM 不会反映最后一次写入的内容)。任何在复位后检查 SRAM 内容的程序都必须注意这一点。通过对一个单元执行两次相同的写操作可保证复位后数据的写入。或者,也可通过在进入空闲或掉电模式前执行虚写(dummy write )操作来保证最后的数据在复位后被真正写入到 SRAM。
LPC2132管脚分布
五、硬件原理图
其中K1-K6为六个按键,分别对应清零键、减号键、第二个数字键、等号键、加号键和第一个数字键,接到I/O口的P0.08-P0.13脚。P0.00-P0.07号脚接段码,分别是G、F、E、D、C、B、A、DP。三个数码管的位选通端接到P0.28-P0.30三个管脚上,用于选通数码管。
ULN2803应用电路介绍
ULN2000、ULN2800是高压大电流达林顿晶体管阵列系列产品,具有电流增益高、工作电压高、温度范围宽、带负载能力强等特点,适应于各类要求高速大功率驱动的系统。ULN2003A电路是美国Texas Instruments公司和Sprague公司开发的高压大电流达林顿晶体管阵列电路,文中介绍了它的电路构成、特征参数及典型应用。
功率电子电路大多要求具有大电流输出能力,以便于驱动各种类型的负载。功率驱动电路是功率电子设备输出电路的一个重要组成部分。在大型仪器仪表系统中,经常要用到伺服电机、步进电机、各种电磁阀、泵等驱动电压高且功率较大的器件。ULN2000、ULN2800高压大电流达林顿晶体管阵列系列产品就属于这类可控大功率器件,由于这类器件功能强、应用范围语广。因此,许多公司都生产高压大电流达林顿晶体管阵列产品,从而形成了各种系列产品,ULN2000、ULN2800系列就是美国Texas Instruments公司、美国Sprague公司开发的高压大电流达林顿晶体管阵列产品。
它们的系列型号分类如表1所列,生产2000、2800高压大电流达林顿晶体管阵列系列产品的公司与型号对照表如表2所列。在上述系列产品中,ULN2000系列能够同时驱动7组高压大电流负载,ULN2800系列则能够同时驱动8组高压大电流负载。美国Texas Instruments公司、美国Sprague公司生产的ULN2003A由7组达林顿晶体管阵列和相应的电阻网络以及钳位二极管网络构成,具有同时驱动7组负载的能力,为单片双极型大功率高速集成电路。以下介绍该电路的构成、性能特征、电参数以及典型应用。2000、2800高压大电流达林顿晶体管阵列系列中的其它产品的性能特性与应用可参考ULN2003A。
——创业学习心得3篇
选择张斌老师创业管理这门课程,或许是我在大三下学期遇到的一个最恰到好处的安排。如果接触的早一点,可能会因为阅历的苍白与对未来计划的不清晰而对这门课程毫不挂心;如果接触的晚一些,可能就无法在即将踏入社会这个宝贵的时间节点更新思维、抓住机遇。
无可否认,创业管理这门课给了我很多非常宝贵的启发,原来隐藏于心的创业思路也通过对这门课的深入学习变得渐渐清晰,他让我明白了哪些创业思路是空想、幻想;哪些又是创新的可以实践的。而张斌老师于我不仅是一位令人尊敬的良师,也是一位和蔼亲切的长辈。从一开始挑战杯不厌其烦的耐心指导到后来创业方案一遍遍的指正修改,那些隐藏在自身思维中、固有的局限,在这样的过程中被逐渐击破;而一种更加系统的、对于创业的全新认识,在不断的反思中慢慢形成。
创业,顾名思义,就是在风险与不确定条件下,为获利或成长而创建新型组织的过程。而创业的独特性、偶然性以及与宏观环境的紧密性也让它变得比其他劳动工作更为复杂。
在我团队“微培训”有限公司策划方案诞生之前,我们小组的第一个创业计划是“私家厨房”,即为都市即将面临柴米油盐生活却又没有烹饪技能的大龄男女提供烹饪培训课程。而这个后来张老果断毙掉的想法,一开始是由我先提出的。可能因为本身是个想法偏浪漫的女生,认为煮饭是一件人人都有需求又很有趣的事情,而为一些可能在这项技能存在困难的人们提供培训课程,是既有意义又能增进社会幸福感的。但当时的我忽略了,我们的基本出发点是制订一套可以盈利、可以在市场上长期生存的创业方案,而要创业,就必须要具备技术、资本、市场这些核心要素。而在*当今的市场环境与消费背景下,除去“新东方”这类培养专业厨师精英的烹饪学校,一般青年男女是完全不必通过缴费参加培训班来掌握烹饪这项国内每个家庭都代代相传的技能的。其实最开始方案的被否定,算是给上课初期的我带来一个不小的冲击,一方面是因为个人的想法带偏了整个团队而感到愧疚,另一方面也是第一次认识到自己原先理解与感知的创业和客观存在的现实状况有很大偏差。但也是因为这样一次失误,让我开始真正踏实下来,去感悟这门看似大家都可以插上两句,实则存在着大学问的课程。
而“微培训”项目的诞生,是基于对宏观环境、行业现状、目标市场群体分析及需求预测的一系列基础上,运用课程上学习到的科学的思维和方法,策划制定的一套比较完整的创业计划书。“微培训”是一个基于微信公众*台的信息服务系统,结合当前热点的O2O商业模式,旨在充当一个桥梁的角色,定位于在校大学生、白领等年轻群体以及小型的兴趣培训机构,致力于整合小型兴趣培训机构的培训资源,将相关培训机构的信息与有兴趣参加培训的人群,成功的链接并进行匹配,为对文体类、艺术类以及其他兴趣的相关人群提供精准的信息服务。这样的思路和路径让我们整个小组成员都非常兴奋,经过反复思考、论证以及与张老的沟通,确定它是一个确实可行的创业计划。而在整体分析报告书的撰写部分,我主要负责对目前大学生利用微信*台自主创业的外部环境进行分析,从政治、经济、社会、技术等方面来分析创业过程中肯能存在的优势与劣势、机会和挑战。并通过对市场现状进行分析与供求预测,得到了目前微信创业*台的发展潜力、培训类课程的市场需求以及主要目标客户群体的消费偏好。因为只有对所处的客观条件有了准确的把握,才能真正制定出一套切实可行、接地气的创业计划方案。
在真正的项目推进环节中,我又主要负责市场开发板块中的上游市场开发,针对目前市场很大一部分小型培训机构在业务营销推广上存在一定困难的现状,利用“微培训” 公共服务*台的渠道优势与成本优势帮助其做辅助宣传,以减少其宣传推广上的难度,帮助其获取更大的收益。这样一来,微信这个目前广泛普及的通讯软件不仅能够帮助客户寻找到对自身有用的信息,还能够帮助商家寻找到目标客户,便于其对目标客户展开营销,加强客户关系管理。一个具有整合各类小型培训机构的相关培训信息,面向对其有兴趣的目标群体发放功能的微信公众*台就这样在小组成员的共同努力下应运而生了。
在这学期的创业管理课上,我们小组的九个成员在一起学习创业管理的理论知识;一起探讨创业道路上的七七八八;我们研究中外著名创业人士创业成功的重要原因;我们一起参与到创业计划方案的选择与制定,不断学习思考并总结经验。这一个个过程中,虽然没有参加创业实战练习,但是理论学习与对创业的计划管理方面的操控,我们都在这一堂堂实用的创业管理课上精准把握了,这个非常让我知足。创业是一项长期准备的活动,不是一时热情能够决定的。但机遇与挑战并存,本身就是在自身与社会的交际里进行博弈。所以我们即使不急于创业,也要了解创业,理解创业的真谛所在,只有准备着迎接挑战,才能等来你要的机遇。
各位领导、各位评委、各位工友们:
大家好!
今天我演讲的题目是《创建学习型企业引领宿迁创业文化》。
大家知道,古往今来,文化作为一种精神力量,对推动经济发展和社会进步至关重要。如果把经济实力比作一个地区的“骨”和“筋”,那么文化底蕴就是一个地区的“气”和“神”。可以说,文化不仅是一个地区综合实力的重要组成部分,而且是一个地区的核心竞争力所在。一个国家、一个地区,甚至一个企业,管理的最高层次和境界是通过文化进行管理。
在宿迁这片古老而辽阔的土地上创造了丰厚的本土文化,我们要很好地取其精华、消化吸收,寻找激励我们继续前进的动力源泉。如何建设一种能够弘扬我们精科创业精神、促进科技创新企业的创业文化?我认为,创业文化的建设必须树立三大理念。
一是强化自身,做好导向。首先是转变员工的思想观念,树立“学习工作化、工作学习化”的教育思想,认真端正学风、态度,适应新形势下的企业工作特点。我公司是1995年新成立起来的非公有制企业,员工的年龄较轻,但大部分文化基础较薄弱,从建厂之初,我们就树立培训更新观念、培训更新知识、培训更新技能的宗旨,不断在培训上创新,档案室因需订了许许多多的技术资料,提高培训的针对性,使全员的知识结构和水*都得到较大的提高。
自1995年以来,以总经办牵头,组织班组长以上干部建立周六日读书学习制度,十年来持之以恒,学习的范围涉及企业管理、技术管理、市场营销等知识,在此基础上不断推出学习型的班组、学习型部门、学习型车间。由于引导正确,措施得力,在各个岗位上都涌现出一大批的技术能手、操作能手。10年来的读书学习活动带动了相当部分的员工不断求知上进,过去企业的大中专毕业生由过去进厂的不足10名发展到现在的60员工都达到大专以上文化水*,成为宿迁市所有企业中拥有人才比例最多的企业。
二是将创建学习型组织与大力实施技术创新工程相结合。学习型企业的任务之一就是最大限度地调度和发挥职工的积极性,最大限度地凝聚和激发职工的智慧和创造力。我们就是在这样的宗旨下积极引导职工为企业建功立业和发展献计出力,激发职工将热情投入到企业的技术创新工程中。我们在开展技术革新的工作中,添置了一台全自动埋伏焊机,不仅使公司的油箱焊接质量得以提高,而且,加快了工作效率,整体的外观也得到了客户的认可。一份耕耘,一份收获,从1998年以来,由于学习型组织的创建,在管理上、技术创新上,先后多次被江苏省人民*和省科委评为先进企业。
三是将创建学习型组织与企业文化建设相结合。加强企业文化建设是为职工创造良好的学习环境,增强企业凝聚力,拓展职工学习空间的有效途径。首先选择理念,营造文化氛围,根据企业文化包含精神文化、制度文化、行为文化和物质文化的结构原理,我们在1996年就开始了系统的企业文化体系的基础过度工作,提出“创一流企业、塑一流人才”,提出企业的学习观“永不满足、不断进取”,并同时提出企业精神和企业市场观、质量观、产品观、人才观、道德观、安全观等。通过企业的发展,以实现“由强迫到习惯,由习惯变文化”的管理飞跃;其次是营造企业文化氛围,对车间、办公室和主要通道采用员工风貌照片、经营管理理念、光荣榜、报栏、荣誉牌等为主要内容的文化装饰,渐进式的培育员工良好的思维定势和行为习惯;第三是采取有声有色的形式教育,开展演讲、文娱、集体观摩、企业报等形式和活动,教育职工牢固树立正确的人生价值观,培育职工良好的职业道德和法律意识,不断提高职工思想道德素质和主人翁的责任感,从而加速企业发展动力。
韦尔奇说:“一个组织必须有不断向外界学习的欲望和能力,并且还要以最快的速度将所学的一切转化为行动和能力,竞争力就是这样提升的”。有鉴于此,我们建立学习型组织过程中,强调与工作密不可分的学习,尤其是注重“学”后的“习”以及通过“习”来提高全员知识生产力.
在学习中成长,在学习成大的精科公司已经走完了10年的创业历程。10年来我们在市场中学习,不断更新观念,一次次打破*衡,又一次次创造*衡,造就了一批市场观念强、善学习、懂管理的骨干队伍。
同志们,新事业需要新知识,新时代呼唤新文化。让我们携起手来,加倍努力,攻坚克难,为实现公司20__年全年发展的战略目标而努力吧!
20xx年7月,一股股创业热潮相继开始,我们村也不例外。在昭潭乡社会事务办的组织与号召下,我们参加了一连串的创业知识培训讲座。由于现工作原因,我没能天天当场,但我老公却坚持不懈积极参加。每当他听完讲课回来,就立马同我一起分享他的感受和心得。他说:“近几天的创业培训班学习,使我对创业有了更多理性的认识,使我学到了很多创业准备的知识,使我对创业更有激情。听完课后我感觉自己的神经思维活跃了,看待现今如何创业,创业中的一些难题都有了初步的领悟与认识。现场和老师模拟应聘,对我今后参加工作也是一种磨练和挑战。参加完这次创业培训,我的性格也发生了些许变化,以前,碰到这样的场面,我大多比较怯场,从不多言。但此次,我却非常开朗大方,积极发言。我想正因是这样的课对我而言是正中下怀吧……”听他一席话,我感觉他骨子里的血液都沸腾了,这几堂课确实令他受益匪浅,而我也倍感欣慰。对于目前一个失业在家的人来说,这是一大补药,补得及时,效果又好。
创业培训第八天,我们参加了此次培训的结业典礼。我们针对前七天所学到的创业所具备的素质,怎样创办企业等内容,着手写了自己的第一份创业书。虽然对此有所了解,但是真正做还是比较难的。做了整整两小时,才把一个初步的计划写完。做完计划后,使我对企业有了更全新的认识,计划是实际行动的指南,所以在我们做计划的时候一定要考虑全面,做到细、准、实。并且要结合自身的诸多情况,联系实际。
曾经我和老公也经营过自己的小店,可中间由于种种原因,未能坚持到底。学习培训过后,我们有了一笔巨大的“财富”。现在的我们对创业这方面有了更多的认知,相信如果再次扬帆起航,局面定不一样。感谢乡领导给我们搭建了这样一个学习、交流、促进的*台,使我们了解到*时接触不到的知识,给了我们一个展示自我的舞台。我坚信这将是我今后人生中的一大转折点,将引导我风雨兼程,勇往直前!
——嵌入式系统设计与开发模拟试题及参考答案 (菁选3篇)
(每小题4分,共20分)
1、简述嵌入式系统的定义和组成结构。
答: 嵌入式系统是以应用为中心,以计算机技术为基础,并软硬件可剪裁、功能、 ,可靠性、体积、重量、成本、功耗、成本、安装方式等方面符合要求的专用计算机系统。 嵌入式系统一般由嵌入式微处理器、存储与I/O部分、外设与执行部分、嵌入式软件等四个部分组成。
2、简单说明ARM微处理器的特点。
答:(1) 体积小、低功耗、低成本、高性能。
(2) 支持Thumb(16位)/ARM(32位)双指令集,能很好地兼容8位/16位器件。
(3) 大量使用寄存器,指令执行速度更快。
(4) 大多数数据操作都在寄存器中完成,通过Load/Store结构在内存和寄存器之间批量传递数据。
(5) 寻址方式灵活简单,执行效率高。
(6) 指令长度固定。
3、简述嵌入式系统产品的设计和开发过程。
答:① 在嵌入式系统的开发过程中,一般采用的方法是首先在通用PC机上的集成开发环境中编程;② 然后通过交叉编译和链接,将程序转换成目标*台(嵌入式系统)可以运行的二进制代码;③ 接着通过嵌入式调试系统调试正确;④ 最后将程序下载到目标*台上运行。要强调,选择合适的开发工具和调试工具,对整个嵌入式系统的开发都非常重要。
4、简述嵌入式系统设计中要考虑的因素。
答:在嵌入式系统的开发过程中,要考虑到实时性、可靠性、稳定性、可维护性、可升级、可配置、易于操作、接口规范、抗干扰、物理尺寸、重量、功耗、成本、开发周期等多种因素。
5、什么是BootLoader,了解其在嵌入式系统中作用。
答:就是启动载入或引导加载又叫自举装载。由于系统加电后需要首先运行BootLoader这段程序,因此它需要放在系统加电后最先取指令的地址上。嵌入式处理器的生产厂商都为其处理器预先安排了一个在系统加电或复位后最先取指令的地址。
(每小题2分,共10分)
1、DSP(Digital Signal Processor),数字信号处理器,一种特别用于快速处理数字信号的微处理器。DSP处理器对系统结构和指令进行了特殊设计,使其适合于执行DSP算法,编译效率较高,指令执行速度也较高。
2、RTOS Real Time Operating System. 译为实时操作系统。实时系统是指一个能够在指定的或者确定的时间内,实现系统功能和对外部或内部、同步或异步事件作出响应的系统。
3、BSP设计板级支持包(BSP)的目的主要是为驱动程序提供访问硬件设备寄存器的函数包,从而实现对操作系统的支持。类似于PC机上的BIOS,是一个承上启下的软件层次。由嵌入OS和用户开发相结合取得。BSP一般是在嵌入式系统上固化存放。
4、总线竞争就是在同一总线上,同一时刻,有两个以上器件要通过总线输出数据和状态。发生总线争用现象。可能会造成总线上数据或逻辑混乱。
5、微内核嵌入式操作系统中,经过划分功能,用很短的结构(几到几十千字节)实现最基本和很具体的功能,此结构成为微内核结构。
(每小题3分,共30分)
1、嵌入式开发一般采用__方式,其中宿主机一般是指机 )。
2、嵌入式系统一般由嵌入式微处理器、_____________、_______________、等四个部分组成。
3、嵌入式系统设计时,必须优先考虑的问题有:运行和速度、功能扩展、能耗和体积等问题。
4、嵌入式处理器的层次分为:1)嵌入式微控制器;2)_2)嵌入式处理器 ;3)嵌入式DSP; 4)嵌入式片上系统_。
5、选择ARM处理器需要考虑的四大因素有:内核/版本;片内功能模块。
6、为了提高的开发的效率,降低开发难度,提高重用性,经验告诉大家:式操作系统,采用模块化方式是开发嵌入式系统软件的必由之路。
7、哈佛体系结构数据空间和地址空间ARM920T采用
8、由于嵌入式系统本身不具备____,即使设计完成以后用户通常也是不能对其程序功能进行修改的,须有一套__开发工具和环境___才能进行交*发。
9、一般而言,嵌入式系统的构架可以分为4个部分:处理器、/输出和软件,一般软件亦分为__嵌入式OS____和应用软件两个主要部分。
10、A/D变换器工作原理可分__逐次比较式____和___双积分__两种工作方式。
——嵌入式硬件资深工程师劳动合同模板格式 (菁华1篇)
用人单位(甲方):_________
地址:_____________________
XX编码:_________________
职工(乙方):_____________
住址:_____________________
XX编码:_________________
身份证号码:_______________
甲方_________因生产(工作)需要,招(聘)用_________(简称乙方)为本企业职工。双方根据*等自愿、协商一致的原则,订立劳动合同,确定劳动关系,明确双方的权利、义务,并共同遵守履行。
一、合同期限
(一)本合同自_________年_________月_________日起生效。本合同有效期经甲、乙双方商定,采取下列第_________种形式:
无固定终止期限(即长期合同,但可按本合同第九条变更、解除和终止)。
合同有效期限_________年,至_________年_________月_________日止。
合同期限至_________工作(任务)完成时终止,其完成的标志事件是_________。
(二)新招收、调入、统一分配人员的劳动合同自生效之日起_________个月内为试用期。
(三)本合伺由甲乙双方各存一份。鉴证时还需交鉴证机构一份。均具有同等效力。
二、工作任务
(一)乙方生产(管理)工种(岗位):_________。
(二)乙方完成甲方正常安排的生产(工作)任务。
三、工作时间
甲方实行国家规定的工作时间制度。甲方因生产、工作需要可安排乙方加班加点,但每月累计不得超过三十六小时,每个工作日连续加点不得超过三小时。
四、休假
乙方在合同期内享受国家规定的节日、公休假日以及探亲、婚丧、计划生育、女职工劳动保护等有薪假期待遇。
五、劳动报酬
(一)乙方工资分配形式、标准:
工资标准、形式及调资办法按企业依法制定的工资分配制度执行;
乙方月工资收入,由甲方按企业工资制度,根据乙方工作业绩、出勤和纪律情况,考核发放;
甲方在合同期内,有权根据按劳分配原则及经营指标变化、经济效益高低,依法修改企业工资分配制度。
(二)甲方每月如期发放工资。
(三)甲方安排乙方加班,无法安排补休的,按国家规定发给加班工资。
(四)非因乙方原因所致的停工、停产期间,甲方按国家、省、市规定发给乙方停工工资或生活费。
六、保险福利待遇
(一)乙方原为本企业固定工或临时工改(招)为合同制职工的,原符合本市规定的连续工龄,视为本企业工作年限。
(二)甲方按国家、省、市有关规定,给予女职工“五期”(经期、孕期、产假期、哺乳期及更年期)的劳保福利待遇和乙方符合计划生育子女以及保留原固定工经确定的供养直系亲属的劳保医疗待遇。
(三)乙方患职业病或因工负伤医疗期间的保险福利待遇,甲方按本市有关规定执行;医疗终结,经市劳动鉴定委员会确认,完全丧失劳动能力的,由甲方按规定给予办理提前退休,部分丧失劳动能力的,按本市有关规定执行。
(四)乙方在合同期内患病或非因工负伤,停工医疗期限的计算及停工医疗期内的保险福利待遇,按国家、省、市有关规定执行。
(五)乙方因工或非因工死亡的丧葬补助费、供养直系亲属抚恤费、救济费、一次性优抚金、生活补贴、供养直系亲属死亡补助费等,由甲方按国家及本市规定分别发放。
(六)在合同期内,甲、乙双方需按照国家及省、市有关规定,为乙方缴纳基本养老保险、失业保险和工伤保险等社会保险基金,并定期向乙方通告缴纳社会保险基金的情况。
(七)非因乙方原因所致的停工、停产期间,乙方按国家规定享受的休假、劳保医疗等待遇不变。
(八)乙方其他各种福利待遇,按甲方依法制定的制度执行。
七、劳动保护
(一)甲方按照国家有关劳动保护规定,包括有关女职工、未成年工(16周岁至未满18周岁的职工)的劳动保护规定和《______》,切实保护乙方在生产、工作中的安全和健康。
(二)甲方按国家规定对乙方进行安全生产知识、法规教育和操作规程培训以及其他的业务技术培训。乙方应参加上述培训并严格遵守与其岗位有关的安全卫生法规、规章、制度和操作规程。
(三)甲方根据乙方从事的工作岗位,发给乙方必要的劳动保护用品,按劳动保护规定定期安排乙方进行体检。
(四)乙方有权拒绝甲方违章指挥,对甲方及其管理人员漠视安全健康的行为,有权提出批评并向有关部门检举;控告。
八、劳动纪律及奖惩
乙方应遵守甲方依法制定的各项管理制度,甲方有权对乙方履行的情况进行检查、督促、考核和奖惩。
九、续订、变更、解除、终止劳动合同
(一)本合同期限届满即自然失效,双方必须终止执行。如经双方协商同意,可以续订合同。
(二)甲方因生产经营情况变化,调整生产任务,或者乙方因个人原因要求变更本合同条款,经双方协商同意,可以变更劳动合同相关内容,并由双方签字(盖章)。
(三)有下列情况之一的,劳动合同即告终止:
乙方已达到法定退休年龄的;
乙方死亡;
甲方被依法撤销、解散、歇业,宣告破产;
劳动合同约定的终止条件(事件)已经出现;
乙方被批准自费出国留学或出境定居的。
(四)有下列情况之一的,甲方可解除劳动合同:
乙方在试用期内,经发现不符合录用条件的;
乙方经常无正当理由不能完成合同所规定的生产、工作任务的;
乙方患病或非因工伤,医疗期届满后不能从事原工作,也不宜改做其他工作的;
乙方的行为按照国家的有关规定应予辞退、除名、开除的;
经优化劳动组合组合不上,按*有关规定可以辞退的;
其他符合国家、省、市规定的可以解除劳动合同条件的。
(五)有下列情况之一的,乙方可解除劳动合同:
试用期内,认为不适应在甲方工作的;
经国家有关部门确认,甲方劳动安全卫生条件恶劣,没有相应保护措施,严重危害乙方身体健康的;
甲方不能按劳动合同规定支付劳动报酬的;
甲方不按规定为乙方办理退休养老保险等社会保险的;
经甲方同意,乙方自费考入中专以上学校脱产学习的;
甲方不履行劳动合同,严重违反国家法规、政策,侵害乙方其他合法权益的。
(六)有下列情况之一,甲方不得解除劳动合同:
劳动合同期未满,又不符合本条第(四)款规定和双方约定的其他可以解除劳动合同条件的;
乙方患职业病或因工负伤,医疗终结期内,或医疗终结后经市、县(市)劳动鉴定委员会确认属大部分丧失劳动能力的;
乙方患病或非因工负伤,在规定的医疗期内或医疗期虽满但仍住院治疗的;
符合计划生育政策的女职工在孕期、产假期、哺乳期内的;
乙方经批准享受法定假期,在规定期限内的;
符合国家、省、市有关其他不得解除劳动合同规定的。
(七)有下列情况之一,乙方不得解除劳动合同:
劳动合同期限未满,又不符合本条的第(五)款规定和双方约定的其他可以解除劳动合同条件的;
由甲方出资培训(包括上大学、中专、技工学校学习等)没达到《培训合同》要求或本劳动合同规定服务期限的;
担任国家重点科研项目尚未完成的。
(八)本合同经甲乙双方协商同意的,可以解除。
(九)除国家规定的违纪辞退、除名、开除等情况外,甲乙双方终止、解除、续订本合同,必须提前30日书面通知对方,方可办理有关手续。
(十)甲方应按规定为终止、解除劳动合同的职工办理有关手续,为乙方办理失业登记、领取失业救济金提供方便。
(十一)甲方租赁、出售给乙方居住的房屋、宿舍,双方应签订住房合同。甲乙双方因各种原因解除或终止本劳动合同时,有关住房问题按住房合同规定办理。
(十二)若本合同终止或解除,乙方应将合同履行期内甲方交给乙方无偿使用、保管的物品、工具、技术资料等,如数交还给甲方,如遗失应予赔偿。
(十三)乙方如原为本企业固定职工转为全员劳动合同制职工的,解除或终止劳动合同后,乙方提出要求的,甲方可以延缓三至六个月时间办理有关手续:在此期间乙方有接收单位的,甲方应当按乙方原身份为其办理调动手续。缓办手续期间,停止享受企业的一切工资、劳保福利待遇。
(十四)乙方符合国家规定的退休(含提前退休)条件,甲方应按规定为其办理退休手续,并按本市有关规定管理。
(十五)本合同终止或解除劳动合同(属违纪辞退、除名、开除者外)时,甲方应按*有关规定,按乙方在本企业工作年限,每满一年计发一个月的生活补助费,最高不超过十二个月。月生活补助费计算标准是乙方离岗前十二个月的月*均工资收入的209%。因乙方医疗期满解除劳动合同,除发给生活补助费外,还应按规定发给医疗补助费(计算标准与前述生活费计算标准相同)。但乙方按第(十三)款办理调动手续的,甲方可不发给生活补助费和医疗补助费。
十、违反合同承担的责任
(一)一方违反合同,承担违约责任。给对方造成直接经济损失的,应当根据其后果或责任大小,予以适当赔偿。
(二)乙方经甲方出资培训,双方签订培训合同并相应变更本合同有关条款。培训合同是本合同的附件。一方无故不履行培训合同,应按合同规定赔偿对方的损失。
(三)甲方违反本合同第九条第(六)款的规定而解除合同,乙方违反本合同第九条第(七)款的规定而解除合同,应按规定向对方做出赔偿。乙方赔偿损失的金额超过上年本人全部工资收入部分,可以减免,但属教育培训费或住房方面的损失赔偿除外。
十一、调解和仲裁
双方履行本合同如发生争议,应先协商解决;协商无效,可向甲方劳动争议调解委员会申请调解,或向甲方所在地的劳动争议仲裁委员会申请仲裁;对仲裁不服的,可向甲方所在地的人民法院起诉。
十二、双方需要明确的其他事项_________。
十三、在合同期内,如本合同的条款与国家、省、市有关劳动管理新规定不符,双方按新规定执行。
甲方(盖章):_________
法定代表人或
委托代理人签字:_______
_________年____月____日
签订地点:_____________
乙方(签章):_________
_________年____月____日
签订地点:_____________
——嵌入式工程师劳动合同模板格式 (菁华1篇)
甲方(用人单位):_________
地址:_____________________
法定代表人:_________________
乙方(劳动者):_____________
性别:_____________________
年龄:_____________________
民族:_____________________
文化程度:_________________
住址:_____________________
籍贯:_____________________
居民身份证号码:_____________
根据《中华人民共和国劳动法》和有关劳动法规和有关规定,甲乙双方在*等自愿,协商一致的基础上签订本合同。
第一条 合同期限
本合同期自_________年_________月_________日起至_________年_________月_________日止,合同期限为_________年。试用期自_________年_________月_________日至_________年_________月_________日止,期限为_________个月。
有学徒期的工种,学徒期自_________年_________月_________日起至_________年_________月_________日止(试用期包括学徒期在内)。
第二条 生产(工作)任务
甲方安排乙方从事_________工作。乙方同意按甲方生产(工作)需要,在岗位承担_________任务,担任_________工种。
乙方在生产,工作上应达到数量,质量指标:_________。
第三条 劳动保护和劳动条件
为保证乙方完成合同要求的生产工作任务,达到规定的数量,质量指标,保障乙方的安全和健康,甲方根据国家有关生产安全,劳动保护,卫生健康等规定,为乙方提供必要的生产(工作)条件。具体内容如下:_________。
第四条 劳动纪律
甲方根据国家有关规定,制定各项规章制度,乙方增强主人翁责任感,严格遵守国家的各项规章制度,服从甲方的领导、管理和指挥。
第五条 劳动报酬
1.乙方在合同期内的工资与甲方同工种,同岗位原固定工人保持同等水*。乙方在学徒(熟练)期间的生活补贴为:试用期间_________元,试用期满_________元,现工种工资_________元。
2.甲方按规定发给乙方相当于乙方标准工资15%的工资性补贴。
3.乙方的升级按有关规定执行。
4.乙方为重新就业的劳动合同制工人,仍从事原工种的,经考核合格后,甲方按原工资等级支付工资;改变工种的,试用期间的工资按不低于_________级工的标准支付,试用期满后由甲方考核定级。
5.由生产(工作)需要确需加班的,甲方为乙方安排同等时间的调休或按规定支付加班费。
第六条 保险、福利待遇
1.乙方资金、津贴、保健食品、劳动保护用品、物价补贴等待遇,与甲方同工种,同岗位原固定工人相同。
2.乙方患职业病或因工负伤、孕期、产期、产假和哺乳期间,与甲方同工种,同岗位的原固定工人同等对待。
3.乙方患病或非因工负伤,按国家或省有关规定给予医疗期;医疗期内乙方医疗待遇和病假工资与甲方原固定工人同等对待;医疗期满后因不能从事原工作被解除劳动合同的,由甲方按国家或省有关规定发给医疗补助费。
4.乙方因工因病死亡的丧葬补助费、供养直系亲属抚恤费、救济费,与甲方固定工人同等对待。
5.乙方的公休假、婚丧假、探亲假、上下班交通费补贴、取暖和防暑降温补贴等,与甲方原固定工人同等对待。
6.乙方因合同期满后属于第八条第2款第2项和第3款规定情况,解除劳动合同时,甲方按其在本企业工作年限,每满一年发给相当于标准工资1个月的生活补助费,但是,最多不超过12个月的乙方标准工资。乙方按照第八条2款第2项被解除劳动合同的,或按照第八条第5款规定自行解除劳动合同的,以及自行离职的,甲方不发给生活补助费。
7.乙方标准工资的3%为乙方本人缴纳的退休养老基金,由甲方代为扣缴,转当地劳动行政部门所属的社会保险机构。
8.甲方按国家或地方*有关规定,按月为乙方缴纳养老保险基金,行业保险基金和工伤保险金。
第七条 教育与培训
1.甲方对乙方进行各种必要的政治,思想教育和上岗前培训以及必要的职业技术培训。
2.乙方从事特种作业,要经过专门培训,持证上岗,技术培训应达到国家规定的初级工标准。
3.甲方出资培训乙方后,乙方须为甲方服务_________年,否则乙方须付甲方所付培训费。
第八条 合同的变更、解除
1.在下列情况下,甲乙双方可以变更本合同的相关内容。
(1)甲方经上级主管部门批准转产,调整生产任务,或者由于情况变化,经甲乙双方协商同意的;
(2)甲乙双方协商同意,且不损害国家,集体和他人利益的;
(3)本合同订立时所依据的法律、法规、规章、政策已经修改的;
(4)由于不可抗力致使本合同无法完全履行的;
(5)法律、法规规定的其他情况。
2.下列情况,甲方可以解除合同:
(1)乙方在试用期内,经发现不符合录用条件的;
(2)按照*《国营企业辞退违纪职工暂行规定》及甲方的实施细则,乙方属于应予辞退的;
(3)乙方患病或非因工负伤,医疗期满后,不能从事原工作也不能从事甲方另行安排的工作的;
(4)企业宣告破产,或者濒临破产处于法定整顿期间的。
3.下列情况,乙方可以解除劳动合同:
(1)甲方不能按照合同规定,支付劳动报酬的;
(2)经国家有关部门确认,甲方生产安全卫生条件恶劣,严重危害乙方身体健康的;
(3)经甲方同意,乙方自费考入中等专业以上学校学习的;
(4)甲方不履行劳动合同或者违反国家政策、法律,侵害乙方合法权益的。
4.下列情况,甲方不得解除劳动合同:
(1)劳动合同期限未满,又不符合本条第2款规定的;
(2)乙方患有职业病或因公负伤,并经劳动鉴定委员会确认的;
(3)乙方患病或非因工负伤,在规定的医疗期内的;
(4)乙方为女工,在孕期、产期和哺乳期间的;
(5)乙方符合国家规定条件的。
5.乙方被依法开除、劳动教养、判刑的,劳动合同自行解除。
6.任何一方解除合同,应提前30天通知对方,方可办理解除合同手续。但试用期发现不合格的,因辞退解除合同的除外。解除合同,甲方应当报请上级主管部门和当地劳动行政主管部门备案。甲方解除合同应征求甲方工会的意见。
7.合同期限届满,应即终止执行。是否续订合同,应提前30天书面通知对方。如对方同意续订合同,应办理续订合同手续。如不终止执行又不履行续订手续,则本合同将视为自动续订同一合同期限。
第九条 双方需约定的事项
1.在合同没有变更的情况下,甲方不得安排乙方从事合同规定以外的工作,但下列约定情况除外:
(1)合同期内发生事故或自然灾害,需要及时抢修或救灾。
(2)合同期内因工作需要而进行的临时调动(以_________个月为限)。
(3)合同期内发生不超过个_________月时间的短期停工。
(4)法律、法规、规章、政策规定的其他情况。
2.乙方批准出境定居的,试用期满经考核不合格的,以及等情况,甲方可以解除合同。
3.乙方在享受法定假期间,以及_________情况下,甲方不得解除合同。
4.乙方除第八条第3款的规定以外,应征入伍的,以及等情况,可以同甲方解除合同。
第十条 其他需要约定的事项_________。
第十一条 违约责任
本合同一经签订,双方必须严格执行,如遇违约时,违约方应按本企业的有关规定承担违约责任,付给对方违约金_________元;给对方造成经济损失的,应根据后果责任大小予以赔偿。
如因不可抗拒力造成不能履行合同,以致给合同对方带来损害时,违约方可不承担法律责任。
第十二条 劳动争议处理
甲乙双方因执行本合同发生争议,当事人应从争议发生之日起125日内向本企业劳动争议调解委员会申请调解。调解无效的,向有管辖权的劳动仲裁委员会申请仲裁,对裁决不服的,向人民法院起诉。
第十三条 本合同旨在确定甲乙双方劳动关系,明确双方责任权利。有关条文的具体实施和对其他需要直接进一步说明的问题,甲方按程序制定实施细则和规章制度。
第十四条 本合同自签订之日起生效,一式二份。甲乙双方各执一份。本合同用钢笔或毛笔填写,涂改,未经合法授权代签无效。
甲方(盖章):_________ 乙方(签字):_________
负责人(签字):_________
_________年____月____日 _________年____月____日
版权所有:顶伦文库网 2019-2025 未经授权禁止复制或建立镜像[顶伦文库网]所有资源完全免费共享
Powered by 顶伦文库网 © All Rights Reserved.。备案号:豫ICP备19021658号-1