第一篇:嵌入式学习心得总结
嵌入式学习心得总结(精选多篇)
嵌入式学习心得总结
4月10号,为期一个阶段的linux开发基础培训课程圆满结束,回首这些天所留下的点点滴滴,感触深深,学习上知识点的积累,灵活运用的过程中感受到了linux操作的快速高效性能,这也是我所追求的效率!
当初初涉培训课程的第一门课程时,都说linux操作很繁琐复杂,心里总有些顾忌,带着种种不安与些许拼博的决心,开始了自我提升阶段的“充电”,由徐海兵老师教授我们基础课程的培训,我们则像着小学生般认真的记着笔记,仔细听着并学会如何去在实践中运用所学的linux下的各种强大的命令集。
在unit 1中,徐老师详细生动的为我们讲述了有关linux的诞生、初成长以及辉煌的发展至今,今后应用范围则愈来愈广泛,讲解了为linux这个伟大的os做出巨大贡献的一位位出色的、伟大的人物,他们那种学习钻研的精神、锲而不舍的信念、勇于把握住难得的机会,从小处着手,踏踏实实的创造出了对人类科技发展做出卓越贡献的linux系统,他们的种种,都值得我们去深刻反省、刻苦学习、传承并永远发展下去。
查看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;du 显示
当前目录所占空间大小;wc 命令 显示列表中文件的行数、字数、字符数;追加:cat 》 目标文件;find指令与grep重要,暂未学习,自己在实践中学习,文件访问权限有:r w x;chmod指令可修改访问权限,如 chmod 777-r 文件名。
输入输出重定向 每个命令默认打开三个文件:标准输入stdin,标准输出stdout,标准错误stderr,键盘为标准输入,而控制台则是标准输出,文件描述符分别是0,1,2;最重要最常用的为输出重定向 > 与错误重定向 2>;
echo 添加的内容 >/ 》 文件;
linux过滤器和管道:管道操作符:| ;即将某个命令的输出与某个命令的标准输入相连接,从而实现管道功能,例如 ls –l |wc;管道和重定向操作符可同时用于一个命令行。
unit 5:linux/unix进程 进程为程序运行的一个实例,可用ctrl-z挂起进程,或在命令后加上&符号即可;运行在
后台的系统进程是守护进程,它为用户提供各种服务。
ps 指令可显示进程属性,有ps l;ps a;ps aux等
ps –l可显示用户id、进程id、优先级、tty以及stat
bg、fg 分别将进程放后台、前台运行,jobs则是查询所运行的进程的状态;
& 放于命令间表示可同时运行多个命令;
; 表示可顺序执行多个命令
前台程序可用ctrl-c来终止、kill指令
进入unit 6,神秘的shell脚本逐渐揭开了她那瑰丽的面纱
环境变量的设置:export myhost=ip地址
查询引用 echo $myhost
了
首先我声明,我是基于嵌入式系统平台级设计的,硬件这个方向我相对来
讲比较有发言权,如果是其它方面所要具备的基本技能还要和我们培训中心其它专业级讲师沟通。他们的方面上我只能说是知道些,但不是太多,初级的问题也可以问我。
对于硬件来讲有几个方向,就单纯信号来分为数字和模拟,模拟比较难搞,一般需要很长的经验积累,单单一个阻值或容值的精度不够就可能使信号偏差很大。因此年轻人搞的较少,随着技术的发展,出现了模拟电路数字化,比如手机的modem射频模块,都采用成熟的套片,而当年国际上只有两家公司有此技术,自我感觉模拟功能不太强的人,不太适合搞这个,如果真能搞定到手机的射频模块,只要达到一般程度可能月薪都在15k以上。
另一类就是数字部分了,在大方向上又可分为51/arm的单片机类,dsp类,fpga类,国内fpga的工程师大多是在ic设计公司从事ip核的前端验证,这部分不搞到门级,前途不太明朗,即使做个
ic前端验证工程师,也要搞上几年才能胜任。dsp硬件接口比较定型,如果不向驱动或是算法上靠拢,前途也不会太大。而arm单片机类的内容就较多,业界产品占用量大,应用人群广,因此就业空间极大,而硬件设计最体现水平和水准的就是接口设计这块,这是各个高级硬件工程师相互pk,判定水平高低的依据。而接口设计这块最关键的是看时序,而不是简单的连接,比如pxa255处理器i2c要求速度在100kbps,如果把一个i2c外围器件,最高还达不到100kbps的与它相接,必然要导致设计的失败。这样的情况有很多,比如51单片机可以在总线接lcd,但为什么这种lcd就不能挂在arm的总线上,还有arm7总线上可以外接个winband的sd卡控制器,但为什么这种控制器接不到arm9或是xscale处理器上,这些都是问题。因此接口并不是一种简单的连接,要看时序,要看参数。一个优秀的硬件工程师应该能够在没有参考方案的前提下设计出一个在成本和性
能上更加优秀的产品,靠现有的方案,也要进行适当的可行性裁剪,但不是胡乱的来,我遇到一个工程师把方案中的5v变1.8v的dc芯片,直接更换成ldo,有时就会把cpu烧上几个。前几天还有人希望我帮忙把他们以前基于pxa255平台的手持gps设备做下程序优化,我问了一下情况,地图是存在sd卡中的,而sd卡与pxa255的mmc控制器间采用的spi接口,因此导致地图读取速度十分的慢,这种情况是设计中严重的缺陷,而不是程序的问题,因此我提了几条建议,让他们更新试下再说。因此想成为一个优秀的工程师,需要对系统整体性的把握和对已有电路的理解,换句话说,给你一套电路图你终究能看明白多少,看不明白80%以上的话,说明你离优秀的工程师还差得远哪。其次是电路的调试能力和审图能力,但最最基本的能力还是原理图设计pcb绘制,逻辑设计这块。这是指的硬件设计工程师,从上面的硬件设计工程师中还可以分出ecad工程
师,就是专业的画pcb板的工程师,和emc设计工程师,帮人家解决emc的问题。硬件工程师再往上就是板级测试工程师,就是c语功底很好的硬件工程师,在电路板调试过程中能通过自已编写的测试程序对硬件功能进行验证。然后再交给基于操作系统级的驱动开发人员。
总之,硬件的内容很多很杂,硬件那方面练成了都会成为一个高手,我时常会给人家做下方案评估,很多高级硬件工程师设计的东西,经常被我一句话否定,因此工程师做到我这种地步,也会得罪些人,但硬件的确会有很多不为人知的东西,让很多高级硬件工程师也摸不到头脑。
那么高级硬件件工程师技术技能都要具备那些东西哪,首先要掌握eda设计的辅助工具类如protelorcadpowperpcbmaplux2ise、vdhl语言,要能用到这些工具画图画板做逻辑设计,再有就是接口设计审图能力,再者就是调试能力,如果能走到总体方
案设计这块,那就基本上快成为资深工程师了。
硬件是要靠经验,也要靠积累的,十年磨一剑,百年磨一针。
把一个月前想写的东西,今天终于用一上午的进间整理完了,希望对喜爱嵌入式系统开发的工程师和学生们有所帮助。
嵌入式系统学习心得:
这个题目很大,给人一种感觉我好像很成功,其实不然。实际上自己水平不高,甚至很低,但是做过了一些曲折的学习道路,同时把自己真实的学习历程表达出来,希望对后来者有借鉴的意义,甚幸!
工作三年、几成废人!
我xx年毕业于华中地区的一个理工科大学,专业是机械电子,我当时已经签了一家内陆某个省级机关工作,家里八辈是农民,并且很偏远,能够进入这样的地方是祖坟有风水。但在毕业前夕有个进入it的机会,我本想进去的,家里人极力反对,阻力可想而知。同时要交4000元的违约金,对我来说是天文数字。大学里的费用很多是借的,几乎将近一半的费用是在大学勤工俭学挣的,为了省钱,高中一个学期回家一次,大学一年回去一次。并且我个人也有特殊的人生背景,这里不多说了,写十篇也写不完,同时偏离主题。这样我就参加了工作。一张报纸一杯茶的日子,几乎下班后有种很空虚和恐慌的感觉。在工作中虽然是与自己专业有点关系,但是很少。专业几乎荒废。我自己也思考,如果再不出去,自己将会成废人,只好让国家养了。两年后决定出去,但是几成废人,谁要呢,只好到学校去镀金。这是中国教育和社会的悲哀!
至于专业就改为计算机方面,听说好找工作,我说实话不是很对计算机特别感兴趣,生存第一需要。不要笑我,哈哈!
考研成绩出来,超过了国家线几十分。那个方向要两个,我第三,但是那
年非碘,不面试就按分数来排,自然我落选了。其实给我面试机会也不一定要我,哈哈,自己几斤几两很清楚。
最后调剂到另外一个学校,交钱,咬咬牙,交吧!现在仍然债台高筑!
进入学校前夕
为什么要把这段列出,看后就知道了。
单位有网络,经常上网查些英语资料,在那里唯独英语没有丢很多。于是我就在网上查资料,学什么好呢,最后确定学嵌入式把,听说跟硬件相对比较紧密!而我在大学里多少学习了数字电路,单片机等,所以多少也有所利用,不会真的一无所知。当然在这之
前也自学过数据结构,计算机组成原理等。c 语言在大学就学了。哈哈这就是我的家底。
我知道自己的基础差,于是我就拿操作系统,数据库、数据结构、c++来看,机关有这个好处,空余时间多,于是平常就看书,很痛苦,没有人请教。
另外就上网到论坛上去,我就到各个专业的技术论坛,其实是电子论坛和嵌入式论坛。我几乎没有发帖,几乎把几个大型的出名的论坛的帖子翻遍了,虽然有很多重复的,我才知道嵌入式是个什么东东。这些帖子对我以后的学习产生了极大的影响。
最关键两点:
1、嵌入式是什么?
2、嵌入式需要哪些知识?
知道了这两点,好办!我就开始规划学习路线。计算机的基本理论不能丢,于是重点看组成原理,数据机构,操作系统、c++。同时论坛上了解到,实时操作系统ucos是一个很好的嵌入式操作系统,对初学者很好。于是我就买了一本书,但是代码在电脑里调不通,网上也有很多相同的问题,我就看书,分析代码,一遍不行就两遍,三遍,这样才看了入了门,才知道什么是进程。原来看操作系统书时,根本就不知道进程是个什么东西。
在这段时间掌握的东西不多,但
是,对我以后的影响很大,我想起了大学时一个同学跟我说过了一句话:大学里最重要的不是学到了什么,最重要的是学会怎么学!大概是这个意思。
进入我的避难所
对我来讲,再次进入大学不再是大学,而是避难所。希望这次进入给我喘气和养精蓄锐的机会和时间。我是这样认为和实践的。
在学校我有三件事:上课,上图书馆,上网。
对于上课,学校开了很多课程,非常好,很多是名人名师讲解,于是很多同学都想学,都去听。我也考虑过,最后放弃。我是这样认为的,时间是有限的,什么都想学,什么都学不成。于是我把我自己学的课进行了分化,一般的课程通过就行,重要的一定好好学。我希望不要什么争论学习课程多和少的问题,这仅仅是我的看法。所以我的成绩应该是很差的。分数低。好在后来的单位没有要我的成绩单,否则就惨了。
我个人感觉是上图书馆的效率比在寝室里高多了,这是我的经验。
个人学习嵌入式心得体会
就我个人而言,从最开始对嵌入式一窍不通到现在越学越感兴趣,当然相应在嵌入式方面的提高也是很明显的。学习潜入式越来越成为我学习生活的一部分,现在把我的学习过程与大家一起分享,希望那些和我一样对嵌入式想学而又迷茫,不知从哪入手的同学朋友有所帮助。
一、语言基础
嵌入式开发很大一部分靠c语言,尤其在底层驱动等用的很多,当然在应用开发还用到诸如c++等其他语言,但我想对于一个初学者有c基础就足够了,等到学到一定程度再去扩展。所以,c 基础是学嵌入式的前提。
二、单片机等知识的储备
我觉得单片机、嵌入式等这一类都有很大的相似性,知识功能不一样,但工作的原理、控制原理都和大的相似。
就我个人而言,能比较快的进入嵌入式的学习与提高,很大一部分依赖于对单片机的原理有较深入的学习和理解,单片机比较简单,学习起来相对比较容易,所以我建议哪些想学潜入式的同学,可以和我一样从单片机入手,那样不仅可以理解这些微处理器、微控制器的操作与控制原理,当然还可以顺便学学汇编语言,这对后面的嵌入式学习都有很大的帮助。
三、接受培训
暑假,我在学院的组织下参加过icc的嵌入式培训,虽然接触的都是皮毛,但是对我进入嵌入式的学习起了一个很好的引导作用。所以,如果有条件的可以去报名正规的专门的培训班,这样如果遇到问题也可以比较容易的得到老师或专业人士的指导,提高学习效率。
四、买开发板自己动手做
个人觉得这是最重要的一种做法。这东西没自己亲手做,程序没亲手写,没有进行调试等,都是很难学到东西,因为很多东西感觉看的都懂,其实真正做起来就什么都不会了。因此买块板来自己做,这样才能真正将所学的应用到实际中去。而且这样做映像很深,死记硬背原理及规则不但不可行还会拖垮你的学习兴趣,自然学不下。
总之,我觉得,基础知识很重要,但是动手做更重要!我能说的就这些了,能力有限,不好的地方请指教!
学习嵌入式系统心得
说实在话在没有学习之前,以及在学之前通过一些口中得知这是一门很不错,很有意思的一门课。而且目前是十分吃香的一门课程,如果学好了工作很好找并且待遇也很好。听到这些,我内心非常期待上这门含金量如此之高的一门技术课。据我了解,嵌入式系统是一个很有前景的行业。学会嵌入式技术,就相当于给自己创造了更多的机会。那么,在可以预计的将来,嵌入式技术的应用会越来越广泛。
说实在的,第一天,我满怀期望的
去上这门课。可是一上课听到老师的介绍,我就头昏脑胀了。这是什么课啊,谁会听得懂。犹如天书一般。
实事求是的说,嵌入式技术的全面掌握是有相当难度的。可以轻轻松松学会嵌入式技术的说法是夸大其词了。这个就像学英语一样,学英语无论怎样学,不管是“疯狂学”还是用新理念来学,真正掌握的话还是需要一步步积累才能熟练掌握。在此,我们通过短短的几个星期简单的了解和学习一下嵌入式,想成为这方面的高手。这些想法本身是不太现实的。我心里清楚我们需要做的是:
第一:把心踏实下来,做好打硬仗的准备。
第二:注意学习方法。尽量不要走弯路,争取一鼓作气入门。一旦入门了以后呢就好办了。嵌入式技术的掌握,本身呢就比较难,要是再走些弯路,时间上会浪费,甚至会影响学习的信心。
这就是我这段时间的学习心得。
鲁增庆 110402110 a11电气
嵌入式linux学习心得
1、linux命令
ls:查看目录-l以列表方式查看;ls –l 与ll的功能一样 pwd: 查看当前的目录
cd:改变当前操作目录cd /直接跳到根目录 cd..回到上一级目录 cat: 打印显示当前文件的内容信息
mkdir:创建目录
fdisk: 查看硬盘分区信息,-l以列表方式查看
->代表是链接文件,类似window下的快捷方式。
cp: 复制命令,例子cp 文件名 /home/dir/
mv: 移动或改名,如mv sonf.confsonf 移动:mv sonf.conf / rm:删除命令,如rm –f test.c;如删除目录rm –fr d
man:查看某个命令的帮助,man 命令
2、各系统目录的功能
drw—r—w--:d代表是目录,drw代表当前用户的权限,r代表组用户的权限,w代表其它用户的权限。x代表有执行权限。
/boot/gruff.conf: 启动引导程序
/dev:brw—rw--:b代表是块设备。linux设备有三种,块设备、字符设备、网络设备。had代表第一个硬盘,hdb代表第二个硬盘。hdb2代表第二块硬盘的第二个分区。3,67代表主设备为3,从设备为67./etc:存放的是系统的配置文件。inittab文件存放不同启动方式下必须启动的进程。inittab文件中有6个启动level,wait中对应着6个level的目录,respawn代表当一个进程被意外终止了,但会自动启动的进程,如守护进程。rc.d目录中存放了一个rc.sysinit文件,里面存放系统初始化配置信息。/etc还有一个vsftpd里面存放tcp、ftp的配置。
/home : 用户目录,存放用户的文件,/lib:存放库文件,后缀为so的文件代表动态链接库。
/lost+found:系统意外终止,存放一些可以找回的文件。
/mnt:挂载外部设备,如挂载光驱:mount –t /dev/cdrom/mnt/cdrom,如
果在双系统中,要查看windows中d盘的文件,首先应该将d盘的文件映射过来,mount –t /dev/hda2/mnt/windows/d
/opt:用户安装的应用程序
/proc:是系统运行的映射,比较重要。里面的文件数字代表进程号。每个进程号目录下包含进程的基本信息。还有其他信息,如cpuinfo等,内核支持的文件系统filesystem等。系统支持的中断interrupts,iomen代表内存分配情况。ioport存放io端口号。还有分区信息,modole信息,状态信息,版本信息
对于linux的设备驱动程序,有两种加载模式,一种是直接加载进linux内核,一种是以模块的方式加载到内核。
/sbin: 系统管理的一些工具。如poweroff关机工具。
/usr: 安装系统时很多文件放在此目录下面,包含一些更新等,include包含的头文件,lib 是linux的库文件,src包含linux2.4的内核源码
/var:存放是临时变量
3、
第二篇:嵌入式学习心得总结
嵌入式学习心得总结
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。(学习心得 www.xiexiebang.com)指令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;管道和重定向操作符可同时用于一个命令行。
Unit 5:Linux/Unix进程 进程为程序运行的一个实例,可用ctrl-z挂起进程,或在命令后加上&符号即可;运行在后台的系统进程是守护进程,它为用户提供各种服务。
ps 指令可显示进程属性,有ps l;ps a;ps aux等
ps –l可显示用户ID、进程ID、优先级、TTY以及STAT
bg、fg 分别将进程放后台、前台运行,jobs则是查询所运行的进程的状态;
& 放于命令间表示可同时运行多个命令;
; 表示可顺序执行多个命令
前台程序可用ctrl-c来终止、kill指令
进入Unit 6,神秘的Shell脚本逐渐揭开了她那瑰丽的面纱
环境变量的设置:export MYHOST=Ip地址
查询引用 echo $MYHOST
了
第三篇:嵌入式学习心得
LPC2136是ARM7架构,是32位地址总线和数据总线,可以寻址的范围为2的32次方
=4GB(0x00000000~0xFFFFFFFF)
我们的程序在哪里运行?
还记得我们在做“跑马灯”和“蜂鸣器”两个实验,用ads1.2中建立工程文件的时候有设置三个地址:
RO Base :0x40000000
RW Base :0x40001000
Image entry point :0x40000000
开始没有讲为什么,通过上面的系统存储器映射图解不知大家是否有所悟。LPC2136内部自带32KB RAM和256KB FLASH。
32KB RAM分布在整个CPU存储器空间的0x40000000~0x40007FFF;
256KB FLASH分布在整个CPU存储器空间的0x00000000~0x0003 FFFF;
RO Base是告诉编译系统把编译生成的目标码放在0x40000000起始的位置,也就是代码段存放在0x40000000开始的位置。
RW Base告诉编译系统把各种变量(常量放在RO开始的位置),堆栈放在0x40001000起始的位置。
Image entry point:是告诉编译系统程序入口点在0x40000000,即程序从这个地址开始执行。(此部分在附录二中细说)
Flash与RAM的区别
通过以上所说,好像FLASH在这里没什么用,如果你的RO地址定位在RAM中,那么FLASH确实没有用。但FLASH是必须的功能部件。
Flash的作用也许要从其与RAM的区别说起:
区别一:RAM是易失性存储器,Flash是非易失性存储器。通俗的说,存储在RAM中的数据掉电后数据丢失;而存储在FLASH中的数据掉电后任然保持。(必须通过工具或特殊命令来擦除)
区别二:RAM是可读写存储器,Flash只读存储器。(也许有人要问,Flash难道不能写吗?Flash可以写,但不能象RAM一样做简单赋值操作,必须通过Flash写命令写,而且写入数据的最小单位为512字节,即一个扇区)
区别三:RAM访问速度快,而Flash访问速度慢的多。
区别四:RAM价格昂贵,Flash便宜。
FLASH有何用途
我们一般在调试程序的时候为了提高开发进度,都把程序放在RAM中调试,在RAM中调试有一个缺陷就是每次上电必须下载程序到板子上,当产品的各个模块调试OK,产品就要实现脱机功能,即把程序烧写到FLASH中,这样就不需要每次上电加载程序。我们手中拿的手机,在开发阶段都是在RAM(SDRAM)中调试的,开发完成,要发布的时候就把程序烧到FLASH,这样我们开机有能运行FLASH的程序。
第四篇:嵌入式学习心得
嵌入式学习心得
当今社会,嵌入式系统已经渗透到人们工作、生活中的各个领域,嵌入式处理器已占分散处理器市场份额的94%。而嵌入式Linux系统也蓬勃发展,不仅继承了Linux源码开放、内核稳定高效、软件丰富等优势,还具备支持广泛处理器结构和硬件平台、占有空间小、成本低廉、结构紧凑等特点。
我很幸运接触了嵌入式,在嵌入式实验我知道了构建嵌入式系统的开发环境明白了交叉编译:交叉编译的环境建立在宿主机上,而对应的开发板为目标机。为了使宿主机上开发的程序能够方便的下载到目标机上运行,一般还要在宿主机上配置好网络,使其支持NFS或tftp等网络服务,从而达到两台机器之间的文件共享,知道了宿主机与目标机之间的关系:在嵌入式系统开发过程中,由于可执行程序的编译过程和执行过程分别在宿主机和目标机上完成,因此实现宿主机和目标机之间的实时交互能够大幅度提高嵌入式系统开发的效率。由于目标机也带有操作系统,因此可以通过实现不同机器之间的网络共享来完成实时交互。宿主机开发程序,而目标机作为最后的执行机。两者在开发时需要交替结合进行。知道了UBOOT移植、UBOOT编译、UBOOT烧写。LINUX内核的移植、LINUX内核烧写。LINUX驱动程序的编写系统调用是操作系统内核和应用程序之间的接口,设备驱动程序是操作系统内核和机器硬件之间的接口.设备驱动程序为应用程序屏蔽了硬件的细节,这样在应用程序看来,硬件设备只是一个设备文件,应用程序可以像操作普通文件一样对硬件设备进行操作.设备驱动程序是内核的一部分,它完成以下的功能:对设备初始化和释放、把数据从内核传送到硬件和从硬件读取数据、读取应用程序传送给设备文件的数据和回送应用程序请求的数据、检测和处理设备出现的错误.在Linux操作系统下有两类主要的设备文件类型,一种是字符设备,另一种是块设备.字符设备和块设备的主要区别是:在对字符设备发出读/写请求时,实际的硬件I/O一般就紧接着发生了,块设备则不然,它利用一块系统内存作缓冲区,当用户 进程对设备请求能满足用户的要求,就返回请求的数据,如果不能,就调用请求函数来进行实际的I/O操作.块设备是主要针对磁盘等慢速设备设计的,以免耗费 过多的CPU时间来等待.、DM6446 USB驱动编写。ARM+DSP双处理器开发实验。在这些实验当中我遇到了很多问题,因为是第一次接触linux,很多命令都不清楚,操作起来很不方便,使实验进度很慢,并且很多命令也是比葫芦画瓢,根本不知道为什么这么用,所以导致命令不熟练,下次操作时依然需要回忆。在程序开发中我在课下熟悉了shell命令以后,对一般的操作也算了解,我明白了问题就如爬山:不怕慢就怕站,只要我慢慢积累我就会学到应该如何编写我自己的程序,搭建我自己的嵌入式系统。尽管我们已经懂得了一些皮毛但是前方的路依然任重道远,要想把我们专业的优势发挥出来就需要软硬件结合,这无疑是一次巨大的契机,我感觉在结
课以后我们一定仔细想在实验中做的不足,以及实验中给我的资源我如何合理的应用。毕竟学无止境,我也看看其他论坛上应该建议我们如何学习嵌入式,但是众说纷纭,我不应该关注别人做了什么,但是我应该明白我的每一次付出会有什么收获,毕竟再多的参考也比不上你的实际情况,正如我们的dm6446它的学习方式与一般的arm还是有区别的,所以要因材施教。其实在你想做嵌入式Linux的时候,要对自己有信心。很可能自己以前学习的不是这个专业或者以前没有接触过,就像我一样,我以前也没接触过嵌入式,一旦我们确定了自己要做嵌入式,我想摆在我们面前的最大的一个难题就是,嵌入式对我们很模糊,好想心理面有好多好多阴霾,不用怕,请相信自己,新手都是这样,有疑团,才会激发我们探索的动力和激情。相信自己,在不久的将来自己会摸到嵌入式的棱角的,摸清他的面貌的。把学习穿插到日常生活中。一旦决定要学,就从现在开始学习,永远不要希望人的一生会腾出一段时间来让你去专门学习嵌入式的,就像当你出生的时候,永远不可能会专门腾出一段时间来让你专门学走路,最终情况是你学走路的同时很可能也在学习说话,学习吃饭。所以,对于学生来说,永远不要试图把学习嵌入式挪到假期,因为你不能预料到假期你会发生什么而耽误你学习的时间。需要用到什么学什么。不要企图把Linux,arm等所谓的什么教程之内的书看完了再去做开发。个人觉得Linux,只要知道大概,只要知道简单的命令,会用就可以了,但是gcc,gdb一定要掌握,然后就是要掌握嵌入式Linux和Linux开发环境的配置。嵌入式Linux是在开发板里面的Linux。而单纯的说Linux说的是PC上的Linux。遇到问题,我们就去解决,要解决,我们就可以翻书,查资料,这样既可以缩短项目开发周期,又可以学习,这样就避免了可能你把一本关于Linux的书看完了,你还不知道如何去做嵌入式Linux开发。不管你要做什么开发,装上Linux后,请安装英文版的,并且尽量在无图形界面写工作。因为很多公司都明确禁止用Linux图形界面和中文版的。不管做什么开发,应用开发,或者是驱动开发,都要先编译内核,因为有好多文件是只有你编译内核之后才能产生的,而这些文件,很可能就是你要用的。做应用开发,首先用从读懂驱动入手。不要求你会写驱动,但是起码要读懂驱动,这样才有助于应用开发除非你的嵌入式开发板是跑裸机,也就是没有Linux系统,你可以操作arm的寄存器,可以直接操作硬件,比如JTAG仿真就是。其他情况,一旦你有Linux系统,你的程序时不可能直接操作硬件的。明白这一点,你就不会向我一样,开始做嵌入式Linux应用的时候以为可以和单片机一样,直接控制引脚来写程序了。有了Linux,用主要用的系统提供给用户的接口。
要时刻把握每一次提高自己的机会!
第五篇:嵌入式学习心得
嵌入式学习心得
时间过的紧快,在粤嵌教育已经培训有5个月了,培训期间收获很多,也认识了班上的学习大神,经过系统的学习,老师的细心指导,我的付出努力,对于嵌入式上,学到很多实用的知识,在动手操作能力也加强了,不仅在专业技术方面有了很大进步,而且在实践操作方面我也对嵌入式有了更深入的了解。也许这5个月是我在外面学习和生活最宝贵的时间。
在校两年,读于电子信息工程技术专业的我,就觉得这专业学的知识太广了,不管基础还是动手操作,都要比较灵活。在校期间,学习单片机,传感器,C语言,嵌入式应用技术等课程。感觉学起来,对我来说接受还是比较快的,那时就有想过:学的多不如学的巧,也许在校对课程多于理论为主,理解它的原理和基本编程方式。其实,我还是有努力去学的,可以说,在校科任老师都教会我很多专业知识,为我将来的学习和发展打好基础。
在大三期间,为了更明确自己要走的方向,去培训嵌入式软件开发。也许将要投身嵌入式行业的我,就注定这条路要付出很多时间和精力,但可能我好求比较强,接受还行,就不停给自己打气,努力!要去培训嵌入式时,我从网上也对它有更加的理解,也看下大2学的嵌入式应用技术书,嵌入式系统是软件和硬件的综合体,以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。刚开始嵌入式学习,对Linux系统的知识加于巩固。一些简单的代码,C语言,对于嵌入式软件还是硬件开发的人员,对C语言的掌握这个是必需的,特别是对于以后致力于嵌入式软件开发的人,现在绝大部分都是用C语言。在下来几个月就对Linux系统,数据结构、系统移植的方法、A8的体系结构、Linux内核及驱动设计、android、C+Java的JNI应用编程的系统学习。在每学个阶段就作一个考试,对前面所学的知识进行复习,有些会做一个简单的小项目,学以致用。知识量还是比较多,但教学也比较快,有些知识还没消化完,第二天又接受新知识,对于能在课上就可以对知识完全懂的并不多,晚上都用一两个小时来复习。经过5个月系统的学习,嵌入式技术方面有了很大进步,实践操作方面也对嵌入式有了更深入的了解。在最后一个月,基于A8(S5PV210)的嵌入式智能家居系统制作。
下面我谈谈在粤嵌教育的培训感受,我培训的地点是在科学城粤嵌教育培训中心的多媒体课室里,这里有学习环境非常好,在紧张的学习的过程中,你可以得到名师的指导,也可以体会到一流企业高质量的培训。在课堂上,老师们认真的演讲,以及手把手地教导,使每个学生都能够扎实地掌握到嵌入式的各方面的知识。而粤嵌教育的老师也是操作实践为主,实践是非常重要的,只有把知识掌握到位,才能达到学习的目的。感谢粤嵌教育机构,感谢粤嵌教育老师。