KEIL 调试【调试lib库】【调试模式快捷键】【debug init脚本】【 Pre-Download Script into脚本(utilities下init file)】【将数据导出到文件】

SYD8801是一款低功耗高性能蓝牙低功耗SOC,集成了高性能2.4GHz射频收发机、32位ARM Cortex-M0处理器、128kB Flash存储器、以及丰富的数字接口。SYD8801片上集成了Balun无需阻抗匹配网络、高效率DCDC降压转换器,适合用于可穿戴、物联网设备等。具体可咨询:http://www.sydtek.com/

 

µVISION DEBUGGER: SOURCE LEVEL DEBUGGING OF LIBRARY CODE


Information in this article applies to:

  • MDK-ARM all versions
  • Keil C51 Compiler All Versions
  • Keil C251 Compiler All Versions
  • Keil C166 Compiler All Versions

QUESTION

I have created a library, which will be used by other projects. Isit possible to have source-level debugging into this library code,while working with it in other projects?

ANSWER

Yes. This is possible, however, the library source code must beavailable.

Taking the CMSIS RTX v4.x library file 'RTX_CM4.lib' as anexample, when you include this 'RTX_CM4.lib' in your project and wantto have source-level debugging into the CMSIS RTX source code in thedebug session of µVision, please follow these steps:

  1. When building the library, in this case the 'RTX_CM4.lib' file, enable 'Debug information' under Options for Target - Output. In order to have more debug info and be able to set breakpoints, this library should be built with the optimization level-O0. The µVision project to rebuild the 'RTX_CM4.lib' file can be found under C:\Keil\ARM\PACK\ARM\CMSIS\4.5.0\CMSIS\RTOS\RTX\SRC\ARM\ , after you installed the CMSIS Pack.
  2. When using this library into your own project, in this case the 'RTX_CM4.lib' file, after each debug session is started, before running the application, use theSET SRC debug command to tell the µVision Debugger where the source code of 'RTX_CM4.lib' can be found. e.g.
    SET SRC = C:\Keil\ARM\PACK\ARM\CMSIS\4.5.0\CMSIS\RTOS\RTX\SRC
    
    The SET SRC debug command shown above can be alsowritten into a debug.ini file and set it underOptions for Target- Debug - Initialization File, so that it will be automaticallyloaded every time when you start a debug session.

MORE INFORMATION

  • Refer to SET in the µVision User's Guide.

SEE ALSO

FORUM THREADS

The following Discussion Forum threads mayprovide information related to this topic.

Last Reviewed: Friday, February 24, 2017

 

 

调试模式快捷键

 

Ctrl+F7

编译当前文件

仿真调试操作

F5

仿真执行程序,直到遇到一个断点

Ctrl+F5

开始/停止调试模式

F11

单步执行,遇到子程序则进入

Ctrl+F11

执行到当前函数的结束

F10

单步执行,跳过子程序

Esc

停止程序仿真执行

 

debug init脚本

 

 Pre-Download Script into脚本(utilities下init file)

 

 

 

uVision/Keil如何将数据导出到文件

本文摘录于:https://blog.csdn.net/wuhenyouyuyouyu/article/details/72457360这里只是做学习备份之用,绝无抄袭之意,如果作者觉得有所不妥请联系本人,一定妥当处理!同时这里望阅读者查看原文章!

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 ..\memory.TXT  0x20022250,0x20023250

 

命令的含义:

  其中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

:00000001FF

3.5 文件处理

简单地将无效数据去除,包括第一行和最后两行,每行的冒号,还有每行的前4个字节如10013000,以及每行的最后一个字节如04,再把剩余数据每4字节添加一个空格,排版后数据如下,这样每个元素的关系就出来了。

剩下的只需要调整一下字节顺序,再转换为十进制,就可以在Excel中进行简单分析了。

73250500 16070A00 B24E0500 F1FD0400

CD5F0400 84AD0600 8A5A1F00 ADCA0700

DDA50500 57E50400 B7490600 AA141100

8C8B0B00 EDCF0F00 42640800 45880400

6D315700 21780800 F7780400 F45A1700

B3F70400 C86F2F00 10891700 7C710700

68310500 135F0700 00A60E00 AD1E0600

B3F70400 31690500 932C9B00 71A90500

25310400 B77C0B00 17400400 F5B80B00

990C0400 58181500 262F0500 04B60800

2BDF2800 182C0E00 D0A81B00 34550400

A7A70500 85F10400 472D1100 AC0A0D00

F8490C00 BF500800 D4E30B00 892B1C00

C71D0A00 2B461100 B99F0D00 60591800

C3D30600 EB9D0400 62120A00 B2BDAC00

48940501 99020700 72A55A00 DBF13900

4版本要求

在查到的资料中是以uVision3为基础讲的,笔者使用的是uVision4,也可以正常使用

5参考文件

本方法参见Keil官网资料

保存内存数据到文件:http://www.keil.com/support/docs/3262.htm

SAVE命令解释:http://www.keil.com/support/man/docs/uv3/uv3_cm_save.htm

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值