基于开发板的二次嵌入式开发

嵌入式软件开发是一个交叉开发过程,咱们能够在特定的 EDA 工具环境下面进行开发, 使用开发板进行二次开发,这样缩短了开发周期,提升了产品的可靠性,下降了开发难度。编程

咱们把脱离于硬件的嵌入式软件开发阶段称之为“PC 软件”的开发。在“PC 软件”开发阶段,能够用软件仿真,即指令集模拟的方法 来对用户程序进行验证。在 ARM 公司的开发工具中,ADS内嵌的 ARMulator和 RealView 开发工具中的ISS都提供了这项功能。在模拟环境下,用户能够设置 ARM 处理器的型号、时钟频率等,同时还能够配置存储器访问接口的时序参数。程序在模拟环境下运行,不但可以进行程序的运行流程和逻辑测试,还可以统计系统运行的时钟周期数、存储器访问周期数、处理器运行时的流水线状态(有效周期、等待周期、连续和非连续访问周期)等信息。这些宝贵的信息是在硬件调试阶段没法取得的,对于程序的性能评估很是有价值。为了更加完整和真实地模拟一个目标系统,ARMulator和ISS还提供了一个开放的 API编程环境。用户能够用标准C 来描述各类各样的硬件模块,连同工具提供的内核模块一块儿,组成一个完整的“软”硬件环境。在这个环境下面开发的软件,能够更大程度地接近最终的目标。利用这种先进的 EDA工具环境,极大地方便了程序开发人员进行嵌入式开发的工做。完成一个“PC 软件”的开发 以后,只要进行正确的移植,一个真正的嵌入式软件就开发成功了。随着嵌入式相关技术的迅速发展,嵌入式系统的功能愈来愈强大,应用接口更加丰富;根据实际应用的须要设计出特定的嵌入式最小系统和应用系统,是嵌入式系统设计的关键。 架构

1、嵌入式最小系统的硬件模块

1.最小硬件模块 工具

嵌入式最小系统便是在尽量减小上层应用的状况下可以使系统运行的最小化模块配 置。对于一个典型的嵌入式最小系统都是以处理器为核心的电路,以 S3C2410芯片为例,其 构成模块及其各部分功能如图所示,其中,ARM 微处理器、Flash和 SDRAM 模块是嵌 入式最小系统的核心部分。性能

图片发自简书App

电源模块:为系统正常工做提供电源。 开发工具

时钟模块:一般经 ARM 内部锁相环进行相应的倍频,以提供系统各模块运行所需的时钟频率输入。测试

复位模块:实现对系统的复位。操作系统

JTAG 模块:实现对程序代码的下载和调试。设计

Flash存储模块:存放启动代码、操做系统和用户应用程序代码。调试

SDRAM 模块:为系统运行提供动态存储空间,是系统代码运行的主要区域。接口

UART 模块:实现对调试信息的终端显示。

2.存储器接口

ARM 处理器与存储器(Flash和 SDRAM)的接口技术是嵌入式最小系统硬件设计的关键。嵌入式系统中经常使用的存储器有 NorFlash、NandFlash和SDRAM。

(1) ARM 处理器与 NorFlash接口技术

NorFlash带有SRAM 接口,有足够的地址引脚,能够很容易地对存储器内部的存储单元 进行直接寻址。

双 Flash独立片选:该方式是把两个 NorFlash芯片各自做为一个独立的单元进行处理。 根据不一样的应用须要,能够在一块 Flash中存放启动代码,而在另外一块 Flash中创建文件系 统,存放应用代码。该方式操做方便,易于管理。

双 Flash统一片选:该方式是把两个 NorFlash芯片合为一个单元进行处理,ARM 处理 器将它们做为一个并行的处理单元来访问,如将两个8bit的 NorFlash芯片ST39VF1601用 做一个16bit单元来进行处理。对于 N(N>2)块 Flash的链接方式能够此做为参考。

(2) ARM 处理器与 NandFlash接口

NandFlash接口信号比较少,地址、数据和命令总线复用。NandFlash的接口本质上是 一个I/O 接口,系统对 NandFlash进行数据访问的时候,须要先向 NandFlash发出相关命令 和参数,而后再进行相应的数据操做。ARM 处理器与 NandFlash的链接主要有3种方式:

a.运用 GPIO 引脚方式去控制 NandFlash的各个信号,在速度要求相对较低的时候,可以 较充分地发挥 Nand设备的性能

b.运用逻辑运算方式进行链接:在该方式下,处理器的读和写使能信号经过与片选信号 逻 辑 运 算 后 去 驱 动 Nand 设 备 对 应 的 读 和 写 信 号。

c.直接芯片使能:有些 ARM 处理器(如 S3C2410)内部提供对 Nand设备的相应控制寄存 器,经过控制寄存器能够实现 ARM 处理器对 Nand设备相应信号的驱动。

图片发自简书App
(3) ARM 处理器与SDRAM 接口

嵌入式最小系统的动态存储器模块通常采用SDRAM。如今的大多数 ARM 处理器内部 都集成有SDRAM 控制器,经过它能够很容易地访问SDRAM 内部的每个字节。在实际开 发中能够根据须要选用一片或多片SDRAM。

2、嵌入式系统的启动架构

启动架构是嵌入式系统的关键技术,掌握启动架构对于了解嵌入式系统的运行原理有着重要的意义。嵌入式系统在启动时,引导代码、操做系统的运行和应用程序的加载主要有两种架构,一种是直接从 NorFlash启动的架构,另外一种是从 NandFlash启动的架构。

1.从 NorFlash启动

NorFlash具备芯片内执行(XIP,eXecuteInPlace)的特色,在嵌入式系统中常做为存放 启动代码的首选。从 NorFlash启动的架构又可细分为只使用 NorFlash的启动架构、Nor Flash与 NandFlash配合使用的启动架构。下图给出了这两种启动架构的原理框图。

图片发自简书App

单独使用 NorFlash:在该架构中,引导代码、操做系统和应用代码共存于同一块 Nor Flash中。系统上电后,引导代码首先在 NorFlash中执行,而后把操做系统和应用代码加载到速度更高的SDRAM 中运行。另外一种可行的架构是在 NorFlash中执行引导代码和操做系 统,而只将应用代码加载到SDRAM 中执行。该架构充分利用了 NorFlash芯片内执行的特色,可有效提高系统性能;不足在于随着操做系统和应用代码容量的增长,须要更大容量昂贵的 NorFlash来支撑。

NorFlash和 NandFlash配合使用:在该架构中附加了一块 NandFlash,NorFlash中存放启动代码和操做系统(操做系统能够根据代码量的大小选择存放于 NorFlash或 NandFlash),而 NandFlash中存放应用代码,根据存放的应用代码量的大小能够对 NandFlash容量作出相应的改变。系统上电后,引导代码直接在 NorFlash中执行,把 NandFlash中的操做系统和应用代码加载到速度更高的SDRAM 中执行。也能够在 NorFlash中执行引导代码和操做系统,而只将 Nand Flash中的应用代码加载到SDRAM 中执行。该架构是当前嵌入式系统中运用最普遍的启动架构之一。

2.从 NandFlash启动

有些处理器(如SAMSUNG 公司的 ARM920T 系列处理器S3C2410)支持从 NandFlash 启动的模式,它的工做原理是将 NandFlash中存储的前4KB 代码装入一个称为 Stepping stone(BootSRAM)的地址中,而后开始执行该段引导代码,从而完成对操做系统和应用程序 的加载。该方式须要处理器内部有 Nand控制器,同时还要提供必定大小额外的 SRAM 空 间,有必定的使用局限性,在实际开发中较少使用。