学好arm嵌入式的最佳方法----初学者必看

合集下载

arm 嵌入式系统基础教程 - 广州周立功单片机发展有限公司

arm 嵌入式系统基础教程 - 广州周立功单片机发展有限公司

ARM嵌入式系统基础教程周立功等编著北京航空航天大学出版社2005年1月定价:32.00元内容简介本书是《ARM嵌入式系统系列教程》中的理论课教材。

以PHILIPS公司LPC2000系列ARM微控制器为例,深入浅出地介绍嵌入式系统开发的各个方面。

全书共分为3部分:第1章和第2章为理论部分,主要介绍嵌入式系统的概念及开发方法。

第3~5章为基础部分,主要介绍ARM7体系结构、指令系统及LPC2000系列ARM微控制器的结构原理。

第6~8章为应用部分,主要以LPC2000系列微控制器为例介绍如何设计嵌入式系统,包括硬件的设计、μC/OSII的移植以及建立软件开发平台的方法。

本书可以作为高等院校电子、自动化、机电一体化计算机等相关专业嵌入式系统课程的教材,也可作为从事嵌入式系统应用开发工程师的参考资料。

本书配套多媒体教学课件。

序1. ARM嵌入式系统的发展趋势由于网络与通信技术的发展,嵌入式系统在经历了近20年的发展历程后,又进入了一个新的历史发展阶段,即从普遍的低端应用进入到一个高、低端并行发展,并且不断提升低端应用技术水平的时代,其标志是近年来32位MCU的发展。

32位MCU的应用不会走8位机百花齐放、百余种型号系列齐上阵的道路,这是因为在8位机的低端应用中,嵌入对象与对象专业领域十分广泛而复杂;而当前32位MCU的高端应用则多集中在网络、通信和多媒体技术领域,32位MCU将会集中在少数厂家发展的少数型号系列上。

在嵌入式系统高端应用的发展中,曾经有众多的厂家参与,很早就有许多8位嵌入式MCU厂家实施了8位、16位和32位机的发展计划。

后来,8位和32位机的技术扩展侵占了16位机的发展空间。

传统电子系统智能化对8位机的需求使这些厂家将主要精力放在8位机的发展上,形成了32位机发展迟迟不前的局面。

当网络、通信和多媒体信息家电业兴起后,出现了嵌入式系统高端应用的市场;而在嵌入式系统的高端应用中,进行多年技术准备的ARM公司适时地推出了32位ARM系列嵌入式微处理器,以其明显的性能优势和知识产权平台扇出的运行方式,迅速形成32位机高端应用的主流地位,以至于使不少传统嵌入式系统厂家放弃了自己的32位发展计划,转而使用ARM内核来发展自己的32位MCU。

1-5章《ARM嵌入式C编程标准教程》

1-5章《ARM嵌入式C编程标准教程》
火龙果整理
高等学校嵌入式系统设计教材
ARM9处理器C语言编程标准教程
侯殿有 才华 编著
人民邮电出版社
第一章 ARM技术简介
1.1 ARM处理器简介
火龙果整理
ARM处理器是一种低功耗高性能的32位RISC (精简指令系统) 处理器。本章将其从结构入手进行分析,基于目前流行的 ARM920T核详细描述其硬件结构和编程。 ARM处理器共有31个32位寄存器,而其中16个可以在任何模 式下看到。它的指令为简单的加载与存储指令(从内存加载某个 值,执行完操作后再将其放回内存)。ARM一个有趣的特点是 它所有的指令都带有条件。例如用户可以测试某个寄存器的值, 但是直到下次使用同一条件进行测试时,才能有条件地执行这些 指令。另一个特征是可以在加载数值的同时进行算术和移位操作。 它可以在几种模式下操作,包括通过使用SWI(softwarinterrupt 软件中断)指令从用户模式进入到系统模式。

火龙果整理





· 5级流水线结构,即取指(F)、指令译码(D)、 执行(E)、数据存储访问(M)和写寄存器 (W)。 · 16K字节数据缓存,16K字节指令缓存。 · 写缓冲器:16字的数据缓冲器,4地址的地址 缓冲器,软件控制消耗。 · 标准的ARMv4存储器管理单元(MMU): 区域访问许可,允许以1/4页面大小对页面进行访 问,16个嵌入域,64个输入指令TLB及64个输入 数据TLB。 · 8位、16位、32位的指令总线与数据总线。
1.1.1 ARM7系列微处理器
火龙果整理
ARM7系列微处理器是低功耗的32位RISC处理器,最适合用于 对价位和功耗要求较低的消费类应用。ARM7系列有如下特点: ·具有嵌入式ICE—RT (Internet Communications Engine-Route 因特网通信)逻辑,调试开发方便。 ·极低的功耗,适合对功耗要求较低的应用,如便携式产品。 ·能够提供0.9MIPS(Million Instructions Per Second百万条/ 秒)/MHz的三级流水线结构。 ·对操作系统的支持广泛,如Windows CE、Linux、Palm OS等。 ·指令系统与ARM9系列、ARM9E系列和ARM10E系列兼容,便 于用户的产品升级换代。 ·主频最高可达130MHz,高速的运算处理能力能胜任绝大多数 的复杂应用。

arm嵌入式系统中面向对象的模块编程方法

arm嵌入式系统中面向对象的模块编程方法

arm嵌入式系统中面向对象的模块编程方法在arm嵌入式系统中,面向对象的模块编程方法是一种高效而灵活的编程方式。

它可以帮助开发人员构建可重用、可维护的软件模块,同时提高代码的可读性和可理解性。

本文将介绍arm嵌入式系统中面向对象的模块编程方法的基本概念、特点和实践指导。

面向对象的模块编程方法的基本概念是将软件系统划分为多个相互关联且独立的模块,每个模块都有自己的数据和操作。

模块之间通过定义接口和交互方式来实现通信和协作,从而实现整个系统的功能。

面向对象的模块编程方法的特点之一是封装。

封装是指将数据和操作封装在一个模块内部,对外部只暴露必要的接口。

通过封装,可以隐藏内部实现细节,提供简单、清晰的接口,减少模块之间的耦合度,提高模块的可复用性。

另一个特点是继承和多态。

继承是指模块可以从其他模块中继承数据和操作,从而扩展和重用现有的模块。

多态是指通过接口统一地访问不同类型的模块,从而实现代码的灵活性和可扩展性。

实践中,arm嵌入式系统中的面向对象的模块编程方法可以按照以下步骤进行:1. 根据系统需求和功能划分,将软件系统划分为多个模块。

每个模块应该有明确的功能和职责,遵循单一职责原则。

2. 设计模块之间的接口和交互方式。

接口应该简单、清晰,只暴露必要的操作。

交互方式可以使用函数调用、消息传递等方式,根据具体情况选择最合适的方式。

3. 实现模块内部的数据和操作。

数据可以是变量、结构体等,操作可以是函数、方法等。

保持数据和操作的内聚性,同时注意控制数据的访问权限,避免数据不一致和错误。

4. 确定模块之间的依赖关系。

模块之间可以有依赖关系,但应避免循环依赖和过度耦合。

可以使用依赖注入、接口抽象等方式来减少依赖关系的耦合度。

5. 测试和调试模块。

在开发过程中,可以通过单元测试、集成测试等方式对模块进行测试和调试,确保其功能正确性和稳定性。

通过以上步骤,可以实现arm嵌入式系统中面向对象的模块编程方法。

这种编程方法可以提高代码的可重用性、可维护性和可扩展性,同时提高开发效率和软件质量。

《嵌入式ARM教案》课件

《嵌入式ARM教案》课件

《嵌入式ARM教案》PPT课件第一章:嵌入式系统概述1.1 嵌入式系统的定义介绍嵌入式系统的概念、特点和应用领域强调嵌入式系统与传统计算机系统的区别1.2 嵌入式系统的发展回顾嵌入式系统的发展历程探讨未来嵌入式系统的发展趋势1.3 嵌入式系统的组成部分介绍嵌入式系统的硬件和软件组成解释嵌入式系统中的核心部件:中央处理器(CPU)第二章:ARM处理器简介2.1 ARM处理器的发展历程介绍ARM公司的成立和发展历程讲解ARM处理器的命名规则和版本更新2.2 ARM处理器的特点阐述ARM处理器的架构和指令集特点强调ARM处理器的功耗、性能和成本优势2.3 ARM处理器的应用领域分析ARM处理器在不同领域的应用案例展望ARM处理器在未来的应用前景第三章:ARM指令集和编程3.1 ARM指令集概述介绍ARM指令集的分类和特点讲解ARM指令的格式和操作码3.2 ARM指令的执行过程分析ARM指令的取指、译码、执行和写回过程解释ARM指令的流水线结构和流水线优化3.3 ARM编程实例介绍ARM编程的基本方法和技巧提供简单的ARM编程实例,让学员了解编程过程第四章:嵌入式系统设计和开发流程4.1 嵌入式系统设计原则讲解嵌入式系统设计的关键原则强调嵌入式系统设计的灵活性和可扩展性4.2 嵌入式系统开发流程介绍嵌入式系统开发的各个阶段阐述各阶段的主要任务和注意事项4.3 嵌入式系统开发工具和环境讲解常用的嵌入式系统开发工具和软件介绍嵌入式系统开发环境搭建的步骤和方法第五章:嵌入式系统硬件设计5.1 嵌入式系统硬件设计概述介绍嵌入式系统硬件设计的基本要求强调嵌入式系统硬件设计的可靠性和稳定性5.2 嵌入式系统硬件模块设计讲解嵌入式系统中的主要硬件模块分析各个模块的功能和相互之间的关系5.3 嵌入式系统硬件设计实例提供嵌入式系统硬件设计实例让学员了解硬件设计过程和注意事项第六章:嵌入式系统软件开发6.1 嵌入式操作系统概述介绍嵌入式操作系统的概念和分类强调嵌入式操作系统在嵌入式系统中的重要性6.2 嵌入式操作系统原理讲解嵌入式操作系统的核心组件和工作原理解释嵌入式操作系统的任务调度和资源管理6.3 嵌入式软件开发介绍嵌入式软件开发的基本方法和技巧提供嵌入式软件开发实例,让学员了解开发过程第七章:嵌入式系统应用案例分析7.1 嵌入式系统在工业控制中的应用分析嵌入式系统在工业控制领域的应用案例强调嵌入式系统在提高工业生产效率方面的作用7.2 嵌入式系统在消费电子中的应用讲解嵌入式系统在消费电子领域的应用案例探讨嵌入式系统在智能家居、可穿戴设备等领域的应用前景7.3 嵌入式系统在其他领域的应用介绍嵌入式系统在医疗、交通、教育等领域的应用案例展望嵌入式系统在未来各个领域的发展趋势第八章:嵌入式系统安全与防护8.1 嵌入式系统安全概述讲解嵌入式系统安全的重要性介绍嵌入式系统面临的安全威胁和攻击手段8.2 嵌入式系统安全防护策略阐述嵌入式系统安全防护的技术和方法强调安全防护策略在提高嵌入式系统安全性方面的作用8.3 嵌入式系统安全案例分析分析典型的嵌入式系统安全案例让学员了解嵌入式系统安全防护的实践应用第九章:嵌入式系统发展趋势与挑战9.1 嵌入式系统技术发展趋势分析嵌入式系统技术的发展趋势强调创新技术和新兴领域对嵌入式系统的影响9.2 嵌入式系统面临的挑战讲解嵌入式系统在发展过程中面临的挑战探讨应对挑战的方法和策略9.3 我国嵌入式系统发展现状与展望介绍我国嵌入式系统发展的现状展望我国嵌入式系统未来的发展前景第十章:总结与展望10.1 课程回顾总结本课程的主要内容和知识点强调嵌入式ARM教案在实际应用中的重要性10.2 实践与思考鼓励学员在实际工作中运用嵌入式ARM教案的知识提出针对性的思考题,引导学员深入思考和探索10.3 未来展望展望嵌入式系统领域的未来发展趋势强调继续学习和不断提升自身能力的重要性重点解析本文教案主要围绕嵌入式ARM系统进行讲解,涵盖了嵌入式系统的概述、ARM 处理器简介、ARM指令集和编程、嵌入式系统设计和开发流程、嵌入式系统硬件设计、嵌入式系统软件开发、嵌入式系统应用案例分析、嵌入式系统安全与防护、嵌入式系统发展趋势与挑战以及课程总结与展望等内容。

NI LabVIEW ARM嵌入式开发模块使用入门

NI LabVIEW ARM嵌入式开发模块使用入门
仿真下载调试 · ULINK2 仿真器 · 2 条 USB 串行线缆,每根不得超过 10 英尺
图 2 显示了 LM3S8962 评估板上的部分内容,而线缆和仿真器则请参照相关硬件方面的文 档。
警告:当从包装中移动板件时请小心,不要用手碰触,以防静电击穿某些零部件。
这篇手册包含系统需求,安装指令,新添加的性能,和一步步教你如何编译,运行,和调试 ARM 应用。
目录
系统需求······································································2 安装 ARM 嵌入式模块··························································2 评估 ARM 嵌入式模块··························································3 安装 MCB2300 评估板··························································3 安装 LM3S8962 评估板·························································5
你能在安装后 60 天内评估这个模块,当你在评估模式运行这个 ARM 模块时,LabVIEW 包含有下列限制:
注意:如果你评估这个模块时,却已获得许可和激活 LabVIEW 开发系统,这些限 制应用只是针对 ARM 芯片,VIs 和应用开发方面。 · 评估版本 60 天时间期限——当没被激活时,LabVIEW 在每次打开时都会提示你激 活。当你对应用编译 VI 时,你也会收到一个警告,直到你激活了 Keil uVision。评 估期限到时,你不能再打开 LabVIEW,你只有购买或激活这个模块。 · 编译空间限制——当你使用 LabVIEW 创建并编译应用时,Keil uVision 有 128KB 空 间限制。 · 评估版本 60 天的水印标记限制——所有用户 VI 在前面板上都有个评估版本的水印 标记。 安装 MCB2300 评估板 你用 JTAG 仿真模拟时,需要具备下列准备工作来使用 MCB2300 评估板: · MCB2300 板 · 带两个空闲 USB 端口的电脑:一个 USB 口给 MCB2300 板供电,另一个口执行 ULINK2 仿真下载调试 · ULINK2 仿真调试器 · 两根 USB 串行电缆,每根不超过 10 英尺 警告:当从包装中移动板件时请小心,不要用手碰触,以防静电击穿某些零部件。 图 1 展示了 MCB2300 评估板上某些零部件,更多信息可参照硬件文本内容。

qtcreator单步调试嵌入式arm程序的方法

qtcreator单步调试嵌入式arm程序的方法

qtcreator单步调试嵌入式arm程序的方法前言该方法配置步骤为:(1)安装gdb-multiarch。

(2)在qtcreator中配置gdb-multiarch。

(3)启动板子上的gdbserver。

(4)将qtcreator连接到板子上的gdbserver,启动单步调试。

1.安装gdb-multiarch使用“sudo apt-get install gdb-multiarch”命令安装gdb-multiarch。

安装完如图1所示。

图12.在qtcreator中配置gdb-multiarch在qtcreator中添加gdb-multiarch步骤如下。

在[工具]-[选项]中,在[Debuggers]页面中,添加gdb-multiarch,如图2和图3所示。

图2图3在[构建套件(kit)]页面中,添加gdb-multiarch对应的调试器,如图4所示。

图43.在板子上启动gdbserver将要调试的程序拷贝到板子上,如图5所示。

图5用如下指令,启动gdbserver。

gdbserver 172.24.119.123:8888 /tmp/only_only_test172.24.119.123是虚拟机的IP地址。

8888是选取的一个通信端口。

/tmp/only_only_test是板子上要调试的程序。

如图6所示。

图64.qtcreator连接gdbserver单步调试首先,确保虚拟机与板子能互相ping通,如图7所示。

图7然后,在虚拟机的qtcreator中,用Debug模式编译程序,如图8所示。

图8在虚拟机中的qtcreator中,点击[调试]-[开始调试]-[Attach to Running Debug Server...]。

参考图9进行设置。

图9设置中:✧本地执行档:虚拟机中待调试程序的存在位置。

✧Override server channel: IP地址为板子IP地址,端口号为gdbserver启动时指定的端口号。

ARM初学入门

ARM初学入门

经过一段时间对ARM的学习,在这里跟大家说一些前期的学习经验,另外仅以一个例子说明一下ADS的开发过程,因为这也是初学,可能有的地方说的不太好,望大家谅解,另外可以找其它参考资料来学习。

第一部分:ARM前期学习经验个人认为,要想学好ARM应该首先对ARM的整体框架(包括ARM体系结构,ARM开发过程,及ARM程序框架及执行过程等)有一个了解。

这里这就不多说了,这些东西我也只是刚刚开始学习,还没有很好的掌握,就只说一些个人想法吧。

呵呵,因为时间比较紧张,本来说是一个星期搞定ARM,至少拿着书本可以一点点的做着,可是经过上一个星期,到最后,哇,真的快疯了。

刚开始拿到实验箱,以为和NIOS一样,多跑一些DEMO应该就差不多会玩了,没想到一开始就碰到一个大问题,ARM实验箱里边带了几本教材和实验指导书,拿着实验指导书做了几个DEMO就做不下去了,因为前两个DEMO还比较简单,就只是用汇编语言写了几条对ARM寄存器操作的语句,学过汇编语言的很快就可以理解了。

可是往后就不一样了,因为刚开始学,不太了解ARM程序的框架,实在是看不懂了,为什么每个全程里边都有用到44b.h ,44blib.h ,44blib.c还有一个44binit.s文件?前边三个还容易理解,玩过单片机的很容易就能看出来44b.h 里边定义了一些在S3C44B0X内部的寄存器,44blib.h和44blib.c定义了一些有关初始化的函数,而44binit.s呢?看不懂,到这里我的ARM程序就没法往下做了,只有在网上再找资料,看这个函数到底是干什么用的,原来这就是以前经常听说的“bootloader”或着说是“启动代码”,或着说是“ARM的引导程序”,就是处理器在启动的时候执行的一段代码,主要任务是初始化处理器模式,设置堆栈,初始化变量等等.由于以上的操作均与处理器体系结构和系统配置密切相关,所以一般由汇编来编写(关于这方面的内容大家可以查看相关资料)。

ARM嵌入式体系结构与接口技术

ARM嵌入式体系结构与接口技术
AT91R40008, AT91R40807, AT91RM3400, AT91SAM7S64, AT91SAM7SE256, AT91SAM7SE32,
AT91SAM7SE512, AT91SAM7X128, AT91SAM7X256, AT91SAM7XC128, AT91SAM7XC256,
AT91SAM9260, AT91SAM9261/3 ,AT91SAM9G20
LH75400, LH75401, LH75410, LH75411
.
23
ARM芯片厂商







2、PCB设计仿真阶段

需要在EDA仿真设计平台下,设计系统原理图及
PCB,并对PCB板上的信号完整性、EMI等进行
仿真,根据仿真结果来对PCB进行合理的布局布
线调整,完成PCB的设计
PCB图
原理图
⑧ 要求开发、设计人员有较高的技能
.
7
通用计算机与嵌入式系统对比
特征
形式和类型
通用计算机


组成


嵌入式系统
看得见的计算机。
按其体系结构、运算速度
和结构规模等因素分为大
、中、小型机和微机。

通用处理器、标准总线和
外设。
软件和硬件相对独立。



看不见的计算机。
形式多样,应用领域广泛
,按应用来分。


uCLinux、RT-Linux、Embedix、
XLinux、PoketLinux、红旗嵌入式Linux等
.
17
1.4 嵌入式系统开发概述

系统总体开发
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。

嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。

特别是随着消费家电的智能化,嵌入式更显重要。

像我们平常常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系统。

嵌入式系统是软硬结合的东西,搞嵌入式开发的人有两类:一类是学电子工程、通信工程等偏硬件专业出身的人,他们主要是搞硬件设计,有时要开发一些与硬件关系最密切的最底层软件,如BootLoader、Board Support Package(像PC 的BIOS一样,往下驱动硬件,往上支持操作系统),最初级的硬件驱动程序等。

他们的优势是对硬件原理非常清楚,不足是他们更擅长定义各种硬件接口,但对复杂软件系统往往力不从心(例如嵌入式操作系统原理和复杂应用软件等)。

另一类是学软件、计算机专业出身的人,主要从事嵌入式操作系统和应用软件的开发。

如果我们学软件的人对硬件原理和接口有较好的掌握,我们完全也可写BSP和硬件驱动程序。

嵌入式硬件设计完后,各种功能就全*软件来实现了,嵌入式设备的增值很大程度上取决于嵌入式软件,这占了嵌入式系统的最主要工作(目前有很多公司将硬件设计包给了专门的硬件公司,稍复杂的硬件都交给台湾或国外公司设计,国内的硬件设计力量很弱,很多嵌入式公司自己只负责开发软件,因为公司都知道,嵌入式产品的差异很大程度在软件上,在软件方面是最有"花头"可做的),所以我们搞软件的人完全不用担心我们在嵌入式市场上的用武之地,越是智能设备越是复杂系统,软件越起关键作用,而且这是目前的趋势。

从事嵌入式软件开发的好处是:(1)目前国内外这方面的人都很稀缺。

一方面,是因为这一领域入门门槛较高,不仅要懂较底层软件(例如操作系统级、驱动程序级软件),对软件专业水平要求较高(嵌入式系统对软件设计的时间和空间效率要求较高),而且必须懂得硬件的工作原理,所以非专业IT人员很难切入这一领域;另一方面,是因为这一领域较新,目前发展太快,很多软硬件技术出现时间不长或正在出现(如ARM处理器、嵌入式操作系统、MPEG技术、无线通信协议等),掌握这些新技术的人当然很找。

嵌入式人才稀缺,身价自然就高,越有经验价格就越高。

其实嵌入式人才稀少,根本原因可能是大多数人无条件接触,这需要相应的嵌入式开发板和软件,另外需要有经验的人进行指导开发流程。

(2)与企业计算等应用软件不同,嵌入式领域人才的工作强度通常低一些(但收入不低)。

搞企业应用软件的IT企业,这个用户的系统搞完了,又得去搞下一个用户的,而且每个用户的需求和完成时间都得按客户要求改变,往往疲于奔命,重复劳动。

相比而言,搞嵌入式系统的公司,都有自己的产品计划,按自己的节奏行事。

所开发的产品通常是通用的,不会因客户的不同而修改。

一个产品型号开发完了,往往有较长一段空闲时间(或只是对软件进行一些小修补),有时间进行充电和休整。

另外,从事嵌入式软件的每个人工作范围相对狭窄,所涉及的专业技术范围就是那些(ARM、RTOS、MPEG、802.11等),时间长了这些东西会越搞越有经验,卖卖老本,几句指导也够让那些初入道者琢磨半年的。

若搞应用软件,可能下一个客户要换成一个完全不同的软件开发平台,那就苦了。

(3)哪天若想创业,搞自已的产品,那么嵌入式是一个不错的主意,这可不像应用软件那样容易被盗版。

土木学院有一个叫启明星的公司开发出一个好象叫“工程e”的掌上PDA (南校区门口有广告),施工技术人员用该PDA可当场进行土木概预算和其它土木计算,据说销路特好。

我认识的某大学老师,他开发的饭馆用的点菜PDA(WinCE平台,可无线连网和上网),据他说销路不错,饭馆点点PDA让客户点菜,多显派头档次。

我记得00级2+2班当年有一组同学在学Windows程序设计课程时用VC++设计了一个功能很强的点菜系统做为课程项目,当时真想建议他们将这个软件做成PDA,估计会有些销路(上海火车站南广场的Macdonald便使用很漂亮的PDA给用户点食品,像摸像样的)。

这些PDA的硬件设计一般都是请其它公司给订做(这叫“贴牌”:OEM),都是通用的硬件,我们只管设计软件就变成自己的产品了。

从事嵌入式软件开发的缺点是:(1)入门起点较高,所用到的技术往往都有一定难度,若软硬件基础不好,特别是操作系统级软件功底不深,则可能不适于此行。

(2)这方面的企业数量要远少于企业计算类企业。

特别是从事嵌入式的小企业数量较多(小企业要搞自己的产品创业),知名大公司较少(搞嵌入式的大公司主要有Intel、Motorola、TI、Philip、Samsung、Sony、Futjtum、Bell-Alcatel、意法半导体、Microtek、研华、华为、中兴通信、上广电等制造类企业)。

这些企业的习惯思维方式是到电子、通信等偏硬专业找人。

由于我院以前毕业生以企业计算为主,所以我院与这些企业联系相对较少。

我院正积极努力,目前已与其中部分公司建立了联系,争取今后能有我院同学到这些企业中实习或就业。

(3)有少数公司经常要硕士以上的人搞嵌入式,主要是基于嵌入式的难度。

但大多数公司也并无此要求,只要有经验即可。

我院同学若学习嵌入式,显然应偏重于嵌入式软件,特别是嵌入式操作系统方面,应是我们的强项。

对于搞嵌入式软件的人,最重要的技术显然是(实际上很多公司的招聘广告上就是这样写的):(1)掌握主流嵌入式微处理器的结构与原理(2)必须掌握一个嵌入式操作系统(3)必须熟悉嵌入式软件开发流程并至少做过一个嵌入式软件项目。

我院在嵌入式软件方面最重要的课程包括:(1)嵌入式微处理器结构与应用:这是一门嵌入式硬件基础课程,我院用这门课取代了传统的“微机原理与接口”课程(目前国内已有少部分高校IT专业这样做了,因为讲x86微机原理与接口很难找到实际用处,只为教学而已)。

我们说过,嵌入式是软硬件结合的技术,搞嵌入式软件的人应对ARM处理器工作原理和接口技术有充分了解,包括ARM的汇编指令系统。

若不了解处理器原理,怎么能控制硬件工作,怎么能写出节省内存又运行高速的最优代码(嵌入式软件设计特别讲究时空效率),怎么能写出驱动程序(驱动程序都是与硬件打交道的)?很多公司招聘嵌入式软件人员时都要求熟悉ARM处理器,将来若同学到公司中从事嵌入式软件开发,公司都会给你一本该设备的硬件规格说明书(xxx Specification),您必须能看懂其中的内存分布和端口使用等最基本的说明(就像x86汇编一样),否则怎么设计软件。

有些同学觉得嵌入式处理器课程较枯燥,这主要是硬件课程都较抽象的原因,等我们的嵌入式实验室10月份建好后,您做了一些实验后就会觉得看得见摸得着。

还有同学对ARM汇编不感兴趣,以为嵌入式开发用C语言就足够了。

其实不应仅是将汇编语言当成一个程序设计语言,学汇编主要是为了掌握处理器工作原理的。

一个不熟悉汇编语言的人,怎么能在该处理器写出最优的C语言代码。

在嵌入式开发的一些关键部分,有时还必须写汇编,如Bootloader等(可能还包括BSP)。

特别是在对速度有极高要求的场合(如DSP处理器的高速图像采集和图像解压缩),目前主要还要*汇编写程序(我看到过很多公司是这样做的)。

当您在一个嵌入式公司工作时,在查看描述原理的手册时,可能很多都是用汇编描述的(我就遇到过),这是因为很多硬件设计人员只会写或者喜欢用汇编描述,此时您就必须看懂汇编程序,否则软硬件人员可能就无法交流。

很多嵌入式职位招聘时都要求熟悉汇编。

[小知识]目前嵌入式处理器常见的有:ARM、PowerPC、MIPS、Motorola68K、ColdFire(冷火)等,但ARM占据了绝对主流(资料说手机中几乎100%都是ARM处理器)。

ARM是一个只卖知识产权的公司,目前获得购买了ARM CPU核授权许可的大公司很多,包括Intel、Samsung、Amstel、Motorola、Philip等,他们都在ARM CPU核的基础上进行了一些外围扩展,形成自己的处理器(如Samsung S3C2410,Motorola i.MXL9328等处理器都是采用ARM 9内核,指令一级是相同的)。

而众多中小公司又购买了这些处理器,设计了各种各样的开发板,如华恒等国内很多著名嵌入式公司都生产基于Samsung S3C2410的开发板,供最终用户使用或供教学实验。

在ARM这个食物链上,ARM公司是大鱼,Intel、Samsung等公司是小鱼,而华恒等则是虾米,最终用户(想我们要采购嵌入式开发板的实验室)则是喂虾米的。

Intel早期生产的是低端ARM(Strong ARM,相当于ARM7),现在转向主要生产高端ARM(即Intel Xscale处理器,相当于ARM10,主要用在高端PDA上,如HP和DELL生产的PDA都采用Intel Xscale,价格较高)。

目前应用最多的是ARM7和ARM9两类处理器。

ARM7较便宜,可跑uclinux(是一个不支持高级内存管理功能的嵌入式Linux系统)、Vxworks、uc/os II等实时操作系统,但因处理器不带内存管理单元MMU(无内存分页和地址映射机制,所以不能使用虚拟内存),所以不能跑Windows CE,另外通用Linux中的某些内存管理功能也不能用在ARM7上。

ARM9是一个带MMU功能的高端处理器,可跑WinCE或通用Linux 的大多数功能。

以上是我的一点了解,可能有不对的地方。

我们学院正在建设的嵌入式实验室(10月底到货)包括30套ARM7系统(拟采用Samsung S3C44b0x开发板,主要用于嵌入式处理器结构、嵌入式linux课程实验),10套ARM9系统(拟采用Samsung S3C2410x开发板,主要用于Windows CE课程建设),每套实验板都配了高速仿真器,价格都很贵(比我们招标的DELL PC还贵),很容易损坏,同学应爱护使用。

(2)嵌入式操作系统类课程除了WinCE的实时性稍差外,大多数嵌入式操作系统的实时性都很强,所以也可称为实时操作系统Real Time Operating System.从事嵌入式的人至少须掌握一个嵌入式操作系统(当然掌握两个更好),这在嵌入式的所有技术中是最为关键的了。

目前最重要的RTOS主要包括:第一类、传统的经典RTOS:最主要的便是Vxworks操作系统,以及其Tornado开发平台。

相关文档
最新文档