《嵌入式学习心得体会[001].docx》由会员分享,可在线阅读,更多相关《嵌入式学习心得体会[001].docx(40页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 嵌入式学习心得体会(通用10篇)嵌入式学习心得体会 篇1 一、假如特别多人都想做Linux,那么就要对Linux要比拟熟识。 这个熟识不是说对内核,对代码有多了解,而是至少要会根本的操作,特别难想象让一个连编译程式,编辑文本文件都特别困难的人去弄嵌入式的软件吧。总之在进入嵌入式这个领域之前要对自己评估一下,看看自己是不是预备好了去学习嵌入式相关的东西。 二、要舍得花钱买研发板。公欲善其技,必先利其器。 也就是说,理论上可能掌控了特别多,不过不去实践,那只能是纸上谈兵,这样是无法学好嵌入式的。弄个研发板自己摆布摆布,即使什么都不懂,也能根据说明书把厂家给的程式下载到研发板上运行运行,先知其然,
2、然后再通过详细的学习知其所以然,这样能避开学习中的枯燥。目前市场上研发板的种类繁多,一样CPU的板子价格却相差特别多,令特别多人都不知道怎么选择购置。我的看法是,尽量买大厂的产品。由于在初学阶段学习资料少是个特别头疼的事,特别多时候都是无从下手,不知道怎么去做,那么随研发板附送的资料就特别重要了。大厂技术比拟强,附带的程式都是能在板子上运行的,例如我买的优龙ST2410这个板子(不是广告啊),光盘上带了一个bootloader,个2.4.18的内核,更有一个cramfs,这些程式的原始码都是厂家事先做好或修改好的,完全适用于初学者使用。而有些实力不行的小厂家的资料不齐全,我们学习的时候需要自己
3、弄bootloader什么的,那入门就特别难了。不过大厂的板子都特别贵,大家能依据预算来选择适合自己的研发板,不过无论怎样,在学习上投资都是值得的。 三、不要事无巨细的学习,要有明确的目标。 我最开头给自己制定的学习规划是:学习arm体系构造-学习arm汇编-自己移植bootloader -自己移植kernel -做应用,不过不久就被我拒绝了,由于这个过程实在是太枯燥太苦痛了,在学习资料少,没人指导的状况下根本无法进展。于是我打算使用厂家的代码来“玩”研发板,自己弄些应用上去。先是完全使用厂家给的bootloader,kernel,cramfs。之后发觉cramfs中的一些掌握Linux初始化
4、的文件不符合我的需求,于是修改cramfs,删除了QT,修改了网卡初始的IP地址,安装到板子上能运行了之后就开头尝试做一些应用,比方hello world这样的程式。最终移植了一个mpg123到板子上。完万能在不知道原理的状况下来使用板子的一些功能,等熟识板子了再回头学习其中的道理,这样就简单一些。学习嵌入式就是这样,依据问题来选择学习的内容,否则会特别盲目,最终就失去信念了。 四、要有急躁。 不能否认,在学习一门自己完全不了解的技术是特别烦人的。嵌入式的简单在于他的穿插性。也就是说为了讨论某一个嵌入式的问题,你有可能得学习特别多其他的学问,比方操作系统,编译,体系构造等等,那么对于这种状况需
5、要我们有足够的急躁。我在穿插编译mpg123的时候前几次无论怎么修改makefile都无法编译胜利,最终我发觉我用的arm-linux-gcc是2.9版本的,比拟老,于是我换成新的3.4.1版本,就ok了。 以上是我初学嵌入式所获得的一些浅显的阅历,根本都是基于软件方面的,硬件的DIY我就不行了。盼望我的阅历能给大家一些帮忙。 刚刚和LUPA的嵌入式版主要了uboot的代码,接下来的我想讨论讨论厂家的bootloader代码然后移植一下uboot。 嵌入式学习心得体会 篇2 这个题目很大,给人一种感觉我似乎很胜利,其实不然。实际上自己水平不高,甚至很低,但是做过了一些曲折的学习道路,同时把自己
6、真实的学习历程表达出来,盼望对后来者有借鉴的意义,甚幸!工作三年、几成废人! 我XX年毕业于华中地区的一个理工科大学,专业是机械电子,我当时已经签了一家内陆某个省级机关工作,家里八辈是农夫,并且很偏远,能够进入这样的地方是祖坟有风水。但在毕业前夕有个进入it的时机,我本想进去的,家里人竭力反对,阻力可想而知。同时要交4000元的违约金,对我来说是天文数字。大学里的费用许多是借的,几乎将近一半的费用是在大学勤工俭学挣的,为了省钱,高中一个学期回家一次,大学一年回去一次。并且我个人也有特别的人生背景(悲景更准确),这里不多说了,写十篇也写不完,同时偏离主题。这样我就参与了工作。一张报纸一杯茶的日子
7、,几乎下班后有种很空虚和恐慌的感觉。在工作中虽然是与自己专业有点关系,但是很少。专业几乎荒废。我自己也思索,假如再不出去,自己将会成废人,只好让国家养了。两年后打算出去,但是几成废人,谁要呢,只好到学校去镀金。这是中国教育和社会的悲伤! 至于专业就改为计算机方面,听说好找工作,我说实话不是很对计算机特殊感兴趣,生存第一需要。不要笑我,哈哈! 考研成绩出来,超过了国家线几非常。那个方向要两个,我第三,但是那年非碘,不面试就按分数来排,自然我落选了。其实给我面试时机也不肯定要我,哈哈,自己几斤几两很清晰。 最终调剂到另外一个学校,交钱,咬咬牙,交吧!现在仍旧债台高筑! 进入学校前夕 为什么要把这段
8、列出,看后就知道了。 单位有网络,常常上网查些英语资料,在那里唯独英语没有丢许多。于是我就在网上查资料,学什么好呢,最终确定学嵌入式把,听说跟硬件相比照较严密!而我在大学里多少学习了数字电路,单片机等,所以多少也有所利用,不会真的一无所知。固然在这之前也自学过数据构造,计算机组成原理等。c语言在大学就学了。哈哈这就是我的家底。 我知道自己的根底差,于是我就拿操作系统,数据库、数据构造、c+来看,机关有这个好处,空余时间多,于是寻常就看书,很苦痛,没有人请教。 另外就上网到论坛上去,我就到各个专业的技术论坛,其实是电子论坛和嵌入式论坛。我几乎没有发帖,几乎把几个大型的知名的论坛的帖子翻遍了,虽然
9、有许多重复的,我才知道嵌入式是个什么东东。这些帖子对我以后的学习产生了极大的影响。 最关键两点: 1、嵌入式是什么? 2、嵌入式需要哪些学问? 知道了这两点,好办!我就开头规划学习路线。计算机的根本理论不能丢,于是重点看组成原理,数据机构,操作系统、c+。同时论坛上了解到,实时操作系统ucos是一个很好的嵌入式操作系统,对初学者很好。于是我就买了一本书,但是代码在电脑里调不通,网上也有许多一样的问题,我就看书,分析代码,一遍不行就两遍,三遍,这样才看了入了门,才知道什么是进程。原来看操作系统书时,根本就不知道进程是个什么东西。 在这段时间把握的东西不多,但是,对我以后的影响很大,我想起了大学时
10、一个同学跟我说过了一句话:大学里最重要的不是学到了什么,最重要的是学会怎么学!也许是这个意思。 进入我的避难所 对我来讲,再次进入大学不再是大学,而是避难所。盼望这次进入给我喘气和养精蓄锐的时机和时间。我是这样认为和实践的。 在学校我有三件事:上课,上图书馆,上网。 对于上课,学校开了许多课程,特别好,许多是名人名师讲解,于是许多同学都想学,都去听。我也考虑过,最终放弃。我是这样认为的,时间是有限的,什么都想学,什么都学不成。于是我把我自己学的课进展了分化,一般的课程通过就行,重要的肯定好好学。我盼望不要什么争辩学习课程多和少的问题,这仅仅是我的看法。所以我的成绩应当是很差的。分数低。好在后来
11、的单位没有要我的成绩单,否则就惨了。 我个人感觉是上图书馆的效率比在寝室里高多了,这是我的阅历。 嵌入式学习心得体会 篇3 讨论嵌入式系统已经有快两年的时间了。很庆幸自己当时选择了嵌入式系统作为自己的讨论和职业方向,可以说它是一种催化剂,让我自身的修养和讨论力量都有了很大的提高。 在嵌入式系统的大门前,我只能算是刚刚看到这个大门的台阶,但这段小小的距离让我受益颇多,现将其中心得奉献出来,欢送高手前辈们指正,以供刚接触的新人参考。 在写之前,想先写一句话,千万不要以为你是天才,所谓天才即胜别人N倍的人,假如你真认为你是天才,请以天才的标准来要求自己,将自己付出和别人的比例以N:1来进展。 (1)
12、学习与生活心态。 许多朋友都是在刚步入大学校门开头接触计算机或者其他。大学是一个很让人迷茫颓废的地方,可能你在高中踌躇满志,但在大学的治理机制下却心态渐糜。能够在大学(大一)里找到自己人生之志的同学有多少?目标要明确,不要得过且过,不要追赶热门的东西。 不管在什么时候,心里都要有自己的信念和抱负,不要被其他东西左右了自己。要从兴趣和竞争动身,由于这才是你产生动力源的地方。学东西时,要让自己先喜爱上它,要学会享受学习它的时间,喜爱乔XXX的都知道,乔老爷子最常说的一句就是要享受竞赛的时间。 由于只有你喜爱上了它,享受了它,才不会被它所产生的压力压倒自己,不要产生一种厌恶的心理。而且心态要调整,不
13、要一味的蛮学,死学,在没有什么兴趣学的时候可以先玩几天,在回过头来,或者用其他的方式来转换。要抱着一种十年方能磨一剑的心理,扎扎实实从根底开头,不要为高速开发的一些现象所迷惑,那些都只是软件的功绩。 我个人认为搞编程,英语和数学很重要,大家肯定要时时的抓,至于怎么抓那就是另外一回事了,固然其他的学问也要吸取,可以多接触点天文,地理,人文方面的东西来补充自己。转换的生活方式。要学会生活,在人的一生中,都会遇到一些很不快乐的事,或者大大小小的意外,孙子兵法里面一句大意就是说,战场上要会将劣势转成优势,即最大的劣势很可能就是你的优势所在。 一个打击你可以把他变为前进的动力,不必为了一点挫折和捶胸顿足
14、,不必为了一点小事争吵不休。空闲的时候可以躺下来看看天,你就会明白自强不息,厚德载物之理。(看到一些为了失恋或者其他而堕落的人真的很难过和惋惜)。 要给人以帮忙。别人有困难时或者一些举手之劳在自己解决范围内的尽力帮之,这对自己不会损失什么,相反在对方心里能够树立你的形象和增加好感。记住,给人之恩时也是给你自己铺路,这个世界不是靠你一个人可转变的。 (2)编程语言的选择语言的争辩。 许多初学择,老是在学习何种语言上举棋不定,试问,中国牌子有几个不被骂的,试问,世界上哪部影片没人说他坏话的?术业有专攻,各司其职,每个语言的消失确定都有自己价值和领域的范围,不同的只是价值和领域的高级和大小。 就像高
15、,矮,胖,瘦组成一个“型”。但是技术是进步的,这个进步也是在旧的根底上。放心,技术再飞跃也不会今日奔I,明天扣肉的快速,在学习的同时也要时时关注整个语言界的走势(貌似哪个伟人说的与时俱进),保持一种同步曲线的前进。语言能干什么?能问这句话,很欣慰。 说明你是从根底学起才会问出这样的话来。但换而言之你一开头对这门语言调查的信息缺乏。庙算者胜,对自己身边的事物了解是特别重要的,这也能说明说你的教材或者教育你的人不够充分。假如是我对新手沟通,我会花足时间让他明白这门语言是什么,能干什么,整个体系等等。 这样在学的时候,对同一条语句上的理解你可能跟别人就不一样了,由于你知道这门语言的体系架构,你可以从
16、更多的特性角度去挖掘使用它。提高自己对语言阅读力量。如何快速的进步?可以告知你没有一步登天的方法,但是也可以告知你如何让你快速把握你所学的技术。多读他人代码,多领悟他人思维,多给自己出难题,多几种方法来解问题,多将语言的思想和身边的事物联系起来。想想你是怎么把握一般话的,方法就不详细说了。 编程的思维。计算机是布满诱惑的东西,许多人都说喜爱计算机,那只是它的外表,你喜爱的只是他的一种扩展性的东西。能学计算机我很快乐,由于计算机从某种意义上来说将空间的距离给消退掉了。这里没有流血,没有牺牲。你可以以一种艺术家的思维来塑造它,可以以侦探的规律思维来解决它,可以以一种战斗狂人的思维来摧毁它。 你可以
17、将你的这种思维表达在代码和整个布局里,不要惊异别人代码思维的异风,你也有自己的思维风格,你也可以,你也可以用自己代码让别人惊异。记住你学东西时更多的要体会他的思维,比方数学,微积分,离散,很多的定理,你学完以后可能永久都用不到,但是你可能有这种感觉,在你遇到某一问题时,这一问题的性质和你学到的东西很类似,但是中间就是差了一点东西,对了,这就是它思维上的一种运用,一种抽象,一种转换。 嵌入式学习心得体会 篇4 目前最常见的嵌入式LINUX方面,我认为也许3个: 1、嵌入式LINUX上层的应用,包括QT的GUI开发 2、嵌入式的LINUX系统开发 3、嵌入式的驱动开发 学习嵌入式: 第一、C语言要
18、把握(硬件略懂),C语言是全部编程语言中的强者,单片机,DSP,类似ARM的种种芯片的编程都可以用C语言搞定,由于它可移值性强,编译效率高,运算速度快,便于实现理更简单的的数据构造。上层应用和数据存储,我推举使用C+语言。 其次、学习一种嵌入式的处理器架构,个人推举32位的处理器,像ARM,由于嵌入式开发8位的处理器显得有点低端,大多数只能用作简洁的工控. 第三、学习一种嵌入式操作系统,像LINUX,WINCE等都可以,LINUX更好。 ARM是一种微处理器,已普及工业掌握,消费类的电子产品,通信,网络,无线等各类的产品基于ARM技术的微处理器已占75%以上的市场份额,可见其技术已逐渗入到我们
19、生活中的各个领域,像手机就是用ARM7 ARM9 ARM11的微处理器技术开发的。嵌入式系统最常见的ARM系列,ARM7,ARM9,ARM11,cortex-A8等。 我们都是曾经从大学里走出来的迷茫羊羔,工作以后我才知道,在大学里不是学到了什么,而是学会怎么去学,信任自己,理清自己的思路,依据自己的性格,剖析自我适合往哪方面进展。 嵌入式学习心得体会 篇5 首先,我们学习的课本是嵌入式系统应用教程。我学习的体会是这样的:开头时,由于是刚刚入门,对教师书的好多东西是奇怪的,好多名词也是新奇的,不过不太懂什么意思。但是渐渐的,了解的深入让我有了更深的感受和体会。 在嵌入式的学习过程中,让我了解了
20、什么是嵌入式系统。它就是以应用为中心,以计算机技术为根底,软硬件可定制,适用于不同应用场合,对功能、牢靠性、本钱、体积、功耗有严格要求的计算机系统。他一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统、用户应用程序四个局部组成,用于实现对其他设备的掌握、监视或治理功能。嵌入式系统已经应用于科学讨论、工业掌握、军事技术、交通通信、医疗卫生、消费消遣等领域,人们日常使用的手机、PDA、汽车、智能家电、GPS等均是嵌入式系统的典型代表。 一开头我们就学习嵌入式的系统的根底局部,那很简洁,就是一些定义或是介绍之类的。在进入其次章时,就开头学习了嵌入式开发过程中的主要操作系统linux,在接下来的课程中
21、,我发觉嵌入式的学习过程还是蛮好玩的。在对linux的学习中,我们对它有了一点点的了解,接着就是学习一虚拟机的方式安装linux。对我来说好玩的就是安装的过程了,首先我们跟着教师的脚步走,学会了怎么安装,在自己动手进展对它的安装,这个过程是简洁而好玩的。这样的开头让我对它布满了兴趣,也对以后的学习布满了信念。 其次就是安装好了之后,教师就更深一步的教我们应用了。在这是教师首先交给我们的是一些简洁的命令应用,Linux具有很丰富的命令,绝大多数命令具有大量的参数。 在学习命令的过程中,只要你仔细的看着教师操作还有仔细听着他讲,你就会发觉有些命令的操作还是很简洁的,不过在操作的过程中,我也有遇到有
22、些困难,会消失你根据书上学习的例子,将命令输入终端时会消失你不想要的结果,也就是错误的结果。这是问问旁边的同学或是懂的同学就可以解决了。 在对于这局部的学习中,让我知道了命令对于嵌入式的重要性。它是linux的重要内容,linux中全部的功能都是通过命令执行。在实际应用中,为了削减系统开销,常常不使用图形界面,此时,对系统的全部操作都需要以命令方式来执行。在嵌入式系统开发过程中,由于目标机的性能和配置比拟低,因此,一般状况下目标机仅具有命令窗口而没有图形界面,对目标机的全部操作都通过命令来实现。 还有的那就是进一步学习与嵌入式系统开发相关的linux的效劳,他们的启动、设置等的操作和应用。而在
23、学习之中,我们主要介绍的是嵌入式系统中开发工程使用的TFTP、Telent和NFS效劳。第一个实现的事上机位与下机位之间文件的传输、无磁盘网络的设备的启动等功能;其次个实现的事远程登录功能;第三个实现的是网络文件系统功能。 从以上的内容之中,并不难感受到我们的学习过程是由浅入深的,这对于我们的学习也有了较好的帮忙。 固然,我们学习的不仅仅是这么几个内容,其中还有相关的试验内容。在我们根底的学习的过程之中,我有了这么一点的感受,总的来说就是概念加专业名词还有介绍加试验。不过你肯定不能小看那些概念和介绍,它对我们有着很重要的指导作用哦!试验那就更不用说了,它提高我们的动手力量,在试验的过程中还能让
24、你更加理解书中的理念,这就是我学习嵌入式的感受。 嵌入式学习心得体会 篇6 4月10号,为期一个阶段的Linux开发根底培训课程圆满完毕,回首这些天所留下的点点滴滴,感受深深,学习上学问点的积存,敏捷运用的过程中感受到了Linux操作的快速高效性能,这也是我所追求的效率! 当时初涉培训课程的第一门课程时,都说Linux操作很繁琐简单,心里总有些顾忌,带着种种担心与些许拼博的决心,开头了自我提升阶段的“充电”,由徐海兵教师教授我们根底课程的培训,我们则像着小学生般仔细的记着笔记,认真听着并学会如何去在实践中运用所学的”Linux下的各种强大的命令集。 在Unit 1中,徐教师具体生动的为我们叙述
25、了有关Linux的诞生、初成长以及辉煌的进展至今,今后应用范围则愈来愈广泛,讲解了为Linux这个宏大的OS做出巨大奉献的一位位精彩的、宏大的人物,他们那种学习钻研的精神、锲而不舍的信念、勇于把握住难得的时机,从小处着手,踏踏实实的制造出了对人类科技进展做出卓越奉献的Linux(Unix)系统,他们的种种,都值得我们去深刻反省、刻苦学习、传承并永久进展下去。 查看ip地址和重启网络效劳是我学的第一个命令: ifconfig eth0、ifconfig eth0 IP地址、service network restart。了解到远程登录软件可用xmanager。 secureCRT是我们常用的,安
26、装好后利用其登录到了Red hat Linux,需要知道Linux主机的ip 地址。徐教师为我们介绍了重要内容:SHELL,即运行程序的程序,如echo $SHELL可查看SHELL的环境变量是csh还是bash。指令pwd可查看当前所在路径,passwd:更改Linux下的密码,仅限root用户有此权限,固然我们是利用虚拟机VMware程序来运行Linux OS的,懂得了如何设置虚拟机的网卡设置、暂停、恢复、全屏等。 简洁的学习后进入Unit 2,命令行的句法让我懂得了用法规章,一系列的命令功能强大: date 显示当前年月时间星期之类的; more指令与less重要但不常用; cat用于查
27、看短小的文件内容,常用! mkdir命令用于在当前名目下创立新的名目; ls 显示当前名目下全部文件;cd 更改文件路径,如cd 、cd . 当前名目; rmdir 删除空文件夹; rm指令很强大,用于删除空名目及非空名目下的指定或全部文件; man 真男人,帮忙手册; history指令用于显示编写过的命令集,以history 序号 可显示序号所指命令; echo回写命令,很重要,我需要连续学习; exit 指从多重SHELL退出来。 嵌入式学习心得体会 篇7 本人本科学的是电子信息工程专业,其实这个专业和嵌入式没有多大的关系,要说有关系就是简洁的讲了下C语言语法,学完之后还不知道什么是C语
28、言,只记住了char,int,long等占几个字节,if, while,for循环什么的,感觉也就能算一些小学就会的题目,全国计算机二级C语言也就糊涂的过了。我这个专业没学过C+,一开头不知道什么是面对对象,这可能会让人笑话了。不过这说的是实话,本科的时候,学院安排的课程大局部偏硬件局部,动手时机比拟多,自然而然比拟喜爱硬件方面。 在大二的时候就听学长说,单片机很难学,那时候经学长介绍,淘宝买了本郭天祥教师出的书51单片机C语言教程,一开头还真是不怎么懂,感觉有点像是看天书,然后硬着头皮去看,当我把51的构造看完了,就不像一开头那样一头雾水了,自己在纸上把51的构造图默画一遍,然后再把各个存放
29、器功能写一下,各个功能口的构造粗略画了下,然后觉得51整体已在我心中了,虽然没有什么作用,但是至少懂得这门课要怎么去学习。其实有些时候不是这个东西你不会,而是在不会的时候自己先告知自己这个太难了,自己先放弃了。 在大三的时候,第一学期课比拟少,我就常常待在图书馆,会去蛮看些专业相关的书籍,现在想想,那时候也是机缘巧合下,看到了一本书从51到ARM,叙述的是从51系列单片机的一般学问动身,将arm处理器和51系列单片机进展比照,引导读者去理解和学习arm处理器的学问。那个时候也有考虑到以后就业的问题,就想到一件事情,假如去应聘工作的话,每个工科院校电子信息类的毕业生都会异口同声地说:我会51系列
30、单片机。当他说这句话的时候,他和别人是站在同一起跑线上的。可我们完全有可能和别人不站在同一起跑线上。正是这本书给我开启了另外一扇大门,让我初步了解了嵌入式。后来去报考全国计算机等级考试三级教程嵌入式系统开发技术,在图书馆奋斗了两个月,最终取得优秀的成绩,也让我进一步了解嵌入式系统。 在大四的时候,我们有嵌入式的选修课,不过当时由于考研的原因,就没有去上过这门课,好惋惜呀!但是,在选择读研讨论方向的时候我还是毅然选择了嵌入式方向,我知道这将成为我将来三年讨论的方向。这学期(研一下学期),很快乐能够再次接触嵌入式系统这门课程,对于导师教的这门课程,我觉得自己上课还是蛮仔细听讲的,固然也被师在台上那
31、讲得头头是道,温文儒雅的风姿所吸引。对于没有学过微机8086的我,有些时候,教师用微机与嵌入式的比照让我头脑没有相关概念. 首先,我对嵌入式在概念上有了一个比拟准确的了解。嵌入式是指以应用为中心,以计算机为根底,并且软硬件可裁剪,适用于对功能、牢靠性、本钱、体积和功耗有严格要求的专用计算机系统。它由硬件平台和系统软件组成。硬件平台指嵌入式处理器和与之通过接口连接的外围硬件平台。系统软件是指实时操作系统和用户应用软件。 谈到硬件局部,我首先想到的是嵌入式处理器那些外围功能模块。对于这局部的学习,我当时花了好长时间看深入浅出ARM7LPC2400这本书,现在想想觉得自己学习方法没用对,完全没有那个
32、必要,自己却花了大把时间在看这些存放器引脚的使用,由于单纯的看过之后还是很简单忘的,之后在进展试验的时候还是翻书来查就证明白这一点。不过一些最根本的模块,例如通用输入/输出口(GPIO),通用异步收发器(UART),向量中断掌握器(VIC),外部中断输入和定时器/计数器还是需要看书仔细去记住那些常用的引脚功能。对于CPU特别这局部,我一开头以为特别就是中断,由于处理程序流程设计是相像的,都是恳求处理器打断正常的程序执行流程,进入特定程序的一种机制。当时还对教师提出的一个看法有点疑义,51可以处理中断嵌套而ARM处理器却不能?我当时脑子里面就在想:中断不都是有硬件设备产生的,那按常理来讲ARM处
33、理器也可以处理的呀。后来在仔细查书,发觉CPU特别有7种:复位,数据中止,中断,快中断,预取中止,未定义,软件中断。而特别向量会使CPU转入特别入口地址执行程序,开头了特别处理。同理的话,中断向量使CPU转入中断入口地址执行程序,开头了中断处理。即当发生IRQ中断时,程序返回地址被存入该IRQ中断模式下的LR,假如连续发生IRQ中断,那其次次的中断返回地址也还是被存入该IRQ中断模式下的LR中,那从前发生中断时候存入的程序返回地址将被掩盖掉,导致不能返回正确的位置。在我解决这个问题的期间,每次睡前思维准会定格在这问题上,久久不能绕出来,其实有时候查书还是最好的解决方案,由于网络资源只能供应给我
34、们局部的参考资料。 对于ARM汇编语言这局部的学习,我认为是需要重视的,学汇编不是说用这语言做多牛逼的事情, 问题的关键在于, 学透了汇编会使你真正理解计算机。另外一方面,只要以后在嵌入式工作中你迟早会在某个阴暗的角落里遇到汇编。“不管你成认不成认, 现在的CPU没有直接跑高级语言的, 哪怕是虚拟机也都是类似汇编的指令集.当遇到崩溃分析, 性能优化甚至编译器抽风等等的时候, 汇编是你最终一根救命稻草(这句话是福来师兄讲的)。”为此他给了我们一份资料,周立功lpc21xx/lpc22xx系列ARM7启动代码分析,主要叙述的是startup.s文件的分析,看了下才发觉教师上课讲的那个启动代码分析许
35、多不理解之处这里都有具体的介绍,这分析太精辟了。 学 ARM7这么久,我认为从硬件上讲,一方面就是学习接口电路设计,另一方面就是学习汇编和C语言的板级编程。假如从软件上讲,就是要学习基于ARM处理器的操作系统层面 的驱动和移植。这些对于我们初学者来说必需明确,要么从硬件着手开头学,要么从操作系统的熟识到应用开头学,但不管学什么,只要不是纯的操作系统级,硬件的存放器类的东西还是要能看懂的,基于板级的汇编和C编程还是要会的。 C/OS-II 是一种基于优先级的抢占式多任务实时操作系统,包含了实时内核、任务治理、时间治理、任务间通信同步(信号量,邮箱,消息队列)和内存治理等功能。它可以使各个任务独立
36、工作,互不干预,很简单实现准时而且无误执行,使实时应用程序的设计和扩展变得简单,使应用程序的设计过程大为减化。C /OS-II是一个完整的、可移植、可固化、可裁剪的占先式实时多任务内核。C/OS-II绝大局部的代码是用ANSI的C语言编写的,包含一小局部汇编代码,使之可供不同架构的微处理器使用。 C/OS-II可以大致分成内核构造、任务治理、时间治理、任务之间通信与同步4个局部。内核构造是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、大事处理等多局部。任务治理局部中的内容都是与任务的操作亲密相关的。包括任务的建立、删除、挂起、恢复等等。由于C/OS-
37、II是以任务为根本单位调度的,所以这局部内容也相当重要。C/OS-II中的最小时钟单位是timetick(时钟节拍),任务延时等操作是在时间治理这局部完成的。任务之间通信与同步为大事处理局部,包括信号量、邮箱、邮箱队列、大事标志等局部;主要用于任务间的相互联系和对临界资源的访问。C/OS-操作系统是在main()中建立的,首先要系统初始化,OSInit(),初始化系统全部的变量和数据构造。然后进展任务的创立,OSTaskCreate();之后进展多任务的启动,OSStart()。在进展任务的并行处理的时候,一个任务的程序是挨次执行的,而不同任务的程序却是并行执行的。从应用程序的观点来看,此处的
38、并行处理只是一个假象。而实际上它是通过实时操作系统的内核掌握任务之间的切换来实现的,也就是任务调度啦。 COS-总是运行进入就绪态任务中优先级最高的那一个。当创立新任务时,或当前任务调用一些可能把自己挂起的系统函数(如OSMBoxPend)时,内核就要进展任务切换。在上述的场合,任务级的调度是由函数OSSched()完成的。 在一个多任务的应用工程中,任务之间并不是完全独立的,它们存在一些需相互协作的处理,这些相互协作是靠任务间的通讯或同步,信号量、邮箱、消息队列可以实现这种任务与任务,任务与中断效劳函数间的通讯与同步。 邮箱可以使一个任务或者中断效劳子程序向另一个任务发送一个指针型的变量。而
39、信号量不行以,其只能发送信号量。消息队列可以使一个任务或者中断效劳子程序向另一个任务发送以指针方式定义的变量。因详细的应用有所不同,每个指针指向的数据构造变量也有所不同,实际上,我们可以将消息队列看作多个邮箱组成的数组,只是它们共用一个等待任务列表。 我们试验所用的ARM开发工具是ADS1.2。ARMADS全称为ARM Developer Suite,是ARM公司推出的新一代ARM集成开发工具。现在ADS的最新版本是1.2,支持软件调试及JTAG硬件仿真调试、支持汇编、C语言、C+源程序,具有编译效率高、系统库功能强等特点。在安装ADS1.2的时候消失过小问题,当时我的电脑是64位的,安装完之
40、后显示不了,后来百度查找到缘由,竟然是文件夹放错地方,应当放在Program Files(x86)这个文件夹中。后来有同学问我这方面的问题,但是发觉他们的ADS1.2安装不了的缘由是由于Licence弄错了。在翻开CodeWarrior for ARM Developer Suite的时候,肯定要记得选DebugInChipRAM,否则Make都消失许多error,而且那些几乎都是未定义函数的错误。之后就进展Debug,调试胜利之后会跳出AXD的界面,选择Options里面的ConfigureTarget,再添加H-JTAG的文件,之后点击GO,程序会跳出汇编语言的界面,再点击下就跳到C语言程
41、序入口地址,之后再点击下GO,程序就开头跑起来。前面所述的这些步骤是抱负状况下程序自身没有发生错误,固然在调试过程中,还是有许多硬件上的问题,一方面是有些开发板可能用久了,用JTAG并口连接的时候接触不良,很简单自动掉线,常消失未连接设备的的Error,还有一方面是跑程序过程常会消失兼容性的问题,导致程序AXD调试时候会消失卡在某个局部始终进入死循环,这个后来是解决了,但是间或还是会消失这个BUG。 通过这学期对嵌入式的学习,我发觉自己尚未把握的学问点还是蛮多的,尤其是对C/OS-II的移植方面,我只是理论上粗略了解,没有经过试验的操作。还有对存储器加速模块(MAM)这方面不够了解,主要一方面
42、当时在做消息队列采集试验(KeySem_SampdataQeue),这个模块被代替掉,不需要使用它,所以后来也没有去把握相关学问点。对于任务就绪算法这局部,我只是上课的时候听“懂”了,课后自己再看完全懵了。对于CAN总线调试的局部,教师上课没有讲到这局部的介绍与应用,但是后来通过自己对试验室师兄们所做的课题初步了解,发觉我自己有必要去弄懂它的构造和原理。 “看书不要盼望一次就会,一次就明白是什么意思,也不要死记硬背,看不明白也没关系,以后遇到了知道去哪里去找就可以了,以后遇到的多了,也就记住了,遇到的少的,遗忘也就遗忘了。”依旧记得当时不懂怎么解决某个问题的时候请教李硕师兄,师兄对我说的这番话
43、。自己在C/OS-II这局部内容挣扎了好久,现在想想,觉得当时不应当一上来就直接阅读内核源代码,看了一些自己把头撞破也想不明白的事,这样直接正面打击我学习嵌入式的积极性。学习啊,还是得要循序渐进。假如你想学习嵌入式肯定要有块学习板。看再多的视频,看再多的书,也不如自己动手试一下,看着很简洁的东西,做起来就可能遇到许多的问题,遇到问题找到缘由,解决问题,只有这样才能学到东西。记得我第一次仿写led的驱动,想自己试一下,可是自己一试,就出了好多的问题,那个led弄了我一天才把led灯点亮。所以不要眼高手低。 对于初学者,有一点小建议,我们拿到一个开发板,很兴奋也很感动,想法自然也许多,想用开发板实
44、现自己的这个想法,实现那个想法,然后又不知道从何下手,然后就去论坛中发一个贴,最终等着别人去回复,当见没人回复就开头埋怨。这种做法是不行取的,有想法是好的,我们要实现自己的想法也是有前提的,首先,我们对这局部学问了解吗?假如不了解就去google一下(最好别用百度,不太好用),了解了一些,也就也许知道要怎么做了。假如再遇到问题,再去发贴问,这样也显得咱们有水平。比方自己连串口是什么都不太清晰呢,就问串口通信怎么做啊,就是人家把代码给咱,咱也不明白是怎么回事啊。见多识广,熟能生巧。多看代码,要从代码中读出代码的意思来。自己平常也要多写代码,多练习(这一点我做的不好,写的少)。 最终,我想说的是嵌
45、入式系统的学习和讨论一旦我们到达了肯定的水平后,其实很简洁,就是如何去看CPU和相关芯片的Datasheet! 嵌入式学习心得体会 篇8 4月10号,为期一个阶段的Linux开发根底培训课程圆满完毕,回首这些天所留下的点点滴滴,感受深深,学习上学问点的积存,敏捷运用的过程中感受到了Linux操作的快速高效性能,这也是我所追求的效率! 当时初涉培训课程的第一门课程时,都说Linux操作很繁琐简单,心里总有些顾忌,带着种种担心与些许拼博的决心,开头了自我提升阶段的充电,由徐海兵教师教授我们根底课程的培训,我们则像着小学生般仔细的记着笔记,认真听着并学会如何去在实践中运用所学的Linux下的各种强大
46、的命令集。 在Unit 1中,徐教师具体生动的为我们叙述了有关Linux的诞生、初成长以及辉煌的进展至今,今后应用范围则愈来愈广泛,讲解了为Linux这个宏大的OS做出巨大奉献的一位位精彩的、宏大的人物,他们那种学习钻研的精神、锲而不舍的信念、勇于把握住难得的时机,从小处着手,踏踏实实的制造出了对人类科技进展做出卓越奉献的Linux(Unix)系统,他们的种种,都值得我们去深刻反省、刻苦学习、传承并永久进展下去。 查看ip地址和重启网络效劳是我学的第一个命令:ifconfig eth0、ifconfig eth0 IP地址、service network restart。了解到远程登录软件可用
47、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指令很强大,用于删除空名目及非空名目下的