当前位置:网站首页>TRACE32——外设寄存器查看与修改
TRACE32——外设寄存器查看与修改
2022-08-05 06:42:00 【Rainmicro】
TRACE32——外设寄存器查看与修改
本文介绍外设寄存器,例如I2C、GPIO、SPI、CAN等如何在TRACE32中灵活查看与修改。
首先,外设寄存器的查看与修改,离不开TRACE32的外设文件(*.per),per文件一般存在于TRACE32的安装根目录下。
一般情况下,在调试时,TRACE32会根据当前选择的芯片名自动选择合适的per文件,此时只需要执行命令
per
或者通过鼠标点击CPU-Peripherals进行打开

或者可以显示地指定查看哪个外设寄存器文件
per.view ~~\perj721e.per //~~表示TRACE32安装根目录, 例如D:\T32
per D:\T32\perj721e.per //效果等同于上面的命令
如果需要修改某个外设寄存器的值,可以找到对应寄存器的位置,右键,选择Set或者Modify进行修改

命令改写外设寄存器的方法如下:
PER.Set.simple ASD:0x40000000 %Long 0x77700000
在TRACE32中可以显示某个位域的值,也可以按位域进行修改,只需要找到需要修改的位域,右键,按照提示进行切换值即可:

用命令改写位域的方法如下:
PER.Set.Field ASD:0x40000000 %Long 0x007c0000 0x5
其中
ASD:0x40000000是外设寄存器地址
%long 表示寄存器位宽为32bit
0x007c0000是mask
0x5是要改写的value
改写的规则如下

即:
NewData=(OldData&~mask)|((value<<offset(mask))&mask)
更多用法1 高亮显示变化的值
可以使用如下命令,将发生变化的值以高亮显示:
per , /SpotLight
其中:
逗号“,” 是一个缺省占位符,表示使用默认的per文件进行显示
因为per命令的完整格式应该如下:
PER.view [<file> [[<args>] "<subtree_path>"] [/<option>]]
PER.view可以简写为PER
如果需要/<option>的时候,<file>可以不写,但必须用逗号来进行缺省占位

更多用法2 实时显示变化的值
部分平台,会默认开启实时显示;如果没有默认开启,可以手动执行命令
;SYStem.MemAccess <实时显示的数据通道>
;例如ARM上可以使用DAP
SYStem.MemAccess DAP
per , /SpotLight /Dualport
/Dualport 用于实时显示

更多用法3 全部展开
有些时候,希望一个命令能展开所有寄存器方便查看,可以使用
per , "*"
也可以只展开相应的寄存器组,例如展开GPIO Ports的所有寄存器:
per , "GPIO Ports,*"

更多用法4 保存和导出
外设寄存器的窗口所有内容打印到txt等文件中进行保存。
除了WinPrint,外设寄存器还可以使用对应的命令保存成cmm脚本。例如,
将GPIO的Port33相关寄存器全部保存到D:\saved_gpio.cmm
per.STOre D:\saved_gpio.cmm , "GPIO Ports,Port 33"
保存的脚本内容类似这样:

后面如果要恢复寄存器的值,可以直接运行cmm脚本
Do D:\saved_gpio.cmm
更多关于外设寄存器相关的命令可以参考如下文档:
- <T32安装目录>\pdf\general_ref_p.pdf\Per章节
- https://www2.lauterbach.com/pdf/general_ref_r.pdf\Per章节

边栏推荐
- Day9 of Hegong Daqiong team vision team training - camera calibration
- 二叉搜索树问题
- 今天虚竹哥又发现了一款好用的国产化API工具
- Japan Sanitary Equipment Industry Association: Japan's warm water shower toilet seat shipments reached 100 million sets
- 2022 crane driver (limited bridge crane) exam question bank and simulation test
- FPGA解析B码----连载4
- TCP的粘包拆包问题+解决方案
- Rapid Medical超小体积且唯一可调的取栓器获得FDA核准
- Flink学习12:DataStreaming API
- 2022.7.29好题选讲(计数专题)
猜你喜欢
随机推荐
RNote108---显示R程序的运行进度
MySQL: basic part
对数据类型而言运算符无效。运算符为 add,类型为 text。
真实字节跳动测试开发面试题,拿下年薪50万offer。
Using printf function in STM32
In the anaconda Promat interface, import torch is passed, and the error is reported in the jupyter notebook (only provide ideas and understanding!)
How to avoid online memory leaks
FPGA解析B码----连载4
技术分析模式(八)双顶和底
Flink Learning 10: Use idea to write WordCount and package and run
腾讯实习总结
400 times performance improvement 丨 swap valuation optimization case calculation
UDP组(多)播
Mysql master-slave delay reasons and solutions
Bluetooth gap protocol
UDP broadcast
MAYA大炮建模
Day9 of Hegong Daqiong team vision team training - camera calibration
MySQL:连接查询 | 内连接,外连接
LaTeX Notes









