【微处理器系统原理与应用设计第五讲】再探Cortex-M4处理器结构、总线、异常与中断、SysTick

news2024/9/27 19:23:18

一、处理器结构

如下图所示,主要包括处理器内核、嵌套向量中断控制器(NVIC)、系统节拍定时器(SysTick)以及可选的浮点单元,还有一些内部总线系统、可选的存储器保护单元(MPU)以及支持软件调试操作的一组部件。

(1)NVIC是异常/中断处理的内置中断控制器。常规的处理器的系统异常由MPU内部控制,而外部中断由中断控制器控制。为了提高处理器的响应速度和方便处理,Cortex-M4将中断与系统异常处理合在了一起形成了NVIC。

(2)SysTick主要用于产生周期性的操作系统中断,与NVIC和处理器紧耦合,可以加快操作系统的进程或者任务切换速率。

二、处理器总线

1. Cortex-M4处理器内核采用两条总线,即指令访问总线和数据访问总线,再经过内部总线连接产生5个总线,即:

(1)程序指令总线(I-Bus):程序存储器中指令和向量的读取

(2)程序数据总线(D-Bus):程序存储器中的数据读取和调试访问

(3)系统总线(S-Bus):用于访问RAM和外设

(4)私有外设总线(PPB):只能用来访问内部私有外设和外部调试部件,不能用于其他外设

(5)调试访问端口(DAP):调试接口模块产生到任意存储器位置的调试访问操作

2. 以上总线都采用基于AMBA(高级微控制器总线架构)的总线接口设计,特点如下:

(1)AHB(AMBA高性能总线)Lite协议用于存储器和系统总线流水线操作。

(2)APB(高级外设总线)协议用于外部设备和调试部件的访问操作。外设分为内部私有外设(NVIC、SysTick、MPU等系统部件)、外部调试部件和通用外设、外设采用APB总线通过总线桥部件连接到系统总线上。

(3)代码存储区域采用专用的总线接口,独立于系统总线,使得数据的访问和取指可以并行进行、。这种分离的总线机构还可以加快中断响应,在中断处理期间,栈访问和读取程序映像中的向量表同时进行。

3. 在简单的微处理器设计中,程序存储器一般都会被连接到I-Bus和D-Bus总线,而SRAM和外设会被连接到系统总线。

普通外设一般采用APB(高级外设总线)协议。但是高性能外设可以使用AHB(AMBA高性能总线)Lite协议以提高带宽和运行速度。PPB不能用于普通外设。

程序存储器的访问具有两个总线(I-Bus和D-Bus)接口,分别用于取指和取数,在设计中可以使用一个简单的总线复用部件将这两个总线合并,利用这两个接口可以实现FLASH的访问加速。

三、系统异常与中断

系统异常和中断主要是由两个部件来控制和管理:一个是系统控制模块(SCB),主要配置系统异常;另一个是NVIC,主要配置外部中断和管理所有异常操作。

NVIC可以配置带有256个优先级、8级抢占优先权的中断。它可以处理多个中断请求(IRQ Interrupt Request)和一个不可屏蔽中断(NMI)请求。IRQ一般由片上外设或者外部中断输入产生,NMI可以用于掉电检测。

每个异常都有一个优先级,当新的异常优先级较高时,那么当前正在执行的任务就会暂停,有些寄存器会被保存在栈空间中,而微处理器开始执行新的异常的处理,这个过程称为抢占。当更高的优先级的异常处理完后,就会异常返回,微处理器自动从栈中恢复寄存器内容,并且继续执行之前的任务。最高的优先级为系统复位,值为-3,其次为掉电检测(NMI),值为-2;再次为硬故障,值为-1。

四、SysTick

SysTick属于是NVIC的一部分,可以产生SysTick异常(编号为15)。它是一个向下计数的24位计数器,使用的是处理器时钟或者外部参考时钟(片上时钟源)。

在操作系统中,需要一个周期性的中断来定期触发操作系统内核,使处理器可以在不同的时间片内处理不同任务。微处理器确保运行在非特权等级的应用任务无法禁止该定时器,以免锁定整个系统。当不需要使用操作系统时,该定时器可以作为简单的定时器外设,用来产生周期性延时或中断。

SysTick的基本框架如下图所示:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2104402.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【AI】前向和反向传播的关系

这个例子来自ChatGPT,很有趣的解释了一个模型在trian的过程中前向传播和反向传播的过程。 其中Sigmoid的导数是 自身乘以1-自身的结果。 这也是上述式子中为什么有0.622*(1-0.622)。

Android Telephony总结

1、Telephony 业务介绍 Android telephony涉及较多模块 1.1、STK业务介绍 1.1.1、STK域选 1.1.2、是否支持STK Telephon STK-CSDN博客 1.1.3、STK应用的安装卸载 1.2、SS补充业务 1.3、通话业务 1.3.1、紧急号码 ECC 号码总结_ecc号码-CSDN博客 1.4、SMS 1.4.1 短信发送方式…

相亲交友系统如何运用算法匹配理想伴侣

在数字化时代,相亲交友系统已经成为寻找理想伴侣的重要途径。作为程序员,我们致力于通过先进的算法,为用户提供精准的匹配服务,让相亲交友变得更加高效和有趣。 相亲交友系统的核心在于算法,我们的团队运用了多种算法…

一线大厂软件测试面试题及答案解析,2024最强版...

1、什么是兼容性测试?兼容性测试侧重哪些方面? 参考答案: 兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。 兼容的类型,如果细分的话,有平台的兼容,网络兼容&#xff0…

达梦创建新连接

小伙伴是不是遇到过什么都没有的达梦数据库页面,很慌 我们直接点击窗口——视图——对象导航 出来了以后,点击小图标进行新建链接 输入自己的密码用户名,就能新建一个链接了,希望可以帮助到各位小伙伴

软件测试之压力测试知识总结

🍅 点击文末小卡片,免费获取软件测试全套资料,资料在手,涨薪更快 压力测试 压力测试是一种软件测试,用于验证软件应用程序的稳定性和可靠性。压力测试的目标是在极其沉重的负载条件下测量软件的健壮性和错误处理能力&…

window系统开机执行bat脚本

1,win R 打开运行对话框,然后如下图所示输入 第二,打开启动文件夹后,将想要执行的bat脚本,创建快捷方式,放在这里,重启电脑时就会执行这个程序

银行接口测试的具体流程及内容?

银行接口测试的具体流程及内容可以概括为以下几个关键步骤: 一、测试前准备 接口测试计划制定: 确定测试目标、范围、人员分工、时间计划等。 编写接口测试计划文档,明确测试策略、测试方法、测试工具等。 接口文档解析: 深入理…

Linux进程状态 僵尸进程 孤儿进程

进程状态 R (running) Linux 的运行状态(循环空语句) S (sleeping) 阻塞状态 称为浅度睡眠(可以被唤醒)死循环打印语句时等待输入时使用 sleep 函数时 D (disk sleep) 也是一种阻塞状态,称为深度睡眠进程在等待磁盘写入完毕期间,这个进程不能被任何人杀…

一键云迁移:利用VMware PowerCLI将OVA虚拟机顺利迁移到AWS

哈喽大家好,欢迎来到虚拟化时代君(XNHCYL)。 “ 大家好,我是虚拟化时代君,一位潜心于互联网的技术宅男。这里每天为你分享各种你感兴趣的技术、教程、软件、资源、福利…(每天更新不间断,福利…

【学习AI-相关路程-工具使用-自我学习-jetson收集数据-图片采集-训练前准备-基础样例 (5)】

【学习AI-相关路程-工具使用-自我学习-jetson&模型训练-图片识别-使用模型检测图片-基础样例 (5)】 1 -前言2 -环境说明3 -先行了解(1)整理流程了解(2)了解模型-MobileNet1、MobileNetV2 的主要特性&am…

大模型推理框架 RTP-LLM 架构解析

RTP-LLM 是阿里巴巴智能引擎团队推出的大模型推理框架,支持了包括淘宝、天猫、闲鱼、菜鸟、高德、饿了么、AE、Lazada 等多个业务的大模型推理场景。RTP-LLM 与当前广泛使用的多种主流模型兼容,使用高性能的 CUDA kernel, 包括 PagedAttention、FlashAtt…

gpt plus获取指南

随着AI技术的发展,越来越多的人开始依赖GPT来提高工作效率。市场上有多个平台提供GPT服务,如何选择最适合自己的?本文将详细对比两个热门平台:「银河」和「环球」,帮助你快速决策。 环球链接 银河链接 结论先行&#…

预测赢家00

题目链接 预测赢家 题目描述 注意点 1 < nums.length < 200 < nums[i] < 10^7假设每个玩家的玩法都会使他的分数最大化如果两个玩家得分相等&#xff0c;同样认为玩家1是游戏的赢家 解答思路 需要注意的是&#xff0c;如果数组中的元素个数为偶数&#xff0c;…

Golang环境安装、配置详细

Windows下安装Go开发环境 点我下载 Windows配置Go环境变量 出现工具install失败时&#xff0c;切换其它代理 # 1. 七牛 CDN go env -w GOPROXYhttps://goproxy.cn,direct# 2. 阿里云 go env -w GOPROXYhttps://mirrors.aliyun.com/goproxy/,direct# 3. 官方 go env -w GOP…

波场(Tron)监听区块交易(TRX,USDT)

前言说明&#xff1a; 本篇文章参考GitHub一位伙伴的代码&#xff0c;再代码基础上优化改良以后的结果&#xff0c;但是一下找不到那位大佬的GitHub链接了&#xff0c;如有侵权请联系作者调整文章&#xff0c;让跟多人收益。谢谢。 实现思路: 波场链是一条很新奇的链&#xff…

网络协议--HTTP 和 HTTPS 的区别

网络协议–HTTP 和 HTTPS 的区别 一、简述 HTTP (全称 Hyper Text Transfer Protocol)&#xff0c;就是超文本传输协议&#xff0c;用来在 Internet 上传送超文本。是互联网上应用最为广泛的一种网络协议&#xff0c;是一个客户端和服务器端请求和应答的标准(TCP)&#xff0c…

NET 8 + WPF 企业级工作流系统

目录 前言 项目介绍 功能模块 快速预览 1、快速预览方式1 2、快速预览方式2 3、快速预览方式3 项目框架 项目功能 1、快速代码生成 2、大屏界面&#xff08;可拖拽&#xff0c;可全屏&#xff09; 3、Form 表单 4、通用crud方法 5、大文件上传与下载 6、多窗口、…

【机器学习】集成学习的基本概念、Bagging和Boosting的区别以及集成学习方法在python中的运用(含python代码)

引言 集成学习是一种机器学习方法&#xff0c;它通过结合多个基本模型&#xff08;通常称为“弱学习器”&#xff09;来构建一个更加强大或更可靠的模型&#xff08;“强学习器”&#xff09; 文章目录 引言一、集成学习1.1 集成学习的核心思想1.2 常见的集成学习方法1.2.1 Bag…

SpringBoot3 + Spring Security6认证授权

SpringBoot3 Spring Security6 实现默认地址/login的认证 Spring Security 核心技术过滤器。一个web请求会经过一系列的过滤器进行认证授权。 主要是用默认的/login请求&#xff0c;继承UsernamePasswordAuthenticationFilter&#xff0c;来实现用户名和密码登录。 核心流程 …