ARM基础知识(强烈推荐)
- 格式:docx
- 大小:28.35 KB
- 文档页数:15
STM32学前班教程之一:选择他的理由经过几天的学习,基本掌握了STM32的调试环境和一些基本知识。
想拿出来与大家共享,笨教程本着最大限度简化删减STM32入门的过程的思想,会把我的整个入门前的工作推荐给大家。
就算是给网上的众多教程、笔记的一种补充吧,所以叫学前班教程。
其中涉及产品一律隐去来源和品牌,以防广告之嫌。
全部汉字内容为个人笔记。
所有相关参考资料也全部列出。
:lol教程会分几篇,因为太长啦。
今天先来说说为什么是它——我选择STM32的原因。
我对未来的规划是以功能性为主的,在功能和面积之间做以平衡是我的首要选择,而把运算放在第二位,这根我的专业有关系。
里面的运算其实并不复杂,在入门阶段想尽量减少所接触的东西。
不过说实话,对DSP的外设并和开发环境不满意,这是为什么STM32一出就转向的原因。
下面是我自己做过的两块DSP28的全功能最小系统板,在做这两块板子的过程中发现要想尽力缩小DSP的面积实在不容易(目前只能达到50mm×45mm,这还是没有其他器件的情况下),尤其是双电源的供电方式和1.9V的电源让人很头疼。
后来因为一个项目,接触了LPC2148并做了一块板子,发现小型的ARM7在外设够用的情况下其实很不错,于是开始搜集相关芯片资料,也同时对小面积的A VR和51都进行了大致的比较,这个时候发现了CortexM3的STM32,比2148拥有更丰富和灵活的外设,性能几乎是2148两倍(按照MIPS值计算)。
正好2148我还没上手,就直接转了这款STM32F103。
与2811相比较(核心1.8V供电情况下),135MHz×1MIPS。
现在用STM32F103,72MHz×1.25MIPS,性能是DSP的66%,STM32F103R型(64管脚)芯片面积只有2811的51%,STM32F103C型(48管脚)面积是2811的25%,最大功耗是DSP的20%,单片价格是DSP的30%。
【原创教程】三星ARM chromebook在SSD硬盘上安装UBUNTU(FROM: MASA)强烈推荐!!介于SD卡安装ubuntu虽然比较完美,但是还是取决于读卡速度的小缺憾,我心里总是有些阴影,这几天又查了一些资料,发现其实可以在电脑的硬盘里分区安装UBUNTU,过程简单,很容易操作。
而且用下来感觉很完美,所以强烈推荐一下。
安装步骤如下:1、进入开发者模式:先把你的chromebook关机,按住ESC键和更新键(更新键在键盘最上面箭头键的右边)。
然后按住电源键。
在出现开机画面时迅速按CTRL+D(一定要快),然后你就会清理chrome os上的数据进入开发者模式,时间大约是15分钟。
2、进入终端:进入开发者模式之后,电脑会自动重启,画面到选择wifi的时候你要连上网络,之后会出现一个登陆GOOGLE帐号的画面,千万不要登陆这个帐号,这时候按住CTRL+ALT+=>键(=>就是在PC机上的F2位置,在最上面那一排。
)不要使用平常的CTRL+ALT+T进入终端,要用CTRL+ALT+=>,这样确保没有任何人登陆。
3、在终端操作:首先在终端下用用户名“chronos”登陆,不需要任何的密码;登陆之后输入代码:wget http://goo.gl/34v87; sudo bash 34v87这一步很关键,不要输入错误,注意空格,如果你输入代码,显示出一个“not found“的错误,你注意一下自己的电脑是不是联网了。
你会看见关于你电脑的一些信息,按ENTER键继续。
4、下面开始分区:CHROME OS的系统自动会占有11G的硬盘,刚才你输入的代码会压缩chrome os的这个系统盘空间,用来安装ubuntu,你输入范围以1G为单位在5至10G之间递增,一般不建议超过9G,我在这里输入的数字是8。
当你输入数字之后,你的硬盘会自动分区,然后chromebook会重启,一直到开机的欢迎画面。
第1篇一、基础知识1. 问题:简述嵌入式系统的定义和特点。
答案:嵌入式系统是指将计算机技术应用于特定领域,将硬件和软件结合在一起,形成具有特定功能的独立系统。
其特点包括:实时性、可靠性、低功耗、小体积、低成本等。
2. 问题:嵌入式系统与通用计算机系统的区别有哪些?答案:嵌入式系统与通用计算机系统的区别主要有以下几点:(1)设计目标不同:嵌入式系统面向特定应用,通用计算机系统面向通用应用;(2)硬件资源不同:嵌入式系统硬件资源有限,通用计算机系统硬件资源丰富;(3)软件系统不同:嵌入式系统软件系统相对简单,通用计算机系统软件系统复杂;(4)实时性要求不同:嵌入式系统对实时性要求较高,通用计算机系统实时性要求较低。
3. 问题:嵌入式系统中的CPU有哪些特点?答案:嵌入式系统中的CPU具有以下特点:(1)低功耗:为了满足嵌入式系统对功耗的要求,CPU需要具备低功耗的特性;(2)高性能:为了提高嵌入式系统的处理速度,CPU需要具备高性能的特性;(3)可扩展性:为了适应不同的应用需求,CPU需要具备可扩展性;(4)集成度:为了减小嵌入式系统的体积,CPU需要具备高集成度。
4. 问题:什么是嵌入式系统中的裸机?答案:嵌入式系统中的裸机是指没有操作系统和应用程序的CPU。
裸机主要用于学习和实验,也可以用于一些对实时性要求较高的应用。
5. 问题:什么是嵌入式系统中的实时操作系统(RTOS)?答案:实时操作系统(RTOS)是一种专门为实时应用设计的操作系统。
它具有以下特点:(1)实时性:RTOS能够满足实时应用对时间的要求;(2)可靠性:RTOS具有较高的可靠性,能够保证系统稳定运行;(3)可预测性:RTOS的性能可预测,便于应用开发。
二、硬件知识1. 问题:简述嵌入式系统中常用的存储器类型及其特点。
答案:嵌入式系统中常用的存储器类型及其特点如下:(1)RAM(随机存储器):用于存储临时数据,断电后数据会丢失;(2)ROM(只读存储器):用于存储程序代码,断电后数据不会丢失;(3)Flash(闪存):具有RAM和ROM的特点,既可读写,又可断电保存数据;(4)EEPROM(电可擦可编程只读存储器):可擦写,断电后数据不会丢失。
嵌入式处理器基础知识单选题100道及答案解析1. 嵌入式系统中,常用的微处理器不包括()A. ARMB. x86C. MIPSD. PowerPC答案:B解析:x86 处理器在个人计算机中应用广泛,在嵌入式系统中相对较少使用。
2. 以下哪项不是嵌入式处理器的特点()A. 专用性强B. 功耗低C. 成本高D. 体积小答案:C解析:嵌入式处理器通常成本较低,以适应大规模应用。
3. 嵌入式处理器的内核架构通常不包括()A. RISCB. CISCC. EPICD. VLIW答案:C解析:EPIC(显式并行指令计算)不是常见的嵌入式处理器内核架构。
4. 下列关于嵌入式处理器的存储管理单元(MMU)的说法,错误的是()A. 提供虚拟内存支持B. 提高系统安全性C. 所有嵌入式处理器都具备D. 进行地址转换答案:C解析:不是所有的嵌入式处理器都具备MMU。
5. 嵌入式处理器的工作温度范围通常为()A. 0℃- 50℃B. -40℃- 85℃C. -20℃- 60℃D. 10℃- 30℃答案:B解析:嵌入式处理器常用于各种恶劣环境,工作温度范围较宽,常见的为-40℃- 85℃。
6. 以下哪种总线常用于嵌入式处理器与外部设备的连接()A. PCIB. USBC. CAND. SATA答案:C解析:CAN 总线在嵌入式系统中常用于汽车电子等领域的设备连接。
7. 嵌入式处理器中的中断控制器的主要作用是()A. 处理异常B. 分配中断优先级C. 存储中断向量D. 禁止中断答案:B解析:中断控制器用于分配中断的优先级。
8. 下列哪种指令集在嵌入式处理器中应用较为广泛()A. x86 指令集B. MIPS 指令集C. IA-64 指令集D. SPARC 指令集答案:B解析:MIPS 指令集在嵌入式领域有较多应用。
9. 嵌入式处理器的性能指标不包括()A. 主频B. 字长C. 内存容量D. 功耗答案:C解析:内存容量是系统的配置,不是处理器本身的性能指标。
1、交叉编译那什么是交叉编译?简单地说,就是在一个平台上生成另一个平台上的可执行代码。
这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。
同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。
举例来说,我们常说的x86 Linux平台实际上是Intel x86体系结构和Linux for x86操作系统的统称;而x86 WinNT平台实际上是Intel x86体系结构和Windows NT for x86操作系统的简称。
那么我们即将用到ARM linux平台=》ARM体系结构,ARM linux操作系统2、交叉编译的基础知识在做实际工作之前,我想我们应该先掌握一些关于交叉编译的基本知识,其实说白了也就是理解一些我们经常会碰到的英文单词;)host 主机平台。
target 目的平台。
prefix 交叉编译器的安装位置。
xxx-xxxx-xxxxx 平台描述。
我们在主机平台上开发程序,并在这个平台上运行交叉编译器,编译我们的程序;而由交叉编译器生成的程序将在目的平台上运行。
这里值得说明得是平台描述,象arm-linux、i386-pc-linux2.4.3这样的字符串我们经常会看到,其实它是用来描述平台的,它有完整格式、缩减格式和别名之分。
完整格式(就不说了,否则。
)要进行交叉编译,我们需要在主机平台上安装对应的交叉编译工具链(cross compilation tool chain),然后用这个交叉编译工具链编译我们的源代码,最终生成可在目标平台上运行的代码。
常见的交叉编译例子如下:在Windows PC 上,利用ADS、keil(ARM 开发环境),使用armcc 编译器,则可编译出针对ARM CPU 的可执行代码。
在Linux PC 上,利用arm-linux-gcc 编译器,可编译出针对Linux ARM 平台的可执行代码。
Page 1 of 13S3C2410开发板数据手册强烈推荐这款2410开发板 超值提供ARM9 2410开发板+全新三星原装3.5三星TFT 带驱动板和触摸 1400元 LCD 单卖 550元 全新三星原装3.5三星TFT 带驱动板和触摸 GPRS 模块单卖 400元LCD 简介:生产商: SamSung 型 号: L TV350 成 色: 全新原装特 性: 26万色TFT 、分辨率320*240、带触摸屏、LED 背光 接 口: RGB/CPU 总线可选, 直接接S3C2410 附 件: 电压驱动板,2.0mm 双排插引出接口ARM9 2410硬件平台综述ARM9 2410平台由核心板(Core-Board)和底板(Bottom-Board)以及3.5寸LCD(带触摸)组成。
如下图所示:板子背面示意图:● ARM2410 的主要特点1、Core-Board(核心板)CPU: Samsung的S3C2410x处理器,工作频率达203MHz;FLASH ROM: 64MB Nand Flash,可选配为各种容量8位的NANDFLASH;NOR FLASH(SST39VF1601)提供2MBNor Flash;SDRAM : 64M (Samsung K4S561632H-Tc75) 2片4Banks×4Mbits ×16bits SDRAMPC100/PC133兼容;RTC 实时时钟: 外接32.768KHz的晶振,带有备份电池,可保持时钟NAND FLASH --NOR FLASH 启动选择开关两个I/O 口连接两个LED,方便用户调试自己的程序2、Bottom-Board (底板)LCD 接口: 支持各种TFT LCD(50PIN2.0排针)触摸屏接口:可接四线电阻式触摸屏;串口:两个RS232串口;1路TTL电平接口GPRS/GSM接口: SIMCOM公司GSM/GPRS模块USB Device接口: 1个DEVICE接口(USB 1.1协议)SPI 接口IIC总线接口ADC模数转换接口: 4路10位AD两个USB HOST: 1个USB Host A型接口(USB1.1协议),1个USBHost B型接口(USB1.1协议);SD/MMC 接口: 支持SD卡、同时兼容MMC卡;JTAG接口:标准ARM 20针JTAG&&Wiggle&&ICE 接口;IIS :采用UDA1341TS IIS 接口(立体声输出,MIC 输入),外部中断接口: 8路外部中断输入网卡:提供10M Ethernet芯片CS8900A,采用集成隔离变压器的RJ45接口,并带有Page 2 of 13Page 3 of 13ACT 、 LINK 指示灯蜂鸣器: 带驱动电路。
ARM 基础知识(强烈推荐).txt 有谁会对着自己的裤裆傻笑。
不敢跟他说话却一遍一遍打开他的资料又关上。
用了心旳感情,真旳能让人懂得很多事。
、如果有一天,我的签名不再频繁更新,那便证明我过的很好。
ARM 基础知识(强烈推荐)ARM基础知识一ARM处理器共有37个寄存器。
其中包括:**31个通用寄存器,包括程序计数器(PQ在内。
这些寄存器都是32位寄存器。
**6 个状态寄存器。
这些寄存器都是32 位寄存器。
ARM处理器共有7种不同的处理器模式,每一种模式中都有一组相应的寄存器组。
在任何时刻,可见的寄存器包括15个通用寄存器(R0-R14), —个或两个状态寄存器及程序计数器(PC。
在所有的寄存器中,有些是各模式公用一个物理寄存器,有一些寄存器各模式拥有自己独立的物理寄存器。
****************************************************通用寄存器***************************************************8通用寄存器分为以下三类:备份寄存器、未备份寄存器、程序计数器PC未备份寄存器未备份寄存器包括R0-R7。
对于每一个未备份寄存器来说,所有处理器模式下都是使用同一个物理寄存器。
未备份寄存器没有被系统用于特别的用途,任何可采用通用寄存器的场合都可以使用未备份寄存器。
备份寄存器对于R8-R12 备份寄存器来说,每个寄存器对应两个不同的物理寄存器。
系统为将备份寄存器用于任何的特殊用途,但是当中断处理非常简单,仅仅使用R8-R14寄存器时,FIQ处理程序可以不必执行保存和恢复中断现场的指令,从而可以使中断处理非常迅速。
对于R13,R14备份寄存器来说,每个寄存器对应六个不同的物理寄存器,其中的一个是系统模式和用户模式共用的;另外的五个对应于其他的五种处理器模式。
采用下面的记号来区分各个物理寄存器:R13_<MODE>其中MOD可以是下面几种模式之一:usr,svc,abt,und,irq,fiq程序计数器PC可以作为一般的通用寄存器使用,但有一些指令在使用R15时有一些限制。
由于ARM采用了流水线处理器机制,当正确读取了PC的值时,该值为当前指令地址值加上8个字节。
也就是说,对于ARM指令集来说,PC指向当前指令的下两条指令的地址。
由于ARM旨令是字对齐的,PC值的第0位和第一位总为0。
需要注意的是,当使用str/stm 保存R15时,保存的可能是当前指令地址值加8个字节,也可能保存的是当前指令地址值加12 个字节。
到底哪种方式取决于芯片的具体设计。
对于用户来说,尽量避免使用STR/STM旨令来保存R15的值。
当成功的向R15写入一个数值时,程序将跳转到该地址执行。
由于ARM旨令是字对齐的,写入R15的值应满足bits[1:0] 为0b00,具体要求arm个版本有所不同:**对于arm3以及更低的版本,写入R15的地址值bits[1:0] 被忽略,即写入r15的地址值将与0xFFFF FFFC做与操作。
**对于ARM4以及更高的版本,程序必须保证写入R15的地址值bits[1:0] 为0b00,否则将产生不可预知的后果。
对于Thumb指令集来说,指令是班子对齐的,处理器将忽略bit[0]。
ARM基础知识二***************************************************************程序状态寄存器***************************************************************CPSR当前程序状态寄存器)在任何处理器模式下被访问。
它包含了条件标志位、中断禁止位、当前处理器模式标志以及其他的一些控制和状态位。
每一种处理器模式下都有一个专用的物理状态寄存器,称为SPSR (备份程序状态寄存器)。
当特定的异常中断发生时,这个寄存器用于存放当前程序状态寄存器的内容。
在异常中断退出时,可以用SPSR来恢复CPSR由于用户模式和系统模式不是异常中断模式,所以他没有SPSR当用户在用户模式或系统模式访问SPSR将产生不可预知的后果。
CPSR格式如下所示。
SPSR和CPSR格式相同。
31 30 29 28 27 26 7 6 5 4 3 2 1 0N Z C V Q DNM(RAZ) I F T M4 M3 M2 M1 M0*** 条件标志位***N――本位设置成当前指令运算结果的bit[31]的值。
当两个表示的有符号整数运算时,n=1表示运算结果为负数,n=0 表示结果为正书或零。
z ―― z=1表示运算的结果为零;z=0表示运算的结果不为零。
对于CMP指令,Z=1表示进行比较的两个数大小相等。
C――下面分四种情况讨论C的设置方法:在加法指令中(包括比较指令CMP,当结果产生了进位,则C=1,表示无符号运算发生上溢出;其他情况C=0。
在减法指令中(包括减法指令CMP,当运算中发生错位,则C=0,表示无符号运算数发生下溢出;其他情况下C=1。
对于包含移位操作的非加碱运算指令,C中包含最后一次溢出的的位的数值对于其他非加减运算指令,C位的值通常不受影响V――对于加减运算指令,当操作数和运算结果为二进制的补码表示的带符号数时,V=1表示符号为溢出;通常其他指令不影响V位。
***Q 标识位***在ARMV5的E系列处理器中,CPSR勺bit[27]称为q标识位,主要用于指示增强的dsp指令是否发生了溢出。
同样的spsr的bit[27]位也称为q标识位,用于在异常中断发生时保存和恢复CPSF中的Q标识位。
在ARM V5以前的版本及ARM V5的非E系列的处理器中,Q标识位没有被定义。
***CPSR 中的控制位***CPSR的低八位I、F、T、M[4:0]统称为控制位。
当异常中断发生时这些位发生变化。
在特权级的处理器模式下,软件可以修改这些控制位。
**中断禁止位:当1=1时禁止IRQ中断,当F=1时禁止FIQ中断**T控制位:T控制位用于控制指令执行的状态,即说明本指令是ARM指令还是Thumb指令。
对于ARM V4以更高版本的T系列ARM处理器,T控制位含义如下:T=0表示执行ARM指令T=1表示执行Thumb指令对于ARM V5以及更高版本的非T系列处理器,T控制位的含义如下T=0表示执行ARM指令T=1 表示强制下一条执行的指令产生未定指令中断***M 控制位***M控制位控制处理器模式,具体含义如下:M[4:0] 处理器模式可访问的寄存器ob10000 user pc,r14~r0,CPSR0b10001 FIQ PC,R14_FIQ-R8_FIQ,R7~R0,CPSR,SPSR_FIQ0b10010 IRQ PC,R14_IRQ-R13_IRQ,R12~R0,CPSR,SPSR_IRQ0B10011 SUPERVISOR PC,R14_SVC-R13_SVC,R12~R0,CPSR,SPSR_SVC0b10111 ABORT PC,R14_ABT-R13_ABT,R12~R0,CPSR,SPSR_ABT0b11011 UNDEFINEED PC,R14_UND-R8_UND,R12~R0,CPSR,SPSR_UND0b11111 SYSTEM PC,R14-R0,CPSR(ARM V4以及更高版本)***CPSR 中的其他位‡这些位用于将来扩展。
应用软件不要操作这些位。
ARM基础知识三在ARM体系中通常有以下3种方式控制程序的执行流程:**在正常执行过程中,每执行一条ARM指令,程序计数器(PC)的值加4个字节;每执行一条Thumb指令,程序计数器寄存器(PC)加2个字节。
整个过程是按顺序执行。
** 跳转指令,程序可以跳转到特定的地址标号处执行,或者跳转到特定的子程序处执行。
其中,B 指令用于执行跳转操作;BL 指令在执行跳转操作同时,保存子程序的返回地址;BX指令在执行跳转操作同时,根据目标地址为可以将程序切换到Thumb状态; BLX指令执行3个操作,跳转到目标地址处执行,保存子程序的返回地址,根据目标地址为可以将程序切换到Thumb状态。
** 当异常中断发生时,系统执行完当前指令后,将跳转到相应的异常中断处理程序处执行。
当异常中断处理程序执行完成后,程序返回到发生中断指令的下条指令处执行。
在进入异常中断处理程序时,要保存被中断程序的执行现场,从异常中断处理程序退出时,要恢复被中断程序的执行现场。
ARM基础知识四ARM中异常中断的种类** 复位( RESET)§当处理器复位引脚有效时,系统产生复位异常中断,程序跳转到复位异常中断处理程序处执行。
复位异常中断通常用在下面几种情况下:系统加电时;系统复位时;跳转到复位中断向量处执行成为软复位。
** 未定义的指令**当ARM处理器或者是系统中的协处理器认为当前指令未定义时,产生未定义的指令异常中断,可以通过改异常中断机制仿真浮点向量运算。
** 软件中断** 这是一个由用户定义的中断指令。
可用于用户模式下的程序调用特权操作指令。
在实时操作系统中可以通过该机制西线系统功能调用。
** 数据访问终止( DATAABOR)T 如果数据访问指令的目标地址不存在,,或者该地址不允许当前指令访问,处理器产生数据访问终止异常中断行时,处理器产生指令预取终止异常中断。
§指令与取终止( PrefechAbort)** 如果处理器预取的指令的地址不存在,或者该地址不允许当前指令访问,当被预取的指令执** 外部中断请求(IRQ)**当处理器的外部中断请求引脚有效,而且CPSR勺寄存器的I控制位被清除时,处理器产生外部中断请求异常中断。
系统中个外设通过该异常中断请求处理服务。
** 快速中断请求( FIQ)**当处理器的外部快速中断请求引脚有效,而且CPSR的F控制位被清除时,处理器产生外部中断请求异常中断异常中断向量表及异常中断优先级中断向量表指定了个异常中断及其处理程序的对应关系。
他通常存放在存储地址的低端。
在ARM体系中,异常中断向量表的大小为32字节,其中每个异常中断占据4个字节大小,保留了 4 个字节空间。
每个异常中断对应的中断向量表中的 4 个字节的空间中存放了一个跳转指令或者一个向PC 寄存器中赋值的数据访问指令。
通过这两种指令,程序将跳转到相应的异常中断处理程序处执行。
当几个异常中断同时发生时,就必须按照一定的次序来处理这些异常中断。
各个异常中断的中断向量地址以及中断的处理优先级中断向量地址异常中断类型异常中断模式优先级( 6 最低)0x00 复位特权模式10x04 未定义的指令未定义指令终止模式60x08 软件中断特权模式60x0C 指令预取终止终止模式50x10 数据访问终止终止模式20x14 保留未使用未使用0x18 外部中断请求IRQ 模式40x1C 快速中断请求FIQ 模式3ARM基础知识五在应用程序中安装异常中断处理程序1. 使用跳转指令:可以在异常中断对应异常向量表中特定位置放置一条跳转指令,直接跳转到该异常中断的处理程序。