实习日常理解

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:仅仅用于学习记录
这里是对寄存器的一些认识!!!随手记


一、寄存器是什么?

  • 硬件理解:读写速度极快,快于Cache,是用来保存数据;
  • 软件理解:就是一个变量, 亦是用于保存数据和判断操作;(对应不同寄存器的不同功能)
  • 寄存器种类:
    • 程序状态字寄存器PSW,指令寄存器IR,数据寄存器DR,程序计数器PC,地址寄存器AR,累加寄存器AC (CPU中)
    • GEM5 中 存在:Ctrl状态控制寄存器 stat状态寄存器 读写寄存器

二、读写寄存器 - devmem

  • 内核调试实用工具 — devmem 大概很多做底层驱动的人会经常使用到
  • Gem5中进行调试框架是否搭建ok?便可以进行使用

1.使用方法 – 命令格式

在这里插入图片描述

  • ADDRESS:物理地址
  • WIDTH:位宽
  • VALUE: 要写入的值

示例:读取32位寄存器0x40200000的值

devmem 0x40200000 32

示例:向32位寄存器0x40200000写入0x12345678

devmem 0x40200000 32 0下2345678

这样就可以进行简单的利用devmem进行轻松访问寄存器

2.内核配置devmem

  • devmem 命令依赖于/dev/mem设备节点,需要在Linux内核中打开/dev/mem的配置
    在这里插入图片描述

3.Linux应用层操作寄存器

  • 除了直接使用devmem,我们也可以在Linux应用层自己实现一个devmem。
  • devmem的实现原理,就是打开/dev/mem,然后通过mmap映射物理地址,从而实现读写寄存器。因此,我们只要实现这些操作,就可以自己实现类似devmem的功能。

总结

简单介绍了一下寄存器,然后以及在gem5中使用gem5debug标签使用devmem工具进行杀虫子bug!devmem是一个比较常用的工具,主要使用对象是驱动开发人员。devmem不仅仅是读写寄存器,只有有权限访问的物理地址即可

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值