选择特殊符号
选择搜索类型
请输入搜索
本书内容丰富、层次清晰、力求较强的实践性和应用性,可作为高等学校有关嵌入式系统教学的教材,也可作为嵌入式系统开发与应用的参考书。
纵观嵌入式系统的发展历程,大致经历了以下四个阶段: 无操作系统阶段 嵌入式系统最初的应用是基于单片机的,大多以可编程控制器的形式出现,具有监测、伺服、设备指示等功能,通常应用于各类工业控制和飞机、等武...
目前国内外这方面的人都很稀缺。一方面,是因为这一领域入门门槛较高,不仅要懂较底层软件(例如操作系统级、驱动程序级软件),对软件专业水平要求较高(嵌入式系统对软件设计的时间和空间效率要求较高),而且必须...
你用VC++或BC++编写过应用程序吗?
嵌入式linux的LED实验
嵌入式linux的LED实验
基于嵌入式Linux系统的键盘驱动设计
为了适应嵌入式设备外设的多样性,本文以特殊矩阵键盘为例,设计了一套完整的驱动控制模块。硬件电路设计采用外扩3片SN74HC164芯片的方式,节省了GPIO引脚的使用,大大提高了利用效率。同时,在此基础上引出了Linux内核中input子系统的特性和工作机制,呈现了较为完整的输入事件由内核空间传递到用户空间进程的过程。实验结果表明,设计的驱动模块具有良好的实时性和准确性。
嵌入式学习是一个循序渐进的过程,如果是希望向嵌入式软件方向发展的话,目前最常见的是嵌入式Linux方向,关注这个方向,大概分3个阶段:
1、嵌入式Linux上层应用,包括QT的GUI开发
2、嵌入式Linux系统开发
3、嵌入式Linux驱动
Linux是开源免费的,而且其源代码是开放的,更加适合学习嵌入式。
(1) C语言是所有编程语言中的强者,因此必须非常熟练的掌握。
(2)Linux操作系统就是用C语言编写的,所以也应该先学习下Linux方面的编程,只有会应用了,才能近一步去了解其内核的精髓。
(4) 了解ARM的架构,原理,以及其汇编指令,我们在嵌入式开发中,一般很少去写汇编,但是最起码的要求是能够看懂arm汇编。
(5) 系统移植的时候,就需要你从最下层的bootloader开始,然后内核移植,文件系统移植等。
(6) 驱动开发
linux驱动程序设计既是个极富有挑战性的领域,又是一个博大精深的内容。
以上是大概的框架,
推荐学习平台:
iTOP-4412开发板涵盖嵌入式技术热点,支持linux,android,QT,Ubuntu系统
核心板参数
尺寸:50mm*60mm
高度:连同连接器在内0.26cm
CPU:Exynos4412,四核Cortex-A9,主频为1.4GHz-1.6GHz
内存:1GB 双通道 DDR3(2GB 可选)
存储4GB EMMC(16GB 可选)
电源管理:低功耗动态三星S5M8767电源管理,最优架构!
工作电压:2.65V--5.5V (推荐4.0V)
系统支持:Linux-QT/Android4.2/Ubuntu操作系统
USB HOST:板载USB3503,引出高性能HSIC,实现2路USB HOST输出
引角扩展:引出脚多达320个,满足用户各类扩展需求
运行温度:-25度至+80度区间,设备工作正常,运行良好!
底板参数
尺寸:110mm*190mm
SWITCH:电源接口
RESET:1个复位按键
POWER:电直流电源输入接口,5V/2A电源输入
TF Card:1个标准TF卡接口
USB Host:2路USB Host,支持USB2.0协议
USB OTG:1路USB OTG 2.0
以太网口:10M/100M自适应网口
PHONE:支持耳机输出
MIC:支持MIC输入
串口:2路串口
A/D:1路
User Key:5个功能按键
DIP SWITCH:1个
GPIO:20PIN(电源和地)
CAMERA接口:1个(可支持200万和500万摄像头)
WIFI接口:1个
HDMI接口:标准HDMI v1.4,1080p高清分辨率输出
LCD接口:共3个,2个LVDS接口,1个RGB接口
LCD电源开关:1个
MIPI接口:1个
实时时钟:内部实时时钟,带有后备锂电池座,断电后系统时间不丢失
BUZZER:1个蜂鸣器
JTAG接口:1个
串口、矩阵键盘、GPS接口:1个
内置Linux系统的智能投影机相比于安卓智能投影机来说可能没有那么好用、方便。Linux系统同样没有安卓系统的大众化,因此其功能也是被消费者所关注的。基于其智能性,无线上网功能也是必不可少的,市场上有新推出的内置这种系统的智能投影。不过因为其系统的落后性,不能像安卓系统一样可以安装软件,只能在其内置的浏览器浏览网页或观看视频,具有很大的局限性,因此其没有受到消费者的太多关注,只知道是智能投影机。
不过相比于安卓智能投影机,这一种内置Linux系统的智能投影机具有安卓所不具备的性能:无线网络投影和3D投影。所谓的无线网络投影是指基于某种驱动下,通过无线网络实现投影与电脑、智能手机、平板等的同步输出,解决了投影的“负担”及连接设备的距离性,这种功能相信在未来微型投影会普遍应用的。而3D投影也是一个非常普遍的功能,不过这个3D不是以前微投所说的播放红蓝3D影片,而是由左右、上下3D片源通过投影机的一个特定功能转换成3D影片,然后用3D眼镜观看出3D影院的立体感。
一个嵌入式系统装置一般都由嵌入式计算机系统和执行装置组成, 嵌入式计算机系统是整个嵌入式系统的核心,由硬件层、中间层、系统软件层和应用软件层组成。执行装置也称为被控对象,它可以接受嵌入式计算机系统发出的控制命令,执行所规定的操作或任务。执行装置可以很简单,如手机上的一个微小型的电机,当手机处于震动接收状态时打开;也可以很复杂,如SONY 智能机器狗,上面集成了多个微小型控制电机和多种传感器,从而可以执行各种复杂的动作和感受各种状态信息。
硬件层中包含嵌入式微处理器、存储器(SDRAM、ROM、Flash等)、通用设备接口和I/O接口(A/D、D/A、I/O等)。在一片嵌入式处理器基础上添加电源电路、时钟电路和存储器电路,就构成了一个嵌入式核心控制模块。其中操作系统和应用程序都可以固化在ROM中。
(1)嵌入式微处理器
嵌入式系统硬件层的核心是嵌入式微处理器,嵌入式微处理器与通用CPU最大的不同在于嵌入式微处理器大多工作在为特定用户群所专用设计的系统中,它将通用CPU许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统在设计时趋于小型化,同时还具有很高的效率和可靠性。
嵌入式微处理器的体系结构可以采用冯·诺依曼体系或哈佛体系结构;指令系统可以选用精简指令系统(Reduced Instruction Set Computer,RISC)和复杂指令系统CISC(Complex Instruction Set Computer,CISC)。RISC计算机在通道中只包含最有用的指令,确保数据通道快速执行每一条指令,从而提高了执行效率并使CPU硬件结构设计变得更为简单。
嵌入式微处理器有各种不同的体系,即使在同一体系中也可能具有不同的时钟频率和数据总线宽度,或集成了不同的外设和接口。据不完全统计,全世界嵌入式微处理器已经超过1000多种,体系结构有30多个系列,其中主流的体系有ARM、MIPS、PowerPC、X86和SH等。但与全球PC市场不同的是,没有一种嵌入式微处理器可以主导市场,仅以32位的产品而言,就有100种以上的嵌入式微处理器。嵌入式微处理器的选择是根据具体的应用而决定的。
(2)存储器
嵌入式系统需要存储器来存放和执行代码。嵌入式系统的存储器包含Cache、主存和辅助存储器,其存储结构如图1-2所 示。
1>Cache
Cache是一种容量小、速度快的存储器阵列它位于主存和嵌入式微处理器内核之间,存放的是一段时间微处理器使用最多的程序代码和数据。在需要进行数据读取操作时,微处理器尽可能的从Cache中读取数据,而不是从主存中读取,这样就大大改善了系统的性能,提高了微处理器和主存之间的数据传输速率。Cache的主要目标就是:减小存储器(如主存和辅助存储器)给微处理器内核造成的存储器访问瓶颈,使处理速度更快,实时性更强。
在嵌入式系统中Cache全部集成在嵌入式微处理器内,可分为数据Cache、指令Cache或混合Cache,Cache的大小依不同处理器而定。一般中高档的嵌入式微处理器才会把Cache集成进去。
2>主存
主存是嵌入式微处理器能直接访问的寄存器,用来存放系统和用户的程序及数据。它可以位于微处理器的内部或外部,其容量为256KB~1GB,根据具体的应用而定,一般片内存储器容量小,速度快,片外存储器容量大。
常用作主存的存储器有:
ROM类 NOR Flash、EPROM和PROM等。
RAM类 SRAM、DRAM和SDRAM等。
其中NOR Flash 凭借其可擦写次数多、存储速度快、存储容量大、价格便宜等优点,在嵌入式领域内得到了广泛应用。
3>辅助存储器
辅助存储器用来存放大数据量的程序代码或信息,它的容量大、但读取速度与主存相比就慢的很多,用来长期保存用户的信息。
嵌入式系统中常用的外存有:硬盘、NAND Flash、CF卡、MMC和SD卡等。
(3)通用设备接口和I/O接口
嵌入式系统和外界交互需要一定形式的通用设备接口,如A/D、D/A、I/O等,外设通过和片外其他设备的或传感器的连接来实现微处理器的输入/输出功能。每个外设通常都只有单一的功能,它可以在芯片外也可以内置芯片中。外设的种类很多,可从一个简单的串行通信设备到非常复杂的802.11无线设备。
嵌入式系统中常用的通用设备接口有A/D(模/数转换接口)、D/A(数/模转换接口),I/O接口有RS-232接口(串行通信接口)、Ethernet(以太网接口)、USB(通用串行总线接口)、音频接口、VGA视频输出接口、I2C(现场总线)、SPI(串行外围设备接口)和IrDA(红外线接口)等。
硬件层与软件层之间为中间层,也称为硬件抽象层(Hardware Abstract Layer,HAL)或板级支持包(Board Support Package,BSP),它将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据BSP 层提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。BSP具有以下两个特点。
硬件相关性:因为嵌入式实时系统的硬件环境具有应用相关性,而作为上层软 件与硬件平台之间的接口,BSP需要为操作系统提供操作和控制具体硬件的方法。
操作系统相关性:不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式。
实际上,BSP是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部分与硬件联系紧密的软件模块。设计一个完整的BSP需要完成两部分工作:嵌入式系统的硬件初始化以及BSP功能,设计硬件相关的设备驱动。