《嵌入式技术》学习总结报告

时间:2019-05-12 13:50:21下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《《嵌入式技术》学习总结报告》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《《嵌入式技术》学习总结报告》。

第一篇:《嵌入式技术》学习总结报告

《嵌入式技术》学习总结报告

目录

一、嵌入式系统简介............................................................................................2

1.1 嵌入式系统的定义和特点....................................................................2 1.2 嵌入式系统的构成.................................................................................3 1.3 嵌入式系统的应用.................................................................................5 1.4 嵌入式系统的工具链.............................................................................6 1.5 嵌入式系统的发展趋势.........................................................................7

二、嵌入式系统的学习实践................................................................................8

三、实验内容........................................................................................................9

3.1ZedBoard-Zynq7000介绍........................................................................9 3.2 软件的安装设置...................................................................................10 3.3 main函数分析.......................................................................................10 3.4 任务管理...............................................................................................12

3.4.1 任务优先级.........................................................................................13 3.4.2 任务的堆栈.........................................................................................13 3.4.3 任务的状态.........................................................................................14

3.5 就绪任务的管理...................................................................................15 3.6 任务调度...............................................................................................17

3.6.1 任务抢占.............................................................................................17 3.6.2 轮转调度.............................................................................................18 3.6.3 调度时机.............................................................................................19 3.6.4 调度实现.............................................................................................19

3.7 上下文切换...........................................................................................20

四、工作总结......................................................................................................2

21/ 22

《嵌入式技术》学习总结报告

一、嵌入式系统简介 1.1嵌入式系统的定义和特点

嵌入式操作系统(Embedded Operation System,EOS)是一种“嵌入机械或电气系统内部、具有专属功能的计算机系统”,通常要求实时计算性能。被嵌入的系统通常是包含硬件和机械部件的完整设备。相反,通用计算机如个人计算机则设计灵活,以满足广大终端用户的需求。现在常见的很多设备都采用嵌入式系统控制。EOS负责嵌入系统的全部软、硬件资源的分配、任务调度,控制、协调并发活动。它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。嵌入式系统与对象系统密切相关,其主要技术发展方向是满足嵌入式应用要求,不断扩展对象系统要求的外围电路(如ADC、DAC、PWM、日历时钟、电源监测、程序运行监测电路等),形成满足对象系统要求的应用系统。因此,嵌入式系统作为一个专用计算机系统,要不断向计算机应用系统发展。因此,可以把定义中的专用计算机系统引伸成,满足对象系统要求的计算机应用系统。“嵌入性”、“专用性”与“计算机系统”是嵌入式系统的三个基本要素。对象系统则是指嵌入式系统所嵌入的宿主系统。另外,在理解嵌入式系统定义时,不要与嵌入式设备相混淆。嵌入式设备是指内部有嵌入式系统的产品、设备,例如,内含单片机的家用电器、仪器仪表、工控单元、机器人、手机、PDA等。

嵌入式系统的特点与定义不同,它是由定义中的三个基本要素衍生出来的。不同的嵌入式系统其特点会有所差异。与“嵌入性”的相关特点:由于是嵌入到对象系统中,必须满足对象系统的环境要求,如物理环境(小型)、电气/气氛环境(可靠)、成本(价廉)等要求的特点。与“专用性”的相关特点:软、硬件的裁剪性。满足对象要求的最小软、硬件配置等。与“计算机系统”的相关特点:嵌入式系统必须是能满足对象系统控制要求的计算机系统。与上两个特点相呼应,这样的计算机必须配置有与对象系统相适应的接口电路。

目前,已推出一些应用比较成功的EOS产品系列。随着Internet技术的发展、信息家电的普及应用及EOS的微型化和专业化,EOS开始从单一的弱功能向高专业化的强功能方向发展。嵌入式操作系统在系统实时高效性、硬件的相关依赖性、软件固化以及应用的专用性等方面具有较为突出的特点。EOS是相对于一般操作系统而言的,它除具备了一般操作系统最基本的功能,如任务调度、同步机制、中断处理、文件功能等外,还有以下特点:

(1)可装卸性。开放性、可伸缩性的体系结构。

(2)强实时性。EOS实时性一般较强,可用于各种设备控制当中。(3)统一的接口。提供各种设备驱动接口。

(4)操作方便、简单、提供友好的图形GUI,图形界面,追求易学易用。

2/ 22

《嵌入式技术》学习总结报告

(5)提供强大的网络功能,支持TCP/IP协议及其它协议,提供TCP/UDP/IP/PPP协议支持及统一的MAC访问层接口,为各种移动计算设备预留接口.(6)强稳定性,弱交互性。嵌入式系统一旦开始运行就不需要用户过多的干预,这就要负责系统管理的EOS具有较强的稳定性。嵌入式操作系统的用户接口一般不提供操作命令,它通过系统调用命令向用户程序提供服务。

(7)固化代码。在嵌入系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。辅助存储器在嵌入式系统中很少使用,因此,嵌入式操作系统的文件管理功能应该能够很容易地拆卸,而用各种内存文件系统.(8)更好的硬件适应性,也就是良好的移植性.1.2嵌入式系统的构成

嵌入式系统按形态可分为设备级(工控机)、板级(单板、模块)、芯片级(MCU、SoC)。嵌入式系通常由嵌入式处理器、外围设备、嵌入式操作系统和应用软件等几大部分组成。嵌入式系统与对象系统密切相关,其主要技术发展方向是满足嵌入式应用要求,不断扩展对象系统要求的外围电路(如ADC、DAC、PWM、日历时钟、电源监测、程序运行监测电路等),形成满足对象系统要求的应用系统。因此,嵌入式系统作为一个专用计算机系统,要不断向计算机应用系统发展。

(1)嵌入式处理器

嵌入式处理器是嵌入式系统的核心部件。嵌入式处理器与通用处理器的最大不同点在于其大多工作在为特定用户群设计的系统中。它通常把通用计算机中许多由板卡完成的任务集成在芯片内部,从而有有利于嵌入式系统设计趋于小型化,并具有高效率、高可靠性等特征。嵌入式处理器大概可分为两类。一类是普通微处理器:使用独立的集成电路存储器和外设。另一类是单片机:具有片上外设,降低了功耗、尺寸和成本。嵌入式系统的软件是为某种应用定制的,而不是像个人计算机那样的由终端用户安装的商品,因此可以使用各种不同的基本CPU架构:既有范纽曼型架构也有不同程度的哈佛结构;既有RISC也有非精简指令集处理器;字长从4位到64位甚至更高,当然最典型的仍然是8/16位。多数架构由几家不同的公司生产,使用了大量不同的变量和类型。嵌入式系统也会使用通用型微处理器,但比单片机需要更多外围电路。大的硬件厂商会推出自己的嵌入式处理器,因而现今市面上有1000多种嵌入式处理器芯片,其中使用最为广泛的有ARM、MIPS、PowerPC、MC6800等。

SoC是一种常见的为超大批量嵌入式系统设计的可配置阵列。它在单个芯片内包含了多处理器、乘法器、缓存和接口,形成一个完整的系统;通过特定用途集成电路或现场可编程门阵列来实现。

(2)嵌入式主板

3/ 22

《嵌入式技术》学习总结报告

嵌入式主板一般理解为嵌入在设备里面做控制、数据处理使用的CPU板,也就是设备的“大脑”。嵌入式到设备里面,当然就会对主板的体积以及功耗(嵌入式主板的散热问题)有比较严格的要求。所以一般来讲嵌入式主板会具备尺寸小、高集成度、低功耗等特性。目前嵌入式主板比较常见的一般有两大类:基于X86的嵌入式主板(一般使用INTEL、威盛、AMD或其他产家的X86芯片如:台湾RDC、台湾ICOP等等);基于RISC的ARM 嵌入式主板(由ARM公司授权生产,每个芯片产家各有自己特殊的功能)。嵌入式的ARM板一般都是板载CPU,而基于x86 CPU的主板则不一定。基于RISC 的ARM板一般都是根据产品的要求做具体设计,所以主板在尺寸外观上面通常没有做定义。

PC/104和PC/104+是小型、小批量嵌入式强固系统的标准之一,大多基于x86架构;通常比标准PC要小,而比多数简单的8/16位嵌入式系统要大;使用MSDOS、Linux、NetBSD,或实时嵌入式操作系统如MicroC/OS-II、QNX、VxWorks。有时这些主板也会使用非x86处理器。在某些应用中,小巧、高效并非主要关注点,因而可以使用与x86型PC主板兼容的部件。VIA EPIA系列板卡则可以弥补这个空缺,它兼容PC但是高度集成、体积较小,或提供其他对嵌入式工程师很有吸引力的特性。这种方法的好处是低成本商品也可以使用通用的软件开发工具。用这种方法构建的系统仍然是嵌入式系统,因为它嵌入在较大的设备中、用于满足单一用途。例如ATM和电子游戏机,它们都包含了针对各自应用的代码。

多数嵌入式主板都不是围绕PC设计的,也不使用ISA或PCI总线。如果采用SoC处理器,用标准总线连接分立组件就不是上策,此外软硬件开发环境都可能会很不一样。一种常用的设计模式是采用小型系统模块——也许只有商务卡片大小,容纳高密度的BGA芯片如ARM处理器和外设、用于存储的外部闪存、作为内存的DRAM。模块厂商通常会提供引导软件和操作系统选项,一般包括Linux和一些实时操作系统。这些模块由熟悉专业测试方法的组织大批量生产,配合较小批量的、带特殊应用外设的定制主板使用。

(3)外围设备

外围设备是指在一个嵌入式系统中,除了嵌入式处理器以外用于完成存储、通信、调试、显示等辅助功能的其它部件。根据外围设备的功能可以分为存储器、接口和人机交互。嵌入式系统通过外设与外部通信串行,包括通信接口:RS-232、RS-

422、RS-485等;同步串行通信接口:I2C、SPI、ESSI等;USB;多媒体卡:SD卡、CF卡等;网络:以太网、LonWorks等;现场总线:CAN总线、LIN总线、PROFIBUS等;定时器:PLL、捕获比较模块和时间处理单元;分立IO:GPIO;模拟-数字/数字-模拟转换(ADC/DAC);调试接口:JTAG、ISP、ICSP、BDM端口、BITP、DP9端口等。

(4)嵌入式操作系统

4/ 22

《嵌入式技术》学习总结报告

在大型嵌入式应用系统中,为了使嵌入式开发更方便、快捷,需要具备一种稳定、安全的软件模块集合,用以管理存储器分配、中断处理、任务间通信和定时器响应,以及提供多任务处理等,即嵌入式操作系统。嵌入式操作系统的引入大大的提高了嵌入式系统的功能,方便了应用软件的设计,但同时占用了宝贵的嵌入式系统资源。一般在比较大型或需要多任务的应用场合才考虑使用嵌入式系统。嵌入式系统常常需要有实时要求,所以嵌入式操作系统往往又是“实时操作系统”。早期的嵌入式系统几乎都用于控制目的,从而或多或少都有些实时要求,所以从前“嵌入式操作系统”实际上是“实时操作系统”的代名词。今年来由于手持式计算机和掌上电脑等设备的出现,也有了不带实时要求的嵌入式系统。另外一方面,由于CPU速度的提高,一些原先认为是“实时”的反应速度现在已经很普遍了。这样,一些原先需要在“实时”操作系统上才能实现的应用,现在已不难在常的操作系统上实现。在这样的背景下,“嵌入式操作系统”和“实时操作系统”就成了不同的概念名词。

常见的嵌入式操作系统有: Android、Firefox OS、iPhone OS、uC/OS、uCLinux、VxWorks、pSOS、Nucleus、PalmOS、Windows CE、Windows XP Embedded、Windows Vista Embedded、嵌入式Linux、ECOS、QNX、Lynx、Symbian、Arm-Linux等。

(5)应用软件

嵌入式系统的应用软件是针对特定的实际专业领域,基于相应的嵌入式硬件平台,并能完成用户的预期任务的计算机软件。用户的任务可能有时间和精度的要求。有些应用软件需要嵌入操作系统的支持,但在简单的场合下不需要专门的操作系统。由于嵌入式应用软件对成本十分敏感,因此,为减少系统成本,除了精简每个硬件单元的成本外,应尽可能的减少应用软件的资源消耗,尽可能的优化。

1.3嵌入式系统的应用

嵌入式计算机在应用数量上远远超过了各种通用计算机,一台通用计算机的外部设备中就包含了5-10个嵌入式微处理器。嵌入式系统技术具有非常广阔的应用前景,其应用领域可以包括:工业控制:业过程控制、数字机床、电力系统、电网安全、电网设备监测、石油化工系统;交通管理:在车辆导航、流量控制、信息监测与汽车服务方面,嵌入式系统技术已经获得了广泛的应用,内嵌GPS模块,GSM模块的移动定位终端已经在各种运输行业获得了成功的使用;信息家电:这将称为嵌入式系统最大的应用领域,冰箱、空调等的网络化、智能化将引领人们的生活步入一个崭新的空间。即使你不在家里,也可以通过电话线、网络进行远程控制。在这些设备中,嵌入式系统将大有用武之地。家庭智能管理系统:水、电、煤气表的远程自动抄表,安全防火、防盗系统,其中嵌有的专用控

5/ 22

《嵌入式技术》学习总结报告

制芯片将代替传统的人工检查,并实现更高,更准确和更安全的性能;POS网络及电子商务:公共交通无接触智能卡(Contactless Smartcard, CSC)发行系统,公共电话卡发行系统,自动售货机,各种智能ATM终端将全面走入人们的生活,到时手持一卡就可以行遍天下。环境工程与自然:水文资料实时监测,防洪体系及水土质量监测、堤坝安全,地震监测网,实时气象信息网,水源和空气污染监测。在很多环境恶劣,地况复杂的地区,嵌入式系统将实现无人监测。军事领域:战机、火控系统、导弹、火箭。

1.4嵌入式系统的工具链

工具对工程师设计开发的成功所起的决定性因素也在提高。应用越来越复杂,工具的选择也越来越重要。现在市场上有些工具是免费的,也有很多商业工具。无论是免费的还是商业的,工具的好坏往往会影响整个工程的最终结果。现在的嵌入式系统开发工具非常多样化,市场分散。目前据不完全统计,全世界嵌入式处理器的品种数已经超过1000多种,流行体系结构有30多个系列,在其上运行的操作系统环境也非常多样化,包括VxWorks、QNX、Linux、Nuclears、WinCE等等。不仅各种操作系统有各自的开发工具,在同一系统下不同的开发阶段也有不同的开发工具。如在用户的目标板开发初期,需要硬件仿真器来调试硬件系统和基本的驱动程序,在调试应用程序阶段使用交互式的开发环境进行软件调试,在测试阶段需要专门的测试软件进行功能和性能的测试等等。对于设计人员来说,要掌握、驾驭这样庞大的开发体系是一件非常困难的事情,而且编程的复杂度相当大。

在选择工具时,主要需要注意以下几个方面:编译器的性能和稳定性、代码覆盖、仿真(不仅是对CPU的仿真,还有对其他硬件和设备的仿真)。工具链,一般由编译器、连接器、解释器和调试器组成,在嵌入式开发中一般指交叉工具链。在嵌入式开发中,往往在机器A中使用工具链生成可执行程序,而在机器B中执行程序。而机器A和机器B的指令系统往往不同,常见的是利用x86机器上的工具链开发基于ARM或MIPS的嵌入式系统。工具链的构成往往与目标对象和使用工具链的操作系统平台有关。通常构建交叉工具链有如下三种方法:(1)分步编译和安装交叉编译工具链所需要的库和源代码,最终生成交叉编译工具链。该方法相对比较困难,适合想深入学习构建交叉工具链的读者。如果只是想使用交叉工具链,建议使用下列的方法二构建交叉工具链。(2)通过诸如Crosstool等脚本工具来实现一次编译,生成交叉编译工具链。该方法相对要简单许多,并且出错的机会也非常少,建议大多数情况下使用该方法构建交叉编译工具链。(3)直接通过网上下载已经制作好的交叉编译工具链。该方法的优点不用多说,当然是简单省事,但该方法有一定的弊端就是局限性太大,因为毕竟是别人构建好的,也就是固定的,没有灵活性,所以构建所用的库以及编译器的版本也许并不适合6/ 22

《嵌入式技术》学习总结报告

你要编译的程序,同时也许会在使用时出现许多莫名其妙的错误,建议慎用此方法。

对于新手而言,直接下载一些厂商提供的集成开发环境(IDE),能够快速入手嵌入式开发。常用的IDE有Keil MDK、Xilinx ISE、Xilinx EDK、TKStudioIDE、Atmel的AVR Studio(for AVR以及AVR32)、Microchip的MPLab(for PIC、PIC18与dsPIC等)、Aiji的EDS(for ARM),南京万利的MedWin(for 8051)、IAR Embedded Workbench等。“整体解决方案是毒药”,我们使用IDE但是不要迷信整体解决方案。

嵌入式系统开发工具的发展已经有二十多年的历史,目前开放性和开放源码成为一股强大的潮流,推动嵌入式系统设计技术向前发展,传统的嵌入式系统开发工具已不能适应这一潮流。最新的发展趋势是,使用Eclipse开放源码集成化开发环境(IDE)平台,采用插件技术,在这样的平台基础上扩展许多开发工具套件。越来越多的嵌入式系统软件供应商将Eclipse平台作为自身工具的基础,推出个性化的开发工具套件,除提供标准的编译器、编辑器、调试器,还提供增强的操作系统内核级调试手段和高级的系统分析工具,如内存泄漏检测、系统性能监控等。总之,嵌入式开发工具将向高度集成、编译优化、具有系统设计、可视化建模、仿真和验证功能方向发展。

1.5嵌入式系统的发展趋势

在嵌入式系统开发领域,技术发展的最新趋势可以从企业层面、平台层面和部件层面分别观察,其核心是以尽可能快的速度、尽可能低的成本来满足迅速变化的市场需求。(1)以往,嵌入式软件开发的技术问题主要是在工程师和开发团队的层面来解决。不同的工程师和开发项目之间可以共享的资源并没有得到足够的重视和利用,这是业界经常说的一个问题—制造每辆汽车都必须从轮子开始。共享资源、提高软件部件的可重用性,这是整个软件业界几十年来的普遍趋势,只是这个趋势在嵌入式软件领域的步伐比企业软件慢了不少。随着DSO(Device Software Optimization,设备软件优化)概念的提出,嵌入式软件的可重用性将会得到快速提高。这就是嵌入式软件在企业层面的主流趋势。(2)从开发平台层面来看,开放已经成为一种主流思想,对于开放系统首先会让人想到的就是Linux。不过,开放本身不是一种技术,而是一种包容先进技术的思路和方法。新技术往往是从封闭开始,通过走向开放而发挥更大的价值。(3)从部件层面来看,最主流的趋势是多核技术的兴起。这个趋势从处理器芯片巨头的动向可以一目了然。对于嵌入式软件工程师来讲,采用开放、高效并且能够让自己不断积累开发成果的开发平台与工具,让自己能够专注于产品功能特性的开发,而不是花费太多精力去做维护工具和基础性、重复性的功能开发。

7/ 22

《嵌入式技术》学习总结报告

二、嵌入式系统的学习实践

目前从事嵌入式开发的主要有两类人。一类是学电子工程、通信工程等偏硬件专业出身的人,他们主要是搞硬件设计,需要开发一些与硬件关系最密切的最底层软件:BootLoader、Board SupportPackage(像PC的BIOS一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。他们的优势是对硬件原理非常清楚,不足是他们更擅长定义各种硬件接口,但对复杂软件系统往往力不从心(例如嵌入式操作系统原理和复杂应用软件等)。另一类是学软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。如果我们学软件的人对硬件原理和接口有较好的掌握,我们完全也可写BSP和硬件驱动程序。嵌入式硬件设计完后,各种功能就全靠软件来实现了,嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作。目前有很多公司将硬件设计包给了专门的硬件公司,稍复杂的硬件都交给台湾或国外公司设计,国内的硬件设计力量很弱,很多嵌入式公司自己只负责开发软件,因为公司都知道,嵌入式产品的差异很大程度在软件上,在软件方面是最有“花头”可做的,所以搞软件的人完全不用担心我们在嵌入式市场上的用武之地,越是智能设备越是复杂系统,软件越起关键作用,而且这是目前的趋势。

中国的学生能够在大学相关课程中充分对MCU基础知识进行学习,这已经走在了很多国家(甚至包括日本)的前面。但中国新一代工程师面对的主要问题是如何去积累经验。嵌入式系统的开发通常是硬件和软件同时进行的,其在开发过程中出现不良状况的原因有可能是硬件或是软件,有时甚至可能是两者同时发生故障。在这样的状况下,就要求从事硬件的技术人员要相当程度的懂得软件,从事软件的技术开发人员也要在一定程度上懂得硬件。另外,目前该行业存在最终产品的寿命较短的情况,这就意味着每年都有必要开发新的产品。但是从初级阶段进行开发,需要花费大量的开发成本及开发时间。因此,有效地归纳总结现有的开发成果,并有效地投入新开发中加以利用是十分重要的。

很多工程师在设计嵌入式系统的时候往往选择最底层的工具,把绝大部分的时间都花在了底层的细节,而往往忽视了创新性和系统级的把握。工程师无论是为了自身的发展还是为了所设计产品的竞争力,这两点其实都是至关重要的。

首先是“工欲善其事,必先利其器”,若有条件要尽可能采用更快更强的工具进行开发。其次是“磨刀不误砍柴工”,要尽可能挖掘集成开发软件中的资源,如花些时间去了解许多实用辅助软件,如DMA、Cache和片内带宽分析工具等。同时,在至少一个领域中具有深入的技术知识。工程师能够分析问题或是编写程序是远远不够的,他们还要能够利用自己的知识完成独特创新的设计。所以,工程师要体现自身价值,必须有系统性的眼光,能够进行有创新性的设计。在这种情况下,工程师们更多的应该从底层的编程细节中脱身,让工具去处理那些“常

8/ 22

《嵌入式技术》学习总结报告

规”事务,而工程师本身就可以专注于自己的设计或研究领域,从更高的角度来看待自己在设计的系统,而不是只见树木,不见森林。

三、实验内容

我所在的小组的实验任务,基于ZedBoard-Zynq7000的μC/OS-III代码的分析和调试,重点分析μC/OS-III操作系统的任务调度机制。

3.1ZedBoard-Zynq7000介绍

ZedBoard是一款基于赛灵思Zynq-7000可扩展处理平台(EPP)的低成本开发板,也是行业首款面向广大开源小区的Zynq-7000 EP可扩展处理平台开发工具包。开发板为基于Linux、安卓、Windows或其它操作系统/实时操作系统的设计开发提供了所需的一切。另外,该平台提供数款扩展连接器,便于用户访问处理系统和可编程逻辑。Zynq-7000 EPP紧密集成了ARM®处理系统和7系列可编程逻辑,充分利用它们的优势,并结合ZedBoard可以开发出独树一帜且功能强大的设计。

图一:ZedBoard-Zynq7000 Zynq7000系列是基于Xilinx的可编程SOC架构,集成了一个双核的ARM® Cortex™-A9 处理器,一个Xilinx可编程逻辑(PL)。Zynq7000集成有仿真芯片,提供了板载USB-JTAG编程、USB-UART,方便开发者进行调试。

9/ 22

《嵌入式技术》学习总结报告

图二:Zynq-7000 AP SoC系统框架

3.2软件的安装设置

(1)安装UART驱动。目前只有32位版本的,在windows 7以下可安装。在windows 8安装失败。

(2)安装Vivado Design Suite.选择默认安装即可。

(3)uCOS-III项目的构建。Micrium-ZC702-uCOS-III源码压缩包中有“Micrium ZC702 uCOS-III Readme.pdf”说明书。打开Xilinx SDK,安装说明书里面的步骤一步一步进行配置即可完成uCOS-III 项目的构建。

3.3main函数分析

结合《Micrium-uCOS-III-UserManual》对代码进行静态分析,最好的方法是找到程序入口函数main(ZC702_uCOSIIIApplicationapp.c),然后在main函数内逐行代码分析从而对程序的流程有一个大体的了解。在分析过程中碰到关键或感兴趣的函数或结构可以进一步跟入分析。

intmain(void){ OS_ERR os_err;

10/ 22

《嵌入式技术》学习总结报告

Xil_DCacheDisable();//关数据cache

Xil_ICacheDisable();//关 instruction cache

Reset_Handler();/* Scatter loading is complete.*/ /* Now the caches can be activated.*/

BSP_BranchPredictorEn();/* Enable branch prediction.*/

BSP_L2C310Config();/* Configure the L2 cache controller.*/

BSP_CachesEn();/* Enable L1 I&D caches + L2 unified cache.*/

CPU_Init();/* Initialize the uC/CPU services */

BSP_Init();

OSInit(&os_err);/* Initialize uC/OS-III.*/

OSTaskCreate((OS_TCB *)&AppTaskStartTCB,//任务控制块 /* Create the start task */(CPU_CHAR *)“Startup Task”,(OS_TASK_PTR)AppTaskStart,//任务地址(void *)0,(OS_PRIO)APP_CFG_TASK_START_PRIO,(CPU_STK *)&AppTaskStartStk[0],(CPU_STK_SIZE)APP_CFG_TASK_START_STK_SIZE / 10u,(CPU_STK_SIZE)APP_CFG_TASK_START_STK_SIZE,(OS_MSG_QTY)0u,(OS_TICK)0u,(void *)0,(OS_OPT)(OS_OPT_TASK_STK_CHK | OS_OPT_TASK_STK_CLR),(OS_ERR *)&os_err);

OSStart(&os_err);/* Start multitasking(i.e.give control to uC/OS-III).*/

for(;;){

11/ 22

《嵌入式技术》学习总结报告

} } 对main函数内调用的一些函数和结构做进一步分析,可知OS_TCB(ZC702_uCOSIIIuCOS-IIISourceos.h)是系统用于表示一个任务的结构,是系统的核心数据结构之一。OSInit(ZC702_uCOSIIIuCOS-IIISourceos_core.c)函数是值得重点看的函数。main->OSInit->OS_IdleTaskInit,通过调用OS_IdleTaskInit的调用创建了系统的一个名叫“uC/OS-III Idle Task”的任务,其优先级值为31。这个任务相应执行的函数,基本没有做任何操作,简单对OSIdleTaskCtr、OSStatTaskCtr两个系统计数进行增加。OSIdleTaskHook()是用户可以自定义的函数,uCOS-III代码中有大量这种Hook函数,方便用户进行功能扩展。当然用户也可直接对任意代码进行修改,但是对系统Hook函数进行重写能够很好地保持原有uCOS-III系统的完整性。

void OS_IdleTask(void *p_arg){ „„

while(DEF_ON){

CPU_CRITICAL_ENTER();

OSIdleTaskCtr++;#if OS_CFG_STAT_TASK_EN > 0u

OSStatTaskCtr++;#endif

CPU_CRITICAL_EXIT();

OSIdleTaskHook();/* Call user definable HOOK */

} } main->OSInit->OS_TickTaskInit创建了一个名叫“uC/OS-III Tick Task”的任务(优先级为10),任务的创建都得通过OSTaskCreate来创建,main函数中又创建“Startup Task”任务。这三个任务对应的运行函数内都包含了while死循环,因此系统运行起来后至少有三个任务,分别是Idle任务、Tick任务、Startup任务。

3.4任务管理

12/ 22

《嵌入式技术》学习总结报告

μC/OS-III支持多任务,理论上可以支持任意多个任务,但实际通常受限于系统内存的多少。所有任务管理都是基于OS_TCB结构来进行的,接下来我们详细分析OS_TCB的定义(uCOS-IIISourceos.h),可知一个任务有优先级、状态、堆栈,下面分别予以介绍。

3.4.1 任务优先级

μC/OS-III的优先级共有32个(0-31),数值越小优先级越高,一般地优先级0和31保留给系统使用。中断处理任务的优先级最高,空闲任务的优先级最低。

图三:μC/OS-III任务优先级

3.4.2 任务的堆栈

在利用OSTaskCreate创建新任务前,必须先创建好任务堆栈,如Startup任务就用如下代码来分配堆栈:

13/ 22

《嵌入式技术》学习总结报告

static CPU_STK

AppTaskStartStk[APP_CFG_TASK_START_STK_SIZE]; 堆栈主要的大小是可以由用户自己定义(需考虑任务里函数的嵌套层数和局部变量占用空间多少。另外在嵌入式开发中,应尽可能避免递归的调用),堆栈是向下增长的。堆栈溢出(这里的溢出是指堆栈空间不够用)是操作系统必须考虑的问题,μC/OS-III有三种解决方法:(1)利用内存管理单元(MMU)或内存保护单位(MPU);(2)利用某些CPU提供的堆栈溢出检测功能;(3)基于软件实现的堆栈溢出检测。前两者都依赖于硬件提供该功能。

图四:μC/OS-III堆栈结构

3.4.3 任务的状态

OS_TCB结构中的TaskState表示任务的状态。在μC/OS-III中,从用户的角度来看任务有五个状态:静止(Dormant)、就绪(Ready)、运行(Running)、挂起(Pending)、中断(Inrerrupted)。任务的状态是动态转换的,构造好OS_TCB结构后,此时任务处于静止状态,OSTaskCreate函数中调用OS_TaskInitTCB函数将任务状态设为OS_TASK_STATE_RDY并调用OS_RdyListInsertTail将任务插入相应优先级的就绪队列中。

14/ 22

《嵌入式技术》学习总结报告

图五:任务状态的转换

3.5就绪任务的管理

任务在运行前都处于就绪状态或中断状态,CPU的调度基本上就是以某种策略从所有就绪任务中挑选一个任务运行。μC/OS-III利用一个就绪优先级位图和一个就绪队列表来管理就绪任务。

OSInit->OS_PrioInit()中对任务优先级位图表进行了初始化。μC/OS-III 有OS_CFG_PRIO_MAX优先级(见os_cfg.h),优先级值越小表示优先级越高。优先级0表示最高级别,优先级OS_CFG_PRIO_MAX-1最低(在本实验中OS_CFG_PRIO_MAX=32).如果某个优先级上存在就绪的任务,那么就在位图表中相应的位设置为1,否则设置为0.位图宽度可以是8bit、16bit、32bit,这样依赖于CPU_DATA的值即依赖所用CPU的特性(本实验中是32bit,优先级总数为

15/ 22

《嵌入式技术》学习总结报告

32,因此位图大小为32*1)。查找最高就绪的优先级,只需在优先级位图中找第一不为0的bit。

OS_PRIO OS_PrioGetHighest(void){ CPU_DATA *p_tbl;OS_PRIO prio;prio =(OS_PRIO)0;p_tbl = &OSPrioTbl[0];while(*p_tbl ==(CPU_DATA)0){

prio += DEF_INT_CPU_NBR_BITS;)p_tbl++;} prio +=(OS_PRIO)CPU_CntLeadZeros(*p_tbl);return(prio);}

图六:就绪优先级位图

就绪列表实际上是一包含OS_CFG_PRIO_MAX个OS_RDY_LIST(见os.h)类型实体的数组(OSRdyList[])。OS_RDY_LIST实体包含三个成员:Entries、TailPtr、HeadPtr。Entries表示该优先级别上任务个数,TailPtr和HeadPt用于创建包含该所有优先级别上的就绪任务的双向链表。代码中包含了OS_RdyListInit()、16/ 22

《嵌入式技术》学习总结报告

OS_RdyListInsert()、OS_RdyListInsertHead()、OS_RdyListInsertTail()、OS_RdyListMoveHeadToTail()、OS_RdyListRemove()等函数用于操作就绪列表。

图七:任务创建后加入就绪列表

3.6 任务调度

3.6.1 任务抢占

在μC/OS-III中,任务调度器(scheduler)即分发器(dispatcher)负责任务的调度。μC/OS-III使用基于优先级、抢占式的调度策略。抢占是指当由于某种原因使更高优先级任务变成就绪状态(较当前任务),那么调度器立即将CPU分别给该更高优先级任务,而当前任务变成挂起状态。类似地,当中断服务程序(ISR)将一个处于挂起状态的更高优先级任务唤醒时,当前被中断的任务保持挂起状态,被唤醒的那个更高优先级任务得到执行。如图八,是一种直接的抢占方式,μC/OS-III还支持一种较Post Defferd即延时的抢占方式(图九)。延时抢占方式,多一步ISR Handler(在操作系统中被称为中断软处理,主要目的是减少关中断的时间)用于处理在ISR(中断硬处理)中来不及处理事情。

17/ 22

《嵌入式技术》学习总结报告

图八:任务抢占

图九:带延迟处理的任务抢占

3.6.2轮转调度

如果未开启轮转策略,正在执行的任务除非主动放弃执行(包括等待某些时间、或者调用睡眠函数)或者被抢占,那么同级别的任务得等到该任务执行完采用机会执行。当同一个优先级上有两个以上就绪任务时,μC/OS-III 采用时间片策略使得该优先级上所有任务得到依次轮转执行。当然如果一个任务的时间片未

18/ 22

《嵌入式技术》学习总结报告

用完,也可主动放弃CPU使得下个任务得到执行。轮转调度策略不是必须的,μC/OS-III允许用户开启或关闭该策略。

图九:时间片调度

3.6.3 调度时机

调度可能发生时机包括:(1)一个任务给其他任务发送(send)消息或信号时;(2)任务OSTimeDly()或者OSTimeDlyHMSM();(3)任务调用等待函数OS???Pend()等待尚未发生的任务;(4)任务放弃挂起:其它任务调用OS???PendAbort()改变该任务状态;(5)任务创建时:创建的任务可能拥有比当前任务较高优先级;(6)任务被删除时:如果该任务就是当前任务;(7)内核对象被删除时;(7)任务优先级发生改变时;(8)任务调用OSTaskSuspend()挂起自己;(9)任务调用OSTaskResume()唤醒了其它任务;(10)所有嵌套的ISR退出时:调度由OSIntExit()发起而不是OSSched();(11)调度器被解锁;(12)任务调用OSSchedRoundRobinYield()主动放弃时间片;(12)用户调用了OSSched();(13)任务时间片用完了。

3.6.4 调度实现

调度器的实现在函数OSSched()和OSIntExit()中。其中,OSSched()由任务级别代码发起而OSIntExit()是有中断服务程序发起。任务的调度是基于前面提及的就绪任务的相关数据结构:就绪优先级位图和就绪队列。

19/ 22

《嵌入式技术》学习总结报告

图十:调度时主要用到的数据结构

3.7 上下文切换

上下文切换:当μC/OS-III要执行另一任务时,需要将当前任务使用的那些CPU寄存器值保存当前任务堆栈中,同时加载要执行的任务的上下文给CPU的寄存器进而开始另一任务的执行。上下文切换存在一些开销,通常CPU寄存器越多(任务用到的寄存器越多),开销就会越大。上下文切换的时间开销取决于有多少个CPU寄存器需要被存储和载入。

图十一:上下文在堆栈中的存储

20/ 22

《嵌入式技术》学习总结报告

存在两种上下文的切换:普通任务的上下文切换、中断服务程序的上下文切换。前者在函数OSCtxSw()中实现(其实是由宏OS_TASK_SW()调用,后者在函数OSIntCtxSw()中实现。这两个函数都是采用汇编语言实现,因此是CPU相关的(见uCOS-IIIPortsARM-Cortex-AGenericGNU os_cpu_a_vfp-d32.S)。这里只介绍OSCtxSw()的实现。

OSIntCtxSw:

BL OSTaskSwHook@ OSTaskSwHook()@

MOVW R0, #:lower16:OSPrioCur@ OSPrioCur = OSPrioHighRdy@ MOVT R0, #:upper16:OSPrioCur MOVW R1, #:lower16:OSPrioHighRdy MOVT R1, #:upper16:OSPrioHighRdy LDRB R2, [R1] STRB R2, [R0]

MOVW R0, #:lower16:OSTCBCurPtr@ OSTCBCurPtr = OSTCBHighRdyPtr@ MOVT R0, #:upper16:OSTCBCurPtr MOVW R1, #:lower16:OSTCBHighRdyPtr MOVT R1, #:upper16:OSTCBHighRdyPtr LDR R2, [R1] STR R2, [R0] LDR SP, [R2] @ SP = OSTCBHighRdyPtr->OSTCBStkPtr@

OS_CPU_ARM_FP_REG_POP R0 @ RESTORE NEW TASK'S CONTEXT: LDMFD SP!, {R0} @ Pop new task's CPSR, MSR SPSR_cxsf, R0 LDMFD SP!, {R0-R12, LR, PC}^ @ Pop new task's context.如图,当有更高优先级就绪任务需要被执行,任务调度器就会调用OSCtxSW()。主要有以下步骤:

(1)OSTCBCurPtr指向当前正运行的任务对应的OS_TCB,然后任务级调度器调用OSSched().(2通过OSTCBHighRdyPt指针,可以找到即将要运行的任务的OS_TCB;(3)OSTCBHighRdyPtr->StkPtr指向将要被执行的任务的堆栈的顶部;(4)执行任务上下文切换,将CPU的相关寄存器存储到当前任务(即将被调出CPU的任务)的堆栈。由于保存了上下文(以栈帧形式存储),将来该任务可以被恢复现场,以便继续运行。

(5)调用OSSched()后,CPU堆栈指针TSP会指向任务的堆栈。

21/ 22

《嵌入式技术》学习总结报告

图十二:OSCtxSw()所执行操作

四、工作总结

学习嵌入式,显然应偏重于嵌入式软件,特别是嵌入式操作系统方面。对于搞嵌入式软件的人,最重要的技术显然是:(1)掌握主流嵌入式微处理器的结构与原理。(2)必须掌握一个嵌入式操作系统。(3)必须熟悉嵌入式软件开发流程并至少做过一个嵌入式软件项目。

通过本门课程的学习,我对嵌入式系统有了较直观的理解,并加深了操作系统一些概念的理解。但毕竟时间有限,希望可以在后续的进一步学习中加强实践,希望早日能在嵌入式领域做一些开发工作。

22/ 22

第二篇:嵌入式总结报告

嵌入式实验报告

期末论文

学生姓名: 杨佳洁 学 号: 11570118 班 级: 11计算机2班 指导教师: 黄 静

2014年5月20日

嵌入式程序设计与应用课程主要以理论与实验结合的方式讲授,包括设备驱动,信号转换I、II,帧缓冲设备驱动和触摸屏这五部分,通过学习,我逐渐加深了对linux的理解。

在模块驱动部分,通过老师的讲解,我了解了Linux驱动程序的结构,掌握了程序驱动的结构体和操作函数这些基本知识,尤其知道了驱动程序负责将应用程序如读、写等操作正确无误的传递给相关的硬件,并使硬件能够做出正确反应的代码。驱动程序隐藏了硬件的工作细节,应用程序只需要通过一组标准化的接口实现对硬件的操作。

S3C2410X 芯片内部集成了一个8 路10 位A/ D 转换器,其中第5、第6 通道可用于支持触摸屏接口,而AD转换器的功能是将输入的模拟信号转换成数字信号,驱动程序主要依赖于ADC控制寄存器、ADC数据寄存器等进行读写操作。而实验过程中涉及的驱动程序加载则是之前未曾接触的知识,所以在知道了编译方式分为动、静两种方式后,我掌握了如何对程序进行动态编译方式。

系统有多个显示卡时,Linux 下可支持多个帧缓冲设备,FrameBuffer是 Linux 为显示设备提供的一个接口,把显存抽象后的一种设备。课程中我主要理解了相关程序代码的分析,尤其对FB程序中内存的申请以及填充描点函数有了较为详细的理解。

在触摸屏驱动部分,理论方面我熟悉了解了触摸屏的原理,即检测触摸点被压下后的电压值来返回坐标。通过代码分析,掌握了触摸屏进行输出标定、与LED显示器配合的过程。课程的最后一部分是AD转换,与之前的转换不同之处在于本次目的是将采集的数据呈现在html网页中。所以在实验过程中,我在掌握boa服务器的编译和配置之外还掌握了制作网页的基本结构。

当然虽然基本理解了老师讲解的理论知识但是在实验中仍然遇到了很多问题。如在文件共享时由于忽略pc机与虚拟机必须在同一网段的条件导致无法使用提供的src;修改文件中涉及的路径与实际情况不相符使程序编译出现错误。还有一些尚未解决的为题,在触摸屏实验部分“消除默认路径”部分,有时会出现“没有此进程”的错误提示,通过重启linux可避免这个错误,但是出现错误的原因不是很清楚。

8周的课程结束了,它拓展了我对嵌入式应用涉及的领域的认识,掌握了很多之前没有接触过的知识,也在老师和同学的帮助下比较顺利地完成了实验,尤其是对在linux系统及xshell下操作的基本命令有了很大的扩展和更加熟练的使用。但是老师在讲解理论知识的时候主要关注的是程序代码的解析,所以在做实验时对比较复杂的实验步骤理解的不够透彻,希望自己日后可以在不断的锻炼中逐渐理解。相信无论是理论知识还是实验中的实践经验都对我日后深入学习嵌入式有很大的帮助。

第三篇:学习嵌入式技术之后的感想

学习嵌入式技术之后的感想

嵌入式系统(Embedded Systems),实际上是“嵌入式计算机系统”的简称,它是相对于通用计算机系统而言的。在有些系统里也有计算机,但是计算机是作为某个专用系统的一个部件而存在的。像这样“嵌入”到更大,专用的系统中计算机系统,称之为“嵌入式计算机”,“嵌入式计算机系统”或“嵌入式系统”。在日常生活中,早已存在许多嵌入式系统的应用,如天天必用的移动电话,带在手腕上的电子表,烹调用的微波炉,办公室里的打印机,汽车里的供油喷射控制系统,防锁死刹车系统(ABS)。以及现在流行的个人数字助理(PDA),数码相机,数码摄相机等等,它们内部都有一个中央处理器cpu.嵌入式系统无处不在,从家庭的洗衣机,电冰箱,小汽车到办公室里的远程好会议系统等,都属于可以用嵌入式技术进行开发和改造的产品。嵌入式系统本是一个相对模糊的定义。一个手持的MP3和PC104的微型工业控制计算机都可以认为是嵌入式系统。

根据电气工程师协会(IEE)的定义,嵌入式系统是用来控制或监视机器装置或工厂等的大规模系统的设备。

可以看出此定义是从应用方面考虑的。嵌入式系统是软件和硬件的综合体,还可以涵盖机电等附属装置。

国内一般定义为:以应用中心,以计算机技术为基础,软硬件可裁减,从而能够适应实际应用中对功能,可靠性,成本,体积,功耗等严格要求的专用计算机系统。

嵌入式系统在应用数量上远远超过了各种通用计算机。一台通用计算机的外部设备中就包含5—10个嵌入式微处理器,键盘,硬盘,显示器,Moden,网卡,声卡,打印机,扫描机,数码相机,集线器等,均是由嵌入式处理器进程控制的,在制造工业,过程控制,通信,仪器,汽车,航空航天,军事装备,消费类产品等方面,嵌入式系统都有用武之地。

入式系统本身是一个相对模糊的定义,一个手持的MP3和一个PC104的微型工业控制计算机都可以认为是嵌入式系统。总体来说,嵌入式系统是“用于控制,监视或者辅助操作机器和设备的装备”。一个典型的桌面Linux系统包括3个主要的软件层---linux内核、C库和应用程序代码。内核是唯一可以完全控制硬件的层,内核驱动程序代表应用程序与硬件之间进行会话。内核之上是C库,负责把POSIX API转换为内核可以识别的形式,然后调用内核,从应用程序向内核传递参数。应用程序依靠驱动内核来完成特定的任务。嵌入式与单片机的关系与区别;

嵌入式计算机系统起源于微型机时代,但很快就进入到独立发展的单片机时代。在单片机时代,嵌入式系统以器件形态迅速进入到传统电子技术领域中,以电子技术应用工程师为主体,实现传统电子系统的智能化,而计算机专业队伍并没有真正进入单片机应用领域。因此,电子技术应用工程师以自己习惯性的电子技术应用模式,从事单片机的应用开发。这种应用模式最重要的特点是:软、硬件的底层性和随意性;对象系统专业技术的密切相关性;缺少计算机工程设计方法。

虽然在单片机时代,计算机专业淡出了嵌入式系统领域,但随着后PC时代的到来,网络、通信技术得以发展;同时,嵌入式系统软、硬件技术有了很大的提升,为计算机专业人士介入嵌入式系统应用开辟了广阔天地。计算机专业人士的介入,形成的计算机应用模式带有明显的计算机的工程应用特点,即基于嵌入式系统软、硬件平台,以网络、通信为主的非嵌入式底层应用。两种应用模式的并存与互补

由于嵌入式系统最大、最广、最底层的应用是传统电子技术领域的智能化改造,因此,以通晓对象专业的电子技术队伍为主,用最少的嵌入式系统软、硬件开销,以8位机为主,带有浓重的电子系统设计色彩的电子系统应用模式会长期存在下去。另外,计算机专业人士会愈来愈多地介入嵌入式系统应用,但囿于对象专业知识的隔阂,其应用领域会集中在网络、通信、多媒体、商务电子等方面,不可能替代原来电子工程师在控制、仪器仪表、机械电子等方面的嵌入式应用。因此,客观存在的两种应用模式会长期并存下去,在不同的领域中相互补充。电子系统设计模式应从计算机应用设计模式中,学习计算机工程方法和嵌入式系统软件技术;计算机应用设计模式应从电子系统设计模式中,了解嵌入式系统应用的电路系统特性、基本的外围电路设计方法和对象系统的基本要求等。嵌入式系统应用的高低端:由于嵌入式系统有过很长的一段单片机的独立发展道路,大多是基于8位单片机,实现最底层的嵌入式系统应用,带有明显的电子系统设计模式特点。大多数从事单片机应用开发人员,都是对象系统领域中的电子系统工程师,加之单片机的出现,立即脱离了计算机专业领域,以“智能化”器件身份进入电子系统领域,没有带入“嵌入式系统”概念。因此,不少从事单片机应用的人,不了解单片机与嵌入式系统的关系,在谈到“嵌入式系统”领域时,往往理解成计算机专业领域的,基于32位嵌入式处理器,从事网络、通信、多媒体等的应用。这样,“单片机”与“嵌入式系统”形成了嵌入式系统中常见的两个独立的名词。但由于“单片机”是典型的、独立发展起来的嵌入式系统,从学科建设的角度出发,应该把它统一成“嵌入式系统”。考虑到原来单片机的电子系统底层应用特点,可以把嵌入式系统应用分成高端与低端,把原来的单片机应用理解成嵌入式系统的低端应用,含义为它的底层性以及与对象系统的紧耦。嵌入式与PC机的关系与区别:

嵌入式系统一般指非 pc 系统,有计算机功能但又不称之为计算机的设备或器材。它是以应用为中心,软硬件可裁减的,适应应用系统对功能、可靠性、成本、体积、功耗等综合性严格要求的专用计算机系统。简单地说,嵌入式系统集系统的应用软件与硬件于一体,类似于 pc 中 bios 的工作方式,具有软件代码小、高度自动化、响应速度快等特点,特别适合于要求实时和多任务的体系。嵌入式系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成,它是可独立工作的“器件”。

个人pc一词源自于1978年IBM的第一部桌上型计算机型号PC,在此之前有Apple II的个人用计算机。能独立运行、完成特定功能的个人计算机。个人计算机不需要共享其他计算机的处理、磁盘和打印机等资源也可以独立工作。今天,个人计算机一词则泛指所有的个人计算机、如桌上型计算机、笔记型计算机、或是兼容于IBM系统的个人计算机等。

嵌入式这门课程名称对我来说并不陌生,是因为上学期讲我们单片机的艾尔肯老师提过,他说我们这个专业最重要最应用两门课程是单片机和嵌入式。那时候我特别感兴趣,还去图书馆看有关的书,在网上查资料,是因为我总觉得我们以前学的都是理论没有什么动手做的,别人问我“你读的专业做什么?”,我也说不去话来,只说画电路图,研究计算机硬件等回答,所以决心学好这些课门,刚开始把单片机的实验做的特努力,每次程序下载成功的时候特别高兴,可后来不怎么感兴趣了,因为我不会写程序,只懂一点点,实验上的程序是书上有的要么老师给的,只复制粘贴而一。

我们开始学习《ARM&LINUX嵌入式系统教程》,由于初次接触嵌入式系统,感觉蛮难的,很多的概念都听也没听过,觉得挺尴尬,老师每次上课都布置作业,下课后同学一起做实验,我觉得这个挺不错的,当然,其中遇到很多的难题,很多东西都是第一次接触,又没有别人在旁边指导操作,完全凭借自己去摸索练习,我不懂得地方别人懂,谁也不懂查资料,吵吵闹闹这样还学了一些东西,不管怎么说自己下手做,还老师关于实验内容提问。到第9周我们开始做实验了,这个实验比以前做的实验难多了,做起来也难,几乎每次实验不那么理想,越努力做好越出问题,老师讲的时候觉得挺懂,一手可以做好实验感觉,可事实不是这样的。其中的困难可想而知。然而坚持就是胜利,牙一咬眼一闭坚持做下去,而通过本次实验,我感觉收获还是蛮多的。可能我对于嵌入式的知识学习的还是不太多,但是这之外的东西收获颇丰。它让我学会了如何通过自己的努力去认知一个新事物,更重要的是端正自己的学习态度,只有真正下功夫去学习,才能有收获,正所谓“一份耕耘,一份收获。”没有付出,何谈回报呢?再者,通过本次实验,我也学会了如何去分析问题,如何找出自己设计中的不足,继而去排除解决问题,这就是一个自我学习的过程。当我通过实验去学习理论知识时,自己动手得出的结论,不仅能加深我对嵌入式的理解,更能加深我对此的记忆。

当然,在这其中,我也发现自己的许多不足之处,由于我把C语言没有好好学习,才落到如此地步,这也可以说是一个教训吧!我相信在以后的学习工作中,我一定会端正自己的学习态度,一丝不苟的去对待每一件事。只有做好足够的准备,才能事半功倍。参考的书和网址:

ARM & LINUX 嵌入式系统教程(第2版)第1页

第四篇:嵌入式行业调查总结报告

行业调查总结报告

一、嵌入式工程师个人基本情况

在“2012-2013中国嵌入式开发从业人员调查”活动中,针对行业内嵌入式工程师个人基本情况的调查,除了延续前四届调查问卷的专业角度和务实的关注点,对公众普遍关注的工作经验、学历、薪资范围等关键项着手进行数据的汇总和分析之外,我们还增加了嵌入式工程师地域分布的调查。同时也综合之前调查汇总的结果数据,通过纵向的对比和分析,力求更全面地呈现出一个直观的、在时间跨度上的变化趋势。

1、工作经验

来自华清远见2012-2013的行业调查数据的结果显示,目前从事嵌入式开发“不到1年”和“1-2年”的工程师所占的比例依然是最大的,分别是29%和25%,占总参与调研人数的54%,对比去年增加了4个百分点,而具备相对丰富开发经验的嵌入式工程师(2年以上工作经验)则占总调研人数的46%。对比2008至2012年这几年的调查数据,我们不难得出这样的结论:伴随着整个嵌入式行业的快速稳步发展,嵌入式专业领域内技术研发人才分布已经呈现出日趋合理的比例结构,过去的一年,有更多的一线研发工程师投身到嵌入式这一热门行业中,并且继续呈现出逐年增长的趋势。结合本报告后面关于“企业人才需求现状”的调查结果,我们也不难分析出,嵌入式企业的发展速度和专业人才的成长速度依然有一定的差距,行业内专业研发工程师供不应求的状态扔将会持续。嵌入式开发涉及领域极广,嵌入式产品在日趋智能的工作和生活中也无处不在,巨大的市场发展空间将为更多投身嵌入式领域的工程师提供更为广阔的职业发展平台,我们相信,伴随着未来几年更多的专业嵌入式人才的加盟,这个行业将在坚实的步伐中高昂挺进全盛期。

2、学历要求

来自2012-2013的调查统计数据显示,嵌入式开发从业人员的学历仍然以本科(60%)和硕士(23%)居多,占所有参与调查人员的 83%,和去年调查报告结果基本持平。从中可以看出:在整个嵌入式行业的从业人员中,本科生和研究生凭借其扎实的理论功底和良好的综合素质,依然是嵌入式开发从业者的主要群体,并且在未来一段时间内也将持续稳居此项调查的前两位。同时,我们也可以进一步得出结论:在社会生活压力不断增大、大学生就业率更低、难度更高的今天,高校专业学科建设和教学改革的步伐越来越快,嵌入式及相关专业在大学校园内的普及和发展也达到了前所未有的速度。在高校更加贴近用人企业真实需求的实训模式的引导下,越来越多的计算机、电子、自动化等相关专业及物理、数学、信息工程等基础专业的本科生和研究生开始将自己的职业规划定位到高薪诱人且发展前景极为广阔的专业嵌入式开发领域。而作为一个具有庞大基数的群体,本科生势必将成为未来解决嵌入式人才供不应求问题的一个巨大突破口,而对于这样一个蓬勃发展的专业领域来说,也势必将为更多大学生提供更高质量的就业机会,从而有效推动相关专业的大学毕业生与企业人才真实需求的无缝对接。

3、地域分布

嵌入式行业从业人员的地域分布为本调查活动的新增调研项目,调查统计数据显示,嵌入式开发从业人员主要集中在北京、深圳、上海、广州、成都等一线城市,分别占总调研人数的18%、13%、11%、9%、8%,总计占59%。这一调研数据显示,高新技术企业密集的大城市仍然是广大嵌入式开发者获取更多工作机会及长远职业发展空间的首选。随着国家中西部开发的不断加强以及更多创新产业园和国际知名企业的入驻落户,武汉、西安等中西部城市也将呈现越来越旺盛的嵌入式人才需求,相信这将为更多的嵌入式开发者提供更为广阔的地域发展空间及就业机会,任何城市经济的发展,都离不开众多专业人才的加入。

4、薪资水平

来自华清远见2012-2013的调查统计数据显示,嵌入式行业从业人员月薪为3000-8000元的比例占到69%,与去年保持一致,月薪3000以下的比例减少了一个百分点,8000元以上高薪部分的比例略有增加。结合本次调查在职工程师“工作经验”项目的统计结果可以看出,工作在 1-2年的工程师薪水基本会在3000-8000元的范围,而随着工作年限的增加,薪资水平也会有较明显的提高。对于嵌入式工程师来说,“经验”会显得尤为重要,相比其他IT从业人员,嵌入式工程师的开发经验将会使薪水增长更快。当然对于新入行的嵌入式工程师来说,也将面临巨大的机遇,从个人职业发展角度来看,未来将会有更大的发展空间。该项调查通过客观的数据分析结果,全面反映了嵌入式开发从业人员的一个整体薪资待遇情况,显然由于整个嵌入式行业正处于高速发展期,必然使得专业人才的薪资发展空间与其个人专业技术经验的积累直接相关。人才永远是企业发展的核心动力,而嵌入式工程师作为一个高薪诱人、极具成长空间及发展潜力的专业技术岗位,也必将成为推动整个嵌入式行业更加快速地向前迈进的中坚力量。

二、嵌入式行业公司的基本状况

接下来的调查是针对与技术工程师息息相关的嵌入式行业中众多产品研发企业的发展现状,以期能够帮助大家从另外一个角度,借助更广阔的视野来分析了解整个嵌入式行业的现状。结合嵌入式企业在研发产品应用及核心技术领域的特点,本部分调查内容主要从“所属行业分布情况、公司规模、软件开发平台、软件开发调试工具、软件开发语言、硬件开发平台、处理器芯片、软硬件人员安排、未来嵌入式操作系统首选”等方面展开,其中本调查中新增的项目包括:软件开发调试工具、处理器芯片、未来嵌入式操作系统首选等项目,以帮助大家更加全面而有针对性地了解嵌入式行业内,专业研发企业的整体状况及未来的技术发展趋势。

1、所属行业分布情况

作为智能设备及终端产品的核心基础,嵌入式技术的应用已经渗透到社会工作及生活的各个领域。由于嵌入式技术的成熟应用,也进一步加速了移动互联网、物联网及云计算的产业化进程。来自2012-2013的行业调查数据显示,目前嵌入式产品应用最多的三大领域依然是“消费电子、通信设备、工业控制”,所占比例分别是23%、17%和13%,三大领域所占比例之和占53%,其中消费电子所占比例将相较去年有明显增长,相信这与智能手机、平板电脑等移动设备的大面积普及有直接关系。而占据9%的“其他”一项选择中,参与调查者主要选择的是“电力设备、智能电网、物联网、仪器仪表、教育”等行业。我们有理由相信,这些都充分表明,未来嵌入式系统将会走进IT产业的各个领域,成为推动整个产业发展的核心中坚力量。

2、公司规模

从“公司规模”调查项的统计结果可以看出,100人以内的小型公司所占比例为49%,基本上接近一半,100-500人的中型公司所占比例为 29%,这和传统的IT企业规模构成差别还是比较大,这恰恰说明了嵌入式系统充分结合行业应用、具有灵活定制性的特点。嵌入式系统应用领域非常广泛,在每个典型的应用领域内都要求企业具备一定的专注性和专业性,这与传统的IT行业经常会在某个领域内出现垄断的大型企业的局面有所不同。

3、软件开发平台的选择

来自华清远见2012-2013的调查统计数据显示,在嵌入式产品研发的软件开发平台的选择上,嵌入式Linux仍以42%的市场份额遥遥领先于其他嵌入式开发软件平台,由此可见,Linux凭借其得天独厚的优势和广泛的应用领域,依然成为众多嵌入式企业研发团队的首选。而作为移动互联网的重要切入点,智能手机操作系统平台也吸引了越来越多的开发者加入,Android智能手机操作系统平台以绝对的优势(16%)成为手机操作系统平台首选,市场份额也在逐年提升,对比去年的调研数据,虽然iOS操作系统在过去的一年增长幅度高于Android,但与Android操作系统的市场占有率仍然有一定的差距,以5%的比例屈居手机操作系统平台第二。在对华清远见老学员的回访中,很多嵌入式linux就业班毕业的学员,目前也呈现出软硬件各方向的多元发展趋势,也有部分毕业学员直接进入Android移动开发领域,由此可见,嵌入式Linux的学习无疑给众多学员提供了更为广阔的职业发展空间,究其原因主要是在于Android手机操作系统是在Linux内核基础上开发的,尤其在底层部分,两个系统基本是一样的,对于之前一直从事Linux开发的工程师来说,转向Android平台开发是比较轻松的事。而在新兴物联网领域,嵌入式作为物联网产品的核心技术之一,也将为嵌入式系统提供更为广阔的产业发展空间。嵌入式Linux的长远发展空间、Android、iOS等平台智能设备的广泛应用、物联网的巨大产业发展空间,所有这些与嵌入式相关的行业新动向,无疑为更多迈入嵌入式开发的初学者提供更好的就业机会和职业发展前景。

4、软件开发调试工具的选择

软件开发调试工具的选择为本新增调研项目,调查统计的数据结果显示,keil和IAR分别以37%、24%的比例成为嵌入式开发者的主要调试工具,总计占所有参与调研人数的61%。合适的调试工具的选择使用,可以大大加快产品的开发进度。这也使得在调试工具层面的技术支持和发展成为研发过程中需要考虑的因素之一。同时,这个调查结果也为初学者如何选择开发工具提供有价值的参考。

5、硬件开发平台的选择

从2012-2013的调查统计数据中可以看到,ARM处理器(包括ARM7/9/

11、Cortex-M系列、Cortex-A系列)毫无疑问地占据了嵌入式处理器绝大部分的市场份额(74%),在ARM及其合作伙伴的市场推动下,ARM7/9/11较前一年的统计结果,出现了非常明显的下滑,市场份额下降了13个百分点,而最新ARMv7架构的Cortex系列处理器成功布局嵌入式移动计算领域并取得了快速的发展,其中定位低端的Cortex-M系列处理器和定位高端的Cortex-A处理器较一年前的统计结果,分布有两个百分点的增长,已毋庸置疑地成为ARM处理器应用的主流。随着物联网产业的快速发展,对低功耗微控制器的需求必然会更进一步地推动Cortex-M系列处理器的快速应用,而高性能智能手机、平板电脑及更多智能终端设备的开速普及则使得Cortex-A系列处理器获得了快速发展的机会。

6、处理器芯片的选择

处理器芯片的选择为本新增的调研项目,据调查统计数据的结果显示,TI(德州仪器)和SAMSUNG(三星),成为最受开发者欢迎的嵌入式处理器芯片提供商,占据了接近一半(47%)的市场份额,其他知名厂家处理器芯片所占市场份额分布为:Qualcomm(高通)10%、Intel(英特尔)8%、NXP(恩智浦)6%、Atmel(爱特梅尔)5%、Nvidia(英伟达)5%、Freescale(飞思卡尔)4%、Renesas(瑞萨)3%,除以上厂家之外的其他处理器则占总体市场份额的12%。

7、软件开发语言的使用

来自2012-2013华清远见的调查统计数据显示,在嵌入式产品研发的软件开发语言的使用上,C语言仍然是嵌入式开发过程中最普遍使用的语言,其市场份额继续保持领先(70%),这一统计结果再一次表明,无论是在传统的工业控制领域、通信领域,还是迅猛发展的消费电子,安防控制、信息家电等领域,C语言均是嵌入式开发语言的首选。对比去年的调研数据,Java语言和Objective-C的使用比例有所上升,究其原因不难看出,Android智能手机操作系统的开发需求推动了java语言的广泛使用,成为在嵌入式领域内最受欢迎的高级语言,而iOS智能手机操作系统的开发则拓展了Objective-C语言的开发人群。C++所占比例为10%,位居第三。汇编语言所占比例3%,与去年持平。

8、软硬件人员的安排

2012-2013的调查数据显示,有一半从事嵌入式产品研发的企业都是采用软硬件人员分工合作完成产品的开发方式(50%),与去年的调查数据(62%)横向对比看,这一选项所占的比例也呈现出下降的趋势(下降了12个百分点)。而“人员不分开,要求员工同时具备硬件和软件开发能力,可独立完成项目”的公司所占比例,由去年的22%上升到今年的29%(上升了7个百分点)。从这一转变,我们可以看到:嵌入式系统作为一个软硬件结合的系统,需要嵌入式开发工程师在软件和硬件两个方面都不断深化学习,同时具备软硬件开发能力的工程师,将在求职过程中拥有更多的选择机会以及更大的成长空间。同时,从各大招聘网站的最新搜索数据中也可以看出,目前嵌入式软件开发人才的需求量远远大于纯硬件开发人才,嵌入式系统项目研发差不多80%以上的工作量都是在软件部分,软件是嵌入式系统最核心的部分,也是体现嵌入式系统优势的最关键部分,企业对嵌入式软件开发人才的需求必将持续上涨。

9、未来嵌入式操作系统首选

在本新增调研项目中新增了对未来1-2年内嵌入式行业会占主导地位的嵌入式操作系统的调查,调查统计数据显示,嵌入式Linux仍然是未来几年内,嵌入式工程师认可的最具发展潜力的首选嵌入式操作系统,所占比例接近一半(47%),而Android智能手机操作系统,也受到了越来越多嵌入式工程师的关注,并对其在移动手机操作系统中广阔的发展空间及发展潜力充满了期待。由此可见,作为开源系列的两款优秀的嵌入式操作系统(嵌入式Linux及 Android),其开源的特性,无疑使其在市场竞争中,具备了最强大的竞争优势及用户基础,用户就是王道。

获取专业知识的途径

1、首选搜索引擎

在嵌入式工程师对搜索引擎使用习惯的调查中,百度和Google的使用率依然是平分秋色,这和这两个搜索引擎在国内市场份额的实际占有率有很大差别,也与正打得火热的国内搜索引擎市场的实际状况有很大的不同。究其原因,这与嵌入式工程师会经常搜索国外的最新技术资料有直接关系,Google在搜索国外网站技术资料的广度和深度上具有明显的优势。嵌入式技术更新非常快,对于开发人员来说,必须具备较强的学习能力,善于通过各种渠道更新自身的知识体系,关注最新技术发展热点,适应行业最新发展需求。

2、微博平台

由于微博在发布信息及信息传播上具备速度快的明显优势,目前已成为主流的媒体平台之一。以成为。通过2012-2013的调查数据,我们可以看出,嵌入式工程师对微博的热度虽然明显低于大众用户,但关注微博的嵌入式工程师也在慢慢增多。对比去年的调研数据,很少使用微博的用户,下降了18个百分点(由去年的65%下降到今年的47%)。使用新浪和腾讯微博的用户比例分别是35%和16%,也有更多的行业媒体与嵌入式企业通过微博手段发布行业资讯及企业动态,吸引更多的嵌入式工程师关注,相信这对于企业品牌及产品形象的传播将会提供更多的帮助。

四、嵌入式工程师对职业生涯的看法

作为一个正在高速发展的行业,许多技术工程师和准备进入行业的技术爱好者都非常关注嵌入式领域未来的职业规划和行业整体的发展状况。本部分调查则主要从“企业人才需求现状、对工作薪资的满意度、未来一年薪资涨幅、如何看待培训以及对未来职业人生的规划”等方面进行问题设置,希望能从各个角度上展现嵌入式工程师对目前工作状态的的满意程度和真实需求。

1、企业人才需求现状

来自2012-2013的调查数据显示,在整个行业发展的过程中,嵌入式人才需求目前仍然是供不应求,74%左右参与调查的一线工程师均表示,自己所属的公司目前都急缺嵌入式开发方面的专业技术人才。虽然人才缺口仍然很大,但连续4年的调查数据显示,这一比例已在持续下降(2011年比2010年低了5个百分点,2012年比 2011年低了3个百分点,2013年比2012年低了1个百分点),这也表明,随着国家政策的更加重视、市场的整体推动及多渠道的嵌入式人才培养体系的不断完善,嵌入式开发人才需求瓶颈的问题,在逐步得到缓解,整个嵌入式专业人才市场的供求关系正在向更健康的方向发展和迈进。但是企业对专业人才需求量的缺口依然非常大,整个嵌入式行业的发展也需要更多专业嵌入式人才的加盟,而且越早进入这个行业,优势越大。

2、对工作薪资的满意度

本薪资满意度的调查结果显示,有63%的工程师对目前的薪资水平表示非常满意或基本满意,比去年同期有4个百分点的增长。另外有37%的人对目前薪资表示了不满意。结合“薪资分布”调查项的结果,本的薪资水平与工程师的满意度基本保持了同等比例的增长,工程师对自身能力的提升充满了信心,对行业发展的整体趋势表现出非常积极的态度。

3、未来一年薪资涨幅

来自华清远见2012-2013的调查统计,针对“未来一年薪资涨幅”的调查结果显示,几乎所有在职工程师对未来一年薪资的增长都充满了信心,其中接近68%的人预测涨幅会在40%以内,16%的预测涨幅会在41-60%之间,比去年上升了5个百分点,13%的人预测涨幅会在61%以上,比去年上升了5个百分点,以上数据要高于整个IT行业的平均水平,这充分说明在嵌入式领域,开发人员对自身的发展有更高的要求和更大的信心,对行业未来的发展也表示出积极乐观的态度。嵌入式技术的成熟应用推动了很多产业的高速发展,例如物联网、移动互联网、云计算等,这也让嵌入式工程师看到了未来自身的更高价值。对于用人企业来说,开发人员对未来薪资有更加的期望会增加企业开发成本,企业必须通过不断推出有市场竞争力的产品,更高效的内部管理,才能留住更多的人才,保证企业利润的持续增长。

4、未来职业人生的规划

在2012-2013的调查统计结果中,“对未来职业人生的规划”一项,接近66%的工程师给予了肯定的评价,其中48%的工程师表示希望提升自己的层次,期待目前所在公司能给自己更大的成长空间。18%的工程师则表示喜欢自己现在的公司以及工作职位,短时间内应该不会有较大的改变。考虑跳槽的工程师所占比例为23%,比去年上升了4个百分点,打算自己创业的为7%,其他选项均占较小比例。对比去年同期的数据,我们不难看出,由于行业内专业人才的持续紧缺,嵌入式研发工程师在职业发展上拥有更多的主动选择权。

第五篇:计算机专业暑期学习嵌入式社会实践总结报告

实践报告摘要:学习嵌入式是我的梦想,我很羡慕能够在嵌入式方面独档一面的高手,希望有一天我也能像他们那样自信自如的在嵌入式这片热土上挥洒着自己的青春和浪漫。带着无比豪迈的心情和缤纷的梦想来到易嵌学习嵌入式,在新的老师、新的同学和新的环境中,我开始了我的嵌入式学习,开始了新一轮的拼搏。

在易嵌短暂的两个月,我们从linux基础入手,强化了c语言编程,学习了linux系统编程和网络编程。时间虽短,但成长很快,无论是理论知识还是实践能力都得到了大幅度的提高。在这里将理论和实践相结合,相互促进,相互补充,使得学习更加透彻。通过用不同方法实现同一个项目,不断深入,层层推进,学以致用!

在易嵌的这个暑假,我过得充实而快乐。在这里有着同学间的探讨、师生间的互动和魔鬼般的训练!在我丰富多彩的人生路上留下了永远亮丽与难忘的记忆!

关键字:易嵌 嵌入式 linux c语言 难忘的记忆

实践报告正文:看着四年的大学生活就快要结束了,心中隐隐有一种伤感与失落,我陷入了沉思:该挺直腰杆走自己的路了!学习嵌入式是我的梦想,我很羡慕能够在嵌入式方面独档一面的高手,希望有一天我也能像他们那样自信自如的在嵌入式这片热土上挥洒着自己的青春和浪漫。

当我决定好好利用这个暑假,学习我一直都想去学的嵌入式的时候,就注定要在我丰富多彩的人生路上留下永远亮丽与难忘的记忆!算算毕业的时间,我已经闻到了离别的气息,在这即将远离大学时代的时刻,才真正懂得回眸的意义。想想走过的路,想想现在的路,想想来时的路,不知道未来能否成功,既然选择了远方,就注定要风雨兼程!带着无比豪迈的心情和缤纷的梦想来到易嵌学习嵌入式,希望在这崭新的一页留下人生的美好!在新的老师、新的同学和新的环境中,我开始了我的嵌入式学习,开始了新一轮的拼搏。

无论现在多么努力都无法追回失去的金色年华,所以在开班典礼的时候,我便为自己制定了目标!我将好好利用最后一个暑假,多学些知识锻炼自己,为自己储备一些精神食粮并不断开拓视野和提升自己的能力,让自己能够在毕业的时候成为学校的骄傲!

在易嵌短暂的两个月,我们从linux基础入手,强化了c语言编程,学习了linux系统编程和网络编程。时间虽短,但成长很快,无论是理论知识还是实践能力都得到了大幅度的提高。

通过对linux操作系统的学习,我初步掌握了linux基础。刚开始我对linux只是有一点儿了解,但并没有真正的去接触。在这段时间里,从linux系统安装开始着手,了解linux的发展,相比其他系统,它有很多优点。在安装好系统后,学习了linux的分区命名、linux的常用命令、文本编辑器vi、shell的使用、源代码的编译和调试、多模块的编译和链接以及管理工具。通过这些学习,我基本能够在linux系统下通过vi编辑器编写c语言程序,通过一些常用命令来调试、查看程序。

能够在这么短的时间内初步掌握linux,与在学校学习一门课程意义完全不同,通过老师的讲解,自己的练习,同学之间的交流,能够加深印象,熟练操作。

学习linux基础只是我嵌入式学习历程的一个开始,虽然有好多命令还不太熟悉,有好多命令都还没有去尝试过,但我相信随着后期的学习,我将逐渐熟练掌握。

下载《嵌入式技术》学习总结报告word格式文档
下载《嵌入式技术》学习总结报告.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    《智能车辆技术》学习总结报告

    《智能车辆技术》学习总结报告 经过一个多月的学习,我对智能车辆技术有了基本的了解。 首先,智能车辆是一个集环境感知、规划决策、智能控制等功能于一体的综合系统。它分为自......

    嵌入式学习路线

    语言基础 1.C 与 C++ A. 《c reference》 B. 《c++ 编程思想》 C. 《effective c++》 D. 《more effective c++》 E. 《effective c++ stl》 2. 软件设计 A. 《UML 2.0 Refe......

    嵌入式学习之路

    1、必须认真学习一个操作系统 (例如从UC/OSII 到 Linux) 2、必须熟悉TCP/IP网络协议 (现在的嵌入式产品与网络的联系越来越紧密,融入网络是必然趋势) 3、必须认真的学习一款CPU的......

    嵌入式学习总结

    嵌入式学习总结 一.基本信息................................................................................................................... 1 二.嵌入式系统的组......

    学习嵌入式心得

    嵌入式心得体会 本人大学学的是电子信息科学与技术专业,其实这个专业和嵌入式没有多大的关系,要说有关系就是简单的讲了下C语言语法,学完之后还不知道什么是C语言,只记住了,char,......

    嵌入式学习心得体会(范文)

    嵌入式学习心得体会 BAKYANNMYRADOV 20*** 这学期才接触嵌入式系统感觉还称不上入门,我通过学习知道了嵌入式的发展前景很大,各个领域都用到了嵌入式,学好嵌入式不愁没......

    学习嵌入式书籍推荐

    十年研发经验工程师的嵌入式学习书籍大推荐 从事嵌入式研发行业十年,认为学习就是要不断的吸纳知识,在研发过程中,经常会遇到一些问题,这种发现问题并解决问题的过程就是进步。......

    嵌入式学习过程

    嵌入式学习路线)学习Linux系统安装、 常用命令、应用程序安装。 2) 学习Linux 下的 C 编程、这本书必学《UNIX 环境高级编程》、《UNIX 网络编程》,Rechard Stevens 写的,C 高手......