嵌入式学习心得由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“学习嵌入式心得体会”。
嵌入式学习心得
当今社会,嵌入式系统已经渗透到人们工作、生活中的各个领域,嵌入式处理器已占分散处理器市场份额的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,用主要用的系统提供给用户的接口。
要时刻把握每一次提高自己的机会!