1.前言

2.The system address map

3.System Control Space (SCS)

4.The system timer, SysTick

5. Nested Vectored Interrupt Controller, NVIC

与中断异常相关的寄存器主要包含在如下几个部分:

1.位于SCS.system control and ID.no SCB下的的中断相关寄存器

  • Interrupt Controller Type Register, ICTR

主要提供了关于中断控制器相关的信息,此处给出了MCU厂商所支持的中断线的总数

  • Software Triggered Interrupt Register, STIR

提供了一个机制,让软件来触发产生一个中断,需要在bit0~bit8写入一个(ExceptionNumber - 16)值来触发对应中断线产生中断

2.位于SCS.system control and ID. SCB下的的中断相关寄存器

  • Interrupt Control and State Register, ICSR

提供NMI, PendSV, and SysTick exceptions的软件控制和中断状态信息

主要包括 PendSV和SysTick的手动pending和清pending;

是否有外部中断产生;

是否有更高优先级的中断pending产生

除了当前中断异常处于活跃状态,是否还有其他异常处于活跃状态

显示当前异常的异常号

  • Application Interrupt and Reset Control Register, AIRCR

设置返回中断控制数据,通过向bit1写入1来清空所有中断异常的活跃状态信息

  • Vector Table Offset Register, VTOR

向量表地址,bi7~bit31

  • System Handler Priority Register 1, SHPR1

设置返回系统handler4~7的异常优先级

  • System Handler Priority Register 1, SHPR2

设置返回系统handler8~11的异常优先级

  • System Handler Priority Register 1, SHPR3

设置返回系统handler12~15的异常优先级

3.位于SCS的NVIC区域内的中断相关寄存器

  • Interrupt Set-Enable Registers, NVIC_ISER0-NVIC_ISER15

使能或读每组中断的使能状态

  • Interrupt Clear-Enable Registers, NVIC_ICER0-NVIC_ICER15

清空或读每组中断的使能状态

  • Interrupt Set-Pending Registers, NVIC_ISPR0-NVIC_ISPR15

设置每个中断的pending

  • Interrupt Clear-Pending Registers, NVIC_ICPR0-NVIC_ICPR15

清空每个中断的pending

  • Interrupt Active Bit Registers, NVIC_IABR0-NVIC_IABR15

每组32个中断,显示是否处于活跃状态

  • Interrupt Priority Registers, NVIC_IPR0-NVIC_IPR123

每个寄存器设置4个中断的优先级,每个优先级占8位

6. Protected Memory System Architecture, PMSAv7

ARMV7-M数据手册---Part B :System Level Architecture---B3 System Address Map的更多相关文章

  1. System Address Map Initialization in x86/x64 Architecture Part 2: PCI Express-Based Systems

      原文  http://resources.infosecinstitute.com/system-address-map-initialization-x86x64-architecture-pa ...

  2. Android File Hierarchy : System Structure Architecture Layout

    Most of the Android user are using their Android phone just for calls, SMS, browsing and basic apps, ...

  3. Linux/Unix System Level Attack、Privilege Escalation(undone)

    目录 . How To Start A System Level Attack . Remote Access Attack . Local Access Attack . After Get Roo ...

  4. Java I/O theory in system level

    参考文章: JAVA NIO之浅谈内存映射文件原理与DirectMemory Java NIO 2.0 : Memory-Mapped Files | MappedByteBuffer Tutoria ...

  5. [转] 检查更新时出错:无法启动更新检查(错误代码为 4: 0x80070005 — system level)

    Google浏览器Chrome更新到时候提示错误:检查更新时出错:无法启动更新检查(错误代码为 4: 0x80070005 -- system level),很有可能是Chrome更新服务被禁用了,我 ...

  6. DASH----Desktop and mobile Architecture for System Hardware----桌面和移动系统硬件架构(DASH)计划

    http://baike.baidu.com/subview/813787/11301142.htm http://sites.amd.com/cn/business/it-solutions/man ...

  7. 错误描述:请求“System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”类型的权限已失败

    错误描述:请求“System.Data.SqlClient.SqlClientPermission, System.Data, Version=2.0.0.0, Culture=neutral, Pu ...

  8. System and method for critical address space protection in a hypervisor environment

    A system and method in one embodiment includes modules for detecting an access attempt to a critical ...

  9. 对于System.exit(0)和System.exit(1)的一般理解

    public static void exit(int status) 终止当前正在运行的 Java 虚拟机.参数用作状态码:根据惯例,非 0 的状态码表示异常终止. 该方法调用 Runtime 类中 ...

随机推荐

  1. kettle连接mysql数据库并进行数据分析

    1.数据库链接驱动 如果没有安装对应的数据库链接驱动,在数据库链接的过程中,可能会报某个数据库连接找不到的异常,因此需要下载对应驱动后(安装步骤可以参见“怎么在官网上下载java连接mysql的驱动j ...

  2. 《Apache kafka实战》读书笔记-管理Kafka集群安全之ACL篇

    <Apache kafka实战>读书笔记-管理Kafka集群安全之ACL篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 想必大家能看到这篇博客的小伙伴,估计你对kaf ...

  3. 记录一次php连接mssql的配置

    记录一次php连接mssql的配置 在现有php环境中,php连接mssql数据库失败,tsql 连接正常. 确认问题在php环境上. 网上有个同仁总结的很好,https://blog.csdn.ne ...

  4. H5新属性FileReader实现选择图片后立即显示在页面上

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  5. zookeeper下的基本操作

    安装好zk之后 启动服务端:在bin目录下 zkServer.sh restart 启动客户端 zkCli.sh 检查是否启动 直接输入jps命令,显示下面则表示启动成功 [root@iZbp12gg ...

  6. Hadoop记录-Linux Service

    [Unit] Description=Datanode After=syslog.target network.target auditd.service sshd.service datanode_ ...

  7. ruby 中 手动执行job任务

    step1:通过crtk客户端 进入项目主目录 step2:rails c step3:job类名.new.方法名 例:MonthWorkPlanJob.new.perform

  8. ibatis项目启动报错The string "--" is not permitted within comments【原】

    该错误主要就是因为xml中<!-- [注释]--> 注释与-->之间没有空格造成xml解析错误 sqlMapConfig.xml内容如下 <?xml version=" ...

  9. mysql 批处理命令执行多个sql脚本

    方法1 若有SQL脚本a.sql, b.sql, 其目录在f盘根目录下, 则可再写一个SQL脚本c.sql(假设其目录也在f盘根目录下, 也可以在其他路径下)如下: source f:/a.sql; ...

  10. Openresty 学习笔记(四)lualocks包管理器安装使用

    Luarocks是一个Lua包管理器,基于Lua语言开发,提供一个命令行的方式来管理Lua包依赖.安装第三方Lua包等,社区比较流行的包管理器之一,另还有一个LuaDist,Luarocks的包数量比 ...