没有合适的资源?快使用搜索试试~ 我知道了~
第七章 基于平头哥E902处理器的SoC设计——(3)无剑100 SoC 异常与中断邸志雄@西南交通大学slides与源代码网址 http://www.dizh
资源推荐
资源详情
资源评论
芯动力——硬件加速设计方法
第七章 基于平头哥E902处理器的SoC设计
——(3)无剑100 SoC 异常与中断
邸志雄@西南交通大学
[email protected].edu.cn
slides与源代码网址 http://www.dizhixiong.cn/class5/
异常与中断机制
广义上的异常
异常(Exception)
中断(Interrupt)
突然被中断请求
异常事件打断而中止当前的程序
顺序执行程序指令流
中断
外围硬件设备
非法指令和非对齐访问错误、执行特殊的系统服务指令
如ecall、ebreak等
异常
内部事件:
区别
起因内外有别
异常响应
异常处理
异常返回
异常机制包含
所有操作在一个处理器
时钟周期完成
RISC-V 编程模型中没有异常使能寄存器,因此一旦触发异常立刻进行响应。
异常响应
异常响应
进入异常时RISC-V架构规定的硬件行为简述
更新CSR寄存器
机器模式异常原因寄存器mcause
(Machine Cause Register)
机器模式异常值寄存器mtval
(Machine Trap Value Register)
机器模式异常PC寄存器mepc
(Machine Exception Program Register)
机器模式状态寄存器mstatus
(Machine Status Register)
停止当前程序流,转向机器模式异常入口基地址寄存器
mtvec(Machine Trap-Vector Base-Address Register)定义
的pc地址执行
mtval记录了异常的详细信息,异常时硬件自动更新这两个寄存器。
异常响应
mepc mcause mtval mstatus
硬件自动将遇到异常时的PC值存入mepc,在异常结束后通过它保存的PC值返回之前的程序断点。
值得注意的是,如果异常因ecall/ebreak指令(主动触发异常)产生,则异常结束后仍会执行该指令
造成死循环,可以在异常处理程序中修改mepc为下一条指令地址解决。
mepc(机器模式可读写)
mcause记录了中断或异常的向量号
mcause
mtval
剩余28页未读,继续阅读
资源评论
士多霹雳酱
- 粉丝: 22
- 资源: 299
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功