当前位置: 首页 > news >正文

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

私有外设总线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.rkmt.cn/news/9343.html

相关文章:

  • enrichmcp 构建数据驱动mcp的框架
  • 完整教程:visual studio快捷键
  • vLLM 核心机密:大模型推理引擎内部长啥样?
  • 华为销量下滑OV米荣迎来窗口期
  • coze工作流实战——三分钟读一本名著
  • 读人形机器人19后劳动经济
  • 2025年最佳笔记本扩展坞评测:一站式提升工作站效率
  • 我的第一个程序Hello,World!成功运行!
  • React18新增的hook useId
  • 十年架构演进史:从臃肿war包到云原生,我们终于解放了!
  • 从IpadOS 26 Beta版切换成IpadOS 26 正式版
  • 2025.9.21总结
  • 5-5读写文件
  • 二叉树的高度和判断平衡二叉树
  • UE5 Cook数据结构
  • WPF治具软件模板分享 - Dragonet
  • 微信扫码二维码,关注绑定公众号提醒,利用微信公众号的模板消息进行消息通知的推送
  • 各位同学,大家好!我想请大家回忆一段我们在刘集中学的故事,和我单独联系。我想把这些故事写出来保存。欢迎与我分享!谢谢!
  • vite7-vue3-os网页os管理|vue3+vite7+arco.design网页pc版webos系统
  • python读取csv文件后,打印内容再return返回内容,返回值为空
  • 实用指南:手机群控平台的工作效率
  • 在ubuntu系统的c语言程序
  • asfp导入framework搭建环境
  • 赛前训练2 连通性问题
  • Window 连接 Ubuntu远程桌面
  • 提高杂题
  • 【比赛记录】2025CSP-S模拟赛51
  • some
  • CF494C Helping People
  • 深入解析:Extract Chart Data Directly to Excel