历史上的今天

今天是:2024年09月22日(星期日)

正在发生

2020年09月22日 | 嵌入式系统的远程更新该如何进行?常见的嵌入式操作系统

发布者:悠闲时光 来源: elecfans关键字:嵌入式系统  远程更新  操作系统 手机看文章 扫描二维码
随时随地手机看文章

  嵌入式系统的远程更新该如何进行?

  嵌入式系统在各个领域有着广泛的应用,嵌入式系统的维护与升级也变得日益重要。由于新技术的不断涌现和对系统功能、性能等要求的不断提高,开发者必须能够针对系统进行升级和维护,以延长系统的使用周期,改善系统性能,增强系统适应性。


  传统的嵌入式升级方式通常由维护人员到达设备现场进行重新烧写系统或者更换Flash存储部件,当设备数量庞大并且分布范围广泛时,这种升级维护方式的工作量将非常大,而且耗费的时间长、成本高。随着嵌入式技术的迅速发展,嵌入式系统的远程升级技术得到了快速发展。参考文献提出了一种基于GPRS的嵌入式系统软件的远程在线升级,通过GPRS网络实现对ARM嵌入式终端的系统软件进行在线升级。这种方法的不足在于无法实现系统本身的远程升级。参考文献实现了一种在Bootloader中实现嵌入式系统自动升级的方法,这种方法是将映像文件存储在CF卡中,系统重启时Bootloader将检测CF卡中的映像文件,读取映像文件并烧写到目标板的Flash中,实现升级。如果终端的数量较大且分布广泛,采用这种方法会增加很大的工作量。

Linux 一开始是基于Intel 386 机器而设计,但是随着网络的散布,各式各样的需求涌现,因此就有许多工程师致力于各式平台的移植,造成了 Linux 可以在 x86、MIPS、ARM/StrongARM、PowerPC、Motorola 68k、Hitachi SH3/SH4、 Transmeta.。等等平台上运作的盛况。这些平台几乎涵盖了所有嵌入式系统所需的 CPU,因此选择 Linux 就可以把更多的硬件平台纳入考量的范围。

  本文针对嵌入式Linux操作系统提出了一种新的更新机制,并且基于ARM9微处理器和NAND Flash存储器,对uboot和Linux内核进行修改,实现了对嵌入式Linux系统的远程自动更新。克服了传统方法工作量大的缺点,具有操作简单、更新速度快的特点。


  1 基本原理

  1.1 总体结构

  支持远程自动更新的嵌入式Linux系统机构,它可以分为嵌入式终端和远程管理系统两部分。系统的总体结构如图1所示,嵌入式终端采用基于ARM9架构的AT91RM9200微处理器,采用扩展的32MB SDRAM,由2片16位数据宽度的SDRAM芯片HY57V281620并连而成,采用64MB NANDFla sh存储芯片K9F1208,运行嵌入式Linux系统。远程管理系统选用PC机。嵌入式终端通过以太网连接到远程管理系统,管理人员可以通过telne t即可对各个嵌入式终端进行监控、管理和远程更新。


  1.2 系统更新流程

  本设计对uboot和Linux内核进行改造,使其支持YAFFS2文件系统,对系统添加ftp、telnet等应用服务。系统更新流程如图2所示。系统正常运行时管理人员可以通过telnet远程登录到嵌入式终端进行监控和管理。当需要对系统进行更新时,通过远程管理系统的ftp客户端登录到嵌入式终端,将需要更新的内核映像和文件系统上传到NAND Flash。上传完毕后对原有的内核映像和文件系统进行备份并重启系统。系统重启后uboot将NAND Flash中更新后的内核映像和文件系统搬运到SDRAM中,然后跳转到SDRAM中启动Linux系统,挂载YAFFS2文件系统,启动各种应用服务。

Linux 一开始是基于Intel 386 机器而设计,但是随着网络的散布,各式各样的需求涌现,因此就有许多工程师致力于各式平台的移植,造成了 Linux 可以在 x86、MIPS、ARM/StrongARM、PowerPC、Motorola 68k、Hitachi SH3/SH4、 Transmeta.。等等平台上运作的盛况。这些平台几乎涵盖了所有嵌入式系统所需的 CPU,因此选择 Linux 就可以把更多的硬件平台纳入考量的范围。

  常见的嵌入式操作系统有哪些?

  DOS

  微软一开始选用了派特森的Q-DOS “QUICK AND DISK OPERATING SYSTEM ”为基础然后再扩充功能而成 MS-DOS,主要是采用由IBM 提供的使用8088 微处理器的计算机作开发平台,它是以16 字节单人单工操作系统,特别适合一些功能简单装置使用。


  Windows CE

  虽然微软 Windows 系统已经称霸了 PC Desktop 环境。但是对于嵌入式系统这块大饼,微软也是垂涎已久,桌上型的 Windows 桌业系统对于嵌入式系统来说自然是太过于肥大的产物,于是微软推出精简版的 Windows CE 作为进攻嵌入式系统的主力。目前主要应用于 PDA 上头,但是跟微软一系列 Windows 系统一般,Windows CE也承袭了原有的缺点:耗系统资源、不稳定、效率不佳等等。毛病实在太多,后来将整个架构重新改写后推出 Windows CE 3.0 版,或称为 Pocket PC。改版之后的确改进了不少缺点。

Linux 一开始是基于Intel 386 机器而设计,但是随着网络的散布,各式各样的需求涌现,因此就有许多工程师致力于各式平台的移植,造成了 Linux 可以在 x86、MIPS、ARM/StrongARM、PowerPC、Motorola 68k、Hitachi SH3/SH4、 Transmeta.。等等平台上运作的盛况。这些平台几乎涵盖了所有嵌入式系统所需的 CPU,因此选择 Linux 就可以把更多的硬件平台纳入考量的范围。

  Windows CE 可应用于 PDA 、WebPAD、Thin Client等等。是采用 Windows CE 为操作系统的 SIMPad (西门子公司所有)。


  Palm

  由 Palm CompuTIng 公司的嵌入式操作系统,目前最大的应用在 PDA ,是市场占有率最高的 PDA 操作系统,Palm 操作系统架构非常简洁,因为少去了很多功能,如内存管理、多任务等等,使得 Palm 可以非常不耗系统资源,硬件需求低,连带的整体耗电量便可压缩到非常低,因此采用 Palm 操作系统的 PDA 都有待机时间长的优点。


  EPOC

  由英国手持装置大厂 Psion 所开发,常用于 PDA 与手机结合的场合。最有名的例子 Nokia 9110 系列手机,它就是采用 EPOC 系统。


  著名的嵌入式实时系统

  实时系统是嵌入式系统里头非常重要的一环,很多人都误以为实时系统执行速度非常快的系统,事实上不然,所谓实时代表的意义是『实时反应』,一般多人多任务操作系统如:Windows 、 UNIX ,在上面执行的软件都一起分享 CPU ,因为 CPU 速度快,所以我们感觉好象可以同时执行多支软件,其实在系统内部的同一时间内都只有一个程序在执行,每个软件都必须排队,而且规定只能用一小段时间后就要换下一位,但是因为 CPU 速度够快,很快又可以被执行到,所以人们感觉并不会很明显软件是一段一段在执行。这是一般所谓的非实时性的操作系统运作模式,而实时操作系统具有立即反应而且不能让出资源的特性,例如汽车的 ABS 煞车系统,如果不采用能够立即反应的实时系统,后果可就不堪设想。而这类的应用多半多属体积小、功能简单的地方,所以也算是嵌入式系统。 QNX 的 QNX OS 、WindRiver 的 VxWorks、Microware 的 OS9、pSOS 等等,都是有名的嵌入式实时系统公司。

Linux 一开始是基于Intel 386 机器而设计,但是随着网络的散布,各式各样的需求涌现,因此就有许多工程师致力于各式平台的移植,造成了 Linux 可以在 x86、MIPS、ARM/StrongARM、PowerPC、Motorola 68k、Hitachi SH3/SH4、 Transmeta.。等等平台上运作的盛况。这些平台几乎涵盖了所有嵌入式系统所需的 CPU,因此选择 Linux 就可以把更多的硬件平台纳入考量的范围。

  Linux

  Linux 不是都用来做服务器吗?不然就是 Cluster,怎么会跟嵌入式系统扯上关系?不要怀疑,Linux 除了对伺服工作应付自如外,嵌入式系统也难不倒 Linux。


  那么究竟 Linux 有怎样独特的能耐,可以想变大就变大想缩小就缩小?又用 Linux 来发展嵌入式系统有什么优点?请看底下介绍。


  开放原始码、模块化设计

  Linux 采用 GPL 授权,除了把原始码公开以外,任何人都可以自由使用、修改、散布,而 Linux 核心本身采模块化设计,让人很容易增减功能,例如我的平台并不需要蓝芽的功能,我只要不把这项功能加入,有需要就加入,不需要就删除,由于这样的高的弹性,我们可以调校出最适合我们硬件平台的核心出来。


  相较于 Linux ,Windows 是走封闭原始码路线,所以我们完全无法得知或修改它的核心部份。另外因为是采用 GPL 授权自然就没有什么权利金或保密协议的约束。


  稳定性够

  Linux 不属于任何一家公司,但是它的开发人员却是全世界最多的,每天在全球都有无数的人参与 Linux Kernel 的改进、除错、测试,这样严苛的条件造就了稳定度高的 Linux 。


  就因为如此,Linux 虽不是商业的产物但是品质却不逊于商业产品。


  网络功能强大

  Linux 的架构是参造 UNIX 系统而来,因此 Linux 也承袭了 UNIX 强大的网络功能。在这个每样事情都讲求网络的时代下,只能说是 Linux 大放异彩 的年代。未来可能家里的电冰箱、冷气、电视机都会连上网络,如何增加这些家电的网络功能,Linux 可以替他们办到。


  跨平台

  Linux 一开始是基于Intel 386 机器而设计,但是随着网络的散布,各式各样的需求涌现,因此就有许多工程师致力于各式平台的移植,造成了 Linux 可以在 x86、MIPS、ARM/StrongARM、PowerPC、Motorola 68k、Hitachi SH3/SH4、 Transmeta.。等等平台上运作的盛况。这些平台几乎涵盖了所有嵌入式系统所需的 CPU,因此选择 Linux 就可以把更多的硬件平台纳入考量的范围。


  嵌入式环境不如 x86 PC 那样单纯,嵌入式环境所采用的 CPU 架构之多,使用 Linux 作开发,就等于有更多硬件的选择,硬件成本是商业公司考量的一大重点,选择多自然可以找到最合适的硬件,对于公司的竞争力是有极大的帮助。

Linux 一开始是基于Intel 386 机器而设计,但是随着网络的散布,各式各样的需求涌现,因此就有许多工程师致力于各式平台的移植,造成了 Linux 可以在 x86、MIPS、ARM/StrongARM、PowerPC、Motorola 68k、Hitachi SH3/SH4、 Transmeta.。等等平台上运作的盛况。这些平台几乎涵盖了所有嵌入式系统所需的 CPU,因此选择 Linux 就可以把更多的硬件平台纳入考量的范围。

  应用软件众多

  自由软件世界里有个很大的特色就是软件超级多,而且几乎都是符合 GPL 标准,换句话说,大家都可以自由取用,因为这些软件多半是由工程师业余空暇时间所发展,而且不以营利为性质,所以并不能担保这些软件完全没有 BUG ,但是仍旧有许多杀手级的软件出现,大家熟知的 KDE 与 GNOME 便是很好的证明,当然与嵌入式系统较为相关如:gcc 编译器、Kdevelop 整合式开发环境等等。


  通常我们都会先在 PC 端造出仿真出嵌入式的环境,并直接在上头开发,因此用的工具也都与开发一般 Desktop 软件类似,良好的工具能够增加开发的速度。


  选择多样

  如果公司有能力可以自己实作 Linux 嵌入式系统,因为程序代码全部都开放在那里,您可以随心所欲的设计出自己想要的 Embedded Linux 系统,但是有更多的公司的业务重点不在于此,这时候您也可以选择购买商业版的 Embedded Linux 系统,像是有名的 Redhat 公司、Lineo、MontaVista.。等等,这些都是商业的 Linux 公司,购买他们的产品就可以得到完整的服务。因此商业或非商业全都在于您的需求。


  自行开发系统

  当然您也可以自行开发系统,严格控制硬件,但是相对的必须投注更大的成本在于研发系统上,原则上如果目标简单明确只是一些基本的 I/O 控制,例如:跑马灯。便适合自己开发,但是如果系统过于复杂则必须审慎评估自行研发的难度与时程的控管

关键字:嵌入式系统  远程更新  操作系统 引用地址:嵌入式系统的远程更新该如何进行?常见的嵌入式操作系统

上一篇:单片机和linux有什么区别?
下一篇:C语言编程程序优化方案,如何选择ARM核心处理器操作系统

推荐阅读

使用SWD通过J-Flash烧写STM32时,会出现各式各样的错误; 总结下原因: 1、复位脚被拉低了,这次我遇到的就是复位引脚的电容焊反了(钽电容),可以正常连接,但是烧写程序时会出现如下报错 –> - Erasing affected sectors … - ERROR: RAM check failed @ address 0x20000000. - ERROR: Write: 0x03020100 07060504 - ERROR: Read: 0x0...
虽然距离正式发布还有几天时间,但苹果近期已经却向部分测试用户提前开放了Apple Arcade服务,我们一起来了解一下。  苹果的游戏订阅服务Apple Arcade首发时并不像苹果宣传的那样会有超过100款游戏供用户选择,现在看来将只有超过50款游戏,列表如下:  - Assemble With Care (usTwo)  - Shantae and the Seven Sirens (Wa...
近日,国际公认的检验、鉴定、测试和认证机构 SGS 向 TCL 华星颁发了全球首张 SGS Low Blue Light EX 认证证书。继今年 11”WQXGA Tablet 产品通过 SGS 低蓝光认证后,TCL 华星 7.09”FHD+手机产品紧接着通过了全球首张 SGS 低蓝光 EX 升级版认证。此次认证再一次彰显了 TCL 华星在低蓝光技术的领先地位。 关于 TCL 华星低蓝光技术,研究...
  中小型电机额定电流的国际规范  指三相异步电动机在额定电压、额定频率和额定负载下运行时,三相定子绕组中通过的线电流,单位为A.由于定子绕组的连接方式不同,额定电压不同,电动机的额定电流也不同。例如,一台额定功率为10kW的三相异步电动机,其绕组作三角形连接时,额定电压为220V,额定电流为68A;其绕组作星形连接时,额定电压为380V,额定...

史海拾趣

问答坊 | AI 解惑

西安的吸波材料

     陕西中科纳米材料股份有限公司是由中国科学院所属的华资资产管理有限公司、华夏世纪创业投资有限公司、北京嘉隆投资管理有限责任公司、江苏中诚信投资有限公司共同出资兴建。采用中科院研制开发的NPP-法新工艺技术, ...…

查看全部问答∨

51单片机

[推荐分享] 免费申请实验板啦! 下载50mb 的开发资料包:实例,原理图,keil 正式版,下载实验板免费申请中 下载50个单片机程序实例和开发板原理图,学林电子免费开发板新年助学活动报名啦! 申请主贴地址:  http://www.51c51.com/bbs/thread ...…

查看全部问答∨

Juniper防火墙命令行查错工具(debug flow basic)

相对于其他防火墙而言,Juniper防火墙提供许多有效的查错工具,其中之一就是debug flow basic, 应用方式举例如下: Hyfqx`^   fm9NJ; JE   1. 先设置过滤列表,使得防火墙只对需要的数据包进行分析. 即set ffilter命令: \'L ...…

查看全部问答∨

wince4.2 下程序的如何调试

evc4.0的编译的debug是不是没有加堆栈的安全检测,最近在调试时报错老是不能定位到程序的出错函数堆栈。 各位高手都有什么方式调试的,是不是还有其他的工具?? vs2005支不支持wince4.2…

查看全部问答∨

30vdc 10A 继电器可以控制220v的负载吗

本帖最后由 paulhyde 于 2014-9-15 08:58 编辑 30vdc   10A  继电器可以控制220v的负载吗  …

查看全部问答∨

ARM和Thumb究竟有什么不同呢?

刚开始学,很困惑啊,好像说CM3只能ARM态,又说Thumb高效。 大侠解释下啊。…

查看全部问答∨

请教:关于端口供电问题

430的串口应该是3.3V的TTL逻辑电平吧? 问题是这样,我这里有另外一个外接设备A,提供TTL接口,悬空的时候用电表测了一下,TXD和 RXD都在3.3-3.7V左右,我看有些说明上说,TTL引脚悬空时,默认为高电平,那是不是可以说明 这个设备A也是3.3V的TT ...…

查看全部问答∨

调试ADUC7060!

用J-LINK 在KEIL4 下,刚开始还可以读到ID的,强制烧了下就连不上了!     还有ARMWSD那里可以下的到,找了半天都找不到这个软件 [ 本帖最后由 蓝雨夜 于 2011-8-13 11:58 编辑 ]…

查看全部问答∨

(新手)定时器A使P1.0口输出方波

#include<msp430g2231.h> void main( void ) {   WDTCTL = WDTPW + WDTHOLD;//关闭看门狗   P1DIR |=0x01;//设置P1.0为输出   CCTL0 = CCIE;//CCTL0中断使能   CCR0 = 50000;//计数器值初始化 5 ...…

查看全部问答∨

SPI发送位判断

请问各位,用SPI发送数据,判断是否发送完成应该采用寄存器的哪位判断呢, while(SpibRegs.SPISTS.bit.BUFFULL_FLAG!=0){} while(SpibRegs.SPISTS.bit.INT_FLAG!=0){} 我用如上两位判断,发现第一种BUFFULL_FLAG只是数据移到SPIDAT中置位,并不 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多往期活动
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved