嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、PDA、电子字典、可视电话、 VCD/DVD/MP3 Player、数字相机(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),都是通用的硬件,我们只管设计软件就变成自己的产品了。
关键字:ARM 嵌入式系统 电子工程
引用地址:
关于ARM和嵌入式系统方向
推荐阅读最新更新时间:2024-03-16 13:12
布局嵌入式:TI新推可扩展Sitara ARM9 MPU
“整个ARM MPU市场是非常大的,”德州仪器(TI)中国区应用处理器与低功耗DSP业务拓展经理牟涛告诉EEWORLD,该市场2010年整个容量达204亿美元,其中工业电子年均复合增长率为27.8%,医疗电子增长尤为显著,高达65.4%。TI非常希望在这样的市场有一番作为,因而会加大投入,陆续推出一系列新品。 为满足工业、医疗及消费等领域高度互连的需求,德州仪器 (TI) 4 月 7 日宣布推出 4 款提供多种集成型连接选项的全新 Sitara™ ARM9 微处理器 (MPU) 与相应的评估板 (EVM),可为嵌入式工业、医疗以及消费类设计开发人员提供支持各种特定行业外设与接口的高灵活架构。 与其它 ARM9 产品
[嵌入式]
ARMHF(hard-float ABI for ARM)
1. armhf是什么 在Ubuntu 12.04和Debian里,除了arm, armel,还出现了一个名为armhf的版本。这个东西是什么? 众所周知,armel是目前主要的ARM ABI。armhf则是armel的一个变种,主要区别在浮点计算上。 在armel中,关于浮点数计算的约定有三种。 以gcc为例,对应的-mfloat-abi参数值有三个: soft soft是指所有浮点运算全部在软件层实现,效率当然不高,适合于早期没有浮点计算单元的ARM处理器; softfp softfp是目前armel的默认设置,它将浮点计算交给FPU处理,但函数参数的传递--使用通用的整型寄存器而不是FPU寄存器
[单片机]
arm汇编语言中调用C库函数printf
今天在写一个ARM汇编代码时,本来想在程序中显示字符串信息,结果不成功,开始以为是C库中printf的实现的原因,下午终于解决问题,原来是没有在汇编程序中初始化C库。 遇到这个问题时,为了简单起见,我直接用汇编写了一个调用printf函数显示字符串hello的程序,如下: area |hello$code|,code,readonly code32 entry import _printf import ||Lib Request armlib||,weak hello adr r0,strhello bl _printf strhello dcb hello!/n/0
[单片机]
ARM架构常用术语解析
big.LITTLE ARM big.LITTLE™ 处理是一项节能技术,它将最高性能的 ARM CPU 与最高效的 ARM CPU 结合到一个处理器子系统中,与当今业内最优秀的系统相比,不仅性能更高,能耗也更低。 Thumb Thumb指令为以 Thumb 状态运行的、基于 ARM 体系结构的处理器的操作进行编码的一个半字或两个半字。 Thumb 指令必须为半字对齐。 Thumb-2 Thumb-2 是 Thumb 指令集的一项主要增强功能,并且由 ARMv6T2 和 ARMv7M体系结构定义。 Thumb-2 提供了几乎与 ARM 指令集完全一样的功能。 它兼有16 位和 32 位指令,并可检索与 ARM 类似的性能
[单片机]
ARM的函数指针、指针函数的区别和用法
在学习arm过程中发现这“指针函数”与“函数指针”容易搞错,所以今天,我自己想一次把它搞清楚,找了一些资料,和大家的一些总结,整理到此。和大家分享。 首先它们之间的定义: 1、指针函数是指带指针的函数,即本质是一个函数。函数返回类型是某一类型的指针 类型标识符 *函数名(参数表) int *f(x,y); 首先它是一个函数,只不过这个函数的返回值是一个地址值。函数返回值必须用同类型的指针变量来接受,也就是说,指针函数一定有函数返回值,而且,在主调函数中,函数返回值必须赋给同类型的指针变量。 表示: float *fun(); float *p; p = fun(a); 注意指针函数与函数指针表示方法的不同,千万不要混淆
[单片机]
ARM平台上Linux异常处理代码简要分析
Linux version 3.10.40 ARM处理器支持多种异常模式,如reset,irq,fiq等,发生异常后处理器根据配置跳到指定的地址运行,可以配置成从0地址开始,也可以配置成从0xFFFF0000地址开始。我们从两个角度分析Linux上的实现,第一是负责异常处理的代码是如何安装到该地址的,第二是这些代码的处理流程是什么样的。 一 放置异常处理代码流程 依次涉及: init/main.c中的start_kernel函数 arch/arm/kernel/setup.c中的setup_arch函数 arch/arm/mm/mmu.c中的paging_init和devicemaps_init函数 a
[单片机]
ARM汇编语言源程序格式
Semihosting 在ADS的C语言函数库中,某些ANSIC的功能是由主机的调试环境来提供的,这套机制有一个专门术语叫Semihosting。 Semihosting通过一组软件中断(SWI)指令来实现。 当一个Semihosting软中断被执行时,调试系统先识别这个SWI请求,然后挂起正在运行的程序,调用Semihosting的服务,完成后再恢复原来的程序执行。 因此,主机执行的任务对于程序来说是透明的。 SWI传递的功能号 (例如: semi-hosting, 使用0x123456 (ARM) or 0xAB (Thumb) 续 在此例中,表格jumptable中存放地是子程序地入口地址,我们把这种表格称为跳转表格。 注意
[单片机]
ARM CPU S3C44B0X与C54X DSP的接口设计
摘要:以SAMSUNG公司的ARM SOC芯片S3C44B0X和TI公司的TMS320C5416 DSP为例,讲述了ARM与DSP的数据接口技术,并结出了硬件连接图和软件代码。 关键词:ARM S3C44B0X 主机接口(HPI) TMS320C5416 后PC时代,嵌入式产品逐渐占领市场。而这些嵌入式产品的核心——处理器决定了产品的市场和性能。高性能、低功耗、低成本是嵌入式处理器的主要特点。在32位嵌入式处理器市场中,ARM占有78.6%的份额。而TI而占有DSP市场的绝大部分份额。通常的嵌入式系统设计中,由微控制器实现整个系统的控制,由DSP来执行计算密集型操作,然后通过一定的手段实现微控制器与DSP之间的通信和数据交换。因此,
[嵌入式]