网站首页
IC库存
IC展台
电子资讯
技术资料
PDF文档
我的博客
IC72论坛
ic72 logo
资料首页最新产品 技术参数 电路图 设计应用 解决方案 代理商查询 IC替换 IC厂商 电子辞典
关键字: 技术文章 PDF资料 IC价格 电路图 代理商查询 IC替换 IC厂商 电子辞典

IAR调试EFM32单片机时的一些技巧

  俗话说“工欲善其事、必先利其器”,为了能更好的开发ARM系单片机EFM32,熟练掌握一个或者多个IDE是必须的。IAR的调试器、编译器以及汇编器同时集成在一个IDE中,共同来开发和调试应用程序,这样的集成环境可以带来很多好处,比如:调试过程中可以进行代码编辑。在一个调试过程中,你可以直接在被调试的源代码中进行修改,修改的代码可以在程序重新编译后起作用。以下分享5部分的内容,是笔者应用IAR开发EFM32过程中的一些经验积累,希望能对看到文章的人有一定的作用。

  1)关于Run to(在工程中Project>Options>Debugger>Setup>Run to)

  如下图:

  

  默认工程Run to的内容是main,这个选项指定了程序调试的起点,注意这里写的是程序调试的起点并不是程序的起点,而且我们需要明白main不是程序的起点,编译器把一些初始化工作放在了main之前,比如全局变量的初始化。那么我们调试的时候也可以输入其它的调试起点,我们可以指定程序中IAR识别的任意标号或者函数名称。

  2)关于在反汇编窗口和内存窗口中快速定位函数位置和变量位置

  我们经常需要在Disassembly窗口中找到指定函数的位置,或者需要在Memory窗口中找到指定变量的位置,一般情况下选中函数名称然后把函数名称拖放到Disassembly窗口,相关函数就会显示在Disassembly窗口中,也可以把变量名称用相同的操作显示在Memory窗口中。

  3)单步调试速度缓慢的问题

  我们在单步调试过程中如果发现速度缓慢,那么以下的几点需要引起我们的注意:

  如果使用硬件仿真系统,我们需要为单步调试留下足够的硬件断点,在调试中的单步运行通常是用断点来实现的,通过把断点设置在下一个语句后,来完成单步调试的功能。硬件的断点数量是有限的,如果没有可用的硬件断点,调试器就会在每个汇编指令处停止一下,这样完成一条完整的语句的所有汇编代码越多时间就越长。

  在Trace和Function Profiling窗口中使用Enable/Disable按钮关闭数据跟踪功能。因为在每个单步之后要收集这些跟踪的数据,所以数据跟踪可能会降低单步的速度。需要注意的是,紧紧关闭相关的窗口是不能关闭数据跟踪功能的,必须通过Enable/Disable按钮来完成。

  只打开有限数量的SFR寄存器窗口,这可以通过2种方法实现。一种是通过在Watch窗口中手动输入SFR寄存器的名字;另一种是创建自定义的特殊功能寄存器组,操作步骤如下,Tools>Options>Register Filter>Use register filter如下图:

  

  

  选择New Group

  把关心的SFR放到组中

  如果不需要Memory和Symbolic Memory窗口,关闭它们,因为在每个单步之后要读出这些内存数据。

  如果不需要Watch,Live Watch,Locals,Statics窗口,关闭它们,原因同上。

  关闭Stack窗口和相关的设置,Tools>Options>Stack,去掉Enable graphical stack display and stack usage tracking的选择,如下图:

  

  如果可能,提高调试器和目标板的通讯速度。

热门搜索:PS-415-HGULTRA 2839224 RS-1215 2838228 2762265 TLP404 BT151S-800R118 02B1001JF 02T0500JF 602-15 2866569 TLP712B UL24RA-15 TLP74RB 2838254 DRV8313PWPR 2818135 2856087 CC2544RHBR 01B1001JF PDUMV20 2839240 CC2544RHBR PS-615-HG-OEM PS2408RA
COPYRIGHT:(1998-2010) IC72 达普IC芯片交易网
客户服务:service@IC72.com 库存上载:IC72@IC72.com
(北京)联系方式: 在线QQ咨询:点击这里给我发消息 联系电话:010-82614113 传真:010-82614123
京ICP备06008810号-21 京公网安备 11010802032910 号 企业资质