stm32调试-- 获取内存数据
来源:互联网 发布:网络诈骗报警流程 编辑:程序博客网 时间:2024/05/29 12:51
之前做stm32开发的时候为了获取stm32芯片内部数据想进了各种方法。一开始是用串口发送数据,后来系统更新到win10后串口驱动不兼容,于是就找到了另外一种调试方式。
我是在keil中进行stm32开发,stm32程序通过keil编译器编译,然后通过JLink下载到芯片上。在Debug模式中可以直接查看stm32的运行内存,如图1-1所示
图1-1 stm32中变量值及其内存值
只要知道数组在内存中的地址,即可以找到对应地址所存储的采样值。同时,Keil还提供了一个内置的命令用于将芯片内存对应地址段的内容存储到电脑上,其命令格式如表1-1所示:
表1-1 save命令参数详解
命令名 第一个参数 第二个参数save 文件位置内存段起始位置,
内存段结束位置
对于图1-1中的DemoduBuffer1[5000]数组,其起始地址是0x20000058,因为每个元素占2个字节,所以其最后一个数据地址0x20002767(该数组总共占据10000字节,转换成16进制就是0x2710,即最后一个数据地址是0x20000058+0x2710 – 0x1 = 0x20002767)。调用该命令“save ../sample.txt 0x20000058,0x20002767 ”后即将数据保存到sample.txt文件中,该文件中的数据如图1-2所示:
图1-2 保存到电脑上的HEX386格式文件
所有的内存数据都是以HEX386格式存储,其格式含义如表1-2所示:
表2-2 HEX386的文件格式
格式:LLAAAARRDDDD………DDDDCC:用于表示该符号之后的数据是符合HEX386格式LLLength field,表示数据段(D)的字节数AAAAAddress field,表示数据段第一个字节的地址RRRecord type,表示数据段数值的含义
00 代表数据
01 代表纪录结束
02 代表扩展段地址记录
04 代表扩展线性地址记录
DDData,表示内存的数据CC校验值,用来判断获取的数据是否正确
stm32采用的是小端存储方式,内存是以8bit一个字节为一单位。
阅读全文
0 0
- stm32调试-- 获取内存数据
- stm32调试-- 获取内存数据
- stm32调试内存越界情况
- STM32获取DHT11温度传感器数据
- 网络数据获取 调试
- Monkey内存数据获取
- STM32串口获取氨气传感器数据
- stm32调试
- jlink调试stm32,debug时读取内存值
- 可视化调试:基于共享内存发送数据
- 内存变量被覆盖的调试(数据断点调试)
- 【STM32】获取STM32官方固件库
- STM32 ADC调试
- stm32 usbHID调试小结
- STM32 调试错误信息
- STM32的SRAM调试
- stm32 usbHID调试小结
- 【stm32应用】SRAM调试
- 使用caffe fine-tune一个单标签图像分类模型
- JavaScript本地对象之系列:Array对象
- 百练 实现堆结构
- 居然现在才安装eclipse,还来得及?
- 阅读笔记 > 软件开发中怎样解决问题?
- stm32调试-- 获取内存数据
- 阅读笔记 > 受欢迎程序的设计特点
- C#练习——字符串字符个数,简单数学题
- leetcode 462. Minimum Moves to Equal Array Elements II
- JQUERY实现TAB切换
- 聚集索引和非聚集索引(整理)
- HTML页面的垂直滚动条不见了
- 大话PCIe:总线结构与配置空间
- C语言函数可变参数总结