在进行嵌入式系统的开发时,首先面临的难题就是如何挑选一个适合自己的开发平台。ARM系列处理器是专门针对嵌入式设备设计的,是目前构造嵌入式系统硬件平台的首选。本文将介绍如何挑选适合实际需要的嵌入式开发平台,如何构建实用的开发环境,以及如何迈出嵌入式Linux系统开发的第一步。

选用指南

在进行嵌入式系统的开发之前,首先必须要选择恰当的开发平台。对于经验丰富的开发者来说,当然可以自己动手组装硬件,然后挑选合适的嵌入式Linux系统,将其移植到开发平台上。但对于初学者来说,可能更好的办法是购买硬件厂商已经做好的开发板,将精力集中在应用程序的开发上。

虽然ARM微处理器有多达十几种的内核结构、几十个芯片生产厂家和众多的功能组合,但这也给广大嵌入式开发人员在确定方案时带来了一定的困难。客观上讲,嵌入式系统一般都是量身打造的。开发人员必须依据客户需求选择合适的软硬件平台,否则的话要么无法完成所要求的功能,要么就会造成资源的浪费,挑选出一个合适的方案确实很不容易。初学者在做决定时不妨借鉴下面的一些经验。

ARM公司设计了一系列的微处理器内核结构,以适应不同应用领域的需要。如果用户希望使用Windows CE或标准Linux等操作系统来减少软件开发时间,就需要选用ARM720T以上带有内存管理单元(MMU)的ARM芯片,如ARM720T、ARM920T、ARM922T、ARM946T等。但对于ARM7TDMI这类没有MMU的微处理器来说,只能运行像UcLinux那样不需要MMU支持的操作系统,而无法运行标准的Linux。

微处理器的工作频率在很大程度上决定了其运算能力的高低。ARM7系列微处理器的典型处理速度为0.9MIPS/MHz,常见的ARM7芯片的系统主时钟为20MHz到133MHz;ARM9系列微处理器的典型处理速度为1.1MIPS/MHz,常见的ARM9芯片的系统主时钟为100MHz到233MHz;ARM10系列微处理器的典型处理速度为1.25MIPS/MHz,其时钟频率则可以高达400MHz。不同ARM芯片对时钟的处理各不相同。有些芯片只有一个主时钟频率,而有些芯片的内部时钟控制器则可以分别为ARM核、USB、UART和DSP等功能部件提供不同频率。

大多数ARM微处理器片内存储器的容量都不大,需要用户在设计嵌入式系统时扩充外部存储器。

除了ARM微处理器核之外,几乎所有的ARM芯片都根据各自不同的应用领域扩展了相应的功能模块,并集成在芯片之中,从而形成了片内外围电路,如USB接口、I/O接口、RTC和LCD控制器等。嵌入式系统的开发人员应该尽可能运用这些外围电路,来实现系统所要求的功能。这样既可以简化系统的设计,同时又能够提高系统的可靠性。

为嵌入式系统挑选合适的硬件平台是一件很复杂的工作。以上给出的只是一些基本的原则,实际应用当中还要根据情况灵活确定。笔者在展开对嵌入式Linux的研究和开发之时,经过比较和鉴别,选用了一款基于S3C4510B处理器的开发板。它是由三星公司推出的一款具有很高性价比的16/32位RISC微控制器,采用的是ARM公司提供的ARM7TDMI RISC处理器核。由于它具有高性能、低功耗等优点,因此特别适合于对价格和功耗比较敏感的应用场合,如手持设备、网络通信和工业控制等。

快速入门

下面就来一睹嵌入式Linux的芳容。如果用户的开发板是由专门的硬件厂商提供的,一般来说都会预装一个嵌入式操作系统,如Windows CE、Palm OS或Linux等。此处介绍的S3C4510B开发板预装的是嵌入式Linux。我们不妨借用它来感受一下嵌入式Linux的开发方法。如果用户的开发板是自己组装的,或者买来时预装的是其它的嵌入式操作系统,那么就需要自己动手来重新构建系统了。

正如前面介绍过的,在开发嵌入式系统时需要用到两个平台:一个是开发平台(Host),另一个是目标平台(Target)。开发平台通常用普通的PC机充当。它可以通过串行端口、并行端口和以太网等方式与目标平台相连,从而共同构成一个嵌入式系统的基本开发环境。对于嵌入式Linux系统来说,最简单的开发环境只需要用到宿主机、目标板和串行连接线。

当硬件连接好之后,接下去该做的就是要在宿主机和目标板之间建立起连接。这需要在宿主机上运行一个终端仿真程序。Linux下终端仿真程序非Minicom莫属。Minicom是一个界面友好,并且容易使用的串口通信程序,利用它可以很方便地对串行端口进行监视或控制,是嵌入式Linux开发环境中非常重要的一个组成部分。稍微了解串行通信的人都知道,进行串行通信时比较麻烦的是通信参数的设置。好在Minicom提供了非常友好的配置界面,通过执行下面的命令将进入Minicom的配置界面。
# minicom -s

从选单中选择Serial port setup项,进入串行端口配置界面。然后用户根据所用开发板的具体情况,选择正确的串行设备文件、波特率、数据位、停止位、奇偶校验位、硬件流控制和软件流控制参数。在图4中选择的参数代表使用串口1(/dev/ttyS0)、波特率为19200bps、数据8位、无奇偶校验位、停止1位、无硬件流控制和无软件流控制。

在设置好串行通信的参数之后,重新返回到Minicom的主配置界面;然后选择Save setup as dfl项保存当前配置值;再选择Exit from Minicom项退出Minicom。

如果一切正常,下面就可以通过Minicom来与开发板建立起正常的通信了。首先执行如下命令再次进入Minicom:
# minicom

然后接通开发板上的电源,或者按下开发板上的复位键,就可以在Minicom中监视到开发板上嵌入式Linux系统的当 前运行状态。可以将Minicom想象成是开发板上嵌入式Linux系统的一个虚拟终端,也就是说在Minicom中输入的所有命令都将交由开发板上的嵌入式Linux系统来进行处理。

小结

构建嵌入式系统的首要任务是明确它到底要做些什么。用途决定了嵌入式系统的整个行为模式和体系结构,同时也决定了它所应该采用的硬件平台和软件平台。为嵌入式系统挑选目标平台必须审慎,因为这牵涉到有没有好的开发环境和技术支持,一定要根据实际情况来挑选合适的处理器、合适的开发板和合适的开发环境。在开发嵌入式系统时请始终牢记一点,用户需求永远是嵌入式系统的“第一推动力”。

相关链接

ARM处理器简介

ARM(Advanced RISC Machines)公司位于英国剑桥,主要业务是设计16位和32位的嵌入式微处理器。但它本身并不生产和销售芯片,而是采用技术授权的方式,让其它半导体制造商进行ARM微处理器的制造。

采用RISC结构的ARM处理器具有如下一些典型的特点:体积小、功耗低、成本廉、性能高;支持Thumb(16位)/ARM(32位)双指令集;寄存器数量众多,指令执行速度快;绝大多数据操作都在寄存器中完成;寻址方式灵活简单,执行效率高;采用固定长度的指令格式。

基于ARM的嵌入式Linux开发平台相关推荐

  1. linux 挂iscisc存储,基于arm的嵌入式linux操作系统的移植研究-通信与信息系统专业论文.docx...

    基于arm的嵌入式linux操作系统的移植研究-通信与信息系统专业论文 Classified Index: TP316.8 U.D.C: 621.38 Dissertation for the Mas ...

  2. 基于ARM的嵌入式Linux移植真实体验(3)――操作系统

    基于ARM的嵌入式Linux移植真实体验(3)――操作系统 宋宝华[email]21cnbao@21cn.com[/email] 出处:dev.yesky.com 在笔者撰写的<C语言嵌入式系统 ...

  3. 基于ARM的嵌入式Linux移植真实体验(1)――基本概念

    基于 ARM 的嵌入式 Linux 移植真实体验( 1 ) ――基本概念 宋宝华   [email]21cnbao@21cn.com[/email] 出处:dev.yesky.com 1. 引言 AR ...

  4. 基于ARM的嵌入式Linux移植真实体验(4)――设备驱动

    基于 ARM 的嵌入式 Linux 移植真实体验( 4 ) ――设备驱动 宋宝华 [email]21cnbao@21cn.com[/email] 出处:dev.yesky.com 设备驱动程序是操作系 ...

  5. arm板telnetd为什么运行不了_一种基于ARM的嵌入式系统开发的方案详细讲解

    背景介绍 在日益信息化的社会中,各种各样的嵌入式系统已经全面渗透到日常生活的每一个角落.嵌入式系统的功能越来越复杂,这就使得一个嵌入式系统产品从市场需求立项到方案选择.样机研制.定型量产所需要的开发费 ...

  6. 嵌入式linux配置qt,基于qt的嵌入式Linux开发环境搭建

    摘要:本文主要介绍在PC机上搭建基于QT的嵌入式开发环境,其中很多源文件都是开发板自带,需要相应资料的可以评论留下邮箱地址. 版本:交叉编译工具链:GCC 4.7.3  [gcc-linaro-arm ...

  7. 基于ARM的嵌入式linux 内核的裁剪与移植

    0 引言     微处理器的产生为价格低廉.结构小巧的CPU和外设的连 接提供了稳定可靠的硬件架构,这样,限制嵌入式系统发展的瓶颈就突出表现在了软件方面.尽管从八十年代末开始,已经陆续出现了一些嵌入式 ...

  8. 基于ARM的嵌入式Linux移植真实体验1-基本概念

    1.引言 ARM是Advanced RISC Machines(高级精简指令系统处理器)的缩写,是ARM公司提供的一种微处理器知识产权(IP)核. ARM的应用已遍及工业控制.消费类电子产品.通信系统 ...

  9. 基于arm的嵌入式QT开发(课程设计)

    一. 项目要求 配置QT5.7基于x86及arm 等两种CPU架构的调试及开发环境: 移植arm编译后的QT5.7及屏幕校准工具tslib1.4至CORTEX ARM9实验平台: 开发基于QT5.7的 ...

最新文章

  1. CVPR 2021 | 不需要标注了?看自监督学习框架如何助力自动驾驶
  2. RuntimeError: maximum recursion depth exceeded
  3. 谷歌浏览器服务器协议url,谷歌浏览器在地址栏输入URL到页面展示时中间发生了什么?...
  4. Javascript url 小逻辑
  5. 安装mysql2005出错_安装mysql出的错误
  6. 场景编辑器开发第五天,设计架构重回flash,很多问题不是出在技术上而是策划上
  7. FastDFS原理及入门
  8. 东方欲晓,莫道君行早。踏遍青山人未老,风景这边独好。
  9. hdu5773 The All-purpose Zero 贪心+最长上升子序列
  10. BTA12A-ASEMI高效mos管BTA12A
  11. 为什么它有典型FaaS能力,却是非典型FaaS架构?
  12. Go语言源码中Replacer查找部份的笔记
  13. 程序流程图、N-S图、PAD图
  14. Oracle 服务器 客户端 US7ASCII、 UTF8字符编码问题
  15. QQSpider qq空间爬虫
  16. 猫咪藏在哪个房间python_猫咪总喜欢把自己藏在不可思议的地方,这是为什么呢?...
  17. c语言化学专业,通化c语言编程学习,通化学c语言编程学校,通化学c语言编程报个培训班怎么样...
  18. Endnote x9.1 基础教程——批量导入.enw格式引文到Endnote中
  19. 【Flutter 实战】各种各样形状的组件
  20. 关于远程服务器如果连接断开的话,服务器上运行的程序会被杀死的问题

热门文章

  1. Dubbo分布式事务处理--视频教程
  2. 饭后吃一种水果就能化痰止咳(附赠10个化痰小偏方)
  3. 基础-数学-最大后验概率(MAP)maximum a posteriori
  4. A example of Maximum A Posteriori (MAP) estimation
  5. AJAX如何将参数带到并传给另一个页面?
  6. K_A18_001 基于STM32等单片机采集MQ2传感参数串口与OLED0.96双显示
  7. 【C++】揭开“引用”的庐山真面目
  8. Python技巧——解析式
  9. 数字图像处理第三章<一>、灰度变换
  10. Python 表示无穷大的数