stm32调试-- 获取内存数据
来源:互联网 发布:淘宝亲宝贝入驻网址 编辑:程序博客网 时间:2024/05/16 05:33
之前做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调试
- j2ee的web项目怎么防止,重复提交的问题?(即点击了提交,后台新增了两条数据,也就是说,其实是点了多次提交,发起了多次http url,这样就插入了多条相同数据,但是主键id是不同的)
- 【C#】—.net,VS,C#三者的关系
- js-tips
- nutch 在hadoop环境下过滤抓取url的设置
- oracle下lag和lead分析函数
- stm32调试-- 获取内存数据
- Xcode7.3 真机测试iOS10
- redis生存时间
- 那些不常用但很有用的css代码
- 怪异盒子模型、弹性盒子模型
- 面向对象分拣存储3、案例
- AX中获得Excel版本号
- 字符、字符串、数组
- Android Dialog相关 Demo