嵌入式Linux驱动学习之路(一)嵌入式系统的软硬件架构

硬件资料:

操作系统:(非虚拟机)

zws@z-pc:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04. LTS
Release: 14.04
Codename: trusty

内核版本:

zws@z-pc:~$ uname -a
Linux z-pc 4.4.--generic #~14.04.-Ubuntu SMP Tue Sep :: UTC x86_64 x86_64 x86_64 GNU/Linux

编译器版本:

      gcc version 4.8.4 (Ubuntu 4.8.4-2ubuntu1~14.04.3)     //gcc

      gcc version 4.5.1 (ctng-1.8.1-FA)            //arm-linux-gcc

开发板:TINY4412/Super4412SDK 1506

核心板:TINY4412 1306 (SOC:Exynos 4412   Cortex-A9  四核 1.5Ghz )

LCD屏:S702   5V/1A

一、 嵌入式系统硬件架构:

  微处理器:

    按位数:4位、8位、16位、32位和64位。

    按用途:嵌入式DSP和通用的嵌入式微处理器。

        嵌入式DSP专用于数字信号处理,采用哈佛结构,程序和说一句分开存储,采用一系列措施保证数字信号的处理速度。

        通用嵌入式处理器一般集成了通用微处理器的核、总线、外围借口和设备的SOC芯片,有些还会将SDP作为协处理器。

    一般的嵌入式处理器包括:

        1. 片内存储器。

        2. 外部存储器的控制器、外设接口。

        3. LCD控制器。

        4. 中断控制器。

        5. 定时器、A/D、D/A转换器。

        6. 多媒体加速器。

        7.总线。

        8. 其他标准接口或外设。

  

    常用的嵌入式微处理器按照体系结构不同,可以分为以下几个系列:

      1. ARM系列:过去称为高级精简指令集机器,是一个32位精简指令集RISC处理器架构。

      2.MIPS系列:是一种采取精简指令集RISC的处理器架构。

      3. PowerPC:是一种精简指令集RISC架构的*处理器(CPU)。

  总线:

    总线是CPU与存储器和设备通信的机制,是计算机各部件之间传递数据、地址和控制信息的公共通道。

    有3个重要的参数:

      1. 总线宽度: 又称为总线位宽,指的是总线能同时传送数据的位数。

      2. 总线频率: 工作速度的一个重要参数,频率越高速度越快。

      3. 总线带宽:  又称总线传输速率,指在一定时间内总线上可传送的数据总量,用每秒最大传输数据量来衡量。

      例如:总线宽度为32位,总线频率为66MHz,则总线带宽等于(32/8)x66=264MB/s。

    对于ARM系列的处理器而言会按照AMBA规范来设计总线。

      1. AHB(Advanced High-performance Bus):用于高性能、高时钟频率的系统模块连接。

      2. ASB(Advance System Bus): 用于并不要求AHB高性能特征的地方。

      3. APB(Advance Peripheral Bus):用于较低性能外设的简单连接。一般是接在AHB或ASB总线上的二级总线。

    还有其他流行的片外总线:I2C总线.SPI总线、UART总线、USB总线等等。

  存储器:

    典型的嵌入式系统的存储器包括芯片内部的缓存(Cache)、随机存储器(RAM)、只读存储器(ROM)、芯片外部的主存(如Nor Flash、SRAM、DRAM等)和外存(如Nand Flash、SD卡等)。

    高速缓存(Cache)存放的是当前使用得最多的程序代码和数据,即主存中部分内容的副本。在嵌入式系统中,Cache全部集成在嵌入式微处理器内,可分为数据Cache、指令Cache或混合Cache。一般在中高端的嵌入式微处理器中才会有。

    主存是处理器能直接访问的存储器,即内存。

    外村就是Nand Flas、 SD卡等。

二、 嵌入式系统的软件架构:

  嵌入式系统包含一系列抽象层次,这里是正对Linux系统进行讨论的。

  最底层是硬件层,即在嵌入式系统的硬件架构中提到的内容。

  Linux内核建立在硬件层之上,是操作系统的核心组件。其目的是为上层应用程序提供访问底层硬件的抽象接口,以适合上层软件开发。

    在整个Linux内核中,存在着高层抽象和底层抽象。高层抽象主要是为应用程序提供接口,而底层抽象主要是负责外设的驱动。处于高层抽象和底层抽象之间的是文件系统和网络协议。由于大量的文件系统和网络协议的存在,Linux内核必须处理不同格式的文件系统,而且并不会因为文件系统的不同而影响高层抽象为应用程序提供的接口。这点儿对于网络协议同样适用。

《完》

上一篇:php的运行环境介绍


下一篇:Fresco源码解析 - DataSource怎样存储数据