cortex-m处理器
文章平均质量分 87
risc_luck
这个作者很懒,什么都没留下…
展开
-
OS支持特性
cortex-m处理器架构实现了多个特性,保证了OS设计的方便和高效。例如:①影子栈指针。有两个栈指针可用,MSP用于OS内核以及中断处理,PSP则用于应用任务。②SysTick定时器。位于处理器内部的简单定时器,使得同一个嵌入式OS可用在多种cortex-m微控制器上。③SVC和PendSV异常。这两种异常对于嵌入式OS中的操作非常重要,如上下文切换的实现等。④非特权执行等级。可以利用其实现一种基本安全模型,限制某些应用任务的访问权限。特权和非特权等级的分离还可同存储器保护单元一起使用,进一步提高原创 2022-02-25 20:04:09 · 851 阅读 · 0 评论 -
存储器保护单元
一、MPU简介cortex-m3和cortex-m4处理器支持一种名为MPU的特性。MPU是一种可编程的部件,用于定义不同存储区域的存储器访问权限(如只支持特权访问或全访问)和存储器属性(如可缓冲、可缓存)。cortex-m3和cortex-m4处理器中的MPU支持多达8个可编程存储器的区域,每个都具有自己可编程的起始地址、大小及设置,另外还支持一种背景区域特性。MPU可以提高嵌入式系统的健壮性,可以使系统更加安全:①避免应用任务破坏其他任务或OS内核使用的栈或数据存储器②避免非特权任务访问对系统可靠原创 2022-02-25 20:00:51 · 1174 阅读 · 0 评论 -
深入了解异常处理
一、简介1.1 C实现的异常处理对于cortex-m处理器,可以将异常处理或ISR实现为普通的C程序/函数,为了深入了解这种机制,我们先来看一下C函数在ARM架构上是如何工作的。用ARM架构的C编译器遵循ARM的一个名为AAPCS的规范。根据这份标准,C函数可以修改R0R3、R12、R14(LR)以及PSR。若C函数需要使用R4R11,就应该将这些寄存器保存到栈空间中,并且在函数结束前将它们恢复,如下图所示:R0~R3、R12、LR以及PSR被称作调用者保存寄存器,若在函数调用后还需要使用这些寄存原创 2022-01-01 10:32:54 · 1664 阅读 · 0 评论 -
异常和中断
一、异常和中断简介中断一般由硬件(如外设和外部输入引脚)产生的事件,它会引起程序流偏离正常的流程(如给外设提供服务)。当外设或硬件需要处理器的服务时,一般会出现下面的流程:①外设确认到处理器的中断请求。②处理器暂停当前执行的任务③处理器执行外设的ISR,若有必要可以选择由软件清除中断请求。④处理器继续执行之前暂停的任务。所有的cortex-m处理器都会提供一个用于中断处理的嵌套向量中断控制器(NVIC)。除了中断请求,还有其他需要服务的事件,将其称为异常。按照ARM的说法,中断也是一种异常。co原创 2022-01-01 10:26:19 · 3780 阅读 · 0 评论 -
cortex-M3/M4存储器系统
一、存储器系统特性简介cortex-m 处理器可以对32位存储器进行寻址,因此存储器空间能够达到4GB。存储器空间是统一,这也意味着指令和数据共用相同的地址空间。根据架构定义,4GB的存储器空间被分为了多个区域。另外,cortex-M3和cortex-M4处理器的存储器系统支持多个特性:①多个总线接口,指令和数据可以同时访问(哈佛总线架构)②基于AMBA(高级微控制器总线架构)的总线接口设计,实际上也是一种片上总线标准:用于存储器和系统总线流水线操作的AHB(AMBA高性能总线)Lite协议,以及用于原创 2021-12-23 19:35:47 · 4965 阅读 · 0 评论 -
cortex-M3/M4 指令集
一、理解汇编语言用法ARM汇编(适用于ARM realview工具链 DS-5 Keil微控制器开发套件)指令格式如下:label mnemonic operand1,operand2, … ;注释label(标号)表示地址位置,是可选的。有些指令的前面可能会有标号,这样就可以通过这个标号得到指令的地址。标号也可以用于表示数据地址。例如,可以在程序内的查找表处放一个标号。mnemonic为助记符,也就是指令的名称,其后跟着的是多个操作数。对于在ARM汇编器中编写的数据处理指令,第一个操原创 2021-12-21 19:14:33 · 7209 阅读 · 0 评论 -
cortex-M3/cortex-M4架构
一、编程模型1.1 操作模式和状态cortex-m3和cortex-m4处理器有两种操作状态和两个模式。另外,处理器还可以区分特权和非特权访问等级,如下图所示。特权访问等级可以访问处理器中的所有资源,而非特权访问等级则意味着有些存储器区域是不能访问的,有些操作也是无法使用的。操作状态:调试状态:当处理器被暂停后(例如,通过调试器或触发断点后),就会进入调试状态,并停止指令执行。Thumb状态:若处理器在执行程序代码(Thumb指令),它就会处于Thumb状态。cortex-m不支持ARM指令集,原创 2021-12-08 09:25:08 · 7384 阅读 · 0 评论 -
cortex-M3/cortex-M4技术综述
一、cortex-m3和cortex-m4处理器的一般信息1.1 处理器类型ARM CORTEX-M 为32位RISC 处理器,其具有32位寄存器32位内部数据通路32位总线接口 除了32位数据,ARM处理器都还可以高效地处理8位数据和16位数据。m3和m4处理器还支持涉及64位数据的多种运算(如乘和累加)m3 m4处理器都具有三级流水线(取指、译码和执行),它们都基于哈佛总线架构,取指令和数据访问可以同时执行。 ARM cortex-m 处理器的存储器系统使用32位寻址,地址空间最大原创 2021-12-03 10:55:39 · 4077 阅读 · 0 评论 -
cortex-M3/cortex-M4处理器简介
cortex-M3、cortex-M4简介cortex-M3、cortex-M4 处理器使用32位架构,寄存器组中的内部寄存器、数据通路以及总线接口都是32位的,cortex-m处理器使用的指令集架构(ISA)为Thumb ISA,其基于Thumb-2技术并同时支持16位和32位指令。因此无须在Thumb状态(16位指令)和ARM状态(32位指令)间来回切换,其具有以下特点:三级流水线设计。哈佛架构,且具有统一的存储器空间;指令和地址总线使用相同的地址空间。32位寻址,支持4GB存储器空间基于AR原创 2021-12-02 18:12:32 · 7454 阅读 · 0 评论