1536_AURIX_TriCore内核架构_Trap
全部学习汇总: GreyZhang/g_tricore_architecture: some learning note about tricore architecture. (github.com)
近段时间一直在跟trap打交道,但是处理得毫无头绪,因此找出来了这一章节看一下。暂时,这方面稍微有了一点框架感,但是还是缺少一些实践上的印证来丰富理论以及实践的结合点。
1. 首先这里引入了一个全新的知识点概念,后面需要去学习一下,那就是不可屏蔽中断。这个在接触ARM的时候就已经看到过了,但是没有弄清楚究竟是什么。
2. Trap一共有8类,这些概念之前的学习中也已经看过了。
3. 出问题之后,TIN会由硬件存储到D[15]之中。
4. 分类方式上,可以分成同步/异步、硬件/软件。
从这个表格看,其实只有少数几个trap是软件触发类的,其他的应该都是MCU内核硬件层面的行为。
1. 同步trap:执行或者尝试执行特殊的指令;访问了需要存储管理系统干预的地址。这样的trap在执行结束之前就可以判定。
2. 异步的trap类似中断,但是不可屏蔽。
3. 硬件中断,主要是MMU相关的。
4. 软件trap,可以通过断言等实现。这里顺便学到了,溢出其实是有几个断言支持的。
不可恢复的中断有一个FCU,之前也看到过。这么看,其实很多trap还是可以恢复的。而我现在看到的大部分的trap处理都是干脆利落,直接停止运行。看起来,这种处理的方式还是有一些欠缺。
1. Trap的处理与中断类似,但是中断的寄存器不会进行修改。
2. Trap的向量处理类似中断,可以类比理解。中断向量的入口是由硬件计算实现的。
3. 返回地址在不同的情况下返回意义以及解析方式不同,这个需要结合具体情况来分析。
4. trap向量表可以放在任意代码区中。
1. 这一页前面这部分与之前的章节有很大的重复,内容重复似乎是这个内核架构手册中的一大特点。但是这也非常好,可以让不同的章节可以有更好的可理解度。
2. 下面的trap处理过程,以及相应寄存器的设置看上去跟中断的处理都十分相似。
这里的一个信息让我觉得奇怪,前面刚刚看到trap不会处理中断,那么为什么又在这里关中断了?
这里,针对不同的trap以及原因做了一个简单的了解。具体的信息倒是可以直接参考笔记中的标注了。
FCD trap出现后的两种处理方法,这个在之前的文档中也是看到过的。看起来,这个内核架构手册的重复度的确是很大。
上面这部分信息主要也是对于TIN的理解,简单看了一下可能的原因。针对load以及fetch的差异后面需要专门学习。
这里看了几个新的TIN的解释,但是针对最后这个计数器减到零之后触发trap,感觉有一些意外。难道现在我接触到的项目中都不会有这种情况?或者说,以增加溢出滚动的方式到0不会触发?
前面还记录了想了解的不可屏蔽中断,这里接着出现了答案。几种典型的情况:NMI直接绑定到一个外部PIN脚;看门狗订一起中断响应;电源失效。
1. trap发生之后,中断不是不可以发生,而是优先级更低。
连续的几个表格给出来了一些trap的优先级。
整体看下来,trap系统不是很复杂,至少从结构路线上看,整体的复杂度甚至还不如中断。这类问题让人望而却步的很大原因或许不是它难,而是少见。
1536_AURIX_TriCore内核架构_Trap相关推荐
- 【Linux 内核 内存管理】内存管理架构 ① ( 内存管理架构组成 | 用户空间 | 内核空间 | MMU 硬件 | Linux 内核架构层次 | Linux 系统调用接口 )
文章目录 一.内存管理架构组成 ( 用户空间 | 内核空间 | MMU 硬件 ) 二.Linux 内核架构层次 三.Linux 系统调用接口 一.内存管理架构组成 ( 用户空间 | 内核空间 | MM ...
- Tensorflow源码解析1 -- 内核架构和源码结构
1 主流深度学习框架对比 当今的软件开发基本都是分层化和模块化的,应用层开发会基于框架层.比如开发Linux Driver会基于Linux kernel,开发Android app会基于Android ...
- Cortex M3内核架构
CortexM3内核架构 宗旨:技术的学习是有限的,分享的精神是无限的. 1.ARMCortex-M3处理器 Cortex-M3处理器内核是单片机的中央处理单元( CPU). 完整的基于CM3的MCU ...
- ARM CORTEX-M3 内核架构理解归纳
ARM CORTEX-M3 内核架构理解归纳 来源:网络 个人觉得对CM3架构归纳的非常不错,因此转载 基于<ARM-CORTEX M3 权威指南>做学习总结: 在我看来,Cotex-M3 ...
- 关于ARM的内核架构
@TOC张凌001 关于ARM的内核架构 很多时候我们都会对M0,M0+,M3,M4,M7,arm7,arm9,CORTEX-A系列,或者说AVR,51,PIC等,一头雾水,只知道是架构,不知道具体是 ...
- STM32 快速入门(内核架构,启动方式,开发参考资料,芯片选型)
文章目录 1.启动方式(Start up) 2.开发参考资料 2.1 STM32 中文参考手册 3.通常的芯片选型步骤 4.存储器和总线构架 4.1 系统构架 4.1.1 ICode 总线 4.1.2 ...
- 风雷影音v2.1.1.0落雪梨花绿色精简版【首家独创双播放内核架构、全面支持高清格式】...
风雷影音v2.1.1.0落雪梨花绿色精简版[首家独创双播放内核架构.全面支持高清格式] 软件名称: 风雷影音v2.1.1.0版精简绿化制作: ㊣:保留基本解码组件,已能满足日常视频播放要求: ㊣:保留 ...
- 搭建《深入Linux内核架构》的Linux环境
搭建<深入Linux内核架构>的Linux环境 阅读目录(Content) 作者 软件 概述 正文 一.安装GCC 二.编译Linux内核 三.制作跟文件系统 四.运行qemu 五.启动l ...
- 1541_AURIX_TriCore内核架构_内核调试控制器CDC
全部学习汇总: GitHub - GreyZhang/g_tricore_architecture: some learning note about tricore architecture. 这一 ...
最新文章
- Lintcode: Kth Smallest Number in Sorted Matrix
- 新手入门深度学习 | 2-3:文本数据建模流程示例
- Zookeeper实现注册与发现
- jedis jedispool Redistemplate
- 【js】JavaScript parser实现浅析
- 软件验收测试报告报价,软件验收测试介绍和软件验收报告的费用是多少?
- 一篇个人认为对RNN写的比较好的文章
- Java基础,无许复杂语句,倒序输出整数,int i = 123;输出321
- 在线考试系统源码 在线教育源码
- O365 Onedrive使用手册
- 微信记账小程序-共享账本(附源码及说明),你值得拥有
- 全新体验的飞冰 2.0 正式发布
- Unity3D 学习笔记6 ——协程
- 更换android开机动画须选择好正确的压缩格式
- 计算机社团活动效果取得成绩,电脑社团工作总结
- android更新软件,Android软件的自动更新
- dns缓存、cnd缓存、浏览器缓存
- 4.9. 相等的多项式
- 高效开发,项目中是否有聚合服务接口
- asp.net web快速开发mvc网站框架源码