由于嵌入式系统的差异性很大,对不同的应用需求,必须选择不同的软件设计方法、开发平台和系统工具。
对于一些不需要复杂图形用户界面、通信协议和复杂文件操作(如同时打开多个文件)的应用,如果选用CortexM3核的处理器就已可以满足要求,任务数不多,任务之间的关系也不复杂,则不一定需要移植复杂的操作系统。这样一方面可以降低系统硬件开销,也可以获得更好的实时性和执行速度。不过,这样的软件开发方法需要开发人员有较好的程序设计思想,对所用器件有深入的了解,并掌握其编程控制方法。若引入一个简单的操作系统,如霤/OS,可以简化程序结构,但开发者最好熟悉其内核结构,并有使用经验,否则可能会需要更多的系统开发、调试时间。
如果选择了带存储器管理单元(MMU)的ARM处理器(如ARM920T、CortexA8等),这种应用系统根据应用、实时性、开发环境等因素,移植一个功能较强的操作系统一般情况下会比较合适,如Linux、WinCE,甚至新的Android等。这种系统的开发难度主要是在OS的移植以及硬件驱动程序的开发上。当这二步工作完成后,主要的软件开发工作已和在PC机上开发没有多大区别,可以按照一般的软件工程方法来进行,要注意的只是与arm硬件平台相关的软件优化问题。
由于嵌入式系统硬件资源的有限性,嵌入式软件与其他应用软件的主要区别,在于嵌入式软件要有较高的效率,包括执行速度和存储空间,尽管这二者经常是相互矛盾的。目前一般要求更多的是速度优化。要编写出高效的ARM程序,需要开发人员熟悉ARM的体系结构,包括内核结构、指令系统、Cache与存储器结构等,还要有好的程序设计思想,以及对一些常用函数、算法的深刻理解。这个过程也是arm系统开发从低级到高级的进阶之路。
目前,由于应用系统越来越复杂,嵌入式软件的移植性和重用性也得到了人们的高度重视,因为它直接影响到嵌入式软件的开发效率和质量。选择一种通用的开发环境和高级编程语言,使开发的嵌入式软件可以方便地移植到不同的硬件平台,是实现软件重用的基础。目前在ARM嵌入式系统开发中,ARM RealView、Keil以及IAR的EWarm是较好的开发平台,C/C++语言是应用最广泛的编程语言,并具有广泛的库函数、程序支持,在今后很长一段时间内,仍将在嵌入式系统应用领域中占重要地位。
关键字:ARM 嵌入式系统 软件相关
引用地址:
关于ARM嵌入式系统的软件相关知识
推荐阅读最新更新时间:2024-03-16 14:34
按键中断---那些年我们一起玩mini2440(arm9)裸机
ARM中断控制系统 按键驱动程序设计 一.Arm中断控制系统 1.查询方式 程序不断地查询设备的状态,并做出相应的反应。该方式实现比较简单,常用在比较单一的系统中,比如:一个温控系统中可以实用查询的方式不断检测温度变化。 特点:实现简单;但CPU利用率很低,不适合多任务的系统。 2.中断方式 当事件发生时,硬件会设置某个寄存器;CPU在每执行完一个指令时,查看这个寄存器,如果所关注的事件发生了,则中断当前程序,跳转到一个固定的地址处理这个事件,处理完后返回到被中断的程序中继续运行。 特点:实现相对复杂,但效率较高,是常用的方法。 中断处理流程: (1)中断控制器汇集各类外设发出的中断信号,然后通知CPU; (2)CPU保存当前
[单片机]
arm linux 系统调用实现
In this article we will dive into system call interface implementation in arm linux(with gnu eabi).我们将从bionic中的open函数开始追溯arm linux的系统调用实现(使用gnu eabi)。 Linux的应用程序要想访问内核必须使用系统调用从而实现从usr模式转到svc模式。在arm中,这个过程是通过swi(或者和它等价的指令)来实现模式转换的。 从bionic libc中的open函数追溯系统调用实现 相关文件: bionic/libc/unistd/open.c bionic/libc/arch-arm/
[单片机]
嵌入式系统引导技术研究
摘要:以PowerPC8xx系列处理器为例,通过对此类处理器的引导模式、引导代码的编写和调试,以及如何引导操作系统执行等问题的研究,探索嵌入式系统引导过程的一种解决方案。
关键词:MPC860 嵌入式操作系统 存储映射 引导
嵌入式系统应用开发不同于PC机,其开发过程同时涉及软硬件,需要将硬件平台的设计、操作系统以及上层应用开发综合考虑;而PC机应用开发建立在已经定制好的硬件和操作系统平台上,开发者只需调用系统提供的接口和服务完成相应的功能。由于应用和成本约束,嵌入式系统的硬件平台需根据应用量身定制,通常所用的MPU、存储器、外围设备等有多种选择余地,而且软件调试技术特殊,使平台的引导设计变得十分复杂。因此,对于嵌入式系统开
[嵌入式]
Eclipse开发调试ARM裸机程序(二)LED_从ARM到GNU
就不对着数据手册说有寄存器了,主要说说ARM汇编和GNU汇编的区别,以前用RVDS2.2用的汇编程序都真ARM汇编。到用eclipse用的是编译u-boot或者内核的arm-linux-gcc,这次用的汇编要用GNU汇编,编译时交给arm-linux-gcc来做剩下的工作。 原来的一个RVDS2.2下的汇编LED程序是这样的: WTCON EQU 0x53000000 ;看门狗控制寄存器地址 GPBCON EQU 0x56000010 ;GPB控制寄存器 GPBDAT EQU 0x56000014 ;GPB数据寄存器 AREA Init,CODE,READONLY ;声明代码段 ENTRY ;表示程
[单片机]
ARM平台数据为何会莫名其妙丢失
Nand-Flash/eMMC(带有Flash控制器的Nand-Flash)作为一种非线性宏单元模式存储器,为固态大容量存储的实现提供了廉价有效的解决方案。Nand-Flash存储器具有容量大,改写速度快等优点,适用于大量数据的存储,因而越来越广泛地应用在如嵌入式产品、智能手机、云端存储资料库等业界各领域。 图 1 Nand-Flash与eMMC芯片 1.1 存储器件使用寿命 使用了Nand-Flash的主板出现丢数据掉程序现象,是一个让无数工程师毛骨悚然的事故。眼看着程序用着用着就消失了,只能干着急也无法下手。有经验的工程师手起刀落换上一颗新物料,熬夜补代码继续撑过半个项目周期。回头无处发泄还要大刀阔斧换
[嵌入式]
嵌入式系统的创新与创业,要从实处做起!
大众创业、万众创新 已经成为社会各界的基本共识。从全球来看,现代电子信息技术在与社会的互动发展中,已经用自身的成就赢得了 科技革命的牵引力 的美誉。在众创时代,嵌入式系统技术和产业该如何适时调整发展战略,以适应并引领这一新时代的发展,从而展示可以作为创新和创业核心力的伟大精神和使命? 2016年慕尼黑上海电子展之际,由嵌入式系统联谊会与 上海计算机学会普适计算与嵌入式系统 专业委员会共同举办的 嵌入式系统的创新与创业研讨会 (暨嵌入式系统联谊会第18次主题讨论会和 上海计算机学会普适计算与嵌入式系统 专业委员会春季研讨会),在中国电子工业基础和实力最为雄厚的上海举行。各界人士汇聚华东师大工程研究中心,共同探讨有关嵌入式系统创新
[嵌入式]
ARM9(S3C2440) UART
数据通信的方式 数据通信的方式基本分为: (1)、并行通信:多条数据线将数据的各位同属传送。 特点:传输速度快,适用于短距离通信。 (2)、串行通信:一条数据线将数据一位一位的顺序传送。 特点:线路简单,低成本,适用于远距离通信。 一: 异步通信: 以一个字符为传输单位,通信中两个字符间的时间间隔是不固定的,然而同一个字符中的两个相邻位之间的时间间隔是固定的。 二: 通信协议 指双方约定的一些规则。在异步通讯时,对数据格式有如下的约定:有空闲位,起始位,资料位,奇偶校验位,停止位。 (1)、起始位:先发送一个逻辑信号“0”信号,表示传输字符的开始。 (2)、数据位:紧接在起始位之后。数
[单片机]