嵌入式系统学习心得(优秀10篇)

发布时间:

当我们对人生或者事物有了新的思考时,不如来好好地做个总结,写一篇心得体会,这样可以记录我们的思想活动。那么心得体会怎么写才恰当呢?这次差异网为您整理了10篇《嵌入式系统学习心得》,希望能对您的写作有一定的参考作用。

嵌入式学习心得体会 篇一

目前最常见的嵌入式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等。

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

嵌入式学习心得体会 篇二

从实习到现在搞嵌入式开发快一年了,蓦然回首好像一年过得挺快,挺顺利的。细细品味,发现这一年还是有很多值得回忆和总结的东西。至少这一年看书挺多,大概二十几本,当然和那些一年看一百多本书的人没法比,但是我已经超越了自己。这是我大学毕业的第一年,初次走上社会,很想一展身手,可是。.。.。其实也不用可是了,和很多朋友一样碰了很多钉子,现在我和老板的关系就挺一般的,只是我性格还不错。呵呵~~,做优秀员工看来还得慢慢学。

今年最大的收获就是做了一个半项目,是在uClinux下面跑的。半个是SNMP-Agent的实现,因为我去的时候snmpd已经跑起来了,我只是实现部分管理功能;一个是基于Web的管理系统,使公司的主打产品微波通信设备上网。这个项目是我一手策划,一手实现(界面设计是一位女同事,很优秀的程序员),从中学到的东西也最多,感情不可谓不深。

SNMP即简单网络管理协议,其实一点都不简单。在我所知的网络协议里面,它仅仅比OSI的CMIP简单一点,而CMIP直到现在还没得到广泛应用。我们能够实现SNMP-Agent不能不感谢CarnegieMellon大学免费发布的ucd-snmp软件包。它使得开发人员专注于实现对特定设备的管理功能。

我在项目中的工作主要是扩展MIB,实现相应的管理功能以及网络功能的扩展。我们公司的MIB库比较庞大,但是程序运行还是挺快的。因为ucd-snmp软件包中大量使用回调函数,而且它将MIB树以二叉树形式表示,但是每个结点不是单个的MIB结点,而是一个表,包括了多个结点。回调函数和两层表示法的使用是操作快速的主要因素。

基于Web的管理系统我原本是打算在设备外实现SNMP-Manager的功能,因为设备中已经嵌入了Agent。这样管理人员可以在世界各地通过WWW登录公司的管理平台,实现对所有设备的管理。但是老板想在设备中嵌入一个管理系统,可以通过www管理单个设备就行。呵呵~~,这样工作又轻松了一点,就按老板的意思做了。

我用的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操作系统,从学习的角度来讲,这方面要多下功夫。

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

嵌入式学习心得体会 篇三

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

嵌入式系统学习心得 篇四

一、嵌入式系统及其应用概述

嵌入式系统是以应用为中心,以计算机技术为基础,软件可编程,硬件可剪裁、重构的专用计算机系统。该系统通常嵌入在对象环境中,并通过其在对象环境下运行的特定程序,完成对外界物理参数地采集、处理,达到对控制对象地响应或人机交互的功能。

目前,嵌入式系统的发展方向主要是解决接口多样性、适应性、灵活性和集成开发环境等的特定应用问题。嵌入式系统应用的底层性与对象系统的紧耦合性是其显着的基本特征。所以,最大限度的满足对象数据采集、控制、开发环境、功耗,以及适应能力、可靠性等品质因数是选择嵌入式系统的标准。

为适应技术发展需求,嵌入系统在不断追求结构紧凑、坚固可靠、技术密集、高度分散的同时,尤以不断创新为嵌入式系统的发展核心。使嵌入系统凸现了高技术门槛,主要表现在软硬件设计的紧密相关性上,特别是构建RTOS系统需透彻了解RTOS的工作机制和系统资源配制,掌握底层软件、系统软件和应用软件的设计、调试方法。

随着对嵌入式系统的智能化愈加关注,现场可编程、调试、引脚配置变得非常重要和必不可少。所以,用户可配置的SCO(在片系统)已成为现阶段嵌入式系统的核心发展技术。通过现场可编程阵列把接口应用设计和系统开发留给系统设计者,提供灵活、多样的片上电路设计平台,使电路板设计变成在片的芯片配置,将嵌入系统地设计带入了软硬件的双编程时期,进一步缩短了产品开发周期。而下一代的在片系统还将发展成一个MUC数量可缩放的集合体。

在嵌入式应用系统中,虽然高端产品不断涌现,但由于应用对象、环境的不同特点,嵌入系统的8位机产品仍因应用对象的有限响应时间、完备的集成开发环境、良好的性价比等优势仍然占据着低端应用系统的主流地位。Cygnel公司的C8051F系列产品就充分印证了这点。

回顾嵌入式系统的发展历程,已经历了由模拟向数字的演进过程,现又逐步演变为数模并存情形。由最初软件编程主宰的微处理器(嵌入式微处理器、数字信号处理器、单片机),到硬编程主宰的专用集成电路时代,再到今天的现场可编配置时代。嵌入式系统的核心技术正沿着“许氏循环”的浪潮不断前行。而配套的软件设计平台也随着科技进步在不断得到完善。可以预期,软硬双可编程的嵌入式系统时代必会带来更加便捷的开发环境和技术支持。

二、嵌入系统的设计原则

嵌入系统设计具有很强的针对性,软硬件协同设计是系统设计的关键。需解决好软硬件的同步与集成设计问题,要结合具体应用进行综合考虑,保证设计工作的一致性与正确性。在针对具体应用系统的功能目标分析基础上,分解整个系统的各项功能指标和技术要求,结合系统的实时响应要求、接口功能定义与标准、嵌入芯片的处理能力、编程语言、开发环境、产品的升级与维护问题、开发投入能力、产品综合成本等多方面因素进行权衡考虑。

(一)在明确系统性能需求的基础上,细化以下考虑因素

1、系统功能实现手段的软硬件分配。

2、器(部)件选择和系统构建。包括微处理器芯片、外围接口电路、各种驱动电路形式、器部件类型、前后向通道处理方式、人机界面和手段等。

3、控制算法设计以及软件系统的架构形式。

4、语言选择。依据设计者熟练程度和习惯、开发环境和控制功能要求选取。

5、抗干扰问题的解决与设计。包括软件的和硬件的、常规的和特定的。

6、实现工艺和方式。包括印制板设计、走线安装、装配工艺、新材料或新技术的应用等。

在各实施阶段,对项目进度、关键技术的风险因素必须进行审查评估,评价软一硬件的功能设计与分配,以及实现的技术性能、工作量和时间进度。明确电路之间的接口参数、软一硬件功能衔接,以及项目中存在的问题和缺陷,及时发现关键部位或矛盾突出点的瓶颈问题,将隐患排除在早期设计阶段。

(二)嵌入系统中微处理器选择应考虑

1、MCU的算术、逻辑处理能力;运算速度和时钟频率;总线控制功能、中断方式和仲裁机制;RAM和FLASHROM容量;软件加密保护。

2、外围接口功能的可重构配置能力;数据通讯模式;前后向通道类型;端口电压的适应能力等;

3、开发工具的在线调试或仿真能力;FLASH代码读写环境;编程语言的支持程度;代码的可移植性等。

4、电源电压;功耗等。

三、嵌入系统的软件特点

嵌入式系统是可利用资源有限、专用性很强、实时性要求也很高的应用控制系统。故在软件设计方法和实现手段上,嵌入系统软件同PC机软件存在很大差异,主要表现在:

(一)实时性的控制方法

PC软件提升速率方法,极大依赖处理器性能提升,还体现在缓存方案、动态分配等技术手段上。但在嵌入式系统中应用这些技术就存在硬件资源不足、工作频率低的现实问题,会降低系统的可靠性。

(二)特定的异构特征

嵌入式控制软件设计既要考虑特定的硬件固有部分,也要考虑来自系统之外的各种通讯、传感器的专用信号处理接口,以及不同控制目标的实时期望和执行机构的。异步并发事件处理能力。因此不同的硬件系统或控制目标,将会产生不同的系统构建方案。

(三)系统的性能目标

编写嵌入式软件必须着重考虑与硬件系统相匹配的功耗、不间断运行、故障恢复、高可靠性等方面的约束条件,实现特定应用环境下的控制功能、实时性响应的目标要求。因此,嵌入系统要在借鉴通用软件技术,遵循软件工程理论,规范软件开发过程的同时。还应根据嵌入式系统特点研究开发技术和算法结构,提高开发效率,确保系统软件的质量和可靠性,以及软件的复用性、可移植性和易维护性。纵观嵌入式软件设计方法的发展历程,走过了从结构化设计、面向对象设计、基于构件的设计阶段,经历了单任务到多任务的系统转变。

嵌入式学习心得体会 篇五

这个题目很大,给人一种感觉我好像很成功,其实不然。实际上自己水平不高,甚至很低,但是做过了一些曲折的学习道路,同时把自己真实的学习历程表达出来,希望对后来者有借鉴的意义,甚幸!

工作三年、几成废人!

我XX年毕业于华中地区的一个理工科大学,专业是机械电子,我当时已经签了一家内陆某个省级机关工作,家里八辈是农民,并且很偏远,能够进入这样的地方是祖坟有风水。但在毕业前夕有个进入it的机会,我本想进去的,家里人极力反对,阻力可想而知。同时要交4000元的违约金,对我来说是天文数字。大学里的费用很多是借的,几乎将近一半的费用是在大学勤工俭学挣的,为了省钱,高中一个学期回家一次,大学一年回去一次。并且我个人也有特殊的人生背景(悲景更确切),这里不多说了,写十篇也写不完,同时偏离主题。这样我就参加了工作。一张报纸一杯茶的日子,几乎下班后有种很空虚和恐慌的感觉。在工作中虽然是与自己专业有点关系,但是很少。专业几乎荒废。我自己也思考,如果再不出去,自己将会成废人,只好让国家养了。两年后决定出去,但是几成废人,谁要呢,只好到学校去镀金。这是中国教育和社会的悲哀!

至于专业就改为计算机方面,听说好找工作,我说实话不是很对计算机特别感兴趣,生存第一需要。不要笑我,哈哈!

考研成绩出来,超过了国家线几十分。那个方向要两个,我第三,但是那年非碘,不面试就按分数来排,自然我落选了。其实给我面试机会也不一定要我,哈哈,自己几斤几两很清楚。

最后调剂到另外一个学校,交钱,咬咬牙,交吧!现在仍然债台高筑!

进入学校前夕

为什么要把这段列出,看后就知道了。

单位有网络,经常上网查些英语资料,在那里唯独英语没有丢很多。于是我就在网上查资料,学什么好呢,最后确定学嵌入式把,听说跟硬件相对比较紧密!而我在大学里多少学习了数字电路,单片机等,所以多少也有所利用,不会真的一无所知。当然在这之前也自学过数据结构,计算机组成原理等。c 语言在大学就学了。哈哈这就是我的家底。

我知道自己的基础差,于是我就拿操作系统,数据库、数据结构、c++来看,机关有这个好处,空余时间多,于是平常就看书,很痛苦,没有人请教。

另外就上网到论坛上去,我就到各个专业的技术论坛,其实是电子论坛和嵌入式论坛。我几乎没有发帖,几乎把几个大型的出名的论坛的帖子翻遍了,虽然有很多重复的,我才知道嵌入式是个什么东东。这些帖子对我以后的学习产生了极大的影响。

最关键两点:

1、嵌入式是什么?

2、嵌入式需要哪些知识?

知道了这两点,好办!我就开始规划学习路线。计算机的基本理论不能丢,于是重点看组成原理,数据机构,操作系统、c++。同时论坛上了解到,实时操作系统ucos是一个很好的嵌入式操作系统,对初学者很好。于是我就买了一本书,但是代码在电脑里调不通,网上也有很多相同的问题,我就看书,分析代码,一遍不行就两遍,三遍,这样才看了入了门,才知道什么是进程。原来看操作系统书时,根本就不知道进程是个什么东西。

在这段时间掌握的东西不多,但是,对我以后的影响很大,我想起了大学时一个同学跟我说过了一句话:大学里最重要的不是学到了什么,最重要的是学会怎么学!大概是这个意思。

进入我的避难所

对我来讲,再次进入大学不再是大学,而是避难所。希望这次进入给我喘气和养精蓄锐的机会和时间。我是这样认为和实践的。

在学校我有三件事:上课,上图书馆,上网。

对于上课,学校开了很多课程,非常好,很多是名人名师讲解,于是很多同学都想学,都去听。我也考虑过,最后放弃。我是这样认为的,时间是有限的,什么都想学,什么都学不成。于是我把我自己学的课进行了分化,一般的课程通过就行,重要的一定好好学。我希望不要什么争论学习课程多和少的问题,这仅仅是我的看法。所以我的成绩应该是很差的。分数低。好在后来的单位没有要我的成绩单,否则就惨了。

我个人感觉是上图书馆的效率比在寝室里高多了,这是我的经验。

嵌入式学习心得体会 篇六

1 .基础知识

嵌入式开发很大一部分靠C语言,尤其在底层驱动等用的很多,当然在应用开发还用到诸如C++等其他语言,但我想对于一个初学者有C基础就足够了,等到学到一定程度再去扩展。所以C基础是学嵌入式的前提。

关于C语言需要知道基本的语法,什么是结构体,什么是共用体,有什么区别,不用强记一些实际中用的很少的东西。C++要知道什么是类,怎么定义,继承,接口,要深刻理解,当然基本语法也是必不可少的。

操作系统原理也需要基本理解和掌握的,我记得我上课的时候不以为然没有认真学习,后来发现很多的东西都是在这个课上讲到的。什么时间片啊,任务调度啊,都是在那里知道的。

Linux基本命令的使用(vi编辑器必须会用,因为在终端修改文件的时候只能用这个),我们现在很多的人都习惯用鼠标了,很少用到命令,我学习嵌入Linux就强迫自己去改掉这个习惯了,Linux用命令操作一是效率高,二是功能非常强大,远非图形界面能比的了的,其实我们用图形界面的操作都要转化为命令传给硬件的。Linux文件系统的管理要清楚,哪个目录存放是什么东西,有什么用,文件权限管理等。

2.单片机知识的学习

我觉得单片机、嵌入式等这一类都有很大的相似性,知识功能不一样,但工作的原理、控制原理都和大的相似。就我个人而言,能比较快的进入嵌入式的学习与提高,很大一部分依赖于对单片机的原理有较深入的学习和理解,单片机比较简单,学习起来相对比较容易,所以我建议想学嵌入式的同学,可以和我一样从单片机入手,那样不仅可以理解这些微处理器、微控制器的操作与控制原理,当然还可以顺便学学汇编语言,这对后面的嵌入式学习都有很大的帮助。

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

3.学习开发板

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

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

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

5多看代码,多写代码

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

个人觉得这是最重要的一种做法。这东西没自己亲手做,程序没亲手写,没有进行调试等,都是很难学到东西,因为很多东西感觉看的都懂,其实真正做起来就什么都不会了。因此买块板来自己做,这样才能真正将所学的应用到实际中去。而且这样做印象才能深刻,死记硬背原理及规则不但不可行还会拖垮你的学习兴趣,自然学不下。

总之,我觉得,基础知识很重要,但是动手做更重要!

嵌入式学习心得体会 篇七

工作一年了,喜爱嵌入式这个好玩,令人羡慕的行业,不止是工资待遇哦。

4月,又是有许多面临毕业、找工作的大学生来到,面对如此激烈的竞争,如果有一技之长旁身,那就是你挑公司了。

非常有感慨,上一年我也在大学城中参加千里马的面试,跟我同学都是拿着一袋子的简历去排队。

或者网上招聘海投简历。

现在就职的公司算不上高大上,还能算的过去。总结一下学习心得,也算对自己学习有个交代吧。

1、如何做好嵌入式Linux学习前的准备?

要成为一名合格的嵌入式Linux工程师,就需要系统的学习软、硬件相关领域内的知识。大学里面学的基础还行,可以继续自学,我是自学韦东山Linux视频,重点是有书,有视频,有代码。如果基础太差是个小白,还是建议去花几万培训吧。

2、学习嵌入式Linux需要补习哪些基础课程?

嵌入式Linux工程师的学习需要具备一定的C语言基础,因此面对许多朋友只是在大一或者大二学习过C(还不一定认真学了,呵呵!),之后基本就不再用过的情况,建议大家在学习之前先复习一下C语言基础这块。要提醒大家的是,复习时不能只关注基本语法,对于常用的数据存储及处理方式,例如:数组、结构体等也要关注,有条件的话一定在机器上亲自敲敲代码、分析理解一下具体案例代码编写的思路,让自己慢慢进入一名嵌入式开发人员的状态。

3、嵌入式Linux开发跟普通软件开发在学习方法上有什么不同?

要成为一名成功的嵌入式软件开发人员,程序的设计能力是首要技能,这一点与普通的软件开发人员的要求是一样的。但是作为“软硬兼施”的嵌入式开发,则要求大家不仅要了解较底层软件的工作过程和工作原理(例如操作系统级、驱动程序级软件),可以看一下韦东山Linux视频第1期(基于S3C2440录制): ARM实验,u-boot,文件系统,初级驱动。

嵌入式学习心得体会 篇八

本人本科学的是电子信息工程专业,其实这个专业和嵌入式没有多大的关系,要说有关系就是简单的讲了下C语言语法,学完之后还不知道什么是C语言,只记住了char,int,long等占几个字节,if, while,for循环什么的,感觉也就能算一些小学就会的题目,全国计算机二级C语言也就糊涂的过了。我这个专业没学过C++,一开始不知道什么是面向对象,这可能会让人笑话了。不过这说的是实话,本科的时候,学院安排的课程大部分偏硬件部分,动手机会比较多,自然而然比较喜欢硬件方面。

在大二的时候就听学长说,单片机很难学,那时候经学长介绍,淘宝买了本郭天祥老师出的书《51单片机C语言教程》,一开始还真是不怎么懂,感觉有点像是看天书,然后硬着头皮去看,当我把51的结构看完了,就不像一开始那样一头雾水了,自己在纸上把51的结构图默画一遍,然后再把各个寄存器功能写一下,各个功能口的结构粗略画了下,然后觉得51整体已在我心中了,虽然没有什么作用,但是至少懂得这门课要怎么去学习。其实有些时候不是这个东西你不会,而是在不会的时候自己先告诉自己这个太难了,自己先放弃了。

在大三的时候,第一学期课比较少,我就经常待在图书馆,会去蛮看些专业相关的书籍,现在想想,那时候也是机缘巧合下,看到了一本书《从51到ARM》,讲述的是从51系列单片机的一般知识出发,将arm处理器和51系列单片机进行对比,引导读者去理解和学习arm处理器的知识。那个时候也有考虑到以后就业的问题,就想到一件事情,如果去应聘工作的话,每个工科院校电子信息类的毕业生都会异口同声地说:我会51系列单片机。当他说这句话的时候,他和别人是站在同一起跑线上的。可我们完全有可能和别人不站在同一起跑线上。正是这本书给我开启了另外一扇大门,让我初步了解了嵌入式。后来去报考全国计算机等级考试三级教程——嵌入式系统开发技术,在图书馆奋斗了两个月,最后取得优秀的成绩,也让我进一步了解嵌入式系统。

在大四的时候,我们有嵌入式的选修课,不过当时因为考研的缘故,就没有去上过这门课,好可惜呀!但是,在选择读研研究方向的时候我还是毅然选择了嵌入式方向,我知道这将成为我未来三年研究的方向。这学期(研一下学期),很开心能够再次接触嵌入式系统这门课程,对于导师教的这门课程,我觉得自己上课还是蛮认真听讲的,当然也被师在台上那讲得头头是道,温文儒雅的风姿所吸引。对于没有学过微机8086的我,有些时候,老师用微机与嵌入式的对比让我头脑没有相关概念。.。

首先,我对嵌入式在概念上有了一个比较精确的了解。嵌入式是指以应用为中心,以计算机为基础,并且软硬件可裁剪,适用于对功能、可靠性、成本、体积和功耗有严格要求的专用计算机系统。它由硬件平台和系统软件组成。硬件平台指嵌入式处理器和与之通过接口连接的外围硬件平台。系统软件是指实时操作系统和用户应用软件。

谈到硬件部分,我首先想到的是嵌入式处理器那些外围功能模块。对于这部分的学习,我当初花了好长时间看《深入浅出ARM7——LPC2400》这本书,现在想想觉得自己学习方法没用对,完全没有那个必要,自己却花了大把时间在看这些寄存器引脚的使用,因为单纯的看过之后还是很容易忘的,之后在进行实验的时候还是翻书来查就证明了这一点。不过一些最基本的模块,例如通用输入/输出口(GPIO),通用异步收发器(UART),向量中断控制器(VIC),外部中断输入和定时器/计数器还是需要看书认真去记住那些常用的引脚功能。对于CPU异常这部分,我一开始以为异常就是中断,因为处理程序流程设计是相似的,都是请求处理器打断正常的程序执行流程,进入特定程序的一种机制。当时还对老师提出的一个看法有点疑义,51可以处理中断嵌套而ARM处理器却不能?我当时脑子里面就在想:中断不都是有硬件设备产生的,那按常理来讲ARM处理器也可以处理的呀。后来在认真查书,发现CPU异常有7种:复位,数据中止,中断,快中断,预取中止,未定义,软件中断。而异常向量会使CPU转入异常入口地址执行程序,开始了异常处理。同理的话,中断向量使CPU转入中断入口地址执行程序,开始了中断处理。即当发生IRQ中断时,程序返回地址被存入该IRQ中断模式下的LR,如果继续发生IRQ中断,那第二次的中断返回地址也还是被存入该IRQ中断模式下的LR中,那先前发生中断时候存入的程序返回地址将被覆盖掉,导致不能返回正确的位置。在我解决这个问题的期间,每次睡前思维准会定格在这问题上,久久不能绕出来,其实有时候查书还是最好的解决方案,因为网络资源只能提供给我们部分的参考资料。

对于ARM汇编语言这部分的学习,我认为是需要重视的,学汇编不是说用这语言做多牛逼的事情, 问题的关键在于, 学透了汇编会使你真正理解计算机。另外一方面,只要以后在嵌入式工作中你迟早会在某个阴暗的角落里遇到汇编。“不管你承认不承认, 现在的CPU没有直接跑高级语言的, 哪怕是虚拟机也都是类似汇编的指令集。当遇到崩溃分析, 性能优化甚至编译器抽风等等的时候, 汇编是你最后一根救命稻草(这句话是福来师兄讲的)。”为此他给了我们一份资料,周立功lpc21xx/lpc22xx系列ARM7启动代码分析,主要讲述的是startup.s文件的分析,看了下才发现老师上课讲的那个启动代码分析很多不理解之处这里都有详细的介绍,这分析太精辟了。

学 ARM7这么久,我认为从硬件上讲,一方面就是学习接口电路设计,另一方面就是学习汇编和C语言的板级编程。如果从软件上讲,就是要学习基于ARM处理器的操作系统层面 的驱动和移植。这些对于我们初学者来说必须明确,要么从硬件着手开始学,要么从操作系统的熟悉到应用开始学,但不管学什么,只要不是纯的操作系统级,硬件的寄存器类的东西还是要能看懂的,基于板级的汇编和C编程还是要会的。

μC/OS-II 是一种基于优先级的抢占式多任务实时操作系统,包含了实时内核、任务管理、时间管理、任务间通信同步(信号量,邮箱,消息队列)和内存管理等功能。它可以使各个任务独立工作,互不干涉,很容易实现准时而且无误执行,使实时应用程序的设计和扩展变得容易,使应用程序的设计过程大为减化。μC /OS-II是一个完整的、可移植、可固化、可裁剪的占先式实时多任务内核。μC/OS-II绝大部分的代码是用ANSI的C语言编写的,包含一小部分汇编代码,使之可供不同架构的微处理器使用。

μC/OS-II可以大致分成内核结构、任务管理、时间管理、任务之间通信与同步4个部分。内核结构是操作系统的处理核心,包括操作系统初始化、操作系统运行、中断进出的前导、时钟节拍、任务调度、事件处理等多部分。任务管理部分中的内容都是与任务的操作密切相关的。包括任务的建立、删除、挂起、恢复等等。因为μC/OS-II是以任务为基本单位调度的,所以这部分内容也相当重要。μC/OS-II中的最小时钟单位是timetick(时钟节拍),任务延时等操作是在时间管理这部分完成的。任务之间通信与同步为事件处理部分,包括信号量、邮箱、邮箱队列、事件标志等部分;主要用于任务间的互相联系和对临界资源的访问。μC/OS-Ⅱ操作系统是在main()中建立的,首先要系统初始化,OSInit(),初始化系统所有的变量和数据结构。然后进行任务的创建,OSTaskCreate();之后进行多任务的启动,OSStart()。在进行任务的并行处理的时候,一个任务的程序是顺序执行的,而不同任务的程序却是并行执行的。从应用程序的观点来看,此处的并行处理只是一个假象。而实际上它是通过实时操作系统的内核控制任务之间的切换来实现的,也就是任务调度啦。

μCOS-Ⅱ总是运行进入就绪态任务中优先级最高的那一个。当创建新任务时,或当前任务调用一些可能把自己挂起的系统函数(如OSMBoxPend)时,内核就要进行任务切换。在上述的场合,任务级的调度是由函数OSSched()完成的。

在一个多任务的应用工程中,任务之间并不是完全独立的,它们存在一些需相互配合的处理,这些相互配合是靠任务间的通讯或同步,信号量、邮箱、消息队列可以实现这种任务与任务,任务与中断服务函数间的通讯与同步。

邮箱可以使一个任务或者中断服务子程序向另一个任务发送一个指针型的变量。而信号量不可以,其只能发送信号量。消息队列可以使一个任务或者中断服务子程序向另一个任务发送以指针方式定义的变量。因具体的应用有所不同,每个指针指向的数据结构变量也有所不同,实际上,我们可以将消息队列看作多个邮箱组成的数组,只是它们共用一个等待任务列表。

我们实验所用的ARM开发工具是ADS1.2。ARMADS全称为ARM Developer Suite,是ARM公司推出的新一代ARM集成开发工具。现在ADS的最新版本是1.2,支持软件调试及JTAG硬件仿真调试、支持汇编、C语言、C++源程序,具有编译效率高、系统库功能强等特点。在安装ADS1.2的时候出现过小问题,当时我的电脑是64位的,安装完之后显示不了,后来百度查找到原因,竟然是文件夹放错地方,应该放在Program Files(x86)这个文件夹中。后来有同学问我这方面的问题,但是发现他们的ADS1.2安装不了的原因是因为Licence弄错了。在打开CodeWarrior for ARM Developer Suite的时候,一定要记得选DebugInChipRAM,否则Make都出现很多error,而且那些几乎都是未定义函数的错误。之后就进行Debug,调试成功之后会跳出AXD的界面,选择Options里面的ConfigureTarget,再添加H-JTAG的文件,之后点击GO,程序会跳出汇编语言的界面,再点击下就跳到C语言程序入口地址,之后再点击下GO,程序就开始跑起来。前面所述的这些步骤是理想情况下程序自身没有发生错误,当然在调试过程中,还是有很多硬件上的问题,一方面是有些开发板可能用久了,用JTAG并口连接的时候接触不良,很容易自动掉线,常出现未连接设备的的Error,还有一方面是跑程序过程常会出现兼容性的问题,导致程序AXD调试时候会出现卡在某个部分一直进入死循环,这个后来是解决了,但是偶尔还是会出现这个BUG。

通过这学期对嵌入式的学习,我发现自己尚未掌握的知识点还是蛮多的,尤其是对μC/OS-II的移植方面,我只是理论上粗略了解,没有经过实验的操作。还有对存储器加速模块(MAM)这方面不够了解,主要一方面当初在做消息队列采集实验(KeySem_SampdataQeue),这个模块被代替掉,不需要使用它,所以后来也没有去掌握相关知识点。对于任务就绪算法这部分,我只是上课的时候听“懂”了,课后自己再看完全懵了。对于CAN总线调试的部分,老师上课没有讲到这部分的介绍与应用,但是后来通过自己对实验室师兄们所做的课题初步了解,发现我自己有必要去弄懂它的构造和原理。

“看书不要希望一次就会,一次就明白是什么意思,也不要死记硬背,看不明白也没关系,以后遇到了知道去哪里去找就可以了,以后遇到的多了,也就记住了,遇到的少的,忘记也就忘记了。”依然记得当初不懂怎么解决某个问题的时候请教李硕师兄,师兄对我说的这番话。自己在μC/OS-II这部分内容挣扎了好久,现在想想,觉得当初不应该一上来就直接阅读内核源代码,看了一些自己把头撞破也想不明白的事,这样直接正面打击我学习嵌入式的积极性。学习啊,还是得要循序渐进。如果你想学习嵌入式一定要有块学习板。看再多的视频,看再多的书,也不如自己动手试一下,看着很简单的东西,做起来就可能遇到很多的问题,遇到问题找到原因,解决问题,只有这样才能学到东西。记得我第一次仿写led的驱动,想自己试一下,可是自己一试,就出了好多的问题,那个led弄了我一天才把led灯点亮。所以不要眼高手低。

对于初学者,有一点小建议,我们拿到一个开发板,很兴奋也很激动,想法自然也很多,想用开发板实现自己的这个想法,实现那个想法,然后又不知道从何下手,然后就去论坛中发一个贴,最后等着别人去回复,当见没人回复就开始抱怨。这种做法是不可取的,有想法是好的,我们要实现自己的想法也是有前提的,首先,我们对这部分知识了解吗?如果不了解就去google一下(最好别用百度,不太好用),了解了一些,也就大概知道要怎么做了。如果再遇到问题,再去发贴问,这样也显得咱们有水平。比如自己连串口是什么都不太清楚呢,就问串口通信怎么做啊,就是人家把代码给咱,咱也不明白是怎么回事啊。见多识广,熟能生巧。多看代码,要从代码中读出代码的意思来。自己平时也要多写代码,多练习(这一点我做的不好,写的少)。

最后,我想说的是嵌入式系统的学习和研究一旦我们达到了一定的水平后,其实很简单,就是如何去看CPU和相关芯片的Datasheet!

嵌入式学习心得体会 篇九

研究嵌入式系统已经有快两年的时间了。很庆幸自己当初选择了嵌入式系统作为自己的研究和职业方向,可以说它是一种催化剂,让我自身的修养和研究能力都有了很大的提高。

在嵌入式系统的大门前,我只能算是刚刚看到这个大门的台阶,但这段小小的距离让我受益颇多,现将其中心得奉献出来,欢迎高手前辈们指正,以供刚接触的新人参考。

在写之前,想先写一句话,千万不要以为你是天才,所谓天才即胜别人N倍的人,如果你真认为你是天才,请以天才的标准来要求自己,将自己付出和别人的比例以N:1来进行。

(1)学习与生活心态

很多朋友都是在刚步入大学校门开始接触计算机或者其他。大学是一个很让人迷茫颓废的地方,可能你在高中踌躇满志,但在大学的管理机制下却心态渐糜。能够在大学(大一)里找到自己人生之志的同学有多少?目标要明确,不要得过且过,不要追逐热门的东西。

不管在什么时候,心里都要有自己的信念和理想,不要被其他东西左右了自己。要从兴趣和竞争出发,因为这才是你产生动力源的地方。学东西时,要让自己先喜欢上它,要学会享受学习它的时间,喜欢乔XXX的都知道,乔老爷子最常说的一句就是要享受比赛的时间。

因为只有你喜欢上了它,享受了它,才不会被它所产生的压力压倒自己,不要产生一种厌恶的心理。而且心态要调整,不要一味的蛮学,死学,在没有什么兴趣学的时候可以先玩几天,在回过头来,或者用其他的方式来转换。要抱着一种十年方能磨一剑的心理,扎扎实实从基础开始,不要为高速开发的一些现象所迷惑,那些都只是软件的功劳。

我个人认为搞编程,英语和数学很重要,大家一定要时时的抓,至于怎么抓那就是另外一回事了,当然其他的知识也要汲取,可以多接触点天文,地理,人文方面的东西来补充自己。转换的生活方式。要学会生活,在人的一生中,都会遇到一些很不开心的事,或者大大小小的意外,孙子兵法里面一句大意就是说,战场上要会将劣势转成优势,即最大的劣势很可能就是你的优势所在。

一个打击你可以把他变为前进的动力,不必为了一点挫折和捶胸顿足,不必为了一点小事争吵不休。空闲的时候可以躺下来看看天,你就会明白自强不息,厚德载物之理。(看到一些为了失恋或者其他而堕落的人真的很难受和可惜)。

要给人以帮助。别人有困难时或者一些举手之劳在自己解决范围内的尽力帮之,这对自己不会损失什么,相反在对方心里能够树立你的形象和增加好感。记住,给人之恩时也是给你自己铺路,这个世界不是靠你一个人可改变的。

(2)编程语言的选择语言的争论。

很多初学择,老是在学习何种语言上举棋不定,试问,中国牌子有几个不被骂的,试问,世界上哪部影片没人说他坏话的?术业有专攻,各司其职,每个语言的出现肯定都有自己价值和领域的范围,不同的只是价值和领域的高级和大小。

就像高,矮,胖,瘦组成一个“型”。但是技术是进步的,这个进步也是在旧的基础上。放心,技术再飞跃也不会今天奔I,明天扣肉的迅速,在学习的同时也要时时关注整个语言界的走势(貌似哪个伟人说的与时俱进),保持一种同步曲线的前进。语言能干什么?能问这句话,很欣慰。

表明你是从基础学起才会问出这样的话来。但换而言之你一开始对这门语言调查的信息不足。庙算者胜,对自己身边的事物了解是非常重要的,这也能说明说你的教材或者教导你的人不够充分。如果是我对新手交流,我会花足时间让他明白这门语言是什么,能干什么,整个体系等等。

这样在学的时候,对同一条语句上的理解你可能跟别人就不一样了,因为你知道这门语言的体系架构,你可以从更多的特性角度去挖掘使用它。提高自己对语言阅读能力。如何快速的进步?可以告诉你没有一步登天的办法,但是也可以告诉你如何让你快速掌握你所学的技术。多读他人代码,多领悟他人思维,多给自己出难题,多几种方法来解问题,多将语言的思想和身边的事物联系起来。想想你是怎么掌握普通话的,方法就不具体说了。

编程的思维。计算机是充满诱惑的东西,很多人都说热爱计算机,那只是它的表面,你热爱的只是他的一种扩展性的东西。能学计算机我很高兴,因为计算机从某种意义上来说将空间的距离给消除掉了。这里没有流血,没有牺牲。你可以以一种艺术家的思维来塑造它,可以以侦探的逻辑思维来解决它,可以以一种战争狂人的思维来摧毁它。

你可以将你的这种思维体现在代码和整个布局里,不要惊异别人代码思维的异风,你也有自己的思维风格,你也可以,你也可以用自己代码让别人惊异。记住你学东西时更多的要体会他的思维,比如数学,微积分,离散,无数的定理,你学完以后可能永远都用不到,但是你可能有这种感觉,在你碰到某一问题时,这一问题的性质和你学到的东西很类似,但是中间就是差了一点东西,对了,这就是它思维上的一种运用,一种抽象,一种转换。

嵌入式学习心得体会 篇十

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退出来;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;管道和重定向操作符可同时用于一个命令行。

读书破万卷下笔如有神,以上就是差异网为大家整理的10篇《嵌入式系统学习心得》,希望对您的写作有所帮助。

294 3218