您的位置 首页 数字

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

Silicon Labs的EFM32是基于ARMCortex-M内核的MCU,它通过强大的内核、多样的时钟以及多种运行模式把效率和功耗很好的结合在一起,因此在低功耗领域有很好的应用。俗话

  Silicon Labs的EFM32是根据ARM
Cortex-M内核的MCU,它经过强壮的内核、多样的时钟以及多种运转形式把功率和功耗很好的结合在一起,因此在低功耗范畴有很好的运用。

  俗话说“工欲善其事、必先利其器”,为了能更好的开发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的挑选,如下图:

  

  假如或许,进步调试器和方针板的通讯速度。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/shuzi/130174.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部