
uVision导出数据到文件.doc
4页uVision/Keil 如何将数据导出到文件1 前言在 Keil 中,有的时候需要将调试过程中的一些存储区数据(数组或结构体等)导出到文件,以便于对数据进行分析,可是找遍了菜单,也没有找到能够直接导出的功能,如何做呢?2 应用举例笔者在调试一款产品时,定义了一个 256 个元素的数组 RpmFeedback,每个元素是一个无符号的 32位数据每个元素实际上是对同一个外部 IO 信号上升沿时刻的采样数据,这些数据用于分析上升沿产生的频率是否一致,其偏差有多大在调试过程中,可以将此数组添加到 Watch 窗口中观察其数据,如下图:但是由于 Watch 窗口只能够显示数据,大量的数据分析在程序未被完善前是无法直接使用的,如果能够将数据存储下来,使用 Excel 等进行简单地分析,以检查数据是否符合要求的话就太完美了可以,没有工具支持的话,如果用从 Watch 窗口中逐一将每个元素手动抄到记事本或 Excel 中的办法,这种方法一是太麻烦,二是也可能出现错误,尤其是数据量很大的情况下出错概率也会很大怎么办呢?3 解决办法经过查询资料,发现使用命令窗口可以实现自动的数据导出功能方法如下:3.1 打开命令窗口打开 Command 窗口,如果没有,请在系统菜单“View”下,找到“Command Window”并点击,会显示出如下窗口。
3.2 输入存盘命令在窗口的下方有一个输入框,在其中输入以下语句:SAVE D:\C.TXT 0x20000130,0x2000230后回车执行命令的含义:其中 SAVE 是存盘命令,用于将指定的存储区的数据存储到电脑文件中D:\C.TXT 是文件路径和文件名可以根据具体要求进行修改0x20000130 是待存储的起始地址0x20000230 是待存储的终止地址 3.3 文件验证打开 D:盘,发现多了一个名为 C.TXT 的文件3.4 文件内容打开 C.TXT,发现其数据如下:红色字体是与 Watch 窗口中其第一个元素相符合的地址这个文件结构和 HEX 文件结构是类似的,可以根据相关的标准进行解释从数据上看,文件的第一行、最后两行、每行前的冒号、每行的前 4 字节如 10013000,以及每行的最后一个字节如 04,这是与数据无关的020000042000DA:100130007325050016070A00B24E0500F1FD040004:10014000CD5F040084AD06008A5A1F00ADCA0700C7:10015000DDA5050057E50400B7490600AA14110003:100160008C8B0B00EDCF0F00426408004588040023:100170006D31570021780800F7780400F45A170011:10018000B3F70400C86F2F00108917007C710700B7:1001900068310500135F070000A60E00AD1E0600C3:1001A000B3F7040031690500932C9B0071A9050089:1001B00025310400B77C0B0017400400F5B80B0094:1001C000990C040058181500262F050004B60800E5:1001D0002BDF2800182C0E00D0A81B00345504007B:1001E000A7A7050085F10400472D1100AC0A0D00FA:1001F000F8490C00BF500800D4E30B00892B1C0009:10020000C71D0A002B461100B99F0D006059180048:10021000C3D30600EB9D040062120A00B2BDAC001D:10022000489405019902070072A55A00DBF13900D4:010230008F3E:00000001FF3.5 文件处理简单地将无效数据去除,包括第一行和最后两行,每行的冒号,还有每行的前 4 个字节如10013000,以及每行的最后一个字节如 04,再把剩余数据每 4 字节添加一个空格,排版后数据如下,这样每个元素的关系就出来了。
剩下的只需要调整一下字节顺序,再转换为十进制,就可以在 Excel 中进行简单分析了73250500 16070A00 B24E0500 F1FD0400CD5F0400 84AD0600 8A5A1F00 ADCA0700DDA50500 57E50400 B7490600 AA1411008C8B0B00 EDCF0F00 42640800 458804006D315700 21780800 F7780400 F45A1700B3F70400 C86F2F00 10891700 7C71070068310500 135F0700 00A60E00 AD1E0600B3F70400 31690500 932C9B00 71A9050025310400 B77C0B00 17400400 F5B80B00990C0400 58181500 262F0500 04B608002BDF2800 182C0E00 D0A81B00 34550400A7A70500 85F10400 472D1100 AC0A0D00F8490C00 BF500800 D4E30B00 892B1C00C71D0A00 2B461100 B99F0D00 60591800C3D30600 EB9D0400 62120A00 B2BDAC0048940501 99020700 72A55A00 DBF139004 版本要求在查到的资料中是以 uVision3 为基础讲的,笔者使用的是 uVision4,也可以正常使用5 参考文件本方法参见 Keil 官网资料保存内存数据到文件: 命令解释:。
