2023年度学习嵌入式心得体会6篇【精选推荐】

学习嵌入式心得体会6篇心得体会是我们平时生活中接触较多的书面文体之一,心得体会是可以把学习或者生活中的体验用文字书写下来的书面材料,以下是小编精心为您推荐的学习嵌入式心得体下面是小编为大家整理的学习嵌入式心得体会6篇,供大家参考。

学习嵌入式心得体会6篇

心得体会是我们平时生活中接触较多的书面文体之一,心得体会是可以把学习或者生活中的体验用文字书写下来的书面材料,以下是小编精心为您推荐的学习嵌入式心得体会6篇,供大家参考。

学习嵌入式心得体会篇1

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退出来。

学习嵌入式心得体会篇2

你,逆行的背影,牵动着多少颗心,伸出你那温暖的双手,托起无数的生命。一纸红战书,满满的红手印,生死线上方显你的深情……

——题记

不久前的一天,一场突如其来的灾难无声无息地降临了。伴随着新年的到来,潜藏的危机也随之而来。正当人们迎接鲜红的春节时候,一则则鲜红的消息也涌进了人们的耳朵。这个年,注定不寻常……

仅仅诞生了一个月的新型冠状病毒,以排山倒海之势迅速成为了每个人心中最大的那颗肿瘤。这个肺炎超越了它的前辈们,它就像细胞分裂一样,一变二,二变四,四变八……直接霸占了国际传染病市场。速度之快,情况之危急,远超想象,甚至几乎让整个中国几近瘫痪!

就在这病毒肆虐之际,一群救世主诞生了,他们不顾自己安危,毅然决然拿起手中武器奔赴战场。他们是科学家院士;他们是医生护士;他们是警察、交警;他们更是父母的儿女;他们还是孩子的爸妈。他们难道不知道,进去有可能就不会再出来了?他们难道不知道,他们是在和死神打交道?是的,他们知道,但是,他们没有犹豫,在危难面前,他们选择了逆行,义无反顾!他们是最美的逆行者!

当他们被记者采访时,一句句"国家有难,怎能不帮!"深深触动了我们的灵魂。是啊,看到这里我潸然泪下。看着躺在病床上呻吟的病人,他们有可能再也见不到自己的家人了,说不定下一秒病情就会发作,可他们依然尽可能地向医护人员回应着爱!一个个爱心人士用行动像我们证明了在这个科技发达的时代,爱依然存在,社会依然温暖。一批批物资运去前线,也带着每一分爱!医护人员们不辞辛劳,毅然同病魔作斗争,他们没有妥协,也不能妥协,因为他们知道,如果他们都放弃了,他们深爱的国家,他们挚爱的家人都会为他们陪葬!所以他们不能倒下!

身为学生,我们能为抗击疫情做的贡献有限。我们不能直接做出什么贡献,我们唯有好好学习,用知识不断丰富自己,将来也为人类社会做出更大的贡献!

这才是真正的美,内在的美!愿这次浩劫在以后不再发生,愿人间真爱永远传递下去!

学习嵌入式心得体会篇3

本人大学学的是电子信息科学与技术专业,其实这个专业和嵌入式没有多大的关系,要说有关系就是简单的讲了下c语言语法,学完之后还不知道什么是c语言,只记住了,char,int,string等占几个字节,if,for,while循环什么的,感觉也就能算一些小学就会的题目,全国计算机等级二级也就糊涂的过了。我这个专业没学过c++,一开始不知道什么是向对象,什么叫面向过程,这可能让大家笑话了。不过这说的是实话,大学的时候比较喜欢动手,喜欢硬件方面的东西,也喜欢看书。在大一的时候就听学长说,单片机很难学,在没事的时候就从图书管借了本关于51的书,一开始还真是不怎么懂,然后硬着头皮去看,当我把51的结构看完了,就不像一开始那样一头雾水了,自己在纸上把51的结构图默画一遍,然后再把各个寄存器功能写一下,各个功能口的结构也画一遍,然后就不觉得51有什么难了。其实有些时候不是这个东西你不会,而是在不会的时候自己先告诉自己这个太难了,自己先放弃了。我们学习51芯片,是为了以后的打基础,知道是怎么通过配置寄存器来实现功能。

大二下学期的时候,我们开了51的课,这个课几乎就没怎么去,因为我认为没有必要去听自己会的东西了。后来听别人说avr的资源会比51的丰富的很多,所以就想试试,看看有什么难的,就从网上买了本马潮老师《avr单片机嵌入式系统原理与应用实践》,一边看书,一边想自己画一个板了,一开始想实现一个点阵屏,实现滚动效果,后来想想做个板也花不少钱呢,为什么不多加一些功能呢,还能多学到些知识,所以就加了温感,红外,铁电存储器等并把所有的扩展口都扩展了出来,备以后用,那时还挺自豪的呢,同学们都很羡慕,不过现在想想其实也没什么了。

大学也听说过嵌入式这个词,不过不太明白是什么意思,20xx年的时候从网上找到中嵌视频,有四张dvd(大约13g),下载下来后,从头到尾的看了一遍,没什么印象,只记得讲一些不知所云的函数,然后莫名其妙的讲怎么使用那个44b0的开发板,不过听完了,还是有很大收获的,就有一种想装一个linux的冲动,我是大二下学期才有的自己电脑,不过电脑的配置比较低,1g内存,跑虚拟机就像个蜗牛,所以就想着怎么才能装个linux,自己用xp习惯了,如果全换了又舍不得,那时从书上知道linux的文件系统和windows不一样,只有一个根分区,所以也害怕一装linux全盘就被格式化了,不过最后还是欲望战胜了担心,买了张redhat 9的光盘,小心的装这个系统,里边的英文也不是太难,还是知道大概意思的,所以一步步的装,最后装到我的硬盘的最后空间,重新启动,竟可以选择进入哪一个系统了,从这之后,自己就不害怕怎么装系统了,应了那句言,纸上得来终觉浅,绝知此事要躬行。所以我认为,买一个开发板是完全有必要的,拿到实物操作一下就不会感觉太抽象了。后来也想学学arm,但不知道arm是什么东西,所以就买了本《从51到arm》,讲的是关于arm的大体结构,看完后感觉,原来arm就是一个速度更快,接口更丰富的单片机埃如果想做linux设备驱动的同学应该对arm硬件有一些了解。如果对驱动不感兴趣,完全没有必要去看。交叉编译器会帮我们做好这些事情,他比我们更了解arm结构。

大三下学期开始准备考研了,所以自己这些兴趣就先放下了,报的北邮的信通学院通信专业,当时就是想一定要上个好学校好专业,也没想太多,结果考了的成绩差了点,没有被录取,也不想调剂一个二流的学校,然后就参加工作了,工作中每天都用的到开发板,当我看到一个小板上还可以跑系统的时候感觉很不可思议,以为要很大工程。后来边工作边学习,每天都要看电脑看到眼发疼,晚上也都差不多十二点时才睡觉。感觉到累,不过也感觉到自己在进步。

闲话有点多了,说了很多都是自己大学那点破事。

听很多的初学者说不知道从哪里开始,学习嵌入都要学哪些东西,从网上搜了一下,一大堆的东西要学,一下就推荐十几本书,说看完这本书怎么怎么样,看完那本书怎么怎么样,一下子就给初学者给吓住了,其实完全没必要把网上的那些东西全部看一遍,那样又费时,又感觉工程太大,让初学者没有信心去把每一种都看完。网上说的些方面都要知道,不一定全部都掌握,我们可以退成求其次,每一个都知道一些,当然会的越多越好。今天学点这个明天学点那,换着样来也不会觉得烦。而且还能感觉到每天都有收获。

下面给嵌入式初学者一些自己的我个人建议。

1、嵌入式涉及到很多的基础知识:

c语言,关于c语言要知道基本的语法,什么是结构体,什么是共用体,有什么区别,不用强记一些二级考的东西,因在实际中用的很少。

c++要知道什么是类,怎么定义,继承,接口,要深刻理解,当然基本语法也是必不可少的。

操作系统原理也应该知道基本的原理的,我记得我大学没这个课还是去电信学院蹭别的专业的课呢,后来学习发现很多的东西都是在这个课上学到的。什么时间片啊,任务调度啊,都是在那里知道的。

linux基本命令的使用(vi编辑器必须会用,因为在终端改文件的时候只能用这个),我们现在很多的人都习惯用鼠标了,很少用到命令,我们学习嵌入linux可要改改这个习惯了,linux用命令操作一是效率高,二是功能非常强大,远非图形界面能比的了的,其实我们用图形界面的操作都要转化为命令传给硬件的。

linux文件系统的管理要清楚,哪个目录存放是什么东西,有什么用,文件权限管理等shell编程也要了解一些,在这给大家推荐一个教程,周朝剑的shell编程,也就七八讲吧,讲的很全面。初学者看前4讲就可以了。

linux设备驱动的架构要了解,初学者可以以飞凌的ok6410开发板上的led驱动分析一下,结合原理图和linux设备驱动相关书籍把每一行代码都分析明白。关于驱动给大家推荐一本书《linux社备驱动程序》中国电力出版社出版的,很经典的,初学者看可能看不太明白,不过要坚持看,最次也得把前6章看完了。

2、看书不要希望一次就会,一次就明白是什么意思,也不要死记硬背,看不明白也没关系,以后遇到了知道去哪里去找就可以了,以后遇到的多了,也就记住了,遇到的少的,忘记也就忘记了。还有,不要直接阅读linux内核源代码,看一些自己把头撞破也想不明白的事,会打击初学者的积极性,要循序渐进,今天学个做个led,明天做个串口,后天说不定就做硬件编解码了。

3、你可以不接受培训,但是不能不买开发板。

如果你想学习嵌入式一定要买块学习板,现在的开发板很便宜了,给我们初学者减轻了很多经济负担。看再多的视频,看再多的书,也不如自己动手试一下,看着很简单的东西,做起来就可能遇到很多的问题,遇到问题找到原因,解决问题,只有这样才能学到东西,记得我第一次写led的驱动,想自己试一下,网上也有人写过相关的代码,可是自己一试,就出了好多的问题,那个led弄了我一天才把led灯点亮。所以不要眼高手低。

还有关于培训,现在的培训机构很多,讲的也不错,老师也很好,但是有一个问题,太集中了,而且学生动手的机会也不太多,记得我们公司还招了一个在北京某个培训机构培训半年的员工呢,花了一万多,来了之后也没感觉有多高,问他都学了什么,也就是我前边说的那些基础知识,很多的东西还是不知道的,照着书弄个helloworld模块驱动两天没搞定。不是培训不好,但我个人见解效果并不是很好。记住:只有自己动手做过的东西才是自己的。

现在买一块开发板很便宜,飞凌的ok6410的开发板就不错,源码完全开放,而且资料也很丰富,完全能满足初学者学习用,有人说友善的板子也不错,我个人觉得友善的板子不错,但是不适合初学者,因为他的很多的东西是不给代码的,用过友善的板子的同学经常有这样的痛苦,想学一个东西,去找他的代码的时候,却找不到,很多友善提供的代码中很多的都是封装好的,只提供给客户一个库,初学者想要找代码的时候就不知道怎么办了。

4、不要好高骛远,要脚踏实地

对于初学者,还有一点小建议,我们拿到一个开发板,很兴奋也很激动,想法自然也很多,想用开发板实现自己的这个想法,实现那个想法,然后又不知道从何下手,然后就去论坛中发一个贴,“那个什么什么怎么实现啊,哪位大侠能详细说一下啊,跪求!1然后等着别人去回复。见没人回复就抱怨。有想法是好的,我们要实现自己的想法也是有前提的,首先,我们对这部分知识了解吗?如果不了解就去google一下(最好别用百度,不太好用),了解了一些,也就大概知道要怎么做了。如果再遇到问题,再去发贴问,这样也显得咱们有水平。比如自己连串口是什么都不太清楚呢,就问串口通信怎么做啊,就是人家把代码给咱,咱也不明白是怎么回事埃。

5、多看代码,多写代码

见多识广,熟能生巧。多看代码,要从代码中读出代码的意思来。自己平时也要多写代码,多练习(这一点我做的不好,写的少)。

写完已经晚上两点了,思路有些乱,有些也是个人的见解,在有些人看来可能是错误的,每个人有每个人的学习方法,但是我们的目的只有一个——希望我们学到更多的知识。

学习嵌入式心得体会篇4

目前最常见的嵌入式linux方面,我认为大概3个:

1.嵌入式linux上层的应用,包括qt的gui开发

2. 嵌入式的linux系统开发

3.嵌入式的驱动开发

学习嵌入式:

第一.c语言要掌握(硬件略懂),c语言是所有编程语言中的强者,单片机,dsp,类似arm的种种芯片的编程都可以用c语言搞定,因为它可移值性强,编译效率高,运算速度快,便于实现理更复杂的的数据结构。上层应用和数据存储,我推荐使用c++语言。

第二.学习一种嵌入式的处理器架构,个人推荐32位的处理器,像arm,因为嵌入式

开发8位的处理器显得有点低端,大多数只能用作简单的工控.

第三.学习一种嵌入式操作系统,像linux,wince等都可以,linux更好。

三:arm是一种微处理器,已遍及工业控制,消费类的电子产品,通信,网络,无线等各类的产品基于

arm技术的微处理器已占75%以上的市场份额,可见其技术已逐渗入到我们生活中的各个领域,像手机

就是用arm7 arm9 arm11的微处理器技术开发的。嵌入式系统最常见的arm系列,arm7 ,arm9,

arm11,cortex-a8等。

我们都是曾经从大学里走出来的迷茫羊羔,工作以后我才知道,在大学里不是学到了什么,而是学会怎么去学,相信自己,理清自己的思路,根据自己的性格,剖析自我适合往哪方面发展。

学习嵌入式心得体会篇5

一,如果非常多人都想做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。

学习嵌入式心得体会篇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操作系统,从学习的角度来讲,这方面要多下功夫。

至于应用程序的开发,那就要看具体的应用了,这个难度不是很大。

推荐访问:学习嵌入式心得体会6篇 心得体会 嵌入式 学习