文章目录
- 前言
- 一、环境平台的基本介绍
- 二、ARM体系架构必备知识
- 1. 计算机三大组成
- 2. ARM的分类
- 2.1 ARM Cortex-A系列
- 2.2 ARM Cortex-R系列
- 2.3 ARM Cortex-M系列
- 3. 2440ARM的系统架构
- 总结
前言
如果大家在前期学习了c语言,并且具备了一定的c语言功底,且学习了shell,文件IO,进程线程,网络编程、数据库以及数据结构等基本的嵌入式软件的基础知识,以及做过一定项目的前提下,可以进入到本章内容的学习,那么接下来我将主要分享的是嵌入硬件部分的学习;各位同学可以跟着每期的分享一步步来,那么最终达到我们想要的高度并不是一件非常难的事情;
一、环境平台的基本介绍
硬件:友善之臂s3c2440A开发板
配套设置:jlink下载器、jtag下载器,网线;
注意:在前期裸机开发的过程中使用stlink下载方式,后期会有调整;
二、ARM体系架构必备知识
1. 计算机三大组成
计算机的三大组成:CPU、内存(RAM)和硬盘(ROM);
CPU通过地址总线与内存进行通信,内存掉电数据会丢失;
CPU与硬盘通过控制器进行连接,掉电数据不丢失;
2. ARM的分类
SOC(片上操作系统) = cpu + 功能电路(iic、spi、uart等);
这里注意ARM公司只负责芯片的设计,芯片的制造是由半导体厂商制造的;且S3C2440A是ARM9型号的产品;
那么arm的型号分类主要有以下几个:
ARM12更改命名为ARM-Cortex
ARM公司将ARM11以后的产品命名为Cortex,并分为A、R和M三个系列。Cortex系列属于ARMv7架构,是ARM公司最新的指令架构。
ARM7:ARMv4 架构
ARM9:ARMv5 架构
ARM11:ARMv6 架构
ARM-Cortex 系列:ARMv7架构
ARM7没有MMU(内存管理单元),只能叫做MCU(微控制器),不能运行诸如Linux、WinCE等这些现代的多用户多进程操作系统, 因为运行这些系统需要MMU,才能给每个用户进程分配进程自己独立的地址空间 。
ARM9、ARM11,是嵌入式CPU(处理器),带有MMU,可以运行Linux等多用户多进程的操作系统,应用场合也不同于ARM7。
2.1 ARM Cortex-A系列
性能级CPU,对主频和性能要求很高(A8 A9 A10 … A53 A76)。
该系列面向尖端的基于虚拟内存的操作系统和用户应用,也叫应用程序处理器。
应用包括:智能手机、数字电视、智能本和上网本、家用网关、电子书阅读器等。
2.2 ARM Cortex-R系列
对实时性要求很高,面向深层的嵌入式实时应用。
包括:汽车制动系统、动力传动解决方案、大容量存储控制器以及联网和打印。
2.3 ARM Cortex-M系列
MCU,单片机,针对微控制器,在该领域中需要进行快速且具有高确定性的中断管理、同时需将门数和可能功耗控制在最低。
3. 2440ARM的系统架构
ram:内存;
rom:是只读内存(硬盘),是非易失性固态半导体存储器,比如flash就是rom器件;
mpu:微处理器;
mcu:微控制器;
mmu(电路):完成虚拟地址到物理地址的转换;
sram:静态随机存取存储器(Static Random-Access Memory,SRAM)是随机存取存储器的一种。所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。当断电时,SRAM储存的数据还是会消失(被称为volatile memory),这与在断电后还能储存资料的ROM或闪存是不同的。
dram:DRAM(动态随机存取内存),最常用的一种电脑内存。它通常使用一个晶体管和一个电容器来代表一个比特。和ROM及PROM等固件内存不同,随机存取内存的两种主要类型(动态和静态)都会在切断电源之后,丢失所储存的数据。
sdram:同步动态随机存取内存(synchronous dynamic random-access memory,简称SDRAM)是有一个同步接口的动态随机存取内存(DRAM)。通常DRAM是有一个异步接口的,这样它可以随时响应控制输入的变化。而SDRAM有一个同步接口,在响应控制输入前会等待一个时钟信号,这样就能和计算机的系统总线同步。
norflash:NOR 的传输效率很高,在1~4MB的小容量时具有很高的成本效益,但是很低的写入和擦除速度大大影响到它的性能。NAND的结构能提供极高的单元密度,可以达到高存储密度,并且写入和擦除的速度也很快。应用NAND的困难在于Flash的管理需要特殊的系统接口。通常读取NOR的速度比NAND稍快一些,而NAND的写入速度比NOR快很多,在设计中应该考虑这些情况。
nandflash:Nand-flash存储器是flash存储器的一种,其内部采用非线性宏单元模式,为固态大容量内存的实现提供了廉价有效的解决方案。Nand-flash存储器具有容量较大,改写速度快等优点,适用于大量数据的存储;
mmc:MMC(MultiMediaCard)是一种协议或者规范,规范了卡的形状尺寸,通讯协议等内容,符合MMC协议的卡片叫做MMC卡,即多媒体卡,现在市面上基本见不到了。
emmc:eMMC(embedded MultiMediaCard)是一种嵌入式存储介质,或者说是一种存储器。主要用在手机、平板等设备上,早前因为不同厂家生产的NAND Flash接口不同,操作方式不同,为了解决这种不同MMC协会制定了eMMC标准,统一了NAND Flash接口。eMMC就是控制器+NAND Flash,对外接口都是eMMC,内部如何实现NAND Flash厂家自由发挥。标准的统一大大加快了手机类产品的研发速度。
2440A的主控芯片是三星的S3C2440A,属于ARM9系列,主频400MHz,有64M大小的sdram,具有2M大小的norflash以及256M的nandflash;
SDRAM也可以理解我们通常所说的内存,其与cpu通过数据总线和地址总线进行数据交互;
由于norflash适用于存储少量代码并且需要擦除多次的场景,且norflash也是通过地址总线直接与cpu进行数据交互,所以它的读写速度也非常快;
但是nandflash的存储密度比较高,读写速度快,所以nandflash与cpu进行数据交互需要特殊的系统接口,我们2440用的是flash控制器与之进行连接;大概的示意图如下:
cpu的内部组成:ALU(算术逻辑单元,做算术运算)、寄存器、指令集、cache、流水线;
寄存器:硬件操作接口;
s3c2440是32位处理器,指的是可以进行32位寻址访问,数据总线也是32位;
指令存储和执行的方式:
(1)ARM状态,32位机器码,每个指令战4个字节的空间;
(2)thumb状态:16位机器码,每个4个字节可以存储两条指令;
但是为了取指简便,所以这里使用4个字节存储一条指令,当然这里是可以将其手动设置为thumb状态的;
总结
本期的分享呢大家不容小觑,因为目前来看,除了一味的去追求某个具体知识点的运用,对产品的总体架构的认识也是至关重要的,这能够使得我们在学到具体技术点后,如果想要对产品进行评估选型时,那么是必不可少的;这也是我们在学习这个领域必备的一种整体性的学习原则,不能知识深扎与某一个知识或某一类技术而对它的整体不做过多了解;所以大家认真领会本期内容,从S3C2440这个开发板中,获取到对这一系列产品的一个认知;
最后,各位小伙伴们如果喜欢我的分享可以点赞收藏哦,你们的认可是我创作的动力,一起加油!