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. 2017-12-15python全栈9期第二天第五节之格式化输出补充之想要在格式化输出中表示单纯的%号就加%

    #!/user/bin/python# -*- coding:utf-8 -*-name = input('姓名:')age = input('年龄:')height = input('身高:')ms ...

  2. layui(三)——laypage组件常见用法总结

    laypage 的使用非常简单,指向一个用于存放分页的容器,通过服务端得到一些初始值,即可完成分页渲染.核心方法: laypage.render(options)  来设置基础参数. 一.laypag ...

  3. GridView固定行宽,自动换行,鼠标放在Table的Tr上变色

    //固定行宽table-layout:fixed;//自动换行word-break :break-all;word-wrap:break-wordGridView.Attributes.Add(&qu ...

  4. linux kill 命令【待完善】【转】

    kill 命令用来处理进程, 在linux中即可使用kill -9 pid 杀死进程 , 也可使用kill -KILL pid 等价的命令来执行. HUP 1 终端断线 INT 2 中断(同 Ctrl ...

  5. ACM-ICPC 2018 南京赛区网络预赛 B The writing on the wall(思维)

    https://nanti.jisuanke.com/t/30991 题意 一个n*m的方格矩阵,有的格子被涂成了黑色,问该矩阵中有多少个子矩阵,子矩阵不包含黑色格子. 分析 参考https://bl ...

  6. PHP7 学习笔记(十一)使用phpstudy快速配置一个虚拟主机

    说明:为了windows本地开发php方便,这里推荐使用PHP集成环境phpstudy. 目的:使用域名访问项目(tinywan.test) 1.官网:http://www.phpstudy.net ...

  7. oracle杀掉连接

    相关sql --查看当前连接 select count(*) from v$process --数据库允许的最大连接数 select value from v$parameter where name ...

  8. Groovy 类名称赋值为变量使用(newInstance & new)

    类创建实例一般方式 http://groovy-lang.org/objectorientation.html#_class class Person { String name Integer ag ...

  9. JSON CSRF新姿势

    以前做渗透测试,遇到过很多次POST数据为JSON数据的CSRF,一直没有搞定,最近发现一个新姿势, ​​​本文作者:Mannix@安全文库 微信公众号:安全文库 测试的时候,当应用程序验证了Cont ...

  10. DNN网络(三)python下用Tensorflow实现DNN网络以及Adagrad优化器

    摘自: https://www.kaggle.com/zoupet/neural-network-model-for-house-prices-tensorflow 一.实现功能简介: 本文摘自Kag ...