第一篇:嵌入式实验学习心得及期末总结
嵌入式实验学习心得
及期末总结
本学期的嵌入式实验课是在老师的指导下进行的,主要进行了三个阶段的实验课程。
一,Linux系统的基础指令的认识和操作 二,嵌入式平台的搭建以及外部驱动的挂载 三,vi编辑器的运用及gcc操作指令
第一次试验,我们利用虚拟机学习了Linux系统的基础指令,Linux系统和我们常用的Windows系统有着很大的区别,相比较而言Windows系统经更加美观,操作简洁易用。而Linux系统则是一个更基础和开放的平台,在基础的部分它们也有着一些共同点,通过基础指令的学习,让我们对计算机有了更进一步的了解,嵌入式的开发也正是在这样的基础环境中进行的。
第二次试验,我们通过试验箱,自己动手利用数据线和PC上的Linux虚拟机相连接,搭建起了一个简单的嵌入式开发平台,并且学习了外设驱动的挂载。驱动挂载和处理的步骤比较繁琐,很容易出错,在老师老师的指导和帮助下,我们找出并解决了出现的问题,极大的培养了我们动手和动脑的能力。
第三次实验,是利用Linux系统自带的vi编辑器进行C程序的简单编译,首先利用mkdir创建一个文件夹,在文件夹下创建一个name.c的vi编辑器。
在编辑器里,编写一个简单的C程序,wq存以后,点ESC退出编辑模式,然后用Ctrl+ZZ退出编辑器,编辑完成后,利用GCC指令-E,-S,-c,对程序进行预处理编译及汇编。
一学期的学习很快就结束了,在对本门实验课总结过程中温故而知新,再次感谢老师的辛勤指导,祝老师身体健康,工作顺利。
学生:
学号:
第二篇:嵌入式实验总结
如今,嵌入式系统已经在众多电气电子产品上应用,有人预测今后5年发展形势看好。嵌入式是典型的交叉学科,电信、电子、电气、计算机、通信等等都有涉及。
嵌入式理论、实践要求多、门槛高,只有理论、实践同步才能在积累中更好的渐次掌握,这学期我们针对嵌入式入门做了一些实验,通过自己动手和实验箱、实验软件打交道,对嵌入式编程形成初步了解,为今后进一步发展打基础。
实验环境:
武汉创维特公司JXARM9-2410开发板、PC;
Linux、windows操作平台;
DNW、VMwareWorkstation应用软件;
《ARM9嵌入式技术及Linux高级实践教程》、实验参考资料等;
实验内容及目标:
阅读样例程序,进行:
1.熟悉JXARM9-2410开发板、相关应用软件的使用,能成功运行示例实验程序(demo-led);
2.使用VMware,修改demo-led源程序,使开发板上数码管按照demo-led显示方式显示;
3.使用VMware、DNW,修改相关源程序,实现开发板键盘输入的字符在DNW中显示;
4.使用VMware、DNW,修改相关源程序,实现对直流电机转动状态的控制;
观看教学视频,进行交叉编译:
1.加载linux内核;
2.配置、编译linux内核;
3.Windows、linux跨平台文件共享;
4.编译、运行linux程序(helloworld)
5.Linux下编译数码管显示驱动程序;
6.Linux下编译摄像头、GPRS驱动程序;
学习嵌入式是一个漫长的过程,学好它还是需要一番的功夫。通过嵌入式实验由浅入深的动手实践,我渐渐对嵌入式有了具体概念,也逐渐对其产生了兴致和好奇心。
对于初学者,还有一点小建议,不要好高骛远,要脚踏实地.
第三篇:嵌入式学习心得总结
嵌入式学习心得总结(精选多篇)
嵌入式学习心得总结
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
了
第五篇:嵌入式期末复习总结整理
《嵌入式整理提纲》——YOYO左转
题型:
1、选择题:20分
2、填空题:20分
3、判断题:8分
4、简答题:16分
5、程序分析题:20分
6、编程题16分
第一章
1、嵌入式系统的定义:
根据IEEE的定义,嵌入式系统是“控制、监视或者辅助设备、机器和车间运行的装置”。国内定义:以应用为中心,以计算机技术为基础,软硬件可裁,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
2、嵌入式系统的组成:
嵌入式系统装置由嵌入式计算机系统和执行装置组成。嵌入式计算机系统由硬件层、中间层、系统软件层和应用软件层组成。(分层结构)
3、立即数(第二操作数)合法性,选择题:将一个32位数右移偶数位可以得到小于255的数为合法,否则为不合法。例如:
0x6a0=0000 0000 0000 0000 0000 0110 1010 0000 右移4位==> 0000 0000 0000 0000 0000 0000 0110 1010 = 0x6a 小于255,所以合法 0x1a600=0000 0000 0000 0001 1010 0110 0000 0000 无论右移多少偶数位,所得的数仍然大于255,所以不合法
0x16c00=0000 0000 0000 0001 0110 1100 0000 0000 右移10位==> 0000 0000 0000 0000 0000 0000 0101 1011 =0x5b小于255,所以合法
4、全称:
AMBA: Advanced Microcontroller Bus Architecture 高级微控制器总线 ARM: Advanced RISC Machine
CISC: Complex Instruction Set Computer复杂指令集系统 RISC: Reduced Instruction Set Computer精简指令集系统 RTOS: Real-time Operation System 实时多任务操作系统 FAT: File Allocation Table 文件分配表系统
UCOS: Micro Controller Operation System 微控制器操作系统
片上系统:System On Chip,SOC 知识产权核:Intellectual Property Core,IP Core IP软核:Soft IP Core IP硬核:Hard IP Core IP固核:Firm IP Core
5、嵌入式微处理器的体系结构可以采用冯*诺依曼体系结构或哈佛体系结构;指令系统可以选用精简指令集系统RISC(Reduced Instruction Set Computer)和复杂指令集系统 《嵌入式整理提纲》——YOYO左转
CISC(Complex Instruction Set Computer)。
6、Cache是一种容量小、速度快的存储器阵列,可分为数据Cache、指令Cache或混合Cache。
7、硬件层和软件层之间为中间层,也称为硬件抽象层(Hardware Abstract Layer,HAL)或板级支持包(Board Support Package,BSP)
8、一般可以将嵌入式处理器分为4类:嵌入式微处理器MPU、嵌入式微控制器MCU、嵌入式DSP处理器和嵌入式片上系统SOC。
9、DSP处理器是专门用于信号处理方面的处理器。在数字滤波、FFT、频谱分析等领域获得了大规模应用。
10、硬实时系统和软实时系统的实现区别主要是在选择调度算法上。选择基于优先级调度的算法足以满足软实时系统的需求,而且可以提供高速的响应和大的系统吞吐量;而对硬实时系统来说,需要使用的算法就应该是调度方式简单,反应速度快的实时调度算法。
第二章
1、冯*诺依曼体系结构:程序和数据公用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置。
哈佛体系结构:是一种将程序指令存储和数据存储分开的体系结构,两者都独立编址。
2、复杂指令集计算机CISC和精简指令集计算机RISC
3、对于多于一个字节类型的数据,在存储器中有2种存放方式:
小端字节顺序存储法:低字节数据存放在内存低地址处,高字节数据存放在内存高地址处; 大端字节顺序存储法:高字节数据存放在内存低地址处,低字节数据存放在内存高地址处。
《嵌入式整理提纲》——YOYO左转
4、无操作系统的嵌入式软件实现方式:循环轮转和前后台系统。循环轮转方式:
优点:简单、直观、开销小、可预测;
缺点:过于简单,无法处理异步事件,缺乏并发处理能力。前后台系统:在循环轮转方式的基础上,增加了中断处理功能。
5、嵌入式系统按响应时间的敏感程度可分为实时操作系统和非实时操作系统。实时操作系统可分成硬实时系统和软实时系统。
6、嵌入式操作系统的几个重要概念(书P42 了解)
7、免费型实时操作系统:嵌入式Linux和uC/OS。
第三章
1、ARM(Advanced RISC Machine)是一种32位微处理器体系结构。
版本ARMv1:ARM1 版本ARMv2:ARM2、ARM3
2、PC的值:当前指令地址+8
3、指令集可以是以下任一种
bits 长(ARM状态)16 bits 长(Thumb 状态)
4、进入Thumb状态:当操作数寄存器的状态位为1时,执行BX指令,使微处理器从ARM状态切换到Thumb状态;
进入ARM状态:当操作数寄存器的状态位为0时,执行BX指令,使微处理器从Thumb状态切换到ARM状态;
5、ARM寄存器组织(P76-P80 了解)
6、ARM处理器支持7种运行模式
用户模式(特权模式)
快速中断模式 外部中断模式
管理模式
数据访问终止模式
系统模式(特权模式)
《嵌入式整理提纲》——YOYO左转
未定义指令中止模式
7、异常发生时,ARM对异常作出的响应:
①保存返回地址到 LR_
8、异常优先级:复位(最高)、未定义指令(最低)
9、掌握ARM指令(课本P86)
10、ARM指令的寻址方式7种(课本P89重点掌握)
11、C语言与汇编语言混合编程(课本P101,PPT重点)
12、Bootloader的功能:
Bootloader是操作系统内核运行之前的一段小程序。通过这段小程序,初始化最基本的硬件设备并建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。Bootloader包含两个阶段,阶段一即Boot阶段具有引导功能,初始化硬件配置,通常用汇编语言编写;阶段二即Load阶段完成加载功能,即将操作系统映像文件从ROM中加载到RAM,并将控制权交给操作系统,通常用C语言编写。
第四章
1、uC/OS :Micro Controller Operation System 微控制器操作系统
2、uC/OS-II主要特点:公开源代码、可移植性好、可固化、可剪裁、抢占式内核、多任务、可确定性、任务栈、稳定性与可靠性。(了解)
3、uC/OS-II中一个任务叫一个线程;其管理任务达64个,用户可用有56个;ID号越大,等级数越低;uC/OS-II总是运行进入就绪态优先级最高的任务。
4、任务调度(课本P120-123重点)
5、uC/OS-II的初始化函数编写 OSInit()
6、uC/OS-II的任务通信机制(P130-P132)
uC/OS-II定义了一个事件控制块ECB来进行任务间的信号传递; uC/OS-II提供了3种任务通信机制:信号量、邮箱、消息队列。
7、uCOS-II移植的基本要求:
1)处理器的C编译器能产生可重入代码 2)在程序中可以打开或关闭中断
3)处理器支持中断,并且能产生定时中断 4)处理器支持硬件堆栈
5)处理器有将堆栈指针和入栈、出栈的指令
8、可重入式函数:指一段代码可用被多个任务同时调用,而不必担心会破坏数据。
9、堆栈增长方向设置:
OS_STK_GROWTH为0表示堆栈从下往上增长; OS_STK_GROWTH为1表示堆栈从上往下增长;
《嵌入式整理提纲》——YOYO左转
第五章
1、三星公司推出S3C2410A处理器,基于ARM920T,采用高级微控制器总线新型总线结构。
2、S3C2410A处理器内核供电1.8V/2V、外存储器和外部I/O供电为3.3V;4通道DMA;3通道UART;117个通用I/O口和24通道外部中断源。
3、给出晶振,算CPU时钟,有公式(书本P146,找例题做)
fclkfinMDIV8PDIV22SDIV
例如:外部晶振为12MHz MPLLCON=0x62 02 2 其中MDIV=0x62=98,PDIV=0x02=2,SDIV=0x2=2 fclk12M*(988)(22)*2212M*1064*479.5MHz
4、S3C2410A处理器启动2级引导方式(书本P147 了解)
5、存储器系统的层次,设备从上而下,异常变得速度更慢,访问频率更小,容量更大,并且每个字节的造价也更加便宜。(书本 P148)
6、S3C2410A存储系统特征(书本P151 了解)
第六章
1、建立文件系统(P197-201)
2、根据32字节目录项结构,判断是目录还是文件,是文件的话,写出文件名(包括后缀XXX.XX)
其中从高位数,第12字节中的bit4是目录,bit5是文件(相应位置1就为什么)
其中前8字节为文件名,第9到第11字节为文件后缀,记得后缀前加点。
简答题
(一)两种无操作系统的嵌入式软件体系结构及其特点:
第一种是循环轮转方式,优点是简单,直观,开销小,可预测,缺点是过于简单,缺乏并行处理异步事件的能力。
第二种是前后台方式,前台是中断服务程序,负责处理异步事件,后台是无限循环,负责软 《嵌入式整理提纲》——YOYO左转
硬件资源的分配、管理以及任务的调度。前后台通过同步信号或数据进行交互。
(二)嵌入式应用软件的开发方式:
在宿主机上建立开发环境,进行应用程序编码和交叉编译,然后在宿主机和目标机之间建立连接,将应用程序下载到目标机上进行交叉调试。经过调试和优化,最后将应用程序固化到目标机中实际运行。
(三)RISC体系结构的特点: ①一个大而统一的寄存器文件
②Load/Store结构,数据处理的操作只针对寄存器的内容,而不是直接对存储器进行操作。③简单的寻址模式,所有装载/保存的地址都只由寄存器内容和指令域决定。④统一和固定长度的指令域,简化了指令的译码。⑤使用流水线降低指令寻址周期。
(四)异常发生时,ARM对异常作出的响应: ①保存返回地址到 LR_
(五)Bootloader的功能:
Bootloader是操作系统内核运行之前的一段小程序。通过这段小程序,初始化最基本的硬件设备并建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。Bootloader包含两个阶段,阶段一即Boot阶段具有引导功能,初始化硬件配置,通常用汇编语言编写;阶段二即Load阶段完成加载功能,即将操作系统映像文件从ROM中加载到RAM,并将控制权交给操作系统,通常用C语言编写。
(六)Nand Flash和Nor Flash在性能上的区别: 1)NOR的读速度比NAND稍快一些 2)NAND的写入速度比NOR快很多。《嵌入式整理提纲》——YOYO左转
3)NAND的4ms擦除速度远比NOR的5s快。4)大多数写入操作需要先进行擦除操作。
5)NAND的擦除单元更小,相应的擦除电路更少。
(七)可剥夺和任务切换的概念:
任务切换:当多任务内核决定运行另外的任务时,它将任务的当前状态,即CPU寄存器中的全部内容,保存在任务的堆栈中。入栈工作完成以后,把将要运行的任务的当前状况从该任务的栈中重新装入CPU的寄存器,并开始下一个任务的运行。
可剥夺:CPU总是运行就绪条件下优先级最高的任务。
(八)uCOS-II移植的基本要求:
1)处理器的C编译器能产生可重入代码 2)在程序中可以打开或关闭中断
3)处理器支持中断,并且能产生定时中断 4)处理器支持硬件堆栈
5)处理器有堆栈指针和入栈、出栈的指令
编程:
1、流水灯;
2、串口;
3、信号量;
4、Nand Flash 《嵌入式整理提纲》——YOYO左转
#include
OS_STK
static void App1(void *pdata);static void App2(void *pdata);static void printf_task_info(INT8U i);
void main(int argc, char *argv[]){
}
void App1(void *pdata){
pdata=pdata;{
OS_Printf(“nat time %d:n”,(INT8U)(OSTime/100));OS_Printf(“this is app1, prio=%un”,OSPrioCur);
while(TRUE)OSInit();
/* Initialize “uC/OS-II”*/ OSTaskCreate(App1,NULL,(OS_STK *)&App1Stk[TASK_STK_SIZE-1],(INT8U)10);//任务1等级为10 NULL,(OS_STK *)&App2Stk[TASK_STK_SIZE-1],(INT8U)5);//任务2的等级为5,比任务1高 App1Stk[TASK_STK_SIZE];OS_STK
App2Stk[TASK_STK_SIZE];
OSTaskCreate(App2,OSStart();
/* Start multitasking */
OSTimeDlyHMSM(0, 0, 3, 0);
/* waiting for 3s */
} }
void App2(void *pdata){
INT8U i;INT8U err;INT8U pname[10]=“task one”;pdata=pdata;{ OS_Printf(“at time %d:n”,(INT8U)(OSTime/100));
while(TRUE)
《嵌入式整理提纲》——YOYO左转
}
OS_Printf(“this is app2, prio=%un”,OSPrioCur);OSTimeDlyHMSM(0, 0, 4, 0);
OS_Printf(“nat time %d:n”,(INT8U)(OSTime/100));OS_Printf(“set name then suspend task onen”);OSTaskSuspend(10);OSTimeDlyHMSM(0, 0, 4, 0);
OS_Printf(“nat time %d:n”,(INT8U)(OSTime/100));OS_Printf(“Resume the task onenn”);OSTaskResume(10);OSTimeDlyHMSM(0, 0, 4, 0);OS_Printf(“nat time %d:n”,(INT8U)(OSTime/100));OS_Printf(“Delete the task onenn”);if(i=OSTaskDel(10)!= 0){
} getchar();printf(“OSTaskDel()err, the err NO is %dn”,i);return;
}