ARM
那么A系列的处理器,会有一个相关的术语,这些术语在这里会给大家做一个介绍,大概这些术语要给大家说一下,首先是流水线,流水线就是底层架构的术语。
流水线:
流水线其实是底层架构涉及到的术语,就比如说中间是个CPU,然后外面一个转盘围绕着它在转,它们在多任务分时的处理,那么在处理的过程中,CPU会得到指令,并且处理一些指令,那么它的过程,应该先从某个地方去取指令(F),取完指令之后要译码然后在执行,也就是基于FDE,那么这个就是我们在某一个时刻它应该做的三步操作,就这三步操作我们才能完成CPU正在进行运算,因为它必须要取指令,然后这些指令是ARM指令,CPU默认的情况下不一定认可,所以就要进行一个翻译,翻译成最简单的然后再去执行,那么这个就是第一个时刻“F-D-E”,然后马上它又转到另外一个任务里面,那么就会有一段时间的延后,那么又是一个“F-D-E”的过程,后面同样的延后又会是同样的过程,这样看来就会像一个流水线,所以我们就称为流水线,这就是CPU运转的一个机制,而这样三步就称为三级流水。后来我们在这个过程中又增加一些步骤,我们可以有多级流水,所以这个就知道这是CPU在去读取指令和运行的一个机制。
DSP-数字信号处理:
还有就是DSP-数字信号处理,这个可以把它理解为一个单独的芯片,它能够专门针对数字信号,特别是多媒体是典型的语音数字信号,它可以来单独处理,因为这块数字信号处理对芯片独占性要求挺高,如果我们用主CPU去处理,别的任务就有可能不能兼顾。
Jazelle:Jazelle是ARM里面针对JAVA这块的编程模型。
ThumbEE:这个就是Thumb指令,它的全称是Thumb的环境变量,Thumb是辅助ARM指令的另外一个指令,它是十六位的,后面的Thumb-2是Thumb的延伸,认为它有一些缺陷,就又升级了,成为十六位和三十二位并存的。
TrustZone:是ARM体系里面的安全架构。
VFP:是适量的福点运算机制。
Advanced:(SIMD NEON)
LPAE(Large Physical Address Extension)有了它之后,我们将来甚至于从硬件层次,我们就可以把我们的内存虚拟为1T,当然这个也需要依赖于我们的虚拟技术。
Virtualization:虚拟技术
big.LITTLE:什么叫做大小?就是从现在越来越强大的处理器前面,ARM的架构往往就会有一个处理器和一个协处理器,处理器我们用A15,协处理器我们用A8,那么一般情况下,任务量要求比较大的时候,就是用A15去处理,在系统没有大的使用的时候,就不需要使用A15,所以我们就切换到A8的模式,就进行一个大小的切换。切换的好处就是越来越省电,所以这个模式的主要功能就是省电。据说这种方式能比一直使用主处理器省电百分之七十左右。
A系列关键技术点:
1,32位RISC处理器,有16个32位可见寄存器。
2,哈佛结构(不是普林斯顿结构)就像写程序的时候代码区和数据区如果是存在一起的就是普林斯顿结构,如果是分开为两个地址,就是哈佛结构,哈佛结构这种形式明显扩展性要好得多。(指令和数据分开存储)
3,Thumb-2指令支持。
4,VFP和NEON可选。
5,向后兼容
6 ,4GB虚拟地址空间和最小4GB物理地址(4GB寻址)
7,内存虚拟页大小4KB,64KB,1MBand16MB
8,大小端数据访问支持。
A8处理器结构图:
它会告诉我们它有很强大的RG缓存机制,各种各样的缓存,同时他在处理这个指令的时候是基于了我们说的三级流水。就是先取码,然后再译码,还有执行,那么执行完了过后,它的重点就在加载和存取方面,这个里面有很多各种各样的接口的定义,这些接口只是为了后面的芯片商所服务的。
VS A15处理器结构图:
这些都是一些逻辑图,相当于它的片上系统是怎么去设计的,我们只需要关心怎么去使用它。
下面我们就开始用它,那么要用到它,我们就需要一些工具,包括交叉编译念。现在我们先给大家介绍一些工具,这些工序据有些比较大有些较小。
1,QEMU:QEMU实际上就是一个虚拟机,是一个模拟器,而且是一个软件模拟器,它可以用来模拟PC硬件,它是一套由Fabrice Bellard所编写的模拟处理器的自由软件,它与Bochs,PearPC近似,但其具有某些后两者所不具备的特性,如高速度及跨平台的特性,经由kqemu这个开源的加速器。QEMU能模拟至接近真实电脑的速度。
2,BusyBox:它实际上就是用来做linux根文件系统的,简单的说BusyBox就好像是个大工具箱,它集成压缩了Linux的许多工具和命令,也包含了Android系统的自带的shell。我们知道在linux根文件系统下面有bin,sbin这些东西,当我们从零去做ROM的时候,我们要把bin里面的工具,全都从网站下载下来编好,然后放到相应的地方,这样子之后相当于把内核这块都编好之后,就把内核挂载上文件系统,就开始把整个文件夹结构全部读出来,但是这些文件夹结构内容应该要手动的去编写,这里面就有很多工具,要一个个的去编写就很麻烦,这就需要这个工具BusyBox,这个工具就很方便,能够针对不同的平台去自动的生成这里面的东西,这样整个根文件系统就建立成功了。
3,Scratchbox:其实也是一个交叉编译平台,是帮助嵌入式Linux跨平台编译工具的集合,其目的主要是使得嵌入式Linux应用程序开发更加容易,他也提供了完整的集成工具链以用来跨平台编译集成出一个Linux发布版。
4,U-Boot:是一个大名鼎鼎的开源,是遵循GPL条款的开放源码项目。
5,UEFI and Tianocore:UEFI称为统一可扩展部件接口,它的诞生是出于一个什么样的目的?
比如说现在出现的win8,他不希望人人都去装盗版,所以他就对你的硬件有了要求,会规定必须是什么体系结构,所以这就是一种统一的相当于硬件和操作系统适配的一种标准,也就是说它指定了装操作系统可以扩展哪些硬件部件这样一些接口,这样就限定了,在有的时候做ARM开发,硬件可能不是那么规范和标准,这样就会被限定,然后我们就可以通过这个工具来模拟符合它标准的硬件,然后绕过去能够把一些ARM的OS给装上去。
介绍和安装ARM软件工具链:
工具链就是一个集合工具链的作用过程是由C语言然后编译,包括汇编,然后编译成一个中间代码,然后中间这个目标代码在经过连接,包括集成的内库和相应的脚本连接成,可执行的镜像,这个就是它的一个工作过程。
在ARM体系里面其实推荐了两套工具链,一套是GNU Compiler开源的工具链,还有一套是ARM本身的工具链,也就是说ARM系统本身也有工具链。
GNU Toolchain:GNU工具链即可以用来开发内核也可以用来开发应用程序。
GNU就包括make,GCC,GDB,autotools等等。
怎么去安装?
Eabi:e就是嵌入式,a就是应用程序,b就是二进制,i就是接口,全称就是嵌入式应用程序二进制接口,所以它编译出来的就是嵌入式Linux应用程序的二进制文件。
来源:麦子学院
原文链接:http://www.maiziedu.com/wiki/arm/noun/
1.ARM中一些常见英文缩写解释
MSB:最高有效位;
LSB:最低有效位;
AHB:先进的高性能总线;
VPB:连接片内外设功能的VLSI外设总线;
EMC:外部存储器控制器;
MAM:存储器加速模块;
VIC:向量中断控制器;
SPI:全双工串行接口;
CAN:控制器局域网,一种串行通讯协议;
PWM:脉宽调制器;
ETM:嵌入式跟踪宏;
CPSR:当前程序状态寄存器;
SPSR:程序保护状态寄存器;
2.MAM 使用注意事项:
答:当改变 MAM 定时值时,必须先通过向 MAMCR 写入 0 来关闭 MAM,然后将新值写入 MAMTIM。最后,将需要的操作模式的对应值写入MAMCR,再次打开MAM。
对于低于 20MHz 的系统时钟,MAMTIM 设定为 001。对于 20MHz 到 40MHz 之间的系统时钟,建议将Flash访问时间设定为2cclk,而在高于40MHz的系统时钟下,建议使用3cclk。
3.VIC 使用注意事项
答:如果在片内RAM当中运行代码并且应用程序需要调用中断,那么必须将中断向量重新映射到Flash地址0x0。这样做是因为所有的异常向量都位于地址 0x0及以上。通过将寄存器MEMMAP(位于系统控制模块当中)配置为用户RAM模式来实现这一点。用户代码被连接以便使中断向量表装载到0x4000 0000。
4. ARM启动代码设计
答:ARM启动代码直接面对处理器内核和硬件控制器进行编程,一般使用汇编语言。启动代码一般包括:
中断向量表
初始化存储器系统
初始化堆栈初始化有特殊要求的端口、设备
初始化用户程序执行环境
改变处理器模式
呼叫主应用程序
5.IRQ 和 FIQ 之间的区别
答:IRQ和FIQ是ARM处理器的两种编程模式。IRQ是指中断模式,FIR是指快速中断模式。对于 FIQ 你必须尽快处理你的事情并离开这个模式。IRQ 可以被 FIQ 所中断,但 IRQ 不能中断 FIQ。为了使 FIQ 更快,所以这种模式有更多的影子寄存器。FIQ 不能调用 SWI(软件中断)。FIQ 还必须禁用中断。如果一个 FIQ 例程必须重新启用中断,则它太慢了,并应该是 IRQ 而不是 FIQ。
6.ARM处理器对异常中断的响应过程
答:ARM处理器对异常中断的响应过程如下所述:
保存处理器当前状态、中断屏蔽位以及各条件标志位;
设置当前程序状态寄存器CPSR中的相应位;
将寄存器lr_mode设置成返回地址;
将程序计数器值PC,设置成该异常中断的中断向量地址,跳转到相应异常中断处执行。
7.ARM指令与Thumb指令的区别
答:在ARM体系结构中,ARM指令集中的指令是32位的指令,其执行效率很高。对于存储系统数据总线为16位的应用系统,ARM体系提供了Thumb指令集。Thumb指令集是对ARM指令集的一个子集重新编码得到的,指令长度为16位。通常在处理器执行ARM程序时,称处理器处于ARM状态;当处理器执行Thumb程序时,称处理器处于Thumb状态。Thumb指令集并没有改变ARM体系地层的程序设计模型,只是在该模型上加上了一些限制条件。 Thumb指令集中的数据处理指令的操作数仍然为32位,指令寻址地址也是32位的。
8.什么是ATPCS
答:为了使单独编译的C语言程序和汇编程序之间能够相互调用,必须为子程序之间的调用规定一定的规则。ATPCS就是ARM程序和Thumb程序中子程序调用的基本规则。这些规则包括寄存器使用规则,数据栈的使用规则,参数的传递规则等。
9.ARM程序和Thumb程序混合使用的场合
答:通常,Thumb程序比ARM程序更加紧凑,而且对于内存为8位或16位的系统,使用Thumb程序效率更高。但是,在下面一些场合下,程序必须运行在ARM状态,这时就需要混合使用ARM和Thumb程序。
强调速度的场合,应该使用ARM程序;
有些功能只能由ARM程序完成。如:使用或者禁止异常中断;
当处理器进入异常中断处理程序时,程序状态切换到ARM状态,即在异常中断处理程序入口的一些指令是ARM指令,然后根据需要程序可以切换到Thumb状态,在异常中断程序返回前,程序再切换到ARM状态。
ARM处理器总是从ARM状态开始执行。因而,如果要在调试器中运行Thumb程序,必须为该Thumb程序添加一个ARM程序头,然后再切换到Thumb状态,执行Thumb程序。
10.ARM处理器运行模式
答:ARM微处理器支持7种运行模式,分别为:
用户模式(usr):ARM处理器正常的程序执行状态;
快速中断模式(fiq):用于高速数据传输或通道管理;
外部中断模式(irq):用于通用的中断处理;
管理模式(svc):操作系统使用的保护模式;
数据访问终止模式(abt):当数据或指令预取终止时进入该模式,用于虚拟存储及存储保护;
系统模式(sys):运行具有特权的操作系统任务;
未定义指令中止模式(und):当未定义指令执行时进入该模式,可用于支持硬件协处理器的软件仿真
11.ARM体系结构所支持的异常类型
答:ARM体系结构所支持的异常和具体含义如下(圈里面的数字表示优先级):
复位①:当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处执行(异常向量:0x0000,0000);
未定义指令⑥:当ARM处理器或协处理器遇到不能处理的指令时,产生为定义异常。可使用该异常机制进行软件仿真(异常向量:0x0000,0004);
软件中断⑥:有执行SWI指令产生,可用于用户模式下程序调用特权操作指令。可使用该异常机制实现系统功能调用(异常向量:0x0000,0008);
指令预取中止⑤:若处理器的预取指令的地址不存在,或该地址不允许当前指令访问,存储器会向处理器发出中止信号,当预取指令被执行时,才会产生指令预取中止异常(异常向量:0x0000,000C);
数据中止②:若处理器数据访问的指令的地址不存在,或该地址不允许当前指令访问,产生数据中止异常(异常向量:0x0000,0010);
IRQ④(外部中断请求):当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生IRQ异常。系统的外设可以该异常请求中断服务(异常向量:0x0000,0018);
FIQ③(快速中断请求):当处理器的快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常(异常向量:0x0000,001C)。
说明:其中异常向量0x0000,0014为保留的异常向量。
12.ARM体系结构的存储器格式
答:ARM体系结构的存储器格式有如下两种:
大端格式:字数据的高字节存储在低地址中,字数据的低字节存放在高地址中;
小端格式:与大端存储格式相反,高地址存放数据的高字节,低地址存放数据的低字节。
13.ARM寄存器总结:
ARM有16个32位的寄存器(r0到r15)。
r15充当程序寄存器PC,r14(link register)存储子程序的返回地址,r13存储的是堆栈地址。
ARM有一个当前程序状态寄存器:CPSR。
一些寄存器(r13,r14)在异常发生时会产生新的instances,比如IRQ处理器模式,这时处理器使用r13_irq和r14_irq
ARM的子程序调用是很快的,因为子程序的返回地址不需要存放在堆栈中。
14.存储器重新映射(Remap)的原因:
使Flash存储器中的FIQ处理程序不必考虑因为重新映射所导致的存储器边界问题;
用来处理代码空间中段边界仲裁的SRAM和Boot Block向量的使用大大减少;
为超过单字转移指令范围的跳转提供空间来保存常量。
ARM中的重映射是指在程序执行过程中通过写某个功能寄存器位操作达到重新分配其存储器地址空间的映射。一个典型的应用就是应用程序存储在 Flash/ROM中,初始这些存储器地址是从0开始的,但这些存储器的读时间比SRAM/DRAM长,造成其内部执行频率不高,故一般在前面一段程序将代码搬移到SRAM/DRAM中去,然后重新映射存储器空间,将相应SRAM/DRAM映射到地址0,重新执行程序可达到高速运行的目的。
15.存储异常向量表中程序跳转使用LDR指令,而不使用B指令的原因:
LDR指令可以全地址范围跳转,而B指令只能在前后32MB范围内跳转;
芯片具有Remap功能。当向量表位于内部RAM或外部存储器中,用B指令不能跳转到正确的位置。
16.锁相环(PLL)注意要点:
PLL在芯片复位或进入掉电模式时被关闭并旁路,在掉电唤醒后不会自动恢复PLL的设定;
PLL只能通过软件使能;
PLL在激活后必须等待其锁定,然后才能连接;
PLL如果设置不当将会导致芯片的错误操作。
17.ARM7与ARM9的区别:
ARM7内核是0.9MIPS/MHz的三级流水线和冯&S226;诺伊曼结构;ARM9内核是五级流水线,提供1.1MIPS/MHz的哈佛结构。
ARM7没有MMU,ARM720T是MMU的;ARM9是有MMU的,ARM940T只有Memory protection unit.不是一个完整的MMU。
ARM7TDMI提供了非常好的性能——功耗比。它包含了Thumb指令集快速乘法指令和ICE调试技术的内核。ARM9的时钟频率比ARM7更高,采用哈佛结构区分了数据总线和指令总线。
18.VIC的基本操作如下:
答:设置IRQ/FIQ中断,若是IRQ中断则可以设置为向量中断并分配中断优先级,否则为非向量IRQ。然后可以设置中断允许,以及向量中断对应地址或非向量中断默认地址。当有中断后,若是IRQ中断,则可以读取向量地址寄存器,然后跳转到相应的代码。当要退出中断时,对向量地址寄存器写0,通知VIC 中断结束。当发生中断时,处理器将会切换处理器模式,同时相关的寄存器也将会映射。
19.使用外部中断注意
把某个引脚设置为外部中断功能后,该引脚为输入模式,由于没有内部上拉电阻,所以必须外接一个上拉电阻,确保引脚不被悬空;
除了引脚连接模块的设置,还需要设置VIC模块,才能产生外部中断,否则外部中断只能反映在EXTINT寄存器中;
要使器件进入掉电模式并通过外部中断唤醒,软件应该正确设置引脚的外部中断功能,再进入掉电模式。
20.UART0的基本操作方法
设置I/O连接到UART0;
设置串口波特率(U0DLM、U0DLL);
设置串口工作模式(U0LCR、U0FCR);
发送或接收数据(U0THR、U0RBR);
检查串口状态字或等待串口中断(U0LSR)。
21.I2C的基本操作方法
答:I2C主机基本操作方法:
设置I2C管脚连接;
设置I2C时钟速率(I2SCLH、I2SCLL);
设置为主机,并发送起始信号(I2CONSET的I2EN、STA位为1,AA位为0);
发送从机地址(I2DAT),控制I2CONSET发送;
判断总线状态(I2STAT),进行数据传输控制;
发送结束信号(I2CONSET)。
I2C从机基本操作方法:
设置I2C管脚连接;
设置自身的从机地址(I2ADR);
使能I2C(I2CONSET的I2EN、AA位为1);
判断SI位或等待I2C中断,等待主机操作;
判断总线状态I2STAT,进行数据传输控制。
22. PWM基本操作方法:
连接PWM功能管脚输出,即设置PINSEL0、PINSEL1;
设置PWM定时器的时钟分频值(PWMPR),得到所要的定时器时钟;
设置比较匹配控制(PWMMCR),并设置相应比较值(PWMMRx);
设置PWM输出方式并允许PWM输出(PWMPCR)及锁存使能控制(PWMLER);
设置PWMTCR,启动定时器,使能PWM;
运行过程中要更改比较值时,更改之后要设置锁存使能。
使用双边沿PWM输出时,建议使用PWM2、PWM4、PWM6;使用单边PWM输出时,在PWM周期开始时为高电平,匹配后为低电平,使用PWMMR0作为PWM周期控制,PWMMRx作为占空比控制。
来源:博客园 - 「大魔王」
SWP和SWPB是ARM指令集中对存储单元的原子操作。即对存储单元的一次读和一次不可被切割。
SWP和SWPB分别完毕存储器和寄存器之间 一个字(32bit)和一个字节(8bit)的数据交换。
SWP指令主要是完毕ARM体系架构处理器的同步操作。在Linux操作系统中实现信号量的操作。可是此指令在ARMv6架构后就没有採用了,而是通过扩展的LDREX和STREX实现。本片文章主要介绍SWP的功能,对于LDREX和STREX以后再介绍。
SWP的指令格式例如以下:
SWP {}{B} Rd, Rm, [Rn]
当中Rd是目的寄存器,从存储器中读到的值存放于此寄存器中
Rm寄存器是操作数。会将此寄存器中的值存放于存储单元中
[Rn]是寄存器间接寻址,Rn保存的是某个存储单元的地址
如果[Rn]中存放的是信号量。当某程序要改动信号量时,则会调用SWP指令完毕对信号量的操作,即对这个存储单元的读和写是一个原子操作。不会被打断,命令的运行步骤例如以下图1所看到的:
当多个程序要訪问他们共享的资源时,我们必需要做好同步机制以保证数据的安全。通常,共享的资源能够是一段共享内存或者是外部设备。訪问这些资源的能够使CPU、进程或者是线程。
为了完毕同步机制,会採用一个原子变量来保存资源的状态。
比例如以下图2所看到的,用一个二元信号量(0或者1)来实现共享资源的同步,当进程A 和 进程B都要訪问信号量Semaphore。
对于A进程。先訪问到信号量Semaphore发现状态可用,应该立即会改动Semaphore的状态。告诉其它进程此资源正在被使用。可是可能因为时间片恰好用完,系统调度到进程B。
进程B訪问到信号量时发现状态也可用。于是改动Semaphore告诉其它进程此资源正在被使用,等到系统再次调度到进程A时,进程A却不知道进程B已改动了Semaphore而且使用了公共资源,于是接着上次未完毕的任务,開始改动Semaphore而且開始使用公共资源。因此。遇到这种情况的话,信号量形同虚设并没有起到同步的作用。
所以假设使用SWP指令,通过上面的介绍,SWP指令时完毕对存储单元的一次读和写的原子操作。就能够避免这种情况。
以下的汇编代码是通过SWP实现相互排斥的样例
EXPORT lock_mutex_swp
lock_mutex_swp PROC
LDR r2, =locked
SWP r1, r2, [r0] ; Swap R2 with location [R0], [R0] value placed in R1
CMP r1, r2 ; Check if memory value was ‘locked’
BEQ lock_mutex_swp ; If so, retry immediately
BX lr ; If not, lock successful, return
ENDP
EXPORT unlock_mutex_swp
unlock_mutex_swp
LDR r1, =unlocked
STR r1, [r0] ; Write value ‘unlocked’ to location [R0]
BX lr
ENDP
当然,除了上面的情况,还可能因为中断的产生导致读和写的操作被打断。
在一些任务比較简单的系统中,能够在关键的代码中利用禁止中断的方式来保证对数据操作的原子性,然而对于如今复杂的多任务操作系统,禁止中断的做法显然不是有效的解决方法。
所以SWP通过特殊的訪问方式,不须要禁止中断。可是这样也会延长中断的响应时间。随着处理器的高速发展,多核处理器已经显示出了强大的优势,同步的问题显得更加明显。如图3所看到的,一个系统由一个Cortex-A8和Cortex-M4组成。他们都会訪问一同一段存储空间。
SWP指令在这样的模式下。就显得非常尴尬了,假设依旧採用原来的特殊訪问模式,可能会大大减少多核处理的性能。
所以从ARMv6架构以后。不再使用SWP指令实现同步的功能,而是添加了LDREX和STREX指令完毕相关的操作。
来源:博客园 - cynchanpin
全新的MCU结合业内一流的低功耗、耐水、抗扰电容式触摸技术
随着物联网(IoT)终端的蓬勃发展,安全有时被许多设计人员抛之脑后,这增加了泄漏知识产权(IP)和敏感信息的风险。为了满足日益增长的安全需求,Microchip Technology Inc.(美国微芯科技公司)日前推出全新的SAM L10和SAM L11 MCU系列。欲了解更多信息,请访问www.microchip.com/SAML11 。
全新的MCU系列基于Arm® Cortex®-M23内核,SAM L11提供适用于Armv8-M的Arm TrustZone® , 这一可编程环境可以在认证库(certified libraries)、IP和应用代码之间提供硬件隔离。Microchip通过加入芯片级的抗干扰、安全启动和安全密钥存储技术实现稳健的安全性,结合TrustZone技术可以保护客户应用免受远程攻击和物理攻击。
两个MCU系列均提供业内最低的功效,同时具备电容式触摸功能以及一流的耐水性和抗扰性。在进行功耗基准测试时,SAM L10获得了ULPMark™ 405分的高分,超过由EEMBC®(嵌入式微处理器基准评测协会)认证的性能最接近的竞品200%。Microchip利用享有专利的picoPower®技术,在工作模式和所有休眠模式下提供行业领先的低功耗。
Microchip的MCU32业务部副总裁Rod Drake表示:“物联网终端通常要求低功耗和高安全性,但物联网节点的发展如此之快,以至于安全有时跟不上。SAM L11能提供客户在设计流程早期进行安全规划所需的功能。”
除了TrustZone技术之外,SAM L11的安全功能还包括支持高级加密标准(AES)、伽罗瓦计数器模式(GCM)和安全散列算法(SHA)的板载密码模块。具备篡改检测功能的安全启动和安全密钥存储技术建立了硬件信任根。它还提供用于安全固件升级的安全自举程序。Microchip与Trustonic(Microchip的安全设计合作伙伴计划成员)共同提供完善的安全解决方案框架,可简化安全措施的实施,让客户能够更快推出最终产品。Microchip还与Secure Thingz和Data I/O Corporation合作,为拥有可靠安全框架的SAM L11客户提供安全配置服务。
两个MCU系列均提供Microchip最新一代的外设触摸屏控制器(PTC),以实现电容式触摸功能。设计人员可以轻松添加触摸界面,在潮湿和噪声环境中提供流畅且高效的用户体验,同时保持低功耗。触摸界面让这些器件成为各种汽车、家电、医疗和消费类人机接口(HMI)应用的理想选择。
开发支持
SAM L10 和 SAM L11 Xplained Pro 评估工具包可用于入门级开发。所有SAM L10/L11 MCU均受Atmel Studio 7集成开发环境(IDE)、IAR Embedded Workbench、Arm Keil® MDK 和Atmel START(一款对外设和软件进行配置的免费在线工具,可加快开发)支持。START还支持用于配置和部署安全应用的TrustZone技术。电源调试器和数据分析工具可用于实时监控和分析电量消耗情况,并在运行过程中对耗能数据进行微调,满足应用要求。还可以使用Microchip的 QTouch® 模块库、2D 触摸表面库和QTouch 配置器简化触摸应用的开发。
供货
SAM L10和SAM L11器件目前已投入量产,提供各种引脚数量和封装选择。
• SAM L10系列器件10000件起售。
• SAM L11系列器件10000件起售。
• SAM L10 和SAM L11 Xplained Pro 评估工具包已开始发售(部件编号分别为DM320204和DM320205 )。
如需了解详细信息,请联系Microchip销售代表或者全球授权分销商,也可以访问Microchip网站。如果需要购买文中提及的产品,请访问Microchip的全方位服务渠道microchipDIRECT,也可以联系Microchip的授权分销合作伙伴。
单片机的特点:
(1) 受集成度限制,片内存储器容量较小,一般内ROM:8KB以下;
(2) 内RAM:256KB以内。
(3) 可靠性高
(4) 易扩展
(5) 控制功能强
(6) 易于开发
ARM的特点:
(1)自带廉价的程序存储器(FLASH)和非易失的数据存储器(EEPROM)。这些存储器可多次电擦写,使程序开发实验更加方便,工作更可靠。
(2)高速度,低功耗。在和M51单片机外接相同晶振条件下,AVR单片机的工作速度是M51单片机的30-40倍;并且增加了休眠功能及CMOS技术,使其功耗远低于M51单片机。
(3) 工业级产品。具有大电流输出可直接驱动SSR和继电器,有看门狗定时器,防止程序走飞,从而提高了产品的抗干扰能力。
(4) 超功能精简指令,具有32个通用工作寄存器,相当于M51单片机中32个累加器!从而克服了单一累加器工作的瓶颈效应。
(5)程序下载方便。AVR单片机即可并行下载也可串行下载,无需昂贵的编程器。此外,还可以在线下载!也就是说可以直接在电路板上进行程序修改和烧录。
(6) 具有模拟比较器、脉宽调制器、模数转换功能。使得工业控制中的模拟信号处理更为简单方便。
(7) 并行口、定时计数器、中断系统等单片机内部重要资源的功能进行了大幅度提升,使之更适合工业生产过程的实时控制。
(8) 其时钟频率既可外接也可使用单片机内部自带的振荡器,其频率可在1MHz-8MHz内设置,使得硬件开发制作更为简洁。
(9)强大的通讯功能,内置了同步串行接口SPI、通用串行接口UAST、两线串行总线接口TWI(I2C ),使网络控制、数据传送更为方便。
(10)超级保密功能,应用程序可采用多重保护锁功能。可低价快速完成厂家产品商品化等等。 除上述特点外“零外设”也是AVR嵌入式单片机的重要特征。由于该芯片已内置了程序存储器、晶振并增加了在线汇编功能。
所以AVR单片机芯片接上直流电源,下载个程序就可以独立工作。无需附加外部设备,无需使用昂贵的编程器和仿真装置。这给我们学习和开发带来了便利条件。
FPGA的特点:
(1)采用FPGA设计ASIC电路(专用集成电路),用户不需要投片生产,就能得到合用的芯片。
(2)FPGA可做其它全定制或半定制ASIC电路的中试样片。
(3)FPGA内部有丰富的触发器和I/O引脚。
(4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
(5)FPGA采用高速CMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。当需要修改FPGA功能时,只需换一片EPROM即可。这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。因此,FPGA的使用非常灵活。
嵌入式系统的特点:
(1)系统内核小
由于嵌入式系统一般是应用于小型电子装置的,系统资源相对有限,所以内核较之传统的操作系统要小得多。比如Enea公司的OSE分布式系统,内核只有5K,而Windows的内核?简直没有可比性。
(2)专用性强
嵌入式系统的个性化很强,其中的软件系统和硬件的结合非常 紧密,一般要针对硬件进行系统的移植,即使在同一品牌、同一系列的产品中也 需要根据系统硬件的变化和增减不断进行修改。同时针对不同的任务,往往需要 对系统进行较大更改,程序的编译下载要和系统相结合,这种修改和通用软件的 “升级”是完全两个概念。
(3)系统精简
嵌入式系统一般没有系统软件和应用软件的明显区分,不要求 其功能设计及实现上过于复杂,这样一方面利于控制系统成本,同时也利于实现系统安全。
(4)高实时性的系统软件(OS)是嵌入式软件的基本要求。而且软件要求固态存储,以提高速度;软件代码要求高质量和高可靠性。
(5)嵌入式软件开发要想走向标准化,就必须使用多任务的操作系统
嵌入式系统的应用程序可以没有操作系统直接在芯片上运行;但是为了合理地调度多任 务、利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配RTOS (Real-Time Operating System)开发平台,这样才能保证程序执行的实时性、 可靠性,并减少开发时间,保障软件质量。
(6)嵌入式系统开发需要开发工具和环境。
由于其本身不具备自举开发能力, 即使设计完成以后用户通常也是不能对其中的程序功能进行修改的,必须有一套 开发工具和环境才能进行开发,这些工具和环境一般是基于通用计算机上的软硬 件设备以及各种逻辑分析仪、混合信号示波器等。开发时往往有主机和目标机的 概念,主机用于程序的开发,目标机作为最后的执行机,开发时需要交替结合进行。
转自:小丑l
本文主要介绍的是ARM里的RAM和SDRAM有什么区别,首先介绍了RAM的类别及特点,其次对SDRAM做了详细阐述,最后介绍了RAM和SDRAM的区别是什么。
RAM介绍
Random-Access Memory(随机存取存储器),在计算机的组成结构中,有一个很重要的部分,就是存储器。存储器是用来存储程序和数据的部件,对于计算机来说,有了存储器,才有记忆功能,才能保证正常工作。存储器的种类很多,按其用途可分为主存储器和辅助存储器[或者内存储器和外存储器],主存储器简称内存,内存在电脑中起着举足轻重的作用,一般采用半导体存储单元。因为RAM是内存其中最重要的存储器,所以通常我们直接称之为内存。内存就是存储程序以及数据的地方,比如当我们在使用WPS处理文稿时,当你在键盘上敲入字符时,它就被存入内存中,当你选择存盘时,内存中的数据才会被存入硬(磁)盘。
RAM就是既可以从中读取数据,也可以写入数据。当机器电源关闭时,存于其中的数据就会丢失。我们通常购买或升级的内存条就是用作电脑的内存,内存条(SIMM)就是将RAM集成块集中在一起的一小块电路板,它插在计算机中的内存插槽上,以减少RAM集成块占用的空间。目前市场上常见的内存条有 128M/条、256M/条、512M/条等。
RAM的类别
根据存储单元的工作原理不同, RAM分为静态RAM和动态RAM。
静态随机存储器(SRAM)
静态存储单元是在静态触发器的基础上附加门控管而构成的。因此,它是靠触发器的自保功能存储数据的。
动态随机存储器(DRAM)
动态RAM的存储矩阵由动态MOS存储单元组成。动态MOS存储单元利用MOS管的栅极电容来存储信息,但由于栅极电容的容量很小,而漏电流又不可能绝对等于0,所以电荷保存的时间有限。为了避免存储信息的丢失,必须定时地给电容补充漏掉的电荷。通常把这种操作称为“刷新”或“再生”,因此DRAM内部要有刷新控制电路,其操作也比静态RAM复杂。尽管如此,由于DRAM存储单元的结构能做得非常简单,所用元件少,功耗低,已成为大容量RAM的主流产品。
RAM的特点
1、随机存取
所谓“随机存取”,指的是当存储器中的数据被读取或写入时,所需要的时间与这段信息所在的位置或所写入的位置无关。相对的,读取或写入顺序访问(SequenTIal Access)存储设备中的信息时,其所需要的时间与位置就会有关系。它主要用来存放操作系统、各种应用程序、数据等。
2、易失性
当电源关闭时RAM不能保留数据。如果需要保存数据,就必须把它们写入一个长期的存储设备中(例如硬盘)。RAM和ROM相比,两者的最大区别是RAM在断电以后保存在上面的数据会自动消失,而ROM不会自动消失,可以长时间断电保存。
3、对静电敏感
正如其他精细的集成电路,随机存取存储器对环境的静电荷非常敏感。静电会干扰存储器内电容器的电荷,引致数据流失,甚至烧坏电路。故此触碰随机存取存储器前,应先用手触摸金属接地。
4、访问速度
现代的随机存取存储器几乎是所有访问设备中写入和读取速度最快的,存取延迟和其他涉及机械运作的存储设备相比,也显得微不足道。
5、需要刷新(再生)
现代的随机存取存储器依赖电容器存储数据。电容器充满电后代表1(二进制),未充电的代表0。由于电容器或多或少有漏电的情形,若不作特别处理,数据会渐渐随时间流失。刷新是指定期读取电容器的状态,然后按照原来的状态重新为电容器充电,弥补流失了的电荷。需要刷新正好解释了随机存取存储器的易失性。
SDRAM介绍
SDRAM(Synchronous Dynamic Random Access Memory)同步动态随机存取存储器,同步是指Memory工作需要步时钟,内部的命令的发送与数据的传输都以它为基准;动态是指存储阵列需要不断的刷新来保证数据不丢失;随机是指数据不是线性依次存储,而是由指定地址进行数据读写。目前的168线64bit带宽内存基本上都采用SDRAM芯片,工作电压3.3V电压,存取速度高达7.5ns,而EDO内存最快为15ns。并将RAM与CPU以相同时钟频率控制,使RAM与CPU外频同步,取消等待时间,所以其传输速率比EDO DRAM更快。
SDRAM从发展到现在已经经历了四代,分别是:第一代SDR SDRAM,第二代DDR SDRAM,第三代DDR2 SDRAM,第四代DDR3 SDRAM.
第一代与第二代SDRAM均采用单端(Single-Ended)时钟信号,第三代与第四代由于工作频率比较快,所以采用可降低干扰的差分时钟信号作为同步时钟。
SDR SDRAM的时钟频率就是数据存储的频率,第一代内存用时钟频率命名,如pc100,pc133则表明时钟信号为100或133MHz,数据读写速率也为100或133MHz。
之后的第二,三,四代DDR(Double Data Rate)内存则采用数据读写速率作为命名标准,并且在前面加上表示其DDR代数的符号,PC-即DDR,PC2=DDR2,PC3=DDR3。如PC2700是DDR333,其工作频率是333/2=166MHz,2700表示带宽为2.7G。
DDR的读写频率从DDR200到DDR400,DDR2从DDR2-400到DDR2-800,DDR3从DDR3-800到DDR3-1666。
很多人将SDRAM错误的理解为第一代也就是 SDR SDRAM,并且作为名词解释,皆属误导,SDR不等于SDRAM。
Pin:模组或芯片与外部电路电路连接用的金属引脚,而模组的pin就是常说的“金手指”。
SIMM:Sigle In-line Memory Module,单列内存模组。内存模组就是我们常说的内存条,所谓单列是指模组电路板与主板插槽的接口只有一列引脚(虽然两侧都有金手指)。
DIMM:Double In-line Memory Module,双列内存模组。是我们常见的模组类型,所谓双列是指模组电路板与主板插槽的接口有两列引脚,模组电路板两侧的金手指对应一列引脚。
RDIMM:registered DIMM,带寄存器的双线内存模块
SO-DIMM:笔记本常用的内存模组。
工作电压:
SDR:3.3V
DDR:2.5V
DDR2:1.8V
DDR3:1.5V
ARM里的RAM和SDRAM有什么区别
RAM包括SRAM和DRAM,前者是静态随机存储器,主要是依靠触发器存储数据,无需刷新,而后者是动态随机存储器,依靠MOSFET中栅电容存储数据,需不断刷新以补充释放的电荷。由于单管就可以实现数据存储,集成度可以做到更高,功耗也更低,更为主流。需要注意的是由于刷新牵涉电容的充放电过程,DRAM的存取速度不及SRAM。
至于SDRAM,为同步动态随机存储器,属于DRAM的一种,其工作过程需要同步时钟的配合,因此可以不考虑路线延时不同的影响,避免不定态。普通的DRAM属于异步传输,存取数据时,必须等待若干个时钟以后才进行操作(考虑不定态),因为会花费较多的时间,影响了数据的传输速率。随着时钟频率的不断增高,这个瓶颈的限制就会越来越明显,SDRAM的优势也就更能体现出来。
本文转载自:电子产品世界
一、什么是AMBA总线
AMBA总线规范是ARM公司提出的总线规范,被大多数SoC设计采用,它规定了AHB (Advanced High-performance Bus)、ASB (Advanced System Bus)、APB (Advanced Peripheral Bus)。AHB用于高性能、高时钟频率的系统结构,典型的应用如ARM核与系统内部的高速RAM、NAND FLASH、DMA、Bridge的连接。APB用于连接外部设备,对性能要求不高,而考虑低功耗问题。ASB是AHB的一种替代方案。
二、AHB
AHB总线的强大之处在于它可以将微控制器(CPU)、高带宽的片上RAM、高带宽的外部存储器接口、DMA总线master、各种拥有AHB接口的控制器等等连接起来构成一个独立的完整的SOC系统,不仅如此,还可以通过AHB-APB桥来连接APB总线系统。AHB可以成为一个完整独立的SOC芯片的骨架。
下图是一个典型的AHB系统总线的结构示意图
三、APB
主要应用在低带宽的外设上,如UART、 I2C,它的架构不像AHB总线是多主设备的架构,APB总线的唯一主设备是APB桥(与AXI或APB相连),因此不需要仲裁一些Request/grant信号。APB的协议也十分简单,甚至不是流水的操作,固定两个时钟周期完成一次读或写的操作。其特性包括:两个时钟周期传输,无需等待周期和回应信号,控制逻辑简单,只有四个控制信号。APB上的传输可用如图所示的状态图来说明。
1、系统初始化为IDLE状态,此时没有传输操作,也没有选中任何从模块。
2、当有传输要进行时,PSELx=1,,PENABLE=0,系统进入SETUP状态,并只会在SETUP状态停留一个周期。当PCLK的下一个上升沿到来时,系统进入ENABLE状态。
3、系统进入ENABLE状态时,维持之前在SETUP状态的PADDR、PSEL、PWRITE不变,并将PENABLE置为1。传输也只会在ENABLE状态维持一个周期,在经过SETUP与ENABLE状态之后就已完成。之后如果没有传输要进行,就进入IDLE状态等待;如果有连续的传输,则进入SETUP状态。
来源:feipeng8848
ARM非常关心安全漏洞,现在它已经将安全性设计到了芯片中。该芯片设计公司今天宣布,其ARM Cortex-M35P处理器在芯片级上内置了防篡改技术和软件隔离功能。该技术将为智能卡,门锁和汽车设备等新兴应用带来智能卡安全级别。安全措施将有助于保护物联网(IoT)或智能连接的日常物品。
这个想法是保护芯片级别的系统免受硬件系统日益普遍的物理攻击。黑客可以使用诸如电力和电磁分析等设备来找出没有这种保护的芯片中正在发生的事情 - 并且会使数据处于危险之中。随着物联网的发展势头越来越强劲,更多具有高价值数据的设备相互连接,这些物理攻击对黑客更具吸引力。
ARM担心可能是由于与芯片直接物理接触或靠近芯片而导致的攻击。物理攻击旨在利用芯片实施层面的漏洞,而不是利用软件或设计层面的弱点。这些物理攻击分为两大类:侵入式攻击,需要(至少)芯片解封装和非侵入式攻击 - 例如近距离侧通道攻击(SCA),它通过非预期侧通道阻塞获得信息从芯片实现,例如,通过观察芯片的功耗或密码操作期间的电磁场发射)。“
Cortex-M35P是一款高性能处理器,可帮助嵌入式安全开发人员阻止物理篡改并实现更高级别的安全认证。它是Cortex-M系列中的第一款具有设计防篡改功能的处理器。它还包括用于软件隔离的ARM TrustZone技术,使设计人员可以更轻松,更快速地将多层支付或通过电信认证的安全性嵌入到任何设备的核心。
ARM表示,其现有的两个安全知识产权CryptoCell和CryptoIsland都可以使用技术来抵御各种攻击。随着物理攻击阻力的增加,这些解决方案可以解决更广泛的攻击表面,这是一些物联网应用所需要的。
来源:cnBeta.COM