私有外设总线PPB(Private Peripheral Bus) - 详解

news/2025/9/22 8:07:17/文章来源:https://www.cnblogs.com/yfceshi/p/19104483

私有外设总线PPB(Private Peripheral Bus)

PPB 的全称是 Private Peripheral Bus,中文翻译为私有外设总线

它是ARM Cortex-M处理器架构中一个极其关键的概念,专门用于访问处理器内核本身的调试、控制和配置组件。


1. 核心定义:它是什么?

PPB是一条基于高级外设总线(APB)协议的32位总线。它的“私有”体现在两个方面:

  1. 地址空间私有:它映射到一个专属于Cortex-M内核的、固定的存储器地址区域,即 0xE000_00000xE00F_FFFF。这个区域是ARM架构预定义的,所有Cortex-M处理器都遵守这个约定。
  2. 功能私有:挂在这条总线上的设备(寄存器)不是芯片厂商添加的通用外设(如UART、GPIO),而是ARM设计内核时内置的核心效果组件,用于控制内核最基本的行为,如中断、调试、系统定时器等。

简单来说,PPB是处理器内核的“内部管理系统”,用于访问那些“控制处理器自身”的寄存器。


2. 主要功能和特点

  • 访问内核级外设:PPB供应了访问以下核心组件的寄存器接口:

    • NVIC (Nested Vectored Interrupt Controller):嵌套向量中断控制器,管理所有中断。
    • SCB (System Control Block):系统控制块,控制系统级的设置,如电源管理、配置故障异常、定义向量表位置等。
    • SysTick Timer:系统定时器,为操作系统提供周期性的心跳中断。
    • MPU (Memory Protection Unit):内存保护单元(如果存在),配置内存访问权限。
    • 调试组件
      • FPB (Flash Patch and Breakpoint):闪存修补和断点单元。
      • DWT (Data Watchpoint and Trace):素材观察点与跟踪单元。
      • ITM (Instrumentation Trace Macrocell): instrumentation跟踪单元。
      • TPIU (Trace Port Interface Unit):跟踪端口接口单元。
  • 只支持特权访问:出于安全性和稳定性考虑,对PPB空间的访问通常得CPU处于特权模式。如果CPU处于用户(非特权)模式,尝试访问PPB区域将触发MemManage Fault(内存管理故障)。这可以防止用户应用程序随意修改内核的关键配置。

  • 固定的地址映射:PPB的地址是标准化的。例如:

    • NVIC 的基础地址是 0xE000_E100
    • SCB 的基础地址是 0xE000_ED00
    • SysTick 的寄存器在 0xE000_E010
      这种固定映射使得编写驱动程序、操作系统端口和调试器具变得极其方便,具有很好的可移植性。

3. 在环境中的位置

为了更好地理解PPB的地位,我们可以看一个简化的系统连接图:

从上图可以看出:


4. 与“系统总线”和“外设总线”的区别

特性PPB (私有外设总线)系统总线 / 芯片APB总线
地址范围0xE000_0000 - 0xE00F_FFFF例如 0x4000_0000 (APB1), 0x5000_0000 (APB2)
挂载的设备内核私有外设(NVIC, SCB, SysTick, 调试单元)芯片厂商添加的外设(GPIO, UART, TIMER, ADC等)
主要功能控制处理器内核自身的行为(中断、异常、调试、定时)控制芯片外部功能(驱动引脚、通信、数据转换)
访问权限通常需要特权模式可由软件配置为特权或用户模式均可访问(通常通过MPU)
标准化由ARM定义,所有Cortex-M芯片都一样由芯片厂商定义,不同厂商、不同型号的芯片各不相同

总结

PPB是Cortex-M处理器内核用于访问和控制其内部核心作用组件(如中断、系统定时器、调试单元)的私有总线。它位于固定的地址空间,需要特权访问,是与芯片厂商添加的外设完全分离的、由ARM预定义的“内核自留地”。

芯片厂商扩展的(通过芯片的APB总线访问)。在编写启动代码、移植操作系统或进行底层调试时,你会频繁地与PPB上的寄存器打交道。就是理解PPB有助于你区分哪些功能是Cortex-M内核自带的(通过PPB访问),哪些功能

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

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

相关文章

enrichmcp 构建数据驱动mcp的框架

enrichmcp 构建数据驱动mcp的框架enrichmcp 构建数据驱动mcp的框架 包含的特性通过数据模型生成类型工具 处理实体关系 处理schema 发现 通过pydantic 模型进行input 以及output 校验 支持database,api,自定义逻辑 支…

完整教程:visual studio快捷键

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

AppSpider 7.5.020 for Windows - Web 应用程序安全测试

AppSpider 7.5.020 for Windows - Web 应用程序安全测试AppSpider 7.5.020 for Windows - Web 应用程序安全测试 Rapid7 Dynamic Application Security Testing (DAST) released Sep 2025 请访问原文链接:https://sys…

上周热点回顾(9.15

热点随笔:为什么不建议在 Docker 中跑 MySQL? (苏三说技术) C# 2025年6-9月TIOBE排名增长及未来展望 (张善友) 重要:Java25正式发布(长期支持版)! (磊哥|www.javacn.site) 刚刚 Java 25 炸裂发布!让 Java 再次…

“学术造神”何时休?

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087这个时代的学术圈,正在上演一场盛大的滑稽剧:实验室里产出的不再…

vLLM 核心机密:大模型推理引擎内部长啥样?

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087vLLM Offcie Hours #32 又披露了一批新技术。其中有两个比较特殊,…

华为销量下滑OV米荣迎来窗口期

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087一、华为手机销量阶段性下滑以下是全国全渠道销量份额(不包含智选…

【GitHub每日速递 250922】开源 AI 搜索引擎 Perplexica:本地大模型 + 多模式搜索,免费又强大!

原文: https://mp.weixin.qq.com/s/F7KwZlUd5OQg5CbAEbZGug MarkItDown:多格式文件转Markdown神器,助力LLM文本分析! markitdown 是一个将文件和办公文档转换为 Markdown 的工具。简单讲,它能帮你把 Word、Excel 等…

coze工作流实战——三分钟读一本名著

导航前言 作品展示 工作流展示 操作步骤 结语 参考前言2025年被行业认为是智能体(Agent)元年。过去几年,我们见证了AI 大模型的飞速发展,从只会简单回答问题,简单生成图文,到可以写代码,生成复杂视频,甚至可以…

大厂是怎么识别“高潜员工”的?

微信视频号:sph0RgSyDYV47z6快手号:4874645212抖音号:dy0so323fq2w小红书号:95619019828B站1:UID:3546863642871878B站2:UID: 3546955410049087大部分人都想当“高潜员工”,包括我,因为高潜员工意味着更好的机…

读人形机器人19后劳动经济

读人形机器人19后劳动经济1. 后劳动经济 1.1. 后劳动经济不仅仅是一个理论上的概念,它是AI、机器人技术和自动化技术融合的潜在现实 1.2. 核心设想是一个由机器人完成大部分工作的社会,使得人类劳动在经济生产中变得…

2025年最佳笔记本扩展坞评测:一站式提升工作站效率

本文深度评测2025年十大笔记本扩展坞,涵盖Thunderbolt 5技术、多显示器支持、数据传输速度对比及功率分配方案,帮助用户根据实际需求选择最适合的桌面扩展解决方案。10款最佳笔记本扩展坞(2025年):实测与评测 笔记…

论文查重项目

这个作业的GitHub地址 https://github.com/kakadomi/kakadomi这个作业属于哪个课程 https://edu.cnblogs.com/campus/gdgy/Class34Grade23ComputerScience这个作业要求在哪里 https://edu.cnblogs.com/campus/gdgy/Cla…

我的第一个程序Hello,World!成功运行!

遇到了很多很多问题*JDK vs JRE,傻傻分不清,JDK才包含编译器javacOracle官网下载困难,转向下载Zulu OpenJDK(www.azul.com)配置环境变量后命令依然无效,在命令行输入javac -version不是内部或外部命令未输入完整路径…

Day05-1-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\David\scanner-Demo01~05(简易计算器)

package com.David.scanner; import java.util.Scanner; public class Demo01 { public static void main(String[] args) { //创建一个扫描对象,用于接受键盘数据‘ Scanner scanner = new Scanner(System.in); Syst…

Day05-C:\Users\Lenovo\Desktop\note\code\JavaSE\Basic\src\com\David\struct-ifDemo01~03+shunxuDemo

Scanner Java.util.scanner Scanner s = new Scanner(System.in); Next一定要读取到有效字符才结束 对输入有效字符前的空白,next()方法会自动将其去掉 只有输入有效字符后才将其后面输入的空白作为分隔符或结束符 ne…

JS历理 优化login.js脚本2

const infoList = [];// 收集链接相关信息 const currentUrl = window.location.href || "未知链接"; const originUrl = window.location.origin || "未知源地址"; const pathname = window.loca…

Codeforces Round 1052 (Div. 2)

A. Equal Occurrences 题意:求\(a\)的一个最长子序列,使得每个数出现的次数相同。 记录每个数出现的次数,排序后从小到大枚举出现次数,那么比它多的数都可以选。点击查看代码 #include <bits/stdc++.h>using…

PatternMatcher-Pytorch

import os import torch import torch.nn as nn import torch._inductor.pattern_matcher as pm from torch._higher_order_ops.auto_functionalize import auto_functionalized from torch._inductor.compile_fx impo…

uboot启动流程

1、整个流程BootROM(MaskROM) → TPL(可选) → VPL(可选) → SPL → U-Boot proper* (main U-Boot)(*表示必须要的阶段) BootROM(1、用户不可写 2、10KB量级 3、执行速度快, 和SRAM接近) TPL(Tertiary Program…